WO2025195208A1 - Access method, related devices, and storage medium - Google Patents
Access method, related devices, and storage mediumInfo
- Publication number
- WO2025195208A1 WO2025195208A1 PCT/CN2025/081494 CN2025081494W WO2025195208A1 WO 2025195208 A1 WO2025195208 A1 WO 2025195208A1 CN 2025081494 W CN2025081494 W CN 2025081494W WO 2025195208 A1 WO2025195208 A1 WO 2025195208A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- network address
- access request
- bus
- indication information
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
Definitions
- the embodiments of the present application relate to the field of communication technologies, and in particular to an access method, related equipment, and storage medium.
- a single bus device within a device
- a single bus device such as a network interface card
- This single network interface card cannot meet the application's requirements. Therefore, the application must use two network interfaces and, at the application layer, allocate the 800 Gbps of network bandwidth to both. Allocating services across multiple network interfaces increases complexity and reduces device performance.
- An embodiment of the present application provides an access method, related devices, and storage media, which can present the capabilities of an aggregate device on a device.
- the capabilities of the aggregate device include the capabilities of a first bus device and the capabilities of a second bus device. Then, the application running on the device directly uses the capabilities of the aggregate device to meet the needs of the application to perform business, without the need to distribute the business performed by the application to multiple different bus devices, thereby reducing the complexity of the application's business execution and reducing the loss of device performance.
- an embodiment of the present application provides an access method, which is applied to a device, and the device may be a device having both computing and storage capabilities, including but not limited to desktop computers, computing devices, servers, laptop computers, and mobile devices.
- the device includes a processing device and an aggregation device, and the aggregation device is associated with a first bus device and a second bus device, wherein the device includes a host and a bus, and the first bus device and the second bus device are both connected to the bus.
- the processing device may be a host included in the device, a logic module run by a processor of the host, software, or a device running an operating system, and the processing device may be a fabric manager (FM) on a processor.
- FM fabric manager
- the processing device may also be a component or device of the device (such as a processor, a core of a processor, a chip, etc.).
- the first device and the second device refer to devices connected to the bus.
- the first device is referred to as the first bus device
- the second device is referred to as the second bus device.
- the first bus device may be a network card, a hard drive, a keyboard, a printer, a sound card, an artificial intelligence (AI) device, a virtual reality (VR), a graphics processing unit (GPU) for accelerating computing and graphics processing, a computing card for accelerating specific algorithms and data processing, an accelerator card for accelerating specific computing tasks, etc., so that the first bus device can be applied to applications in the computer, cloud computing, artificial intelligence, and virtual reality fields.
- AI artificial intelligence
- VR virtual reality
- GPU graphics processing unit
- computing card for accelerating specific algorithms and data processing
- accelerator card for accelerating specific computing tasks, etc.
- the capabilities of the aggregation device include the capabilities of the first bus device and the capabilities of the second bus device.
- the capabilities of the first bus device may include the supported network bandwidth, the size of the resource space, the number of supported interrupt vectors, and the number of supported task queues.
- the method includes: first, a processing device obtains an access request, wherein the access request carries a logical address for accessing the aggregation device. Secondly, the processing device sends a first access request to a first network address and a second access request to a second network address based on the access request, wherein the first network address is the network address of the first bus device, the second network address is the network address of the second bus device, and the logical address is used to correspond to the first network address and the second network address.
- a processing device can aggregate a first bus device and a second bus device into a single aggregate device.
- the aggregate device's network bandwidth is the sum of the first bus device's network bandwidth and the second bus device's network bandwidth.
- the size of the aggregate device's resource space is the sum of the first bus device's resource space and the second bus device's resource space.
- Another example is the number of interrupt vectors for the aggregate device, which is the sum of the first bus device's interrupt vectors and the second bus device's interrupt vectors.
- Another example is the number of task queues for the aggregate device, which is the sum of the first bus device's task queues and the second bus device's task queues. If an application program on the processing device initiates an access request requiring the use of multiple bus devices, and this aspect aggregates the first and second bus devices into a single aggregate device, then access requests initiated by the application program only need to use this single aggregate device. Access requests no longer need to be allocated to different bus devices at the application layer. Instead, access requests are allocated to a single aggregate device. This effectively reduces the complexity of executing services for applications running on the device and minimizes device performance losses. Furthermore, since the first access request and the second access request are sent to the first bus device and the second bus device respectively, the delay of sending the access request to each bus device included in the aggregation device is reduced.
- the method before sending a first access request to a first network address and sending a second access request to a second network address according to the access request, the method further includes: a processing device converting the logical address into a physical address; obtaining the first network address corresponding to the physical address; and the processing device obtaining the second network address corresponding to the first network address based on a pre-created correspondence between the first network address and the second network address.
- the processing device can directly divide the access request issued by the application into a first access request and a second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
- obtaining the second network address corresponding to the first network address includes: obtaining the second network address corresponding to the first network address according to an aggregation list, wherein the aggregation list includes the first network address and the second network address.
- the processing device pre-creates an aggregation list that includes the first network address and the second network address.
- the aggregation list then includes a correspondence between the first network address and the second network address.
- the processing device can directly query the first network address and the second network address, thereby enabling the logical address of the aggregation device carried in a single access request to access multiple bus devices (i.e., the first bus device and the second bus device).
- the method before obtaining the access request, further includes: sending a scan request message to the first bus device and the second bus device respectively; receiving a first response message from the first bus device, the first response message carrying the first network address; receiving a second response message from the second bus device, the second response message carrying the second network address; and obtaining a correspondence between the first network address and the second network address based on the first response message and the second response message.
- a correspondence between the first network address and the second network address is created based on the first response message and the second response message (for example, an aggregation list is created).
- the aggregation list ensures that the first network address and the second network address are successfully obtained, and ensures the success rate of sending the first access request to the first bus device and sending the second access request to the second bus device.
- the first response message also carries first model indication information and first indication information
- the second response message also carries second model indication information and second indication information
- the first indication information is used to indicate that the first bus device supports aggregation into the aggregate device
- the second indication information is used to indicate that the second bus device supports aggregation into the aggregate device
- the model of the first bus device indicated by the first model indication information is the same as the model of the second bus device indicated by the second model indication information.
- the first network address also corresponds to quantity indication information, enable indication information, first resource indication information, and second resource indication information.
- the aggregation list includes the first network address, the second network address, quantity indication information, enable indication information, first resource indication information, and second resource indication information.
- the quantity indication information is used to indicate the number of the first bus devices and/or the number of the second bus devices
- the enable indication information is used to indicate that the first bus device and the second bus device have the ability to be aggregated into the aggregate device
- the first resource indication information is used to indicate the size of the resource space of the first bus device
- the second resource indication information is used to indicate the size of the resource space of the second bus device.
- the resource space of the first bus device is used to respond to the first access request
- the resource space of the second bus device is used to respond to the second access request.
- the aggregation list ensures that the first bus device can successfully respond to the first access request, and ensures that the second bus device can successfully respond to the second access request.
- the method before obtaining the access request, further includes: sending first configuration information and second configuration information to the first bus device, the first bus device being used to forward the second configuration information to the second bus device, the first configuration information being used to configure the first bus device so that the configured first bus device responds to the first access request, and the second configuration information being used to configure the second bus device so that the configured second bus device responds to the second access request.
- the first bus device forwards the second configuration message to the second bus device. Then, the process of the processing device sending the second configuration message to the second bus device does not need to occupy the data path between the processing device and the second bus device.
- the second bus device when the second bus device successfully receives the second configuration message and stores the second configuration message in a register, the second bus device sends a second success response message to the first bus device.
- the first bus device stores the first configuration message in the register
- the first bus device sends a first success response message to the processing device
- the first bus device also forwards the second success response message to the processing device, so that the processing device determines that both the first bus device and the second bus device are successfully configured based on the first success response message and the second success response message, and then both the first bus device and the second bus device can respond to the access request.
- the processing device when the processing device receives the first success response message and the second success response message, it creates an aggregation list to ensure that the first bus device can successfully respond to the first access request and the second bus device can successfully respond to the second access request.
- the first configuration information includes an identifier of a first task queue
- the second configuration information includes an identifier of a second task queue
- the first task queue is used to access the first bus device
- the second task queue is used to access the second bus device.
- the processing device can configure a first task queue for a first bus device using first configuration information, and a second task queue for a second bus device using second configuration information.
- the first bus device can then respond to a first access request based on the first task queue, and the second bus device can respond to a second access request based on the second task queue.
- Applications running on these devices can then directly use the aggregation device to call the first and second task queues, eliminating the need to allocate services to the task queues supported by different bus devices at the application layer.
- the first configuration information includes the correspondence between the first task queue and the first interrupt vector
- the second configuration information includes the correspondence between the second task queue and the second interrupt vector
- the first interrupt vector is used to indicate the data accessed by the first task queue interrupt
- the second interrupt vector is used to indicate the data accessed by the second task queue interrupt.
- the processing device can configure the correspondence between the first task queue and the first interrupt vector for the first bus device using first configuration information, and the processing device can configure the correspondence between the second task queue and the second interrupt vector for the second bus device using second configuration information.
- the first bus device can then respond to the first access request based on the correspondence between the first task queue and the first interrupt vector, and the second bus device can respond to the second access request based on the correspondence between the second task queue and the second interrupt vector.
- the method before obtaining the first network address corresponding to the physical address, the method further includes: establishing a correspondence between the physical address of the aggregation device and the first network address.
- the processing device can successfully divide the access request into the first access request and the second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
- the method further includes: creating an address lookup list, the address lookup list including the correspondence between the physical address of the aggregation device and the first network address; obtaining the first network address corresponding to the physical address includes: obtaining the first network address corresponding to the physical address according to the address lookup list.
- the address lookup list created by the processing device can successfully divide the access request into the first access request and the second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
- the capabilities of the aggregation device include capabilities of the first device and capabilities of the second device.
- the capabilities of the aggregate device are presented to the operating system (OS). Furthermore, the capabilities of the aggregate device include the capabilities of the first bus device and the second bus device.
- the capabilities of the bus devices may include network bandwidth, resource space, interrupt vectors, task queues, and the like.
- an embodiment of the present application provides an access method, applied to an aggregation device, wherein the aggregation device is associated with a first bus device and a second bus device.
- the method comprises: the first bus device receives a first access request; the first bus device responds to the first access request; the second bus device receives a second access request; and the second bus device responds to the second access request, wherein the first access request and the second access request are used to execute the access request received by a device, the device including the aggregation device, and the access request carries a logical address for accessing the aggregation device.
- the method before the first bus device receives the first access request and the second bus device receives the second access request, the method further includes: the first bus device receives a first scan request message; and based on the first scan request message, sends a first response message, the first response message carrying the first network address of the first bus device; the second bus device receives a second scan request message; and based on the second scan request message, sends a second response message, the second response message carrying the second network address of the second bus device, the first response message and the second response message being used to establish a correspondence between the first network address and the second network address.
- the first response message also carries first model indication information and first indication information
- the second response message also carries second model indication information and second indication information
- the first indication information is used to indicate that the first bus device supports aggregation into the aggregate device
- the second indication information is used to indicate that the second bus device supports aggregation into the aggregate device
- the model of the first bus device indicated by the first model indication information is the same as the model of the second bus device indicated by the second model indication information.
- the method further includes: the first bus device receives first configuration information and second configuration information; the first bus device forwards the second configuration information to the second bus device; the first bus device responds to the first access request including: the first bus device responds to the first access request according to the first configuration information; the second bus device responds to the second access request including: the second bus device responds to the second access request according to the second configuration information.
- the first configuration information includes an identifier of a first task queue
- the second configuration information includes an identifier of a second task queue
- the first task queue is used to access the first bus device
- the second task queue is used to access the second bus device.
- the first configuration information includes the correspondence between the first task queue and the first interrupt vector
- the second configuration information includes the correspondence between the second task queue and the second interrupt vector
- the first interrupt vector is used to indicate the data accessed by the first task queue interrupt
- the second interrupt vector is used to indicate the data accessed by the second task queue interrupt.
- the capabilities of the aggregation device include capabilities of the first device and capabilities of the second device.
- an embodiment of the present application provides a device comprising a processor and a memory, wherein the device is connected to an external aggregation device, wherein the aggregation device associates the first bus device with the second bus device, the processor is connected to the first bus device and the second bus device, the memory is used to store program code, and the processor is used to call the program code in the memory to enable the processor to execute a method as described in any one of the above-mentioned first aspects.
- an embodiment of the present application provides a device comprising a processor, a memory, and an aggregation device, wherein the aggregation device is associated with a first bus device and a second bus device, the processor is connected to the memory, and the processor is connected to the first bus device and the second bus device respectively; the memory is used to store program code, and the processor is used to call the program code in the memory to enable the processor to execute the method described in any one of the first aspects above.
- an embodiment of the present application provides an aggregation device, comprising a first bus device and a second bus device, wherein the first bus device comprises a first processor and a first memory connected to the first processor, and the second bus device comprises a second processor and a second memory connected to the second processor; the first memory is used to store program code, and the first processor is used to call the program code in the first memory so that the first processor executes the method executed by the first bus device as in any one of the second aspects; the second memory is used to store program code, and the second processor is used to call the program code in the second memory so that the second processor executes the method executed by the second bus device as in any one of the second aspects.
- an embodiment of the present application provides a chip system, the chip system comprising a processor and an input/output interface, the input/output interface being used to receive data and transmit it to the processor, or to send data from the processor to another chip system, the processor being used to execute the method as described in any one of the first aspects above, or the method as described in any one of the second aspects above.
- an embodiment of the present application provides a computer-readable storage medium comprising computer program instructions.
- the processor executes the method as described in any one of the first aspect or the method as described in any one of the second aspect.
- an embodiment of the present application provides a computer program product comprising instructions, which, when executed by a computer, implement the method described in any one of the first or second aspects above.
- FIG1 is a structural diagram of an embodiment of the device provided in this application.
- FIG2 is a flow chart of the registration steps in the access method provided in an embodiment of the present application.
- FIG3 is a diagram illustrating an example of executing the registration step flowchart shown in FIG2 in a device
- FIG4 is another example diagram of the registration step flowchart shown in FIG2 being executed in a device
- FIG5 is an example diagram of the configuration information shown in FIG2 ;
- FIG6 a shows an example of an address lookup list corresponding to existing bus devices
- FIG6 b is an example diagram of an address lookup list corresponding to a bus device according to an embodiment of the present application.
- FIG7 is a flowchart of the steps of the access method provided in an embodiment of the present application.
- FIG8 is a diagram illustrating an example of executing the access method shown in FIG7 in a device
- FIG9 is a structural diagram of a bus device provided in an embodiment of the present application.
- FIG10 is a diagram illustrating an exemplary structure of a node provided in an embodiment of the present application.
- FIG11 is a structural example diagram of a chip system provided in an embodiment of the present application.
- FIG1 illustrates a device 100 to which the method of the embodiment of the present application is applied.
- FIG1 is a structural diagram of an embodiment of the device provided by the present application.
- the device may be a device having both computing and storage capabilities, including but not limited to a desktop computer, a server, a computing device, a laptop computer, and a mobile device.
- the device 100 includes at least a host 120, N network cards, and M hard disks.
- the host 120 includes a processor 101 and a memory 102. This embodiment does not limit the values of N and M.
- the N network cards specifically include network cards 111 to 11N
- the M hard disks specifically include hard disks 121 to 12M.
- the host 120, the N network cards, and the M hard disks are each connected to a bus 130.
- the processor 101, the memory 102, the N network cards, and the M hard disks are each connected to the bus 130.
- the processor 101 can access the N network cards and the M hard disks via the bus 130, and the processor 101 is also connected to the memory 102 via the bus 130.
- the processor 101 can read and write data or execute code in the memory 102 through a bus.
- the bus 130 can be, for example, a quick path interconnect (QPI) or an ultra path interconnect (UPI).
- QPI quick path interconnect
- UPI ultra path interconnect
- the bus 130 is divided into an address bus, a data bus, a control bus, etc.
- the function of the processor 101 is mainly to interpret the instructions (or code) of the computer program and process the data in the computer software.
- the instructions of the computer program and the data in the computer software can be stored in the memory 102.
- the processor 101 is a central processing unit (CPU).
- CPU central processing unit
- the processor 101 receives a write data request (from an external device or generated by the processor 101 itself), it temporarily stores the data in the write data request in the memory 102.
- the processor 101 sends the data stored in the memory 102 to the hard disk for persistent storage.
- the processor 101 is also used for computing or processing data, such as metadata management, data deduplication, data compression, data verification, virtualized storage space, and address translation.
- FIG1 shows only one processor 101. In actual applications, there are often multiple processors 101, wherein one processor 101 has one or more CPU cores. This embodiment does not limit the number of CPUs or the number of CPU cores. The description of the type of processor 101 in this embodiment is an optional example and is not limited.
- the processor 101 may include one or more chips, or one or more integrated circuits.
- the processor 101 may include one or more neural processing units (NPUs), optical digital signal processors (oDSPs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), system-on-chips (SoCs), network processors (NPs), microcontroller units (MCUs), programmable logic devices (PLDs), network card chips, storage interface chips, or other integrated chips.
- NPUs neural processing units
- oDSPs optical digital signal processors
- FPGAs field-programmable gate arrays
- ASICs application-specific integrated circuits
- SoCs system-on-chips
- NPs network processors
- MCUs microcontroller units
- PLDs programmable logic devices
- network card chips storage interface chips, or other integrated chips.
- storage interface chips or other integrated chips.
- Memory 102 refers to memory that directly exchanges data with processor 101. It can read and write data at any time and at a high speed, and serves as temporary data storage for the operating system or other running programs.
- Memory includes at least two types of memory.
- memory can be either random access memory or read-only memory (ROM).
- ROM read-only memory
- random access memory is dynamic random access memory (DRAM) or storage class memory (SCM).
- DRAM and SCM are merely exemplary in this embodiment.
- Memory can also include other random access memories, such as static random access memory (SRAM).
- SRAM static random access memory
- read-only memory for example, it can be programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM).
- the memory 102 may also be a dual in-line memory module or a dual-line memory module (DIMM), that is, a module composed of dynamic random access memory (DRAM), or a solid state disk (SSD).
- DIMM dual in-line memory module
- DRAM dynamic random access memory
- SSD solid state disk
- multiple memories 102 and different types of memories 102 may be configured in the device 100. This embodiment does not limit the number and type of memories 102.
- the memory 102 may be configured to have a power-saving function.
- the power-saving function means that when the system loses power and then powers on again, the data stored in the memory 102 will not be lost.
- a memory with a power-saving function is called a non-volatile memory.
- Each of the M hard drives is used to provide storage resources, such as storing data. It can be a disk or other type of storage medium, such as a solid-state drive or a shingled magnetic recording hard drive.
- Each of the N network cards is used to communicate with other devices.
- the network card can be an intelligent network card, including a processor and memory.
- the network card 111 can perform data reading and writing, address conversion, and other computing functions.
- the network card 111 may also have a persistent memory medium, such as persistent memory (PM), non-volatile random access memory (NVRAM), or phase change memory (PCM).
- the processor is used to perform operations such as address conversion and reading and writing data.
- the memory is used to temporarily store data to be written to the hard drive, or data read from the hard drive to be sent to the processor.
- the network card 111 is connected to the bus 130 via an interface.
- the interface may be, for example, a peripheral component interface express (PCIE) interface.
- PCIE peripheral component interface express
- bus devices connected to the bus 130 are used as examples and are not limited thereto.
- the bus devices connected to the bus 130 may also be keyboards, printers, sound cards, artificial intelligence (AI) devices, virtual reality (VR), graphics processing units (GPUs) for accelerating computing and graphics processing, computing cards (such as FPGAs) for accelerating specific algorithms and data processing, accelerator cards for accelerating specific computing tasks, etc., so that the device can be applied to applications in the fields of cloud computing, artificial intelligence, and virtual reality.
- AI artificial intelligence
- VR virtual reality
- GPUs graphics processing units
- computing cards such as FPGAs
- accelerator cards for accelerating specific computing tasks, etc.
- FIG2 is a flowchart of the registration steps in the access method provided in the embodiment of the present application
- FIG3 is an example diagram of an execution of the registration step flowchart shown in FIG2 in a device.
- the protocol type used by the bus shown in FIG1 is taken as the unified bus (UB) protocol, without limitation.
- RDMA remote direct memory access
- SATA serial advanced technology attachment
- PCle peripheral component interconnect express
- the processing device used to execute the method shown in FIG2 may be a host included in the device, a logic module running on the host's processor 101, software, or a device running an operating system.
- the processing device may be a fabric manager (FM) on the processor.
- the processing device may also be a component or device of the device (such as a processor, CPU core, chip, etc.).
- the embodiments shown in FIG. 2 and FIG. 3 can aggregate multiple bus devices into one aggregate device.
- Step 201 The processing device sends multiple scan request messages to the bus.
- the processing device can send multiple scan request messages to the bus in parallel.
- the scan request message is used to scan and discover each bus device connected to the bus.
- the bus device please refer to the corresponding description of Figure 1, and the details will not be repeated here.
- Step 202 The processing device receives a first response message from a first bus device.
- Step 203 The processing device receives a second response message from the second bus device.
- This embodiment takes the example that both the first bus device and the second bus device are network cards connected to the bus. It should be noted that this embodiment does not limit the description of the device types of the first bus device and the second bus device.
- the first bus device after receiving the scan request message, the first bus device sends a first response message to the processing device via the bus.
- the first response message specifically carries the first indication information, the first network address, the first type indication information, and the first resource space indication information.
- the contents of each field carried by the first response message are shown in Table 1:
- the first indication information is used to indicate whether the first bus device supports aggregation.
- the first indication information may be the Supported field of the aggregation device table (ADT). If the value of the ADT Supported field is 1, it indicates that the first bus device supports aggregation. If the value of the ADT Supported field is 0, it indicates that the first bus device does not support aggregation.
- the first network address is used to identify the address of the physical port of the first bus device.
- the first network address may be a network address (network address) or a destination network address (CNA). In the example shown in Table 1, the first network address may be the Device CNA field, and the value of the Device CNA field is used to identify the address of the physical port of the first bus device.
- the first type indication information is used to indicate the model of the first bus device.
- the first type indication information may be an entity ID (EID), a globally unique identifier (GUID), a universally unique identifier (UUID), etc., without limitation.
- the first type of indication information may also indicate information such as the bus device type and device manufacturer, without specific limitation.
- the first type of indication information may be the Device GUID field.
- the first resource space indication information is the Device resource space size (RSSZ) field.
- the value of the Device RSSZ field indicates the size of the resource space of the first bus device.
- the resource space may include memory resource size, storage space size, processor resources, network bandwidth, input/output (I/O) resources, software resources, etc.
- Processor resources indicate the execution time and computing power of the processor used to perform various tasks on the device. It should be noted that the description of the resource space in this embodiment is an optional example and is not limiting. As long as the resource space is related to the resources used to run the services of the first bus device, it is sufficient.
- the second response message specifically carries the second indication information, the second network address, the second type indication information, and the second resource space indication information. For a description of the second response message, please refer to the description of the first response message and will not be repeated here. It should be noted that the description of the names and values of each field in this embodiment is an optional example and is not limiting.
- Step 204 The processing device aggregates the first bus device and the second bus device into an aggregated device.
- the processing device determines that the first response message and the second response message meet the preset conditions
- the first bus device and the second bus device are aggregated into an aggregate device.
- the aggregate device is associated with the first bus device and the second bus device.
- the preset conditions refer to that both the first bus device and the second bus device support aggregation, and the device model of the first bus device is the same as the device model of the second bus device.
- the first response message carries first type indication information and first indication information
- the second response message carries second type indication information and second indication information.
- the first indication information is used to indicate that the first bus device supports aggregation
- the second indication information is used to indicate that the second bus device supports aggregation.
- the model indicated by the first type indication information is the same as the model indicated by the second type indication information.
- the preset condition includes the model of the first bus device being the same as the model of the second bus device as an example.
- the preset condition may include the device type of the first bus device being the same as the device type of the second bus device, for example, the first bus device and the second bus device are both network cards, or the first bus device and the second bus device are both hard disks, etc.
- the processing device aggregates the first bus device and the second bus device into an aggregate device by creating an aggregation list as shown in Table 2.
- the aggregation list is shown in Table 2: It should be noted that the fields and values of each field shown in Table 2 are optional examples and are not limited. In other examples, the aggregation list can adopt any value of any field, at least indicating the network address of the first bus device, the network address of the second bus device, the model of the first bus device, and the model of the second bus device.
- the processing device When the processing device aggregates the first bus device and the second bus device into the same aggregate device, the processing device selects one bus device from the first bus device and the second bus device as the primary device and selects the other bus devices as slave devices.
- This embodiment takes the example of the processing device selecting the first bus device as the primary device and the second bus device as the secondary device. It should be understood that in other examples, the processing device can also obtain a response message from the third bus device, and so on, obtain a response message from the Nth bus device, and aggregate the N bus devices into the same aggregate device to create an aggregate list as shown in Table 2. This embodiment does not limit the number of bus devices included in the aggregate list.
- the aggregate list includes the Supported ADT Number field, quantity indication information, enable indication information, device mode indication information, the first network address of the first bus device, the second network address of the second bus device, first resource indication information, second resource indication information, first type indication information, and second type indication information.
- first network address, the second network address, the first type indication information, and the second type indication information please refer to the corresponding descriptions in Table 1 and are not further described here.
- the Supported ADT Number field is used to indicate the number of aggregation lists supported by the processing device.
- the quantity indication information may be the Supported Secondary Device Number field.
- the Supported Secondary Device Number field is used to indicate the number of supported slave devices in the aggregation list.
- the data indication information may be used to indicate the number of all bus devices included in the aggregation list, or the quantity indication information may be used to indicate the number of master devices included in the aggregation list, etc., without specific limitation.
- the enable indication information may be the ADT Enable field, which is used to indicate that the first bus device and the second bus device have the ability to aggregate into an aggregation device.
- the device mode indication information may be the Device Mode field, and the value of the Device Mode field is used to indicate that the first bus device is a master device and the second bus device is a slave device. This embodiment does not limit the number of fields included in the Device Mode field and the specific value of each field, as long as the Device Mode field can indicate that the first bus device is a master device and the second bus device is a slave device.
- the value of Primary Device CNA is the first network address of the first bus device that serves as the master device.
- the value of Secondary Device CNA is the second network device of the second bus device that serves as the slave device.
- the first resource indication information may be the Primary Device RSSZ field. The value of the Primary Device RSSZ field is used to indicate the size of the resource space of the first bus device that serves as the master device.
- the second resource indication information may be the Secondary Device RSSZ field. The value of the Secondary Device RSSZ field is used to indicate the size of the resource space of the second bus device that serves as the slave device.
- the method of creating an aggregation list shown in this embodiment is to achieve the aggregation of the first bus device and the second bus device into an aggregate device as an example, and is not limited.
- the processing device at least creates the corresponding relationship between the network address of each bus device included in the aggregate device, the resource space size of each bus device, and the GUID of each bus device, the specific method of creating the corresponding relationship is not limited.
- the processing device aggregates the first bus device and the second bus device into the same aggregate device (i.e., creates an aggregate list as shown in Table 2)
- the capabilities of the aggregate device are presented to the operating system (OS).
- the capabilities of the aggregate device include the capabilities of the first bus device and the capabilities of the second bus device.
- the capabilities of the bus devices may include network bandwidth, resource space, interrupt vectors, task queues, etc., which are not specifically limited. For example, as shown in Table 3:
- the network bandwidth supported by the first bus device is A1 and the network bandwidth supported by the second bus device is A2, then the network bandwidth supported by the aggregation device is A1+A2. Specifically, if A1 and A2 are both 400 Gbps, then the network bandwidth supported by the aggregation device is 800 Gbps.
- the size of the resource space supported by the first bus device is B1 and the size of the resource space supported by the second bus device is B2, then the size of the resource space supported by the aggregation device is B1+B2. Specifically, if B1 and B2 are both 10 megabytes (M), then the size of the resource space supported by the aggregation device is 20M.
- the aggregation device supports C1+C2 interrupt vectors.
- An interrupt vector refers to the entry address of a service routine in a task queue of a processing device, so that the processing device can respond to and process the corresponding task queue.
- Each interrupt vector includes a segment address and an offset, which are used to uniquely identify the entry address of an interrupt service routine. If the first bus device supports D1 task queues and the second bus device supports D2 task queues, then the aggregation device supports D1+D2 task queues.
- a task queue means that the processing device divides the data to be sent to the first bus device into D1 independent sub-data streams, and places the D1 sub-data streams into D1 task queues respectively.
- the task queues process and send the sub-data streams. It is understood that if the first bus device supports 10 task queues and the second bus device supports 10 task queues, and the aggregation device supports 20 task queues, then when the processing device sends a data stream to the aggregation device, it can divide the data stream into 20 sub-data streams and place the 20 sub-data streams into the 20 task queues supported by the aggregation device.
- a processing device aggregates a first bus device and a second bus device into a single aggregate device and registers the aggregate device with the bus.
- FIG4 illustrates another example of aggregation.
- FIG4 is another example diagram of executing the registration step flowchart shown in FIG2 in a device.
- a first bus device and a second bus device are both network cards.
- First bus device 401 includes multiple functional entities or service entities (FEs).
- first bus device 401 includes FE 411 and FE 412.
- Each FE included in first bus device 401 is responsible for processing various functional modules for network communications, such as modules for sending and receiving data and modules for processing network protocols.
- the first resource space indication information sent by first bus device 401 to the processing device includes resource space indication information for FE 411 and resource space indication information for FE 412.
- the resource space indication information for FE 411 is specifically used to indicate the resource space of FE 411 (for example, the network bandwidth of FE 411, the size of the resource space, the number of interrupt vectors, the number of task queues, etc.).
- the resource space indication information of FE411 is specifically used to indicate the resource space of FE412.
- the second bus device 402 includes FE421 and FE422.
- the second resource space indication information sent by the second bus device 402 to the processing device includes the resource space indication information of FE421 and the resource space indication information of FE422.
- the processing device can aggregate FE411 of the first bus device 401 and FE421 of the second bus device 402 into the same aggregated device.
- a detailed description of the aggregation please refer to step 204. The details are not repeated here.
- Step 205 The processing device sends a first configuration message and a second configuration message to the first bus device.
- the processing device When the processing device has successfully aggregated the first bus device and the second bus device into a single aggregated device, the processing device sends a first configuration message and a second configuration message to the first bus device, which serves as the master device. For example, as shown in FIG3 , taking the processing device as the host CPU as an example, the CPU sends the first configuration message and the second configuration message to the first bus device via the host port.
- the first configuration message includes a first network address, first device mode indication information, and first configuration information.
- the second configuration message includes a second network address, second device mode indication information, and second configuration information.
- the first configuration message is used to configure the first bus device so that the configured first bus device can respond to access requests from the processing device.
- the second configuration message is used to configure the second bus device so that the configured second bus device can respond to access requests from the processing device.
- first device mode indication information is used to indicate that the first bus device serves as the master device.
- the second device mode indication information is used to indicate that the second bus device functions as a slave device.
- the first configuration information is shown in the following example. It should be noted that the description of the first configuration information in this embodiment is an optional example and is not limiting. As long as the first bus device is configured according to the first configuration information, it can respond to access requests from the processing device.
- the first configuration information includes an identifier of a first task queue, and the first task queue is used to access the first bus device.
- FIG. 5 is an example diagram of the configuration information shown in FIG.
- a processing device activates N first task queues for a first bus device. This embodiment does not limit the specific value of N. This example uses N as 4 as an example. Then, the processing device activates four first task queues for the first bus device, each with identifiers Q P1, Q P2, Q P3, and Q P4.
- the first configuration information includes the identifiers of the four first task queues, namely, Q P1, Q P2, Q P3, and Q P4.
- Example 2 The first configuration information includes a correspondence between the first task queue and the first interrupt vector.
- each first task queue may correspond to one or more first interrupt vectors, enabling the processing device to process or respond to services in the corresponding task queue based on the first interrupt vectors.
- the processing device can then interrupt the data accessed by the first task queue based on the instructions of the first interrupt vectors.
- This example uses two interrupt vectors corresponding to each first task queue as an example. It should be noted that this embodiment does not limit the number of interrupt vectors corresponding to each first task queue.
- the two first interrupt vectors corresponding to the first task queue Q P1 are P11 and P12, respectively.
- the first interrupt vector P11 can be used to indicate a first interrupt event.
- the first interrupt vector P11 is the entry address of the interrupt service routine indicating the completion of the transmission of the sub-data stream corresponding to the first task queue Q P1, enabling the processing device to determine that the transmission of services in the first task queue Q P1 is complete.
- the first interrupt vector P12 can be used to indicate a second interrupt event.
- the first interrupt vector P12 is the entry address of the interrupt service routine indicating that the sub-data stream corresponding to the first task queue Q P1 has not been fully transmitted, so that the processing device can determine that the service in the first task queue Q P1 has been interrupted due to the incomplete transmission.
- the two first interrupt vectors P21 and P22 corresponding to the first task queue Q P2 the two first interrupt vectors P31 and P32 corresponding to the first task queue Q P3, and the two first interrupt vectors P41 and P42 corresponding to the first task queue Q P4, please refer to the description of the first interrupt vectors P11 and P12 corresponding to the first task queue Q P1, and the details are not repeated here.
- the first configuration information shown in this embodiment may include at least one of the identifier of the first task queue and the correspondence between the first task queue and the first interrupt vector.
- the second configuration message includes the identifiers of four second task queues, for example, Q S1, Q S2, Q S3 and Q S4, two second interrupt vectors S11 and S12 corresponding to the second task queue Q S1, two second interrupt vectors S21 and S22 corresponding to the second task queue Q S2, two second interrupt vectors S31 and S32 corresponding to Q S3, and two second interrupt vectors S41 and S42 corresponding to Q S4.
- Step 206 The first bus device sends a second configuration message to the second bus device.
- a first bus device when a first bus device receives a first configuration message and a second configuration message, it determines that the first bus device is the master device based on the first device mode indication information included in the first configuration message. The first bus device then performs two actions. First, the first bus device stores the first configuration message to implement the configuration of the first bus device, ensuring that the first bus device can respond to access requests from the processing device. This embodiment uses the example of the first bus device storing the first configuration message in a register, but this is not limiting. The first bus device may store the first configuration message in any storage medium within the first bus device. Second, since the first bus device has determined that it is the master device, the first bus device forwards the second configuration message to the second bus device based on the second network address carried in the second configuration message.
- Step 207 The second bus device receives the second configuration message.
- the second bus device when the second bus device receives the second configuration message, it determines that the second bus device is a slave device based on the second device mode indication information included in the second configuration message. The second bus device then performs one action: the second bus device stores the second configuration message to implement the second bus device configuration, thereby ensuring that the second bus device can respond to access requests from the processing device.
- This embodiment uses the example of the second bus device storing the second configuration message in a register, but this is not limiting.
- the second bus device may store the second configuration message in any storage medium within the second bus device.
- This embodiment takes the forwarding of the second configuration message from the first bus device to the second bus device as an example. Therefore, the process of the processing device sending the second configuration message to the second bus device does not need to occupy the data path between the processing device and the second bus device.
- This embodiment takes as an example that there is only one second bus device serving as a slave device. In other examples, there may be multiple second bus devices serving as slave devices.
- the first bus device sends a second configuration message to each second bus device, so that each second bus device can be configured according to the second configuration message.
- the second bus device when the second bus device successfully receives the second configuration message and stores the second configuration message in a register, the second bus device may send a second success response message to the first bus device.
- the first bus device may send a first success response message to the processing device.
- the first bus device may forward the second success response message to the processing device, so that the processing device determines, based on the first success response message and the second success response message, that both the first bus device and the second bus device are successfully configured. Consequently, both the first bus device and the second bus device can respond to the access request.
- the processing device shown in this embodiment can implement the above steps 201, 202, 203, 204 and 205 through at least one communication interface of the device host to realize the sending and receiving of messages and configuration messages.
- Step 208 The processing device obtains an address lookup list.
- the processing device registers the aggregation device on the bus of the OS.
- the processing device generates an address lookup list as shown in Table 4 for the registered aggregation device: It should be noted that the address lookup list shown in this embodiment is an optional example, as long as the processing device can establish a correspondence between the HPA and the first network address.
- the registration list shown in this embodiment includes the correspondence between the first network address of the master device (i.e., the first bus device shown above) and the host physical address (HPA) of the master device.
- Figure 6a shows an example of an address lookup table corresponding to existing bus devices.
- the address lookup table created for the first bus device includes the correspondence between HPA1 and the first network address.
- the address lookup table created for the second bus device includes the correspondence between HPA2 and the second network address.
- the processing device needs to call the first bus device and the second bus device, and allocate the business running by the application to the first bus device and the second bus device based on complex calculations, and after multiple address queries, such as querying the first network address through address lookup list 1, and querying the second network address through address lookup list 2, and then allocating the business to the first network address and the second network address.
- the business execution will bring extremely high complexity and lose the performance of the device.
- Figure 6b is an example diagram of the address lookup list corresponding to the bus device shown in the embodiment of the present application.
- the processing device aggregates the first network device and the second network device into an aggregate device, then the physical address of the memory at one end allocated by the processing device to the aggregate device is HPA.
- the address query list created for the aggregate device includes the correspondence between HPA and the first network address (i.e., the network address of the main device).
- the processing device directly calls the aggregate device to respond to the business performed by the application, without going through a complex business allocation process and multiple complex address query processes, thereby reducing the complexity of business execution and reducing the performance loss of the device running the application.
- This embodiment does not limit the execution sequence of step 208 , step 205 , step 206 , and step 207 .
- the processing device can aggregate the first bus device and the second bus device into the same aggregate device, so that the capabilities of the aggregate device are presented on the OS.
- the capabilities of the aggregate device include the capabilities of the first bus device and the capabilities of the second bus device.
- the network bandwidth of the aggregate device is the sum of the network bandwidth of the first bus device and the network bandwidth of the second bus device.
- the resource space size of the aggregate device is the sum of the resource space size of the first bus device and the resource space size of the second bus device.
- the number of interrupt vectors of the aggregate device is the sum of the number of interrupt vectors of the first bus device and the number of interrupt vectors of the second bus device.
- the number of task queues of the aggregate device is the sum of the number of task queues of the first bus device and the number of task queues of the second bus device. Then, the processing device only registers the first bus device in the first bus device and the second bus device. It can be understood that if the application of the device initiates an access request, it needs to use at least two bus devices (for example, two network cards), and this embodiment has aggregated at least two bus devices into one aggregate device. Then, the access request initiated by the application only needs to use this one aggregate device. There is no need to allocate the access request to two different bus devices at the application layer. The access request only needs to be allocated to one aggregate device, which effectively reduces the complexity of the business execution of the application running on the device and reduces the loss of device performance.
- FIG2 illustrates the process of registering only the aggregate device in the first and second bus devices.
- the following, in conjunction with FIG7 and FIG8 illustrates the process of a processing device accessing the first and second bus devices.
- FIG7 is a flowchart of the steps of the access method provided in an embodiment of the present application. For a description of the processing device shown in this embodiment, please refer to the description of the processing device corresponding to FIG2 , and detailed description is omitted here.
- Step 701 The processing device obtains an access request.
- an application is run on the device, for example, the access request is issued by a virtual machine (VM) running on the device.
- the access request may include a write command or a read command. If the access request is a write command, and each bus device associated with the aggregate device is a network card, for example, then the aggregate device is used to write the data carried by the write command to another device. For another example, if the access request is a read command, and each bus device associated with the aggregate device is a network card, for example, then the aggregate device is used to obtain data from another device and send it to the host.
- the write command takes the access request as a write command as an example, in order to achieve the purpose of writing data to another device, the write command carries the logical address (or virtual address) of the aggregate device.
- Step 702 The processing device obtains a physical address according to the access request.
- the processing device When the processing device obtains the logical address of the aggregation device carried in the access request, the processing device converts the logical address of the aggregation device to obtain the physical address of the aggregation device. For example, as shown in Figure 6b, the processing device obtains the physical address HPA of the aggregation device based on the logical address carried in the access request.
- Step 703 The processing device obtains the network address of the aggregation device according to the physical address.
- the processing device When the processing device obtains the physical address of the aggregation device, the processing device queries the address query table to obtain the network address corresponding to the physical address of the aggregation device.
- the address query table is shown in Table 4. Then, the processing device obtains the network address of the aggregation device corresponding to the physical address (HPA) of the aggregation device (i.e., the first network address of the first network device serving as the master device) based on the address query table shown in Table 4.
- HPA physical address of the aggregation device
- Step 704 The processing device obtains the first network address and the second network address according to the aggregation list.
- the processing device retrieves the first network address, it obtains an aggregation list that includes the first network address. For example, the processing device can obtain the aggregation list shown in Table 2, and then obtain all network addresses included in the aggregation list, namely, the first network address and the second network address. It will be understood that the first network address and the second network address shown in this embodiment are in the same aggregation list, and the physical address of the aggregation device is used to correspond to the aggregation list.
- the processing device also obtains a first offset address and a second offset address according to the access request.
- the first offset address refers to an offset within the first network address relative to the first address of the first network address.
- the second offset address refers to an offset within the second network address relative to the first address of the second network address.
- Step 705 The processing device sends a first access request to the first network address.
- Step 706 The processing device sends a second access request to the second network address.
- the processing device after the processing device obtains the first network address and the second network address, the processing device directly sends a first access request to the first network address.
- the processing device directly sends a second access request to the second network address.
- the first access request includes the first network address and the first offset address.
- the second access request includes the second network address and the second offset address.
- the processing device shown in this embodiment sends access requests to the first bus device and the second bus device, respectively.
- the device host includes two communication interfaces, namely, communication interface 801 and communication interface 802. The CPU sends a first access request to communication interface 801 and a second access request to communication interface 802.
- Communication interface 801 sends the first access request to the first bus device, and communication interface 802 sends the second access request to the second bus device. Because the processing device shown in this embodiment sends the first access request and the second access request to the first bus device and the second bus device, respectively, the latency of the processing device sending access requests to each bus device included in the aggregate device is reduced.
- the processing device receives an access request from an application and needs to write 800 gigabytes (GB) of data to the aggregation device
- the processing device allocates the 800GB of data based on the resource space size of the first bus device associated with the aggregation device and the resource space size of the second bus device. Then, the processing device allocates the first data volume to the first bus device and the second data volume to the second bus device, and the sum of the first data volume and the second data volume is 800GB. For example, if the resource space of the first bus device is larger than the resource space of the second bus device, the first data volume is larger than the second data volume.
- the first data volume is equal to the second data volume.
- the first access request includes a first network address, a first offset, and a first data volume
- the second access request includes a second network address, a second offset, and a second data volume. It can be understood that because the first access request includes the first network address and the first offset, the first bus device can write the first data volume to the storage space identified by the first network address and the first offset. Since the second access request includes the second network address and the second offset, the second bus device can write the second amount of data into the storage space identified by the second network address and the second offset.
- the access request sent by the application running on the device to the processing device is a read command
- the first access request is used to read data in the storage space identified by the first network address and the first offset
- the second access request is used to read data in the storage space identified by the second network address and the second offset.
- the device OS presents an aggregate device
- applications running on the device select the aggregate device based on its capabilities.
- the aggregate device's capabilities include the capabilities of the first bus device and the capabilities of the second bus device. Therefore, if a single bus device cannot meet the application's operational requirements, the aggregate device can.
- Applications use the aggregate device to execute corresponding services, such as writing data to or reading data from the aggregate device. Because the aggregate device presents the capabilities of multiple bus devices, even when applications use multiple bus devices, there's no need to partition services at the application layer based on the capabilities of the different bus devices. Instead, applications directly call the aggregate device to execute the services they're running. This reduces the complexity of running services across multiple bus devices and improves device performance.
- the aggregate device aggregates N bus devices with the same capabilities, each supporting M capabilities.
- the bus devices are network cards, each supporting 400 Gbps network bandwidth.
- step numbers in the flowcharts described in the embodiments are merely examples of the execution process and do not limit the order in which the steps are executed. In the embodiments of the present application, there is no strict execution order for steps that have no temporal dependencies. Furthermore, not all steps shown in the flowcharts are mandatory steps, and steps may be added or deleted based on actual needs.
- the processing device and the bus device include hardware structures and/or software modules corresponding to the execution of each function.
- the processing device and the bus device include hardware structures and/or software modules corresponding to the execution of each function.
- the embodiment of the present application provides a device.
- the processor 101 calls the program code in the memory 102, so that in the embodiment corresponding to Figure 2, the processor 101 executes steps 201, step 202, executes step 203 to receive the second response message, step 204, step 205, and step 208.
- the processor 101 executes steps 701, step 702, step 703, step 704, step 705, and step 706.
- FIG. 9 is a structural example diagram of the bus device provided in an embodiment of the present application.
- the bus device 900 specifically includes a processor 901, a memory 902, a bus 904, and a communication interface 903.
- the processor 901, the memory 902, and the bus 904 of the bus device 900 please refer to the corresponding explanation of Figure 1, and no further details are given.
- the bus device 900 communicates with external devices through the communication interface 903.
- the bus device acts as a first bus device
- the processor 901 calls the program code in the memory 902
- the processor 901 is used to execute step 201 to receive a scan request message, execute step 202, execute step 205 to receive a first configuration message and a second configuration message, and execute step 206.
- the processor 901 is used to execute step 705 to receive a first access request.
- the processor 901 calls the program code in the memory 902, in the embodiment corresponding to FIG2 , the processor 901 is configured to execute step 201 to receive the scan request message, execute step 203, execute step 206 to receive the second configuration message, and execute step 207. In the embodiment corresponding to FIG7 , the processor 901 is configured to execute step 706 to receive the second access request.
- FIG. 10 is a diagram illustrating an exemplary structure of a node provided in an embodiment of the present application.
- node 1000 includes a transmitting module 1001, a processing module 1002, and a receiving module 1003.
- Transmitting module 1001 may also be referred to as a transmitter, a transmitting unit, a transmitting device, etc.
- Receiving module 1003 may also be referred to as a receiver, a receiving unit, a receiving device, etc.
- Processing module 1002 is used to implement corresponding processing functions.
- Transmitting module 1001 and receiving module 1003 may also be referred to as communication interfaces or communication units.
- the node 1000 further includes a storage unit, which can be used to store instructions and/or data.
- the processing module 1002 can read the instructions and/or data in the storage unit to perform corresponding processing control actions.
- node 1000 may be a processing device for executing the method embodiment shown in FIG2 .
- sending module 1001 is configured to execute steps 201 and 205.
- Receiving module 1003 is configured to execute steps 202 and 203, and processing module 1002 is configured to execute steps 204 and 208.
- node 1000 may be a processing device for executing the method embodiment shown in FIG7 .
- processing module 1002 is configured to execute steps 701, 702, 703, and 704.
- Sending module 1001 is configured to execute steps 705 and 706.
- node 1000 may be a first bus device for executing the method embodiment shown in FIG2 .
- receiving module 1003 is configured to execute step 201 to receive a scan request message and step 205 to receive a first configuration message and a second configuration message.
- Sending module 1001 is configured to execute step 202 to send a first response message and step 206.
- node 1000 may be a first bus device for executing the method embodiment shown in FIG7 .
- receiving module 1003 is configured to execute step 705 to receive a first access request.
- node 1000 may be a second bus device for executing the method embodiment shown in FIG2 .
- receiving module 1003 is configured to execute step 201 to receive a scan request message and to execute step 206.
- Sending module 1001 is configured to execute step 203.
- Processing module 1002 is configured to execute step 207.
- node 1000 may be a second bus device for executing the method embodiment shown in FIG7 .
- receiving module 1003 is configured to execute step 706 to receive a second access request.
- FIG11 is a diagram illustrating a structure of a chip system according to an embodiment of the present application.
- the chip system 1100 (or processing system) includes a processor 1110 and an input/output interface 1120.
- the processor 1110 may be a processing circuit in the chip system 1100.
- the processor 1110 may be coupled to a storage unit and call instructions in the storage unit so that the chip system 1100 can implement the methods and functions of the various embodiments of the present application.
- the input/output interface 1120 may be an input/output circuit in the chip system 1100, outputting information processed by the chip system 1100 or inputting data or signaling information to be processed into the chip system 1100 for processing.
- the processor 1110 may be implemented by one or more processors, including the one or more processors or a processing portion in the one or more processors.
- the input/output interface 1120 may include a transceiver circuit, an input/output circuit, or a communication interface.
- the chip system 1100 is used to implement the operations performed by the source node or the target node in the above various method embodiments.
- the processor 1110 is used to implement the processing-related operations performed by the processing device or bus device in the above method embodiment;
- the input/output interface 1120 is used to implement the sending and/or receiving-related operations performed by the processing device or bus device in the above method embodiment.
- An embodiment of the present application also provides a computer-readable storage medium on which computer instructions for implementing the methods executed by the source node or the target node in the above-mentioned method embodiments are stored.
- the computer when the computer program is executed by a computer, the computer can implement the method performed by the processing device or bus device in each embodiment of the above method.
- An embodiment of the present application further provides a computer program product comprising instructions, which, when executed by a computer, implement the methods performed by the processing device or bus device in the above-mentioned method embodiments.
- An embodiment of the present application further provides a communication system, which includes the device in the above embodiments and multiple bus devices.
- the disclosed devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the units is only a logical function division.
- the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
- the computer program product includes one or more computer instructions.
- the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer can be a personal computer, a server, or a network device, etc.
- the computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode.
- the computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations.
- the available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)).
- the aforementioned available medium includes, but is not limited to, various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
- program codes such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
Description
本申请要求于2024年3月22日提交中国国家知识产权局、申请号为202410342563.2、发明名称为“一种访问方法、相关设备以及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on March 22, 2024, with application number 202410342563.2 and invention name “An access method, related equipment and storage medium”, the entire contents of which are incorporated by reference into this application.
本申请实施例涉及通信技术领域,尤其涉及一种访问方法、相关设备以及存储介质。The embodiments of the present application relate to the field of communication technologies, and in particular to an access method, related equipment, and storage medium.
随着人工智能、云计算等领域的发展,对设备的网络带宽、存储、算力等要求不断提升。With the development of fields such as artificial intelligence and cloud computing, the requirements for network bandwidth, storage, computing power, etc. of equipment are constantly increasing.
但是,设备包括的单个总线设备的能力有限。例如,设备运行的一个应用程序需要800吉比特每秒(gigabits per second,Gbps),但是单个总线设备(例如网卡)提供400Gbps网络带宽,单网卡无法满足该应用程序运行的需求,那么,需要应用程序使用两个网卡,并在应用层,将800Gbps的网络带宽,向两个网卡来分配,而向多个网卡分配业务,会带来极高的复杂度,并损失了设备的性能。However, the capabilities of a single bus device within a device are limited. For example, suppose an application running on the device requires 800 gigabits per second (Gbps), but a single bus device (such as a network interface card) provides 400 Gbps of network bandwidth. This single network interface card cannot meet the application's requirements. Therefore, the application must use two network interfaces and, at the application layer, allocate the 800 Gbps of network bandwidth to both. Allocating services across multiple network interfaces increases complexity and reduces device performance.
本申请实施例提供了一种访问方法、相关设备以及存储介质,其能够在设备上呈现聚合设备的能力,该聚合设备的能力包括第一总线设备的能力以及第二总线设备的能力,那么,设备运行的应用程序直接使用聚合设备的能力以满足该应用程序执行业务的需求,无需对应用程序所执行的业务向多个不同的总线设备进行分配,降低了应用程序执行业务的复杂度,以及降低了设备性能的损失。An embodiment of the present application provides an access method, related devices, and storage media, which can present the capabilities of an aggregate device on a device. The capabilities of the aggregate device include the capabilities of a first bus device and the capabilities of a second bus device. Then, the application running on the device directly uses the capabilities of the aggregate device to meet the needs of the application to perform business, without the need to distribute the business performed by the application to multiple different bus devices, thereby reducing the complexity of the application's business execution and reducing the loss of device performance.
第一方面,本申请实施例提供了一种访问方法,所述方法应用于设备,所述设备可为一种既具有计算能力又具有存储能力的设备,包括但不限于桌面电脑、计算设备、服务器、笔记本电脑以及移动设备等。所述设备包括处理装置以及聚合设备,所述聚合设备关联第一总线设备以及第二总线设备,其中,设备包括主机以及总线,第一总线设备与第二总线设备均连接至总线。处理装置可为设备包括的主机、主机的处理器运行的逻辑模块、软件或运行操作系统的装置,处理装置可为处理器上的网络拓扑管理者(fabric manager,FM)。处理装置也可为设备的部件或装置(例如处理器、处理器的核、芯片等)。第一设备以及第二设备是指连接至总线的设备,下述称第一设备为第一总线设备,第二设备为第二总线设备,以第一总线设备为例,第一总线设备可为网卡、硬盘、键盘、打印机、声卡、人工智能(artificial intelligence,AI)设备、虚拟现实(virtual reality,VR)、用于加速计算和图形处理的图形处理器(graphics processing unit,GPU)、用于加速特定算法和数据处理的计算卡、用于加速特定计算任务的加速卡等,以使得第一总线设备可应用至计算机领域、云计算领域、人工智能领域以及虚拟现实领域的应用等。第二总线设备的说明,请参见第一总线设备的说明,具体不做赘述。所述聚合设备的能力包括所述第一总线设备的能力以及所述第二总线设备的能力。以第一总线设备的能力为例,第一总线设备的能力可为支持的网络带宽、资源空间的大小、支持的中断向量的数量以及支持的任务队列的数量等。所述方法包括:首先,处理装置获得访问请求,所述访问请求携带用于访问聚合设备的逻辑地址。其次,处理装置根据所述访问请求,向第一网络地址发送第一访问请求,并向第二网络地址发送第二访问请求,所述第一网络地址为所述第一总线设备的网络地址,所述第二网络地址为所述第二总线设备的网络地址,所述逻辑地址用于对应所述第一网络地址以及所述第二网络地址。In a first aspect, an embodiment of the present application provides an access method, which is applied to a device, and the device may be a device having both computing and storage capabilities, including but not limited to desktop computers, computing devices, servers, laptop computers, and mobile devices. The device includes a processing device and an aggregation device, and the aggregation device is associated with a first bus device and a second bus device, wherein the device includes a host and a bus, and the first bus device and the second bus device are both connected to the bus. The processing device may be a host included in the device, a logic module run by a processor of the host, software, or a device running an operating system, and the processing device may be a fabric manager (FM) on a processor. The processing device may also be a component or device of the device (such as a processor, a core of a processor, a chip, etc.). The first device and the second device refer to devices connected to the bus. Hereinafter, the first device is referred to as the first bus device, and the second device is referred to as the second bus device. Taking the first bus device as an example, the first bus device may be a network card, a hard drive, a keyboard, a printer, a sound card, an artificial intelligence (AI) device, a virtual reality (VR), a graphics processing unit (GPU) for accelerating computing and graphics processing, a computing card for accelerating specific algorithms and data processing, an accelerator card for accelerating specific computing tasks, etc., so that the first bus device can be applied to applications in the computer, cloud computing, artificial intelligence, and virtual reality fields. For a description of the second bus device, please refer to the description of the first bus device, and the details are not repeated here. The capabilities of the aggregation device include the capabilities of the first bus device and the capabilities of the second bus device. Taking the capabilities of the first bus device as an example, the capabilities of the first bus device may include the supported network bandwidth, the size of the resource space, the number of supported interrupt vectors, and the number of supported task queues. The method includes: first, a processing device obtains an access request, wherein the access request carries a logical address for accessing the aggregation device. Secondly, the processing device sends a first access request to a first network address and a second access request to a second network address based on the access request, wherein the first network address is the network address of the first bus device, the second network address is the network address of the second bus device, and the logical address is used to correspond to the first network address and the second network address.
采用第一方面所示的方法,处理装置能够将第一总线设备和第二总线设备聚合为同一聚合设备,那么,在设备的操作系统上呈现聚合设备的能力。例如,聚合设备的网络带宽为第一总线设备的网络带宽和第二总线设备网络带宽的和,又如,聚合设备的资源空间大小为第一总线设备的资源空间大小和第二总线设备的资源空间大小的和。又如,聚合设备的中断向量的数量,为第一总线设备的中断向量数量和第二总线设备中断向量数量的和。又如,聚合设备的任务队列数量,为第一总线设备的任务队列数量和第二总线设备任务队列数量的和。若处理装置的应用程序发起访问请求,需要使用多个总线设备,而本方面所示已将第一总线设备以及第二总线设备聚合为一个聚合设备,那么,应用程序发起的访问请求,仅需要使用这一个聚合设备即可,无需在应用层,将访问请求向不同的总线设备进行分配,而是仅向一个聚合设备分配访问请求即可,有效的降低了设备运行的应用程序执行业务的复杂度,以及降低了设备性能的损失。而且,因分别向第一总线设备以及第二总线设备,发送第一访问请求以及第二访问请求,那么,降低了向聚合设备包括的每个总线设备发送访问请求的时延。Using the method described in the first aspect, a processing device can aggregate a first bus device and a second bus device into a single aggregate device. This allows the device's operating system to present the capabilities of the aggregate device. For example, the aggregate device's network bandwidth is the sum of the first bus device's network bandwidth and the second bus device's network bandwidth. Another example is the size of the aggregate device's resource space, which is the sum of the first bus device's resource space and the second bus device's resource space. Another example is the number of interrupt vectors for the aggregate device, which is the sum of the first bus device's interrupt vectors and the second bus device's interrupt vectors. Another example is the number of task queues for the aggregate device, which is the sum of the first bus device's task queues and the second bus device's task queues. If an application program on the processing device initiates an access request requiring the use of multiple bus devices, and this aspect aggregates the first and second bus devices into a single aggregate device, then access requests initiated by the application program only need to use this single aggregate device. Access requests no longer need to be allocated to different bus devices at the application layer. Instead, access requests are allocated to a single aggregate device. This effectively reduces the complexity of executing services for applications running on the device and minimizes device performance losses. Furthermore, since the first access request and the second access request are sent to the first bus device and the second bus device respectively, the delay of sending the access request to each bus device included in the aggregation device is reduced.
基于第一方面,一种可选的实现方式中,根据所述访问请求,向第一网络地址发送第一访问请求,并向第二网络地址发送第二访问请求之前,所述方法还包括:处理装置将所述逻辑地址转换为物理地址;获得所述物理地址对应的所述第一网络地址;处理装置根据预先创建的第一网络地址与第二网络地址之间的对应关系,获得所述第一网络地址所对应的所述第二网络地址。Based on the first aspect, in an optional implementation, before sending a first access request to a first network address and sending a second access request to a second network address according to the access request, the method further includes: a processing device converting the logical address into a physical address; obtaining the first network address corresponding to the physical address; and the processing device obtaining the second network address corresponding to the first network address based on a pre-created correspondence between the first network address and the second network address.
采用本实现方式,处理装置能够将应用程序发出的访问请求,直接划分成第一访问请求以及第二访问请求,那么,应用程序运行的业务,能够直接使用聚合设备,有效的降低了设备运行的应用程序执行业务的复杂度,以及降低了设备性能的损失。By adopting this implementation method, the processing device can directly divide the access request issued by the application into a first access request and a second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
基于第一方面,一种可选的实现方式中,所述获得所述第一网络地址对应的所述第二网络地址包括:根据聚合列表,获得所述第一网络地址对应的所述第二网络地址,其中,所述聚合列表包括所述第一网络地址以及所述第二网络地址。Based on the first aspect, in an optional implementation, obtaining the second network address corresponding to the first network address includes: obtaining the second network address corresponding to the first network address according to an aggregation list, wherein the aggregation list includes the first network address and the second network address.
采用本实现方式,处理装置预先创建聚合列表,该聚合列表包括第一网络地址以及第二网络地址,那么,该聚合列表包括第一网络地址与第二网络地址之间的对应关系。处理装置根据访问请求以及聚合列表,能够直接查询到第一网络地址以及第二网络地址,从而使得一个访问请求所携带的聚合设备的逻辑地址,能够访问多个总线设备(即第一总线设备以及第二总线设备)。In this implementation, the processing device pre-creates an aggregation list that includes the first network address and the second network address. The aggregation list then includes a correspondence between the first network address and the second network address. Based on the access request and the aggregation list, the processing device can directly query the first network address and the second network address, thereby enabling the logical address of the aggregation device carried in a single access request to access multiple bus devices (i.e., the first bus device and the second bus device).
基于第一方面,一种可选的实现方式中,所述获得访问请求之前,所述方法还包括:向所述第一总线设备以及所述第二总线设备分别发送扫描请求消息;接收来自所述第一总线设备的第一响应消息,所述第一响应消息携带所述第一网络地址;接收来自所述第二总线设备的第二响应消息,所述第二响应消息携带所述第二网络地址;根据所述第一响应消息以及所述第二响应消息,获得所述第一网络地址与所述第二网络地址之间的对应关系。Based on the first aspect, in an optional implementation, before obtaining the access request, the method further includes: sending a scan request message to the first bus device and the second bus device respectively; receiving a first response message from the first bus device, the first response message carrying the first network address; receiving a second response message from the second bus device, the second response message carrying the second network address; and obtaining a correspondence between the first network address and the second network address based on the first response message and the second response message.
采用本实现方式,基于第一响应消息以及第二响应消息创建所述第一网络地址与所述第二网络地址之间的对应关系(例如创建聚合列表),通过该聚合列表保证了成功获得第一网络地址以及第二网络地址,保证了向第一总线设备发送第一访问请求,以及向第二总线设备发送第二访问请求的成功率。Using this implementation method, a correspondence between the first network address and the second network address is created based on the first response message and the second response message (for example, an aggregation list is created). The aggregation list ensures that the first network address and the second network address are successfully obtained, and ensures the success rate of sending the first access request to the first bus device and sending the second access request to the second bus device.
基于第一方面,一种可选的实现方式中,所述第一响应消息还携带第一型号指示信息以及第一指示信息,所述第二响应消息还携带第二型号指示信息以及第二指示信息,所述第一指示信息用于指示所述第一总线设备支持聚合成所述聚合设备,所述第二指示信息用于指示所述第二总线设备支持聚合成所述聚合设备,所述第一型号指示信息指示的所述第一总线设备的型号,与所述第二型号指示信息指示的所述第二总线设备的型号相同。Based on the first aspect, in an optional implementation, the first response message also carries first model indication information and first indication information, and the second response message also carries second model indication information and second indication information, the first indication information is used to indicate that the first bus device supports aggregation into the aggregate device, and the second indication information is used to indicate that the second bus device supports aggregation into the aggregate device, and the model of the first bus device indicated by the first model indication information is the same as the model of the second bus device indicated by the second model indication information.
采用本实现方式,能够基于第一响应消息以及第二响应消息,确定将第一总线设备以及第二总线设备聚合为聚合设备,以保证聚合设备能够成功响应应用程序发出的访问请求。By adopting this implementation, it is possible to determine to aggregate the first bus device and the second bus device into an aggregate device based on the first response message and the second response message, so as to ensure that the aggregate device can successfully respond to the access request issued by the application.
基于第一方面,一种可选的实现方式中,所述第一网络地址还对应数量指示信息、使能指示信息、第一资源指示信息以及第二资源指示信息。例如,聚合列表包括第一网络地址、第二网络地址、数量指示信息、使能指示信息、第一资源指示信息以及第二资源指示信息。其中,所述数量指示信息用于指示所述第一总线设备的数量,和/或所述第二总线设备的数量、所述使能指示信息用于指示所述第一总线设备以及所述第二总线设备具有聚合成所述聚合设备的能力、所述第一资源指示信息用于指示所述第一总线设备资源空间的大小、所述第二资源指示信息用于指示所述第二总线设备资源空间的大小,所述第一总线设备的资源空间用于响应所述第一访问请求,所述第二总线设备的资源空间用于响应所述第二访问请求。Based on the first aspect, in an optional implementation, the first network address also corresponds to quantity indication information, enable indication information, first resource indication information, and second resource indication information. For example, the aggregation list includes the first network address, the second network address, quantity indication information, enable indication information, first resource indication information, and second resource indication information. The quantity indication information is used to indicate the number of the first bus devices and/or the number of the second bus devices, the enable indication information is used to indicate that the first bus device and the second bus device have the ability to be aggregated into the aggregate device, the first resource indication information is used to indicate the size of the resource space of the first bus device, and the second resource indication information is used to indicate the size of the resource space of the second bus device. The resource space of the first bus device is used to respond to the first access request, and the resource space of the second bus device is used to respond to the second access request.
采用本实现方式,通过该聚合列表保证了第一总线设备能够成功响应第一访问请求,以及保证了第二总线设备成功响应第二访问请求。With this implementation, the aggregation list ensures that the first bus device can successfully respond to the first access request, and ensures that the second bus device can successfully respond to the second access request.
基于第一方面,一种可选的实现方式中,所述获得访问请求之前,所述方法还包括:向所述第一总线设备发送第一配置信息以及第二配置信息,所述第一总线设备用于向所述第二总线设备转发所述第二配置信息,所述第一配置信息用于配置所述第一总线设备,以使配置后的所述第一总线设备,响应所述第一访问请求,所述第二配置信息用于配置所述第二总线设备,以使配置后的所述第二总线设备,响应所述第二访问权请求。Based on the first aspect, in an optional implementation, before obtaining the access request, the method further includes: sending first configuration information and second configuration information to the first bus device, the first bus device being used to forward the second configuration information to the second bus device, the first configuration information being used to configure the first bus device so that the configured first bus device responds to the first access request, and the second configuration information being used to configure the second bus device so that the configured second bus device responds to the second access request.
采用本实现方式,第一总线设备向第二总线设备转发第二配置报文,那么,处理装置向第二总线设备发送第二配置报文的过程,无需占用处理装置与第二总线设备之间的数据通路。With this implementation, the first bus device forwards the second configuration message to the second bus device. Then, the process of the processing device sending the second configuration message to the second bus device does not need to occupy the data path between the processing device and the second bus device.
基于第一方面,一种可选的实现方式中,第二总线设备成功接收到第二配置报文,并将第二配置报文存储至寄存器的情况下,第二总线设备向第一总线设备发送第二成功响应消息。第一总线设备将第一配置报文存储至寄存器的情况下,第一总线设备向处理装置发送第一成功响应消息,而且,第一总线设备还向处理装置转发该第二成功响应消息,以使处理装置根据第一成功响应消息以及第二成功响应消息,确定第一总线设备以及第二总线设备均配置成功,那么,第一总线设备以及第二总线设备均能够对访问请求进行响应。Based on the first aspect, in an optional implementation, when the second bus device successfully receives the second configuration message and stores the second configuration message in a register, the second bus device sends a second success response message to the first bus device. When the first bus device stores the first configuration message in the register, the first bus device sends a first success response message to the processing device, and the first bus device also forwards the second success response message to the processing device, so that the processing device determines that both the first bus device and the second bus device are successfully configured based on the first success response message and the second success response message, and then both the first bus device and the second bus device can respond to the access request.
采用本实现方式,处理装置接收到第一成功响应消息以及第二成功响应消息的情况下,创建聚合列表,以保证第一总线设备能够成功响应第一访问请求,以及保证了第二总线设备成功响应第二访问请求。With this implementation, when the processing device receives the first success response message and the second success response message, it creates an aggregation list to ensure that the first bus device can successfully respond to the first access request and the second bus device can successfully respond to the second access request.
基于第一方面,一种可选的实现方式中,所述第一配置信息包括第一任务队列的标识,所述第二配置信息包括第二任务队列的标识,所述第一任务队列用于访问所述第一总线设备,所述第二任务队列用于访问所述第二总线设备。Based on the first aspect, in an optional implementation, the first configuration information includes an identifier of a first task queue, the second configuration information includes an identifier of a second task queue, the first task queue is used to access the first bus device, and the second task queue is used to access the second bus device.
采用本实现方式,处理装置能够通过第一配置信息,向第一总线设备配置第一任务队列,处理装置通过第二配置信息,向第二总线设备配置第二任务队列。那么,第一总线设备能够基于第一任务队列,响应第一访问请求,第二总线设备基于第二任务队列,响应第二访问请求。那么,设备运行的应用程序,若需要调用第一任务队列以及第二任务队列,直接使用聚合设备即可,无需在应用层,将业务向不同的总线设备所支持的任务队列进行分配。Using this implementation, the processing device can configure a first task queue for a first bus device using first configuration information, and a second task queue for a second bus device using second configuration information. The first bus device can then respond to a first access request based on the first task queue, and the second bus device can respond to a second access request based on the second task queue. Applications running on these devices can then directly use the aggregation device to call the first and second task queues, eliminating the need to allocate services to the task queues supported by different bus devices at the application layer.
基于第一方面,一种可选的实现方式中,所述第一配置信息包括第一任务队列与第一中断向量的对应关系,所述第二配置信息包括第二任务队列与第二中断向量的对应关系,所述第一中断向量用于指示所述第一任务队列中断所访问的数据,所述第二中断向量用于指示所述第二任务队列中断所访问的数据。Based on the first aspect, in an optional implementation, the first configuration information includes the correspondence between the first task queue and the first interrupt vector, the second configuration information includes the correspondence between the second task queue and the second interrupt vector, the first interrupt vector is used to indicate the data accessed by the first task queue interrupt, and the second interrupt vector is used to indicate the data accessed by the second task queue interrupt.
采用本实现方式,处理装置能够通过第一配置信息,向第一总线设备配置第一任务队列与第一中断向量的对应关系,处理装置通过第二配置信息,向第二总线设备配置第二任务队列与第二中断向量的对应关系。那么,第一总线设备能够基于第一任务队列与第一中断向量的对应关系,响应第一访问请求,第二总线设备基于第二任务队列与第二中断向量的对应关系,响应第二访问请求。Using this implementation, the processing device can configure the correspondence between the first task queue and the first interrupt vector for the first bus device using first configuration information, and the processing device can configure the correspondence between the second task queue and the second interrupt vector for the second bus device using second configuration information. The first bus device can then respond to the first access request based on the correspondence between the first task queue and the first interrupt vector, and the second bus device can respond to the second access request based on the correspondence between the second task queue and the second interrupt vector.
基于第一方面,一种可选的实现方式中,所述获得所述物理地址对应的所述第一网络地址之前,所述方法还包括:创建所述聚合设备的所述物理地址与所述第一网络地址的对应关系。Based on the first aspect, in an optional implementation, before obtaining the first network address corresponding to the physical address, the method further includes: establishing a correspondence between the physical address of the aggregation device and the first network address.
采用本实现方式,处理装置能够将访问请求,成功划分为第一访问请求以及第二访问请求,那么,应用程序运行的业务,能够直接使用聚合设备,有效的降低了设备运行的应用程序执行业务的复杂度,以及降低了设备性能的损失。By adopting this implementation method, the processing device can successfully divide the access request into the first access request and the second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
基于第一方面,一种可选的实现方式中,所述创建所述聚合列表之后,所述方法还包括:创建地址查找列表,所述地址查找列表包括所述聚合设备的所述物理地址与所述第一网络地址的对应关系;所述获得所述物理地址对应的所述第一网络地址包括:根据所述地址查找列表,获得与所述物理地址对应的所述第一网络地址。Based on the first aspect, in an optional implementation, after creating the aggregation list, the method further includes: creating an address lookup list, the address lookup list including the correspondence between the physical address of the aggregation device and the first network address; obtaining the first network address corresponding to the physical address includes: obtaining the first network address corresponding to the physical address according to the address lookup list.
采用本实现方式,处理装置创建的地址查找列表,能够将访问请求,成功划分为第一访问请求以及第二访问请求,那么,应用程序运行的业务,能够直接使用聚合设备,有效的降低了设备运行的应用程序执行业务的复杂度,以及降低了设备性能的损失。Using this implementation method, the address lookup list created by the processing device can successfully divide the access request into the first access request and the second access request. Then, the business run by the application can directly use the aggregation device, effectively reducing the complexity of the business execution of the application run by the device and reducing the loss of device performance.
基于第一方面,一种可选的实现方式中,所述聚合设备的能力包括所述第一设备的能力以及所述第二设备的能力。Based on the first aspect, in an optional implementation, the capabilities of the aggregation device include capabilities of the first device and capabilities of the second device.
采用本实现方式,处理装置将第一总线设备和第二总线设备聚合为同一聚合设备的情况下,在操作系统(operating system,OS)上呈现聚合设备的能力。而且该聚合设备的能力包括第一总线设备的能力和第二总线设备的能力。总线设备的能力可包括网络带宽、资源空间、中断向量、任务队列等。In this implementation, when a processing device aggregates a first bus device and a second bus device into a single aggregate device, the capabilities of the aggregate device are presented to the operating system (OS). Furthermore, the capabilities of the aggregate device include the capabilities of the first bus device and the second bus device. The capabilities of the bus devices may include network bandwidth, resource space, interrupt vectors, task queues, and the like.
第二方面,本申请实施例提供了一种访问方法,所述方法应用于聚合设备,所述聚合设备关联第一总线设备以及第二总线设备,所述方法包括:所述第一总线设备接收第一访问请求;所述第一总线设备响应所述第一访问请求;所述第二总线设备接收第二访问请求;所述第二总线设备响应所述第二访问请求,所述第一访问请求以及所述第二访问请求用于执行设备接收到的访问请求,所述设备包括所述聚合设备,所述访问请求携带用于访问聚合设备的逻辑地址。本方面有益效果的说明,请参见第一方面所示,具体不做赘述。In a second aspect, an embodiment of the present application provides an access method, applied to an aggregation device, wherein the aggregation device is associated with a first bus device and a second bus device. The method comprises: the first bus device receives a first access request; the first bus device responds to the first access request; the second bus device receives a second access request; and the second bus device responds to the second access request, wherein the first access request and the second access request are used to execute the access request received by a device, the device including the aggregation device, and the access request carries a logical address for accessing the aggregation device. For a description of the beneficial effects of this aspect, please refer to the first aspect and are not further elaborated upon.
基于第二方面,一种可选的实现方式中,所述第一总线设备接收第一访问请求,以及所述第二总线设备接收第二访问请求之前,所述方法还包括:所述第一总线设备接收第一扫描请求消息;根据所述第一扫描请求消息,发送第一响应消息,所述第一响应消息携带所述第一总线设备的第一网络地址;所述第二总线设备接收第二扫描请求消息;根据所述第二扫描请求消息,发送第二响应消息,所述第二响应消息携带所述第二总线设备的第二网络地址,所述第一响应消息以及所述第二响应消息,用于创建所述第一网络地址与所述第二网络地址之间的对应关系。Based on the second aspect, in an optional implementation, before the first bus device receives the first access request and the second bus device receives the second access request, the method further includes: the first bus device receives a first scan request message; and based on the first scan request message, sends a first response message, the first response message carrying the first network address of the first bus device; the second bus device receives a second scan request message; and based on the second scan request message, sends a second response message, the second response message carrying the second network address of the second bus device, the first response message and the second response message being used to establish a correspondence between the first network address and the second network address.
基于第二方面,一种可选的实现方式中,所述第一响应消息还携带第一型号指示信息以及第一指示信息,所述第二响应消息还携带第二型号指示信息以及第二指示信息,所述第一指示信息用于指示所述第一总线设备支持聚合成所述聚合设备,所述第二指示信息用于指示所述第二总线设备支持聚合成所述聚合设备,所述第一型号指示信息指示的所述第一总线设备的型号,与所述第二型号指示信息指示的所述第二总线设备的型号相同。Based on the second aspect, in an optional implementation, the first response message also carries first model indication information and first indication information, and the second response message also carries second model indication information and second indication information, the first indication information is used to indicate that the first bus device supports aggregation into the aggregate device, and the second indication information is used to indicate that the second bus device supports aggregation into the aggregate device, and the model of the first bus device indicated by the first model indication information is the same as the model of the second bus device indicated by the second model indication information.
基于第二方面,一种可选的实现方式中,所述第一总线设备接收第一访问请求,以及所述第二总线设备接收第二访问请求之前,所述方法还包括:所述第一总线设备接收第一配置信息以及第二配置信息;所述第一总线设备向所述第二总线设备转发所述第二配置信息;所述第一总线设备响应所述第一访问请求包括:所述第一总线设备根据所述第一配置信息,响应所述第一访问请求;所述第二总线设备响应所述第二访问请求包括:所述第二总线设备根据所述第二配置信息,响应所述第二访问请求。Based on the second aspect, in an optional implementation, before the first bus device receives the first access request and the second bus device receives the second access request, the method further includes: the first bus device receives first configuration information and second configuration information; the first bus device forwards the second configuration information to the second bus device; the first bus device responds to the first access request including: the first bus device responds to the first access request according to the first configuration information; the second bus device responds to the second access request including: the second bus device responds to the second access request according to the second configuration information.
基于第二方面,一种可选的实现方式中,所述第一配置信息包括第一任务队列的标识,所述第二配置信息包括第二任务队列的标识,所述第一任务队列用于访问所述第一总线设备,所述第二任务队列用于访问所述第二总线设备。Based on the second aspect, in an optional implementation, the first configuration information includes an identifier of a first task queue, the second configuration information includes an identifier of a second task queue, the first task queue is used to access the first bus device, and the second task queue is used to access the second bus device.
基于第二方面,一种可选的实现方式中,所述第一配置信息包括第一任务队列与第一中断向量的对应关系,所述第二配置信息包括第二任务队列与第二中断向量的对应关系,所述第一中断向量用于指示所述第一任务队列中断所访问的数据,所述第二中断向量用于指示所述第二任务队列中断所访问的数据。Based on the second aspect, in an optional implementation, the first configuration information includes the correspondence between the first task queue and the first interrupt vector, the second configuration information includes the correspondence between the second task queue and the second interrupt vector, the first interrupt vector is used to indicate the data accessed by the first task queue interrupt, and the second interrupt vector is used to indicate the data accessed by the second task queue interrupt.
基于第二方面,一种可选的实现方式中,所述聚合设备的能力包括所述第一设备的能力以及所述第二设备的能力。Based on the second aspect, in an optional implementation, the capabilities of the aggregation device include capabilities of the first device and capabilities of the second device.
第三方面,本申请实施例提供了一种设备,包括处理器以及存储器,设备外接聚合设备,所述聚合设备关联所述第一总线设备与所述第二总线设备,所述处理器连接第一总线设备以及第二总线设备,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码以使所述处理器执行如上述第一方面中任一项所述的方法。In a third aspect, an embodiment of the present application provides a device comprising a processor and a memory, wherein the device is connected to an external aggregation device, wherein the aggregation device associates the first bus device with the second bus device, the processor is connected to the first bus device and the second bus device, the memory is used to store program code, and the processor is used to call the program code in the memory to enable the processor to execute a method as described in any one of the above-mentioned first aspects.
第四方面,本申请实施例提供了一种设备,包括处理器、存储器以及聚合设备,所述聚合设备关联第一总线设备以及第二总线设备,所述处理器与所述存储器连接,且所述处理器分别与所述第一总线设备以及所述第二总线设备连接;所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码以使所述处理器执行如上述第一方面任一项所述的方法。In a fourth aspect, an embodiment of the present application provides a device comprising a processor, a memory, and an aggregation device, wherein the aggregation device is associated with a first bus device and a second bus device, the processor is connected to the memory, and the processor is connected to the first bus device and the second bus device respectively; the memory is used to store program code, and the processor is used to call the program code in the memory to enable the processor to execute the method described in any one of the first aspects above.
第五方面,本申请实施例提供了一种聚合设备,包括第一总线设备以及第二总线设备,所述第一总线设备包括第一处理器以及与所述第一处理器连接的第一存储器,所述第二总线设备包括第二处理器以及与所述第二处理器连接的第二存储器;所述第一存储器用于存储程序代码,所述第一处理器用于调用所述第一存储器中的程序代码以使所述第一处理器执行如第二方面任一项中,由第一总线设备执行的方法;所述第二存储器用于存储程序代码,所述第二处理器用于调用所述第二存储器中的程序代码以使所述第二处理器执行如第二方面任一项中,由第二总线设备执行的方法。In a fifth aspect, an embodiment of the present application provides an aggregation device, comprising a first bus device and a second bus device, wherein the first bus device comprises a first processor and a first memory connected to the first processor, and the second bus device comprises a second processor and a second memory connected to the second processor; the first memory is used to store program code, and the first processor is used to call the program code in the first memory so that the first processor executes the method executed by the first bus device as in any one of the second aspects; the second memory is used to store program code, and the second processor is used to call the program code in the second memory so that the second processor executes the method executed by the second bus device as in any one of the second aspects.
第六方面,本申请实施例提供流量一种芯片系统,所述芯片系统包括处理器和输入/输出接口,所述输入/输出接口用于接收数据并传输至所述处理器,或,将来自所述处理器的数据发送给另一芯片系统,所述处理器用于执行如上述第一方面任一项所述的方法,或如上述第二方面中任一项所述的方法。In a sixth aspect, an embodiment of the present application provides a chip system, the chip system comprising a processor and an input/output interface, the input/output interface being used to receive data and transmit it to the processor, or to send data from the processor to another chip system, the processor being used to execute the method as described in any one of the first aspects above, or the method as described in any one of the second aspects above.
第七方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由处理器执行时,所述处理器执行如第一方面任一项所述的方法,或如第二方面任一项所述的方法。In the seventh aspect, an embodiment of the present application provides a computer-readable storage medium comprising computer program instructions. When the computer program instructions are executed by a processor, the processor executes the method as described in any one of the first aspect or the method as described in any one of the second aspect.
第八方面,本申请实施例提供了一种计算机程序产品,包含指令,该指令被计算机执行时以实现上述第一方面或第二方面任一项所述的方法。In an eighth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when executed by a computer, implement the method described in any one of the first or second aspects above.
图1为本申请提供的设备的一种实施例结构示例图;FIG1 is a structural diagram of an embodiment of the device provided in this application;
图2为本申请实施例提供的访问方法中的注册步骤流程图;FIG2 is a flow chart of the registration steps in the access method provided in an embodiment of the present application;
图3为图2所示的注册步骤流程图在设备中一种执行示例图;FIG3 is a diagram illustrating an example of executing the registration step flowchart shown in FIG2 in a device;
图4为图2所示的注册步骤流程图在设备中另一种执行示例图;FIG4 is another example diagram of the registration step flowchart shown in FIG2 being executed in a device;
图5为图2所示的配置信息的示例图;FIG5 is an example diagram of the configuration information shown in FIG2 ;
图6a有已有的总线设备对应的地址查找列表的示例图;FIG6 a shows an example of an address lookup list corresponding to existing bus devices;
图6b为本申请实施例所示的总线设备对应的地址查找列表的示例图;FIG6 b is an example diagram of an address lookup list corresponding to a bus device according to an embodiment of the present application;
图7为本申请实施例提供的访问方法的步骤流程图;FIG7 is a flowchart of the steps of the access method provided in an embodiment of the present application;
图8为图7所示的访问方法在设备中的一种执行示例图;FIG8 is a diagram illustrating an example of executing the access method shown in FIG7 in a device;
图9为本申请实施例提供的总线设备的一种结构示例图;FIG9 is a structural diagram of a bus device provided in an embodiment of the present application;
图10为本申请实施例提供的节点的一种结构示例图;FIG10 is a diagram illustrating an exemplary structure of a node provided in an embodiment of the present application;
图11为本申请实施例提供的芯片系统的一种结构示例图。FIG11 is a structural example diagram of a chip system provided in an embodiment of the present application.
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。In order to enable those skilled in the art to better understand the solutions of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the embodiments described are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of the present invention.
本申请实施例提供了一种访问方法,首先图1所示说明本申请实施例所示的方法所应用的设备100。图1为本申请提供的设备的一种实施例结构示例图。该设备可为一种既具有计算能力又具有存储能力的设备,包括但不限于桌面电脑、服务器、计算设备、笔记本电脑以及移动设备等。该设备100至少包括主机120、N个网卡和M个硬盘。其中,主机120包括处理器101以及存储器102。本实施例对N以及M的取值不做限定,例如,N个网卡具体包括网卡111至网卡11N,M个硬盘具体包括硬盘121至硬盘12M。主机120、N个网卡以及M个硬盘,分别与总线130连接。其中,处理器101、存储器102、N个网卡以及M个硬盘分别与总线130连接。处理器101能够通过总线130访问N个网卡以及M个硬盘,处理器101也通过总线130与存储器102连接。例如,处理器101能够通过总线在存储器102中进行数据读写或代码执行。该总线130例如可以是快速路径互连(quick path interconnect,QPI)或超路径互连(ultra path interconnect,UPI)等。所述总线130分为地址总线、数据总线、控制总线等。处理器101的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在存储器102中。处理器101是一个中央处理器(centralprocessingunit,CPU)。示例性的,处理器101接收写数据请求时(来自外部设备或处理器101自身生成),会将这些写数据请求中的数据暂时保存在存储器102中。当存储器102中的数据总量达到一定阈值时,处理器101将存储器102中存储的数据发送给硬盘进行持久化存储。除此之外,处理器101还用于数据进行计算或处理,例如元数据管理、重复数据删除、数据压缩、数据校验、虚拟化存储空间以及地址转换等。图1中仅示出了一个处理器101,在实际应用中,处理器101的数量往往有多个,其中,一个处理器101又具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。本实施例对处理器101类型的说明为可选的示例,不做限定,例如,处理器101可包括一个或多个芯片,或,一个或多个集成电路。又如,处理器101可以包括一个或多个神经网络处理器(neural processing unit,NPU)、光数字信号处理器(optical digital signal processor,oDSP)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)、系统芯片(system on chip,SoC)、网络处理器(network processor,NP)、微控制器(microcontroller unit,MCU)、可编程处理器(programmable logic device,PLD)、网卡芯片、存储接口芯片或其它集成芯片中的一个或多个,具体不做赘述。可选的,本示例所示的主机120与N个网卡之间,以及主机120与M个硬盘之间,可通过交换机(Switch)连接。An embodiment of the present application provides an access method. First, FIG1 illustrates a device 100 to which the method of the embodiment of the present application is applied. FIG1 is a structural diagram of an embodiment of the device provided by the present application. The device may be a device having both computing and storage capabilities, including but not limited to a desktop computer, a server, a computing device, a laptop computer, and a mobile device. The device 100 includes at least a host 120, N network cards, and M hard disks. The host 120 includes a processor 101 and a memory 102. This embodiment does not limit the values of N and M. For example, the N network cards specifically include network cards 111 to 11N, and the M hard disks specifically include hard disks 121 to 12M. The host 120, the N network cards, and the M hard disks are each connected to a bus 130. The processor 101, the memory 102, the N network cards, and the M hard disks are each connected to the bus 130. The processor 101 can access the N network cards and the M hard disks via the bus 130, and the processor 101 is also connected to the memory 102 via the bus 130. For example, the processor 101 can read and write data or execute code in the memory 102 through a bus. The bus 130 can be, for example, a quick path interconnect (QPI) or an ultra path interconnect (UPI). The bus 130 is divided into an address bus, a data bus, a control bus, etc. The function of the processor 101 is mainly to interpret the instructions (or code) of the computer program and process the data in the computer software. The instructions of the computer program and the data in the computer software can be stored in the memory 102. The processor 101 is a central processing unit (CPU). Exemplarily, when the processor 101 receives a write data request (from an external device or generated by the processor 101 itself), it temporarily stores the data in the write data request in the memory 102. When the total amount of data in the memory 102 reaches a certain threshold, the processor 101 sends the data stored in the memory 102 to the hard disk for persistent storage. In addition, the processor 101 is also used for computing or processing data, such as metadata management, data deduplication, data compression, data verification, virtualized storage space, and address translation. FIG1 shows only one processor 101. In actual applications, there are often multiple processors 101, wherein one processor 101 has one or more CPU cores. This embodiment does not limit the number of CPUs or the number of CPU cores. The description of the type of processor 101 in this embodiment is an optional example and is not limited. For example, the processor 101 may include one or more chips, or one or more integrated circuits. For another example, the processor 101 may include one or more neural processing units (NPUs), optical digital signal processors (oDSPs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), system-on-chips (SoCs), network processors (NPs), microcontroller units (MCUs), programmable logic devices (PLDs), network card chips, storage interface chips, or other integrated chips. The details are not described in detail. Optionally, the host 120 and the N network cards, as well as the host 120 and the M hard disks shown in this example, can be connected via a switch.
存储器102是指与处理器101直接交换数据的内存,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storage class memory,SCM)。DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasable programmable read only memory,EPROM)等。另外,存储器102还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(solid state disk,SSD)。实际应用中,设备100中可配置多个存储器102,以及不同类型的存储器102。本实施例不对存储器102的数量和类型进行限定。此外,可对存储器102进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器102中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。Memory 102 refers to memory that directly exchanges data with processor 101. It can read and write data at any time and at a high speed, and serves as temporary data storage for the operating system or other running programs. Memory includes at least two types of memory. For example, memory can be either random access memory or read-only memory (ROM). For example, random access memory is dynamic random access memory (DRAM) or storage class memory (SCM). DRAM and SCM are merely exemplary in this embodiment. Memory can also include other random access memories, such as static random access memory (SRAM). As for read-only memory, for example, it can be programmable read-only memory (PROM) or erasable programmable read-only memory (EPROM). In addition, the memory 102 may also be a dual in-line memory module or a dual-line memory module (DIMM), that is, a module composed of dynamic random access memory (DRAM), or a solid state disk (SSD). In actual applications, multiple memories 102 and different types of memories 102 may be configured in the device 100. This embodiment does not limit the number and type of memories 102. In addition, the memory 102 may be configured to have a power-saving function. The power-saving function means that when the system loses power and then powers on again, the data stored in the memory 102 will not be lost. A memory with a power-saving function is called a non-volatile memory.
M个硬盘中,各硬盘用于提供存储资源,例如存储数据。它可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。N个网卡中,各网卡用于与其他设备通信。可选的,以网卡111为例,该网卡可以是一个智能网卡,包括处理器和内存,该网卡111能够完成数据读写、地址转换以及其他计算功能。在某些应用场景中,网卡111也可具有持久化内存介质,如持久性内存(persistent memory,PM),或者非易失性随机访问存储器(non-volatile random access memory,NVRAM)、或者相变存储器(phase change memory,PCM)等。处理器用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘的数据,或者从硬盘读取出来将要发送给处理器的数据。对网卡111包括的处理器类型的说明,请参见处理器101类型的说明,具体不做赘述。网卡111通过接口与总线130连接。该接口例如可以是总线和接口标准(peripheral component interface express,PCIE)接口。Each of the M hard drives is used to provide storage resources, such as storing data. It can be a disk or other type of storage medium, such as a solid-state drive or a shingled magnetic recording hard drive. Each of the N network cards is used to communicate with other devices. Optionally, taking network card 111 as an example, the network card can be an intelligent network card, including a processor and memory. The network card 111 can perform data reading and writing, address conversion, and other computing functions. In certain application scenarios, the network card 111 may also have a persistent memory medium, such as persistent memory (PM), non-volatile random access memory (NVRAM), or phase change memory (PCM). The processor is used to perform operations such as address conversion and reading and writing data. The memory is used to temporarily store data to be written to the hard drive, or data read from the hard drive to be sent to the processor. For a description of the processor type included in the network card 111, please refer to the description of the processor type 101, and the details are not repeated here. The network card 111 is connected to the bus 130 via an interface. The interface may be, for example, a peripheral component interface express (PCIE) interface.
本实施例对总线130连接的总线设备类型(例如硬盘、网卡)为举例说明,不做限定,在其他示例中,与总线130连接的总线设备还可为键盘、打印机、声卡、人工智能(artificial intelligence,AI)设备、虚拟现实(virtual reality,VR)、用于加速计算和图形处理的图形处理器(graphics processing unit,GPU)、用于加速特定算法和数据处理的计算卡(例如FPGA)、用于加速特定计算任务的加速卡等,以使得设备可应用至云计算领域、人工智能领域以及虚拟现实领域的应用等。In this embodiment, the types of bus devices connected to the bus 130 (such as hard disks and network cards) are used as examples and are not limited thereto. In other examples, the bus devices connected to the bus 130 may also be keyboards, printers, sound cards, artificial intelligence (AI) devices, virtual reality (VR), graphics processing units (GPUs) for accelerating computing and graphics processing, computing cards (such as FPGAs) for accelerating specific algorithms and data processing, accelerator cards for accelerating specific computing tasks, etc., so that the device can be applied to applications in the fields of cloud computing, artificial intelligence, and virtual reality.
基于图1所示,以下结合图2以及图3所示对本申请实施例提供的访问方法的执行过程进行说明。其中,图2为本申请实施例提供的访问方法中的注册步骤流程图,图3为图2所示的注册步骤流程图在设备中一种执行示例图。本实施例中,以图1所示的总线采用的协议类型为统一总线(unified bus,UB)协议为例,不做限定,例如,还可采用远程直接内存访问(remote direct memory access,RDMA)、串行高级技术附件(serial advanced technology attachment,SATA)、外围组件互连高速串行总线标准(peripheral component interconnect express,PCle)等。本实施例中,用于执行图2所示方法的处理装置,可为设备包括的主机、主机的处理器101运行的逻辑模块、软件或运行操作系统的装置等,例如,处理装置可为处理器上的网络拓扑管理者(fabric manager,FM)。处理装置也可为设备的部件或装置(例如处理器、CPU的核、芯片等)。图2以及图3所示的实施例,能够实现将多个总线设备,聚合为一个聚合设备。Based on FIG1 , the execution process of the access method provided in the embodiment of the present application is described below in conjunction with FIG2 and FIG3 . FIG2 is a flowchart of the registration steps in the access method provided in the embodiment of the present application, and FIG3 is an example diagram of an execution of the registration step flowchart shown in FIG2 in a device. In this embodiment, the protocol type used by the bus shown in FIG1 is taken as the unified bus (UB) protocol, without limitation. For example, remote direct memory access (RDMA), serial advanced technology attachment (SATA), peripheral component interconnect express (PCle), etc. may also be used. In this embodiment, the processing device used to execute the method shown in FIG2 may be a host included in the device, a logic module running on the host's processor 101, software, or a device running an operating system. For example, the processing device may be a fabric manager (FM) on the processor. The processing device may also be a component or device of the device (such as a processor, CPU core, chip, etc.). The embodiments shown in FIG. 2 and FIG. 3 can aggregate multiple bus devices into one aggregate device.
步骤201、处理装置向总线发送多个扫描请求消息。Step 201: The processing device sends multiple scan request messages to the bus.
基于UB协议,处理装置能够向总线并行发送多个扫描请求消息,扫描请求消息用于扫描发现连接在总线上的各总线设备,对总线设备的说明,请参见图1对应的说明,具体不做赘述。Based on the UB protocol, the processing device can send multiple scan request messages to the bus in parallel. The scan request message is used to scan and discover each bus device connected to the bus. For the description of the bus device, please refer to the corresponding description of Figure 1, and the details will not be repeated here.
步骤202、处理装置接收来自第一总线设备的第一响应消息。Step 202: The processing device receives a first response message from a first bus device.
步骤203、处理装置接收来自第二总线设备的第二响应消息。Step 203: The processing device receives a second response message from the second bus device.
本实施例以第一总线设备以及第二总线设备均为连接至总线的网卡为例,需明确的是,本实施例对第一总线设备以及第二总线设备的设备类型的说明,不做限定。This embodiment takes the example that both the first bus device and the second bus device are network cards connected to the bus. It should be noted that this embodiment does not limit the description of the device types of the first bus device and the second bus device.
以第一总线设备为例,第一总线设备接收到扫描请求消息后,通过总线,向处理装置发送第一响应消息。第一响应消息具体携带第一指示信息、第一网络地址、第一类型指示信息以及第一资源空间指示信息,第一响应消息所携带的各字段内容请参见表1所示:Taking the first bus device as an example, after receiving the scan request message, the first bus device sends a first response message to the processing device via the bus. The first response message specifically carries the first indication information, the first network address, the first type indication information, and the first resource space indication information. The contents of each field carried by the first response message are shown in Table 1:
表1
Table 1
其中,第一指示信息用于指示第一总线设备是否支持聚合,该第一指示信息可为聚合设备表(aggregation device table,ADT)支持(Supported)字段。若ADT Supported字段取值为1,则用于指示第一总线设备支持聚合,若ADT Supported字段取值为0,则用于指示第一总线设备不支持聚合。第一网络地址用于标识第一总线设备的物理端口的地址,该第一网络地址可为网络地址(network address)或目标网络地址(destination network address,CNA)。表1所示的示例中,第一网络地址可为Device CNA字段,该Device CNA字段的取值用于标识第一总线设备的物理端口的地址。第一类型指示信息用于指示第一总线设备的型号,例如,该第一类型指示信息可为实体标识(Entity ID,EID)、全局唯一标识符(globally unique identifier,GUID)、通用唯一识别码(universally unique identifier,UUID)等,不做限定。该第一类型指示信息还可指示总线设备类型、设备厂商等信息,具体不做限定。表1所示的示例中,第一类型指示信息可为Device GUID字段。第一资源空间指示信息为Device resource space size(RSSZ)字段,Device RSSZ字段的取值用于指示第一总线设备的资源空间的大小。其中,资源空间可包括内存资源大小、存储空间大小、处理器资源、网络带宽、输入/输出(input/output,I/O)资源、软件资源等。其中,处理器资源用于指示处理器的执行时间和计算能力,用于执行设备上的各种任务。需明确的是,本实施例对资源空间的说明为可选的示例,不做限定,只要资源空间与第一总线设备运行业务的资源相关即可。第二响应消息具体携带第二指示信息、第二网络地址、第二类型指示信息以及第二资源空间指示信息,对第二响应消息的说明,请参见第一响应消息的说明,具体不做赘述。需明确的是,本实施例对各字段的名称以及取值的说明,均为可选的示例,不做限定。The first indication information is used to indicate whether the first bus device supports aggregation. The first indication information may be the Supported field of the aggregation device table (ADT). If the value of the ADT Supported field is 1, it indicates that the first bus device supports aggregation. If the value of the ADT Supported field is 0, it indicates that the first bus device does not support aggregation. The first network address is used to identify the address of the physical port of the first bus device. The first network address may be a network address (network address) or a destination network address (CNA). In the example shown in Table 1, the first network address may be the Device CNA field, and the value of the Device CNA field is used to identify the address of the physical port of the first bus device. The first type indication information is used to indicate the model of the first bus device. For example, the first type indication information may be an entity ID (EID), a globally unique identifier (GUID), a universally unique identifier (UUID), etc., without limitation. The first type of indication information may also indicate information such as the bus device type and device manufacturer, without specific limitation. In the example shown in Table 1, the first type of indication information may be the Device GUID field. The first resource space indication information is the Device resource space size (RSSZ) field. The value of the Device RSSZ field indicates the size of the resource space of the first bus device. The resource space may include memory resource size, storage space size, processor resources, network bandwidth, input/output (I/O) resources, software resources, etc. Processor resources indicate the execution time and computing power of the processor used to perform various tasks on the device. It should be noted that the description of the resource space in this embodiment is an optional example and is not limiting. As long as the resource space is related to the resources used to run the services of the first bus device, it is sufficient. The second response message specifically carries the second indication information, the second network address, the second type indication information, and the second resource space indication information. For a description of the second response message, please refer to the description of the first response message and will not be repeated here. It should be noted that the description of the names and values of each field in this embodiment is an optional example and is not limiting.
步骤204、处理装置将第一总线设备和第二总线设备聚合为聚合设备。Step 204: The processing device aggregates the first bus device and the second bus device into an aggregated device.
本实施例中,处理装置确定第一响应消息以及第二响应消息满足预设条件的情况下,将第一总线设备以及第二总线设备聚合为聚合设备。可以理解,聚合设备关联第一总线设备以及第二总线设备。其中,预设条件是指,第一总线设备以及第二总线设备均支持聚合,而且,第一总线设备的设备型号与第二总线设备的设备型号相同。具体的,所述第一响应消息携带第一类型指示信息以及第一指示信息,所述第二响应消息携带第二类型指示信息以及第二指示信息,所述第一指示信息用于指示所述第一总线设备支持聚合,所述第二指示信息用于指示所述第二总线设备支持聚合。所述第一类型指示信息所指示的型号,与所述第二类型指示信息所指示的型号相同。结合表1所示,第一响应消息以及第二响应消息满足预设条件的情况下,第一响应消息以及第二响应消息中,ADT Supported字段的取值均为1,且Device GUID字段的取值相同。本实施例以预设条件包括第一总线设备的型号与第二总线设备的型号相同为例,在其他示例中,预设条件可包括第一总线设备的设备类型与第二总线设备的设备类型相同,例如,第一总线设备和第二总线设备均为网卡,又如,第一总线设备和第二总线设备均为硬盘等。In this embodiment, when the processing device determines that the first response message and the second response message meet the preset conditions, the first bus device and the second bus device are aggregated into an aggregate device. It can be understood that the aggregate device is associated with the first bus device and the second bus device. The preset conditions refer to that both the first bus device and the second bus device support aggregation, and the device model of the first bus device is the same as the device model of the second bus device. Specifically, the first response message carries first type indication information and first indication information, and the second response message carries second type indication information and second indication information. The first indication information is used to indicate that the first bus device supports aggregation, and the second indication information is used to indicate that the second bus device supports aggregation. The model indicated by the first type indication information is the same as the model indicated by the second type indication information. As shown in Table 1, when the first response message and the second response message meet the preset conditions, in the first response message and the second response message, the value of the ADT Supported field is 1, and the value of the Device GUID field is the same. In this embodiment, the preset condition includes the model of the first bus device being the same as the model of the second bus device as an example. In other examples, the preset condition may include the device type of the first bus device being the same as the device type of the second bus device, for example, the first bus device and the second bus device are both network cards, or the first bus device and the second bus device are both hard disks, etc.
处理装置通过创建如表2所示的聚合列表方式,以将第一总线设备和第二总线设备聚合为聚合设备,该聚合列表参见表2所示:需明确的是,表2所示的各字段以及各字段的取值,均为可选的示例,不做限定,在其他示例中,聚合列表可采用任意字段的任意取值,至少指示第一总线设备的网络地址、第二总线设备的网络地址、第一总线设备的型号以及第二总线设备的型号即可。The processing device aggregates the first bus device and the second bus device into an aggregate device by creating an aggregation list as shown in Table 2. The aggregation list is shown in Table 2: It should be noted that the fields and values of each field shown in Table 2 are optional examples and are not limited. In other examples, the aggregation list can adopt any value of any field, at least indicating the network address of the first bus device, the network address of the second bus device, the model of the first bus device, and the model of the second bus device.
表2
Table 2
处理装置将第一总线设备和第二总线设备聚合为同一聚合设备的情况下,处理装置在第一总线设备和第二总线设备中,选定一个总线设备作为主设备,选定其他总线设备作为从设备。本实施例以处理装置将第一总线设备选定为主设备(Primary Device),选定第二总线设备为从设备(Secondary Device)为例。需明确的是,在其他示例中,处理装置还能够获得第三总线设备的响应消息,依次类推,获得第N总线设备的响应消息,并将N个总线设备聚合为同一聚合设备,以创建如表2所示的聚合列表。本实施例对聚合列表包括的总线设备的数量不做限定。When the processing device aggregates the first bus device and the second bus device into the same aggregate device, the processing device selects one bus device from the first bus device and the second bus device as the primary device and selects the other bus devices as slave devices. This embodiment takes the example of the processing device selecting the first bus device as the primary device and the second bus device as the secondary device. It should be understood that in other examples, the processing device can also obtain a response message from the third bus device, and so on, obtain a response message from the Nth bus device, and aggregate the N bus devices into the same aggregate device to create an aggregate list as shown in Table 2. This embodiment does not limit the number of bus devices included in the aggregate list.
该聚合列表包括Supported ADT Number字段、数量指示信息、使能指示信息、设备模式指示信息、第一总线设备的第一网络地址、第二总线设备的第二网络地址、第一资源指示信息、第二资源指示信息、第一类型指示信息以及第二类型指示信息。其中,第一网络地址、第二网络地址、第一类型指示信息以及第二类型指示信息的说明,请参见表1对应的说明,具体不做赘述。The aggregate list includes the Supported ADT Number field, quantity indication information, enable indication information, device mode indication information, the first network address of the first bus device, the second network address of the second bus device, first resource indication information, second resource indication information, first type indication information, and second type indication information. For descriptions of the first network address, the second network address, the first type indication information, and the second type indication information, please refer to the corresponding descriptions in Table 1 and are not further described here.
其中,该Supported ADT Number字段用于指示处理装置所支持的聚合列表的数量。数量指示信息可为Supported Secondary Device Number字段。Supported Secondary Device Number字段用于指示聚合列表中支持从设备的数量。在其他示例中,该数据指示信息可用于指示聚合列表包括的所有总线设备的数量,或数量指示信息用于指示聚合列表包括的主设备的数量等,具体不做限定。使能指示信息可为ADT Enable字段,用于指示第一总线设备以及第二总线设备具有聚合成聚合设备的能力。设备模式指示信息可为Device Mode字段,Device Mode字段的取值用于指示第一总线设备作为主设备,第二总线设备作为从设备。本实施例对Device Mode字段所包括的字段数量以及每个字段具体的取值均不做限定,只要该Device Mode字段能够指示第一总线设备作为主设备,第二总线设备作为从设备即可。Primary Device CNA的取值,为作为主设备的第一总线设备的第一网络地址。Secondary Device CNA的取值,为作为从设备的第二总线设备的第二网络设备。第一资源指示信息可为Primary Device RSSZ字段,Primary Device RSSZ字段的取值,用于指示作为主设备的第一总线设备的资源空间大小。第二资源指示信息可为Secondary Device RSSZ字段,Secondary Device RSSZ字段的取值,用于指示作为从设备的第二总线设备的资源空间大小。Among them, the Supported ADT Number field is used to indicate the number of aggregation lists supported by the processing device. The quantity indication information may be the Supported Secondary Device Number field. The Supported Secondary Device Number field is used to indicate the number of supported slave devices in the aggregation list. In other examples, the data indication information may be used to indicate the number of all bus devices included in the aggregation list, or the quantity indication information may be used to indicate the number of master devices included in the aggregation list, etc., without specific limitation. The enable indication information may be the ADT Enable field, which is used to indicate that the first bus device and the second bus device have the ability to aggregate into an aggregation device. The device mode indication information may be the Device Mode field, and the value of the Device Mode field is used to indicate that the first bus device is a master device and the second bus device is a slave device. This embodiment does not limit the number of fields included in the Device Mode field and the specific value of each field, as long as the Device Mode field can indicate that the first bus device is a master device and the second bus device is a slave device. The value of Primary Device CNA is the first network address of the first bus device that serves as the master device. The value of Secondary Device CNA is the second network device of the second bus device that serves as the slave device. The first resource indication information may be the Primary Device RSSZ field. The value of the Primary Device RSSZ field is used to indicate the size of the resource space of the first bus device that serves as the master device. The second resource indication information may be the Secondary Device RSSZ field. The value of the Secondary Device RSSZ field is used to indicate the size of the resource space of the second bus device that serves as the slave device.
需明确的是,本实施例所示创建聚合列表的方式,实现将第一总线设备以及第二总线设备聚合为聚合设备为例,不做限定,只要处理装置至少创建聚合设备包括的各个总线设备的网络地址、各个总线设备的资源空间大小、各个总线设备的GUID的对应关系即可,具体对应关系的创建方式,不做限定。It should be clarified that the method of creating an aggregation list shown in this embodiment is to achieve the aggregation of the first bus device and the second bus device into an aggregate device as an example, and is not limited. As long as the processing device at least creates the corresponding relationship between the network address of each bus device included in the aggregate device, the resource space size of each bus device, and the GUID of each bus device, the specific method of creating the corresponding relationship is not limited.
处理装置将第一总线设备和第二总线设备聚合为同一聚合设备的情况下(即创建了如表2所示的聚合列表),在操作系统(operating system,OS)上呈现聚合设备的能力。而且该聚合设备的能力包括第一总线设备的能力和第二总线设备的能力。总线设备的能力可包括网络带宽、资源空间、中断向量、任务队列等,具体不做限定。例如表3所示:When the processing device aggregates the first bus device and the second bus device into the same aggregate device (i.e., creates an aggregate list as shown in Table 2), the capabilities of the aggregate device are presented to the operating system (OS). The capabilities of the aggregate device include the capabilities of the first bus device and the capabilities of the second bus device. The capabilities of the bus devices may include network bandwidth, resource space, interrupt vectors, task queues, etc., which are not specifically limited. For example, as shown in Table 3:
表3
Table 3
例如,第一总线设备支持的网络带宽为A1,第二总线设备支持的网络带宽为A2,那么,聚合设备支持的网络带宽为A1+A2。具体例如,A1以及A2均为400Gbps,那么,聚合设备支持的网络带宽为800Gbps。又如,第一总线设备支持的资源空间的大小为B1,第二总线设备支持的资源空间的大小为B2,那么,聚合设备支持的资源空间大小为B1+B2。具体例如,B1以及B2均为10兆(M),那么,聚合设备支持的资源空间大小有20M。又如,第一总线设备支持C1个中断向量,第二总线设备支持C2个中断向量,那么,聚合设备支持C1+C2个中断向量。其中,中断向量是指处理装置的任务队列的服务程序的入口地址,以便于处理装置能够响应和处理对应的任务队列。每个中断向量包括段地址和偏移量,用于唯一标识一个中断服务程序的入口地址。若第一总线设备支持D1个任务队列,第二总线设备支持D2个任务队列,那么,聚合设备支持D1+D2个任务队列。其中,任务队列是指,处理装置将待发送至第一总线设备的数据,分成D1个独立的子数据流,并将D1个子数据流分别放入D1个任务队列中,任务队列对子数据流进行处理并发送。可以理解,在第一总线设备支持10个任务队列,且第二总线设备支持10个任务队列的情况下,聚合设备支持20个任务队列,那么,处理装置在向聚合设备发送数据流时,可将该数据流划分成20路子数据流,并将20路子数据流,分别放入聚合设备支持的20个任务队列中。For example, if the network bandwidth supported by the first bus device is A1 and the network bandwidth supported by the second bus device is A2, then the network bandwidth supported by the aggregation device is A1+A2. Specifically, if A1 and A2 are both 400 Gbps, then the network bandwidth supported by the aggregation device is 800 Gbps. For another example, if the size of the resource space supported by the first bus device is B1 and the size of the resource space supported by the second bus device is B2, then the size of the resource space supported by the aggregation device is B1+B2. Specifically, if B1 and B2 are both 10 megabytes (M), then the size of the resource space supported by the aggregation device is 20M. For another example, if the first bus device supports C1 interrupt vectors and the second bus device supports C2 interrupt vectors, then the aggregation device supports C1+C2 interrupt vectors. An interrupt vector refers to the entry address of a service routine in a task queue of a processing device, so that the processing device can respond to and process the corresponding task queue. Each interrupt vector includes a segment address and an offset, which are used to uniquely identify the entry address of an interrupt service routine. If the first bus device supports D1 task queues and the second bus device supports D2 task queues, then the aggregation device supports D1+D2 task queues. A task queue means that the processing device divides the data to be sent to the first bus device into D1 independent sub-data streams, and places the D1 sub-data streams into D1 task queues respectively. The task queues process and send the sub-data streams. It is understood that if the first bus device supports 10 task queues and the second bus device supports 10 task queues, and the aggregation device supports 20 task queues, then when the processing device sends a data stream to the aggregation device, it can divide the data stream into 20 sub-data streams and place the 20 sub-data streams into the 20 task queues supported by the aggregation device.
例如图3所示,以处理装置将第一总线设备以及第二总线设备聚合为同一聚合设备,并将该聚合设备注册至总线为例。图4所示说明聚合的另一种示例。其中,图4为图2所示的注册步骤流程图在设备中另一种执行示例图。以第一总线设备以及第二总线设备均为网卡为例。第一总线设备401包括多个功能实体或业务实体(function entity,FE)。例如,第一总线设备401包括FE411以及FE412。第一总线设备401包括的各FE负责处理网络通信的各种功能模块,如发送和接收数据的模块、处理网络协议的模块等。第一总线设备401向处理装置发送的第一资源空间指示信息包括FE411的资源空间指示信息以及FE412的资源空间指示信息。其中,FE411的资源空间指示信息具体用于指示FE411的资源空间(例如,FE411的网络带宽、资源空间的大小、中断向量的数量、任务队列的数量等)。FE411的资源空间指示信息具体用于指示FE412的资源空间。同样的,第二总线设备402包括FE421以及FE422。那么,第二总线设备402向处理装置发送的第二资源空间指示信息包括FE421的资源空间指示信息以及FE422的资源空间指示信息,具体请参见FE411的资源空间指示信息以及FE412的资源空间指示信息的说明,具体不做赘述。处理装置可将第一总线设备401的FE411以及第二总线设备402的FE421聚合为同一聚合设备。聚合的具体说明,请参加步骤204所示,具体不做赘述。For example, as shown in FIG3 , a processing device aggregates a first bus device and a second bus device into a single aggregate device and registers the aggregate device with the bus. FIG4 illustrates another example of aggregation. FIG4 is another example diagram of executing the registration step flowchart shown in FIG2 in a device. For example, a first bus device and a second bus device are both network cards. First bus device 401 includes multiple functional entities or service entities (FEs). For example, first bus device 401 includes FE 411 and FE 412. Each FE included in first bus device 401 is responsible for processing various functional modules for network communications, such as modules for sending and receiving data and modules for processing network protocols. The first resource space indication information sent by first bus device 401 to the processing device includes resource space indication information for FE 411 and resource space indication information for FE 412. The resource space indication information for FE 411 is specifically used to indicate the resource space of FE 411 (for example, the network bandwidth of FE 411, the size of the resource space, the number of interrupt vectors, the number of task queues, etc.). The resource space indication information of FE411 is specifically used to indicate the resource space of FE412. Similarly, the second bus device 402 includes FE421 and FE422. Then, the second resource space indication information sent by the second bus device 402 to the processing device includes the resource space indication information of FE421 and the resource space indication information of FE422. For details, please refer to the description of the resource space indication information of FE411 and the resource space indication information of FE412. The details are not repeated here. The processing device can aggregate FE411 of the first bus device 401 and FE421 of the second bus device 402 into the same aggregated device. For a detailed description of the aggregation, please refer to step 204. The details are not repeated here.
步骤205、处理装置向第一总线设备发送第一配置报文和第二配置报文。Step 205: The processing device sends a first configuration message and a second configuration message to the first bus device.
在处理装置已成功将第一总线设备以及第二总线设备聚合为同一聚合设备的情况下,处理装置向作为主设备的第一总线设备发送第一配置报文和第二配置报文。例如图3所示,以处理装置为主机的CPU为例,那么,CPU通过主机的端口,向第一总线设备发送第一配置报文以及第二配置报文。其中,第一配置报文包括第一网络地址、第一设备模式指示信息以及第一配置信息。第二配置报文包括第二网络地址、第二设备模式指示信息以及第二配置信息。该第一配置报文用于配置第一总线设备,以使配置后的第一总线设备,能够响应来自处理装置的访问请求。第二配置报文用于配置第二总线设备,以使配置后的第二总线设备,能够响应来自处理装置的访问请求。其中,第一配置报文包括的第一网络地址以及第一设备模式指示信息的说明,以及第二配置报文包括第二网络地址以及第二设备模式指示信息的说明,请参见表1对应的说明,具体不做赘述。可知,该第一设备模式指示信息用于指示,第一总线设备作为主设备。第二设备模式指示信息用于指示,第二总线设备作为从设备。该第一配置信息参见下述示例所示,需明确的是,本实施例对第一配置信息的说明,为可选的示例,不做限定,只要第一总线设备按照第一配置信息进行配置后,能够响应处理装置的访问请求即可。When the processing device has successfully aggregated the first bus device and the second bus device into a single aggregated device, the processing device sends a first configuration message and a second configuration message to the first bus device, which serves as the master device. For example, as shown in FIG3 , taking the processing device as the host CPU as an example, the CPU sends the first configuration message and the second configuration message to the first bus device via the host port. The first configuration message includes a first network address, first device mode indication information, and first configuration information. The second configuration message includes a second network address, second device mode indication information, and second configuration information. The first configuration message is used to configure the first bus device so that the configured first bus device can respond to access requests from the processing device. The second configuration message is used to configure the second bus device so that the configured second bus device can respond to access requests from the processing device. For a description of the first network address and first device mode indication information included in the first configuration message, and a description of the second network address and second device mode indication information included in the second configuration message, please refer to the corresponding descriptions in Table 1, and the details are not repeated here. It can be seen that the first device mode indication information is used to indicate that the first bus device serves as the master device. The second device mode indication information is used to indicate that the second bus device functions as a slave device. The first configuration information is shown in the following example. It should be noted that the description of the first configuration information in this embodiment is an optional example and is not limiting. As long as the first bus device is configured according to the first configuration information, it can respond to access requests from the processing device.
示例1,第一配置信息为包括第一任务队列的标识,所述第一任务队列用于访问所述第一总线设备。Example 1: The first configuration information includes an identifier of a first task queue, and the first task queue is used to access the first bus device.
参见图5所示,其中,图5为图2所示的配置信息的示例图。处理装置为第一总线设备激活N个第一任务队列,本实施例对N的具体取值不做限定,本示例以N取值为4为例,那么,处理装置为第一总线设备激活四个第一任务队列的标识分别为Q P1、Q P2、Q P3以及Q P4。第一配置信息包括四个第一任务队列的标识,即Q P1、Q P2、Q P3以及Q P4。Referring to FIG. 5 , FIG. 5 is an example diagram of the configuration information shown in FIG. A processing device activates N first task queues for a first bus device. This embodiment does not limit the specific value of N. This example uses N as 4 as an example. Then, the processing device activates four first task queues for the first bus device, each with identifiers Q P1, Q P2, Q P3, and Q P4. The first configuration information includes the identifiers of the four first task queues, namely, Q P1, Q P2, Q P3, and Q P4.
示例2,第一配置信息包括第一任务队列与第一中断向量的对应关系。Example 2: The first configuration information includes a correspondence between the first task queue and the first interrupt vector.
继续参见图5所示,每个第一任务队列,可对应一个或多个第一中断向量,以便于处理装置根据第一中断向量,能够处理或响应对应任务队列中的业务,那么,处理装置能够根据第一中断向量的指示,中断第一任务队列所访问的数据。本示例以每个第一任务队列,对应两个中断向量为例,需明确的是,本实施例对每个第一任务队列对应的中断向量的数量不做限定。例如,第一任务队列Q P1对应的两个第一中断向量分别为P11以及P12。其中,第一中断向量P11可用于指示第一中断事件。具体的,在第一总线设备成功传输完成第一任务队列Q P1对应子数据流的情况下,第一中断向量P11为指示第一任务队列Q P1对应子数据流传输完成的中断服务程序的入口地址,以使得处理装置能够确定第一任务队列Q P1中的业务传输完成。第一中断向量P12可用于指示第二中断事件。具体的,在第一总线设备未将第一任务队列Q P1对应子数据流传输完成的情况下,第一中断向量P12为指示第一任务队列Q P1对应子数据流未传输完成的中断服务程序的入口地址,以使处理装置能够确定第一任务队列Q P1中的业务在未传输完成的情况下,发生了中断。对第一任务队列Q P2对应的两个第一中断向量分别为P21以及P22、第一任务队列Q P3对应的两个第一中断向量分别为P31以及P32、第一任务队列Q P4对应的两个第一中断向量分别为P41以及P42的说明,请参见第一任务队列Q P1对应的第一中断向量P11以及P12的说明,具体不做赘述。Continuing with FIG. 5 , each first task queue may correspond to one or more first interrupt vectors, enabling the processing device to process or respond to services in the corresponding task queue based on the first interrupt vectors. The processing device can then interrupt the data accessed by the first task queue based on the instructions of the first interrupt vectors. This example uses two interrupt vectors corresponding to each first task queue as an example. It should be noted that this embodiment does not limit the number of interrupt vectors corresponding to each first task queue. For example, the two first interrupt vectors corresponding to the first task queue Q P1 are P11 and P12, respectively. The first interrupt vector P11 can be used to indicate a first interrupt event. Specifically, when the first bus device successfully completes the transmission of the sub-data stream corresponding to the first task queue Q P1, the first interrupt vector P11 is the entry address of the interrupt service routine indicating the completion of the transmission of the sub-data stream corresponding to the first task queue Q P1, enabling the processing device to determine that the transmission of services in the first task queue Q P1 is complete. The first interrupt vector P12 can be used to indicate a second interrupt event. Specifically, if the first bus device has not completed transmission of the sub-data stream corresponding to the first task queue Q P1, the first interrupt vector P12 is the entry address of the interrupt service routine indicating that the sub-data stream corresponding to the first task queue Q P1 has not been fully transmitted, so that the processing device can determine that the service in the first task queue Q P1 has been interrupted due to the incomplete transmission. For the description of the two first interrupt vectors P21 and P22 corresponding to the first task queue Q P2, the two first interrupt vectors P31 and P32 corresponding to the first task queue Q P3, and the two first interrupt vectors P41 and P42 corresponding to the first task queue Q P4, please refer to the description of the first interrupt vectors P11 and P12 corresponding to the first task queue Q P1, and the details are not repeated here.
本实施例所示的第一配置信息可包括第一任务队列的标识、第一任务队列与第一中断向量的对应关系中的至少一项。对第二配置报文的说明,请参见第一配置报文的说明,具体不做赘述。例如,第二配置报文包括四个第二任务队列的标识,例如,Q S1、Q S2、Q S3以及Q S4,与第二任务队列Q S1对应的两个第二中断向量S11以及S12、与第二任务队列Q S2对应的两个第二中断向量S21以及S22、Q S3对应的两个第二中断向量S31以及S32、Q S4对应的两个第二中断向量S41以及S42。The first configuration information shown in this embodiment may include at least one of the identifier of the first task queue and the correspondence between the first task queue and the first interrupt vector. For the description of the second configuration message, please refer to the description of the first configuration message, and the details are not repeated here. For example, the second configuration message includes the identifiers of four second task queues, for example, Q S1, Q S2, Q S3 and Q S4, two second interrupt vectors S11 and S12 corresponding to the second task queue Q S1, two second interrupt vectors S21 and S22 corresponding to the second task queue Q S2, two second interrupt vectors S31 and S32 corresponding to Q S3, and two second interrupt vectors S41 and S42 corresponding to Q S4.
步骤206、第一总线设备向第二总线设备发送第二配置报文。Step 206: The first bus device sends a second configuration message to the second bus device.
本实施例中,第一总线设备接收到第一配置报文以及第二配置报文的情况下,根据第一配置报文包括的第一设备模式指示信息确定第一总线设备作为主设备,那么第一总线设备的动作有2个,第一个动作,第一总线设备存储第一配置报文以实现第一总线设备的配置,以保证第一总线设备能够响应来自处理装置的访问请求。本实施例以第一总线设备将第一配置报文存储至寄存器中为例,不做限定,第一总线设备可将第一配置报文存储在第一总线设备内的任意存储介质中。第二个动作,因第一总线设备已确定其为主设备,那么,第一总线设备根据第二配置报文携带的第二网络地址,向第二总线设备转发第二配置报文。In this embodiment, when a first bus device receives a first configuration message and a second configuration message, it determines that the first bus device is the master device based on the first device mode indication information included in the first configuration message. The first bus device then performs two actions. First, the first bus device stores the first configuration message to implement the configuration of the first bus device, ensuring that the first bus device can respond to access requests from the processing device. This embodiment uses the example of the first bus device storing the first configuration message in a register, but this is not limiting. The first bus device may store the first configuration message in any storage medium within the first bus device. Second, since the first bus device has determined that it is the master device, the first bus device forwards the second configuration message to the second bus device based on the second network address carried in the second configuration message.
步骤207、第二总线设备接收第二配置报文。Step 207: The second bus device receives the second configuration message.
本实施例中,第二总线设备接收到第二配置报文的情况下,根据第二配置报文包括的第二设备模式指示信息确定第二总线设备作为从设备,那么第二总线设备的动作有1个,即,第二总线设备存储第二配置报文以实现第二总线设备的配置,以保证第二总线设备能够响应来自处理装置的访问请求。本实施例以第二总线设备将第二配置报文存储至寄存器中为例,不做限定,第二总线设备可将第二配置报文存储在第二总线设备内的任意存储介质中。In this embodiment, when the second bus device receives the second configuration message, it determines that the second bus device is a slave device based on the second device mode indication information included in the second configuration message. The second bus device then performs one action: the second bus device stores the second configuration message to implement the second bus device configuration, thereby ensuring that the second bus device can respond to access requests from the processing device. This embodiment uses the example of the second bus device storing the second configuration message in a register, but this is not limiting. The second bus device may store the second configuration message in any storage medium within the second bus device.
本实施例以第一总线设备向第二总线设备转发第二配置报文为例,那么,处理装置向第二总线设备发送第二配置报文的过程,无需占用处理装置与第二总线设备之间的数据通路。This embodiment takes the forwarding of the second configuration message from the first bus device to the second bus device as an example. Therefore, the process of the processing device sending the second configuration message to the second bus device does not need to occupy the data path between the processing device and the second bus device.
本实施例以作为从设备的第二总线设备仅为一个为例,在其他示例中,作为从设备的第二总线设备可为多个,那么,第一总线设备向每个第二总线设备均发送第二配置报文,以使每个第二总线设备均能够根据第二配置报文进行配置。This embodiment takes as an example that there is only one second bus device serving as a slave device. In other examples, there may be multiple second bus devices serving as slave devices. In this case, the first bus device sends a second configuration message to each second bus device, so that each second bus device can be configured according to the second configuration message.
可选的,本实施例所示的第二总线设备成功接收到第二配置报文,并将第二配置报文存储至寄存器的情况下,第二总线设备可向第一总线设备发送第二成功响应消息。第一总线设备将第一配置报文存储至寄存器的情况下,第一总线设备可向处理装置发送第一成功响应消息,而且,第一总线设备还向处理装置转发该第二成功响应消息,以使处理装置根据第一成功响应消息以及第二成功响应消息,确定第一总线设备以及第二总线设备均配置成功,那么,第一总线设备以及第二总线设备均能够对访问请求进行响应。Optionally, in the embodiment shown in FIG. 1 , when the second bus device successfully receives the second configuration message and stores the second configuration message in a register, the second bus device may send a second success response message to the first bus device. When the first bus device stores the first configuration message in a register, the first bus device may send a first success response message to the processing device. Furthermore, the first bus device may forward the second success response message to the processing device, so that the processing device determines, based on the first success response message and the second success response message, that both the first bus device and the second bus device are successfully configured. Consequently, both the first bus device and the second bus device can respond to the access request.
本实施例所示的处理装置可通过设备主机的至少一个通信接口,实现上述步骤201、步骤202、步骤203、步骤204以及步骤205实现消息以及配置报文的收发。The processing device shown in this embodiment can implement the above steps 201, 202, 203, 204 and 205 through at least one communication interface of the device host to realize the sending and receiving of messages and configuration messages.
步骤208、处理装置获得地址查找列表。Step 208: The processing device obtains an address lookup list.
处理装置将聚合设备注册至OS的总线上。处理装置为注册的聚合设备生成如表4所示的地址查找列表:需明确的是,本实施例所示的地址查找列表为一种可选的示例,只要处理装置能够创建HPA与第一网络地址之间的对应关系即可。The processing device registers the aggregation device on the bus of the OS. The processing device generates an address lookup list as shown in Table 4 for the registered aggregation device: It should be noted that the address lookup list shown in this embodiment is an optional example, as long as the processing device can establish a correspondence between the HPA and the first network address.
表4
Table 4
本实施例所示的注册列表中,包括主设备(即上述所示的第一总线设备)的第一网络地址以及该主设备的主机物理地址(host physical address,HPA)的对应关系。The registration list shown in this embodiment includes the correspondence between the first network address of the master device (i.e., the first bus device shown above) and the host physical address (HPA) of the master device.
为更好的理解,结合图6a以及图6b所示,其中,图6a有已有的总线设备对应的地址查找列表的示例图。已有的方案中,若第一总线设备成功注册至总线,则处理装置为该第一总线设备所分配的一段内存的物理地址为HPA1,那么,针对第一总线设备创建的地址查找列表包括HPA1以及第一网络地址的对应关系。若第二总线设备成功注册至总线,则处理装置为该第二总线设备所分配的一段内存的物理地址为HPA2,那么,针对第二总线设备创建的地址查找列表包括HPA2以及第二网络地址的对应关系。在具体应用过程中,若主机运行的应用程序一个总线设备无法满足,处理装置需要调用第一总线设备以及第二总线设备,并将应用程序运行的业务,基于复杂的计算,向第一总线设备以及第二总线设备分配,并经过多次的地址查询,如通过地址查找列表1,查询到第一网络地址,通过地址查找列表2,查询到第二网络地址,进而向第一网络地址以及第二网络地址分配业务,业务执行会带来极高的复杂度,并损失了设备的性能。For a better understanding, see Figures 6a and 6b. Figure 6a shows an example of an address lookup table corresponding to existing bus devices. In existing solutions, if a first bus device successfully registers with the bus, the physical address of the memory segment allocated to the first bus device by the processing device is HPA1. Therefore, the address lookup table created for the first bus device includes the correspondence between HPA1 and the first network address. If a second bus device successfully registers with the bus, the physical address of the memory segment allocated to the second bus device by the processing device is HPA2. Therefore, the address lookup table created for the second bus device includes the correspondence between HPA2 and the second network address. In a specific application process, if the application running on the host cannot be satisfied by one bus device, the processing device needs to call the first bus device and the second bus device, and allocate the business running by the application to the first bus device and the second bus device based on complex calculations, and after multiple address queries, such as querying the first network address through address lookup list 1, and querying the second network address through address lookup list 2, and then allocating the business to the first network address and the second network address. The business execution will bring extremely high complexity and lose the performance of the device.
图6b为本申请实施例所示的总线设备对应的地址查找列表的示例图。本实施例中,处理装置将第一网络设备以及第二网络设备聚合为一个聚合设备,那么,处理装置为聚合设备所分配的一端内存的物理地址为HPA。针对聚合设备创建的地址查询列表包括HPA以及第一网络地址(即,主设备的网络地址)的对应关系。在具体应用过程中,若主机运行的应用程序一个总线设备无法满足,但是,聚合了多个总线设备的聚合设备,能够满足该应用程序运行的需要,则处理装置直接调用聚合设备,响应应用程序所执行的业务,无需经过复杂的业务分配流程以及多次复杂的地址查询过程,降低了业务执行的复杂度,降低了设备运行应用程序的性能损失。Figure 6b is an example diagram of the address lookup list corresponding to the bus device shown in the embodiment of the present application. In this embodiment, the processing device aggregates the first network device and the second network device into an aggregate device, then the physical address of the memory at one end allocated by the processing device to the aggregate device is HPA. The address query list created for the aggregate device includes the correspondence between HPA and the first network address (i.e., the network address of the main device). In a specific application process, if the application running on the host cannot be satisfied by one bus device, but the aggregate device that aggregates multiple bus devices can meet the needs of the application running, the processing device directly calls the aggregate device to respond to the business performed by the application, without going through a complex business allocation process and multiple complex address query processes, thereby reducing the complexity of business execution and reducing the performance loss of the device running the application.
本实施例对步骤208与步骤205、步骤206以及步骤207的执行时序不做限定。This embodiment does not limit the execution sequence of step 208 , step 205 , step 206 , and step 207 .
采用本实施例所示的方法,处理装置能够将第一总线设备和第二总线设备聚合为同一聚合设备,那么,在OS上呈现聚合设备的能力。而且该聚合设备的能力包括第一总线设备的能力和第二总线设备的能力。例如,聚合设备的网络带宽为第一总线设备的网络带宽和第二总线设备网络带宽的和,又如,聚合设备的资源空间大小为第一总线设备的资源空间大小和第二总线设备的资源空间大小的和。又如,聚合设备的中断向量的数量,为第一总线设备的中断向量数量和第二总线设备中断向量数量的和。又如,聚合设备的任务队列数量,为第一总线设备的任务队列数量和第二总线设备任务队列数量的和。那么,处理装置在第一总线设备和第二总线设备中,仅注册第一总线设备。可以理解,若设备的应用程序发起访问请求,需要使用至少两个总线设备(例如,需要使用两个网卡),而本实施例已将至少两个总线设备聚合为一个聚合设备,那么,应用程序发起的访问请求,仅需要使用这一个聚合设备即可,无需在应用层,将访问请求向两个不同的总线设备进行分配,仅需要向一个聚合设备分配访问请求即可,有效的降低了设备运行的应用程序执行业务的复杂度,以及降低了设备性能的损失。By adopting the method shown in this embodiment, the processing device can aggregate the first bus device and the second bus device into the same aggregate device, so that the capabilities of the aggregate device are presented on the OS. Moreover, the capabilities of the aggregate device include the capabilities of the first bus device and the capabilities of the second bus device. For example, the network bandwidth of the aggregate device is the sum of the network bandwidth of the first bus device and the network bandwidth of the second bus device. For another example, the resource space size of the aggregate device is the sum of the resource space size of the first bus device and the resource space size of the second bus device. For another example, the number of interrupt vectors of the aggregate device is the sum of the number of interrupt vectors of the first bus device and the number of interrupt vectors of the second bus device. For another example, the number of task queues of the aggregate device is the sum of the number of task queues of the first bus device and the number of task queues of the second bus device. Then, the processing device only registers the first bus device in the first bus device and the second bus device. It can be understood that if the application of the device initiates an access request, it needs to use at least two bus devices (for example, two network cards), and this embodiment has aggregated at least two bus devices into one aggregate device. Then, the access request initiated by the application only needs to use this one aggregate device. There is no need to allocate the access request to two different bus devices at the application layer. The access request only needs to be allocated to one aggregate device, which effectively reduces the complexity of the business execution of the application running on the device and reduces the loss of device performance.
图2所示说明了第一总线设备和第二总线设备中,仅注册聚合设备的流程,以下结合图7以及图8所示,说明处理装置访问第一总线设备以及第二总线设备的流程。其中,图7为本申请实施例提供的访问方法的步骤流程图。本实施例所示的处理装置的说明,请参见图2对应的处理装置的说明,具体不做赘述。FIG2 illustrates the process of registering only the aggregate device in the first and second bus devices. The following, in conjunction with FIG7 and FIG8 , illustrates the process of a processing device accessing the first and second bus devices. FIG7 is a flowchart of the steps of the access method provided in an embodiment of the present application. For a description of the processing device shown in this embodiment, please refer to the description of the processing device corresponding to FIG2 , and detailed description is omitted here.
步骤701、处理装置获得访问请求。Step 701: The processing device obtains an access request.
本实施例所示设备上运行应用程序,例如,设备上运行的虚拟机(virtual machine,VM)下发的该访问请求。该访问请求可包括写命令或读命令。若访问请求为写命令,且聚合设备所关联的每个总线设备为网卡为例,那么,聚合设备用于将写命令所携带的数据,写入至另一设备。又如,访问请求为读命令,且聚合设备所关联的每个总线设备为网卡为例,那么,聚合设备用于从另一设备获得数据,并发送给主机。本实施例以访问请求为写命令为例,为实现将数据写入至另一设备的目的,则该写命令携带聚合设备的逻辑地址(或称为虚拟地址)。In this embodiment, an application is run on the device, for example, the access request is issued by a virtual machine (VM) running on the device. The access request may include a write command or a read command. If the access request is a write command, and each bus device associated with the aggregate device is a network card, for example, then the aggregate device is used to write the data carried by the write command to another device. For another example, if the access request is a read command, and each bus device associated with the aggregate device is a network card, for example, then the aggregate device is used to obtain data from another device and send it to the host. In this embodiment, taking the access request as a write command as an example, in order to achieve the purpose of writing data to another device, the write command carries the logical address (or virtual address) of the aggregate device.
步骤702、处理装置根据访问请求获得物理地址。Step 702: The processing device obtains a physical address according to the access request.
在处理装置获得访问请求所携带的聚合设备的逻辑地址的情况下,处理装置对聚合设备的逻辑地址进行转换,以获得聚合设备的物理地址。例如图6b所示,处理装置根据访问请求携带的逻辑地址,获得聚合设备的物理地址HPA。When the processing device obtains the logical address of the aggregation device carried in the access request, the processing device converts the logical address of the aggregation device to obtain the physical address of the aggregation device. For example, as shown in Figure 6b, the processing device obtains the physical address HPA of the aggregation device based on the logical address carried in the access request.
步骤703、处理装置根据物理地址获得聚合设备的网络地址。Step 703: The processing device obtains the network address of the aggregation device according to the physical address.
处理装置在获得聚合设备的物理地址的情况下,处理装置查询地址查询列表,以获得与聚合设备物理地址对应的网络地址。该地址查询列表参见表4所示,那么,处理装置根据表4所示的地址查询列表,以获得与聚合设备的物理地址(HPA)对应的聚合设备的网络地址(即,作为主设备的第一网络设备的第一网络地址)。When the processing device obtains the physical address of the aggregation device, the processing device queries the address query table to obtain the network address corresponding to the physical address of the aggregation device. The address query table is shown in Table 4. Then, the processing device obtains the network address of the aggregation device corresponding to the physical address (HPA) of the aggregation device (i.e., the first network address of the first network device serving as the master device) based on the address query table shown in Table 4.
步骤704、处理装置根据聚合列表,获得第一网络地址以及第二网络地址。Step 704: The processing device obtains the first network address and the second network address according to the aggregation list.
处理装置查询到第一网络地址的情况下,获得包括该第一网络地址的聚合列表。例如,处理装置能够获得如表2所示的聚合列表,处理装置进而获得该聚合列表包括的所有网络地址,即第一网络地址以及第二网络地址。可以理解,本实施例所示的第一网络地址以及第二网络地址位于同一聚合列表中,而且聚合设备的物理地址用于对应该聚合列表。When the processing device retrieves the first network address, it obtains an aggregation list that includes the first network address. For example, the processing device can obtain the aggregation list shown in Table 2, and then obtain all network addresses included in the aggregation list, namely, the first network address and the second network address. It will be understood that the first network address and the second network address shown in this embodiment are in the same aggregation list, and the physical address of the aggregation device is used to correspond to the aggregation list.
处理装置还根据访问请求获得第一偏移地址以及第二偏移地址。其中,第一偏移地址是指在第一网络地址内,相对于第一网络地址的首地址的偏移量。第二偏移地址是指在第二网络地址内,相对于第二网络地址的首地址的偏移量。The processing device also obtains a first offset address and a second offset address according to the access request. The first offset address refers to an offset within the first network address relative to the first address of the first network address. The second offset address refers to an offset within the second network address relative to the first address of the second network address.
步骤705、处理装置向第一网络地址发送第一访问请求。Step 705: The processing device sends a first access request to the first network address.
步骤706、处理装置向第二网络地址发送第二访问请求。Step 706: The processing device sends a second access request to the second network address.
本实施例中,在处理装置获得第一网络地址以及第二网络地址后,那么,处理装置直接向第一网络地址发送第一访问请求。处理装置直接向第二网络地址发送第二访问请求。其中,第一访问请求包括第一网络地址以及第一偏移地址。第二访问请求包括第二网络地址以及第二偏移地址。可以理解,本实施例所示的处理装置向第一总线设备以及第二总线设备,分别发送访问请求。例如图8所示。以处理装置为CPU为例,设备主机包括两个通信接口,即通信接口801以及通信接口802。CPU向通信接口801发送第一访问请求,并向通信接口802发送第二访问请求。通信接口801向第一总线设备发送第一访问请求,通信接口802向第二总线设备发送第二访问请求。因本实施例所示的处理装置分别向第一总线设备以及第二总线设备,发送第一访问请求以及第二访问请求,那么,降低了处理装置向聚合设备包括的每个总线设备发送访问请求的时延。In this embodiment, after the processing device obtains the first network address and the second network address, the processing device directly sends a first access request to the first network address. The processing device directly sends a second access request to the second network address. The first access request includes the first network address and the first offset address. The second access request includes the second network address and the second offset address. It can be understood that the processing device shown in this embodiment sends access requests to the first bus device and the second bus device, respectively. For example, as shown in Figure 8 , taking the processing device as a CPU as an example, the device host includes two communication interfaces, namely, communication interface 801 and communication interface 802. The CPU sends a first access request to communication interface 801 and a second access request to communication interface 802. Communication interface 801 sends the first access request to the first bus device, and communication interface 802 sends the second access request to the second bus device. Because the processing device shown in this embodiment sends the first access request and the second access request to the first bus device and the second bus device, respectively, the latency of the processing device sending access requests to each bus device included in the aggregate device is reduced.
若处理装置从应用获得的访问请求,需要向聚合设备写入800吉字节(GB)的数据量。处理装置根据聚合设备所关联的第一总线设备的资源空间大小以及第二总线设备的资源空间的大小,分配该800G的数据量。那么,处理装置向第一总线设备分配第一数据量,向第二总线设备分配第二数据量,第一数据量和第二数据量之和为800G。例如,若第一总线设备的资源空间大于第二总线设备的资源空间,则向第一数据量大于第二数据量。又如,若第一总线设备的资源空间等于第二总线设备的资源空间,则第一数据量等于第二数据量。该第一访问请求包括第一网络地址、第一偏移量以及第一数据量,第二访问请求包括第二网络地址、第二偏移量以及第二数据量。可以理解,因第一访问请求包括第一网络地址以及第一偏移量,那么,第一总线设备能够将第一数据量,写入第一网络地址以及第一偏移量所标识的存储空间。因第二访问请求包括第二网络地址以及第二偏移量,那么,第二总线设备能够将第二数据量,写入第二网络地址以及第二偏移量所标识的存储空间。If the processing device receives an access request from an application and needs to write 800 gigabytes (GB) of data to the aggregation device, the processing device allocates the 800GB of data based on the resource space size of the first bus device associated with the aggregation device and the resource space size of the second bus device. Then, the processing device allocates the first data volume to the first bus device and the second data volume to the second bus device, and the sum of the first data volume and the second data volume is 800GB. For example, if the resource space of the first bus device is larger than the resource space of the second bus device, the first data volume is larger than the second data volume. For another example, if the resource space of the first bus device is equal to the resource space of the second bus device, the first data volume is equal to the second data volume. The first access request includes a first network address, a first offset, and a first data volume, and the second access request includes a second network address, a second offset, and a second data volume. It can be understood that because the first access request includes the first network address and the first offset, the first bus device can write the first data volume to the storage space identified by the first network address and the first offset. Since the second access request includes the second network address and the second offset, the second bus device can write the second amount of data into the storage space identified by the second network address and the second offset.
若设备运行的应用程序,向处理装置发送的访问请求为读命令,那么,第一访问请求用于读取第一网络地址以及第一偏移量所标识的存储空间中的数据,第二访问请求用于读取第二网络地址以及第二偏移量所标识的存储空间中的数据。If the access request sent by the application running on the device to the processing device is a read command, then the first access request is used to read data in the storage space identified by the first network address and the first offset, and the second access request is used to read data in the storage space identified by the second network address and the second offset.
采用本实施例所示的方法,因设备的OS呈现的是聚合设备,那么,设备运行的应用程序根据聚合设备的能力,选择使用该聚合设备。聚合设备的能力包括第一总线设备的能力以及第二总线设备的能力。那么,若单个总线设备无法满足应用程序运行需求的情况下,聚合设备可以满足应用程序运行的需求。应用程序使用聚合设备执行相应的业务,例如,向聚合设备写入数据,又如,从聚合设备读取数据等。因聚合设备呈现的是多个总线设备的能力,使得即便应用程序的运行使用多个总线设备时,无需在应用层,根据不同总线设备的能力,对业务进行划分,而是直接调用聚合设备,执行应用程序所运行的业务,降低了通过多个总线设备运行业务的复杂度,提升了设备的性能。例如,聚合设备已聚合N个能力相同的总线设备,每个总线设备支持的能力为M,具体例如,总线设备为网卡,网卡支持的能力为网络带宽,且网络带宽为400Gbps。那么,设备的OS呈现的是具有能力为N*M的聚合设备。具体例如,若N取值为4,则聚合设备支持的能力为400*4=1600Gbps。设备的应用程序运行一个业务需要1000Gbps的网络带宽,设备的OS上所呈现的聚合设备支持1600Gbps的网络带宽,那么,聚合设备满足该应用程序运行业务的需求,应用程序发出的访问请求直接请求访问该聚合设备即可,无需对应用程序的业务,根据不同的总线设备的能力,进行复杂的划分。Using the method described in this embodiment, since the device OS presents an aggregate device, applications running on the device select the aggregate device based on its capabilities. The aggregate device's capabilities include the capabilities of the first bus device and the capabilities of the second bus device. Therefore, if a single bus device cannot meet the application's operational requirements, the aggregate device can. Applications use the aggregate device to execute corresponding services, such as writing data to or reading data from the aggregate device. Because the aggregate device presents the capabilities of multiple bus devices, even when applications use multiple bus devices, there's no need to partition services at the application layer based on the capabilities of the different bus devices. Instead, applications directly call the aggregate device to execute the services they're running. This reduces the complexity of running services across multiple bus devices and improves device performance. For example, the aggregate device aggregates N bus devices with the same capabilities, each supporting M capabilities. Specifically, the bus devices are network cards, each supporting 400 Gbps network bandwidth. The device OS then presents an aggregate device with N*M capabilities. For example, if N is 4, the capacity supported by the aggregation device is 400 * 4 = 1600 Gbps. If a device application requires 1000 Gbps of network bandwidth to run a service, and the aggregation device presented by the device's OS supports 1600 Gbps of network bandwidth, then the aggregation device meets the application's service requirements. Access requests from the application can directly request access to the aggregation device, eliminating the need to partition the application's services based on the capabilities of different bus devices.
针对于上述方法实施例,需要说明的是:Regarding the above method embodiment, it should be noted that:
(1)实施例所描述的各个流程图的步骤编号仅为执行流程的一种示例,并不构成对步骤执行的先后顺序的限制,本申请实施例中相互之间没有时序依赖关系的步骤之间没有严格的执行顺序。此外,各个流程图中所示意的步骤并非全部是必须执行的步骤,可以根据实际需要在各个流程图的基础上增添或者删除部分步骤。(1) The step numbers in the flowcharts described in the embodiments are merely examples of the execution process and do not limit the order in which the steps are executed. In the embodiments of the present application, there is no strict execution order for steps that have no temporal dependencies. Furthermore, not all steps shown in the flowcharts are mandatory steps, and steps may be added or deleted based on actual needs.
(2)在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。(2) In the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and/or descriptions between different embodiments are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
以上,详细说明了本申请实施例提供的方法。以下,详细说明本申请实施例提供的用于执行上述方法实施例的相关设备和芯片系统。应理解,相关设备实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不予赘述。The above describes in detail the methods provided by the embodiments of the present application. Below, the related devices and chip systems provided by the embodiments of the present application for executing the above-mentioned method embodiments are described in detail. It should be understood that the description of the related device embodiments corresponds to the description of the method embodiments. Therefore, for matters not described in detail, please refer to the above method embodiments. For the sake of brevity, they are not repeated here.
上述方法实施例主要处理装置和总线设备之间交互的角度进行了介绍。可以理解的是,处理装置和总线设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。为了实现上述实施例中功能,处理装置和总线设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。The above method embodiments are mainly introduced from the perspective of the interaction between the processing device and the bus device. It can be understood that, in order to realize the above functions, the processing device and the bus device include hardware structures and/or software modules corresponding to the execution of each function. In order to realize the functions in the above embodiments, the processing device and the bus device include hardware structures and/or software modules corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
本申请实施例提供了一种设备,该设备的具体说明,请参加图1对应的说明,具体不做赘述。结合上述方法实施例所示,以处理装置为主机120包括的处理器101为例,在处理器101调用存储器102中的程序代码,以使在图2对应的实施例中,处理器101执行步骤201、步骤202、执行步骤203以接收第二响应消息、步骤204、步骤205以及步骤208。在图7对应的实施例中,处理器101执行步骤701、步骤702、步骤703、步骤704、步骤705以及步骤706。The embodiment of the present application provides a device. For a detailed description of the device, please refer to the description corresponding to Figure 1, and the details will not be repeated here. In conjunction with the above-mentioned method embodiment, taking the processor 101 included in the host 120 as an example, the processor 101 calls the program code in the memory 102, so that in the embodiment corresponding to Figure 2, the processor 101 executes steps 201, step 202, executes step 203 to receive the second response message, step 204, step 205, and step 208. In the embodiment corresponding to Figure 7, the processor 101 executes steps 701, step 702, step 703, step 704, step 705, and step 706.
本申请实施例提供了一种总线设备。图9为本申请实施例提供的总线设备的一种结构示例图。对总线设备类型的说明,请参见图1对应的说明,具体不做赘述。总线设备900具体包括处理器901、存储器902、总线904以及通信接口903。总线设备900的处理器901、存储器902以及总线904的说明,请参见图1对应的说明,具体不做赘述。总线设备900通过通信接口903与外部设备通信。若总线设备作为第一总线设备,那么,在处理器901调用存储器902中的程序代码的情况下,以使在图2对应的实施例中,处理器901用于执行步骤201以接收扫描请求消息、执行步骤202、执行步骤205以接收第一配置报文和第二配置报文、执行步骤206。在图7对应的实施例中,处理器901用于执行步骤705以接收第一访问请求。An embodiment of the present application provides a bus device. Figure 9 is a structural example diagram of the bus device provided in an embodiment of the present application. For an explanation of the bus device type, please refer to the corresponding explanation of Figure 1, and no further details are given. The bus device 900 specifically includes a processor 901, a memory 902, a bus 904, and a communication interface 903. For an explanation of the processor 901, the memory 902, and the bus 904 of the bus device 900, please refer to the corresponding explanation of Figure 1, and no further details are given. The bus device 900 communicates with external devices through the communication interface 903. If the bus device acts as a first bus device, then, when the processor 901 calls the program code in the memory 902, in the embodiment corresponding to Figure 2, the processor 901 is used to execute step 201 to receive a scan request message, execute step 202, execute step 205 to receive a first configuration message and a second configuration message, and execute step 206. In the embodiment corresponding to Figure 7, the processor 901 is used to execute step 705 to receive a first access request.
若总线设备作为第二总线设备,那么,在处理器901调用存储器902中的程序代码的情况下,以使在图2对应的实施例中,处理器901用于执行步骤201以接收扫描请求消息、执行步骤203、执行步骤206以接收第二配置报文、执行步骤207。在图7对应的实施例中,处理器901用于执行步骤706以接收第二访问请求。If the bus device serves as the second bus device, then, when the processor 901 calls the program code in the memory 902, in the embodiment corresponding to FIG2 , the processor 901 is configured to execute step 201 to receive the scan request message, execute step 203, execute step 206 to receive the second configuration message, and execute step 207. In the embodiment corresponding to FIG7 , the processor 901 is configured to execute step 706 to receive the second access request.
图10为本申请实施例提供的节点的一种结构示例图。具体的,节点1000包括发送模块1001、处理模块1002以及接收模块1003。其中,发送模块1001还可称之为发送器、发送单元、发送装置等。接收模块1003还可称之为接收器、接收单元、接收装置等。处理模块1002用于实现相应的处理功能。发送模块1001以及接收模块1003还可以称为通信接口或通信单元。Figure 10 is a diagram illustrating an exemplary structure of a node provided in an embodiment of the present application. Specifically, node 1000 includes a transmitting module 1001, a processing module 1002, and a receiving module 1003. Transmitting module 1001 may also be referred to as a transmitter, a transmitting unit, a transmitting device, etc. Receiving module 1003 may also be referred to as a receiver, a receiving unit, a receiving device, etc. Processing module 1002 is used to implement corresponding processing functions. Transmitting module 1001 and receiving module 1003 may also be referred to as communication interfaces or communication units.
可选地,节点1000还包括存储单元,该存储单元可以用于存储指令和/或数据,处理模块1002可以读取存储单元中的指令和/或数据,以执行相应的处理控制动作。Optionally, the node 1000 further includes a storage unit, which can be used to store instructions and/or data. The processing module 1002 can read the instructions and/or data in the storage unit to perform corresponding processing control actions.
例如节点1000可为用于执行图2所示的方法实施例的处理装置,那么,发送模块1001用于执行步骤201、步骤205。接收模块1003用于执行步骤202、步骤203,处理模块1002用于执行步骤204、步骤208。例如节点1000可为用于执行图7所示的方法实施例的处理装置,那么,处理模块1002用于执行步骤701、步骤702、步骤703、步骤704。发送模块1001用于执行步骤705、步骤706。For example, node 1000 may be a processing device for executing the method embodiment shown in FIG2 . In this case, sending module 1001 is configured to execute steps 201 and 205. Receiving module 1003 is configured to execute steps 202 and 203, and processing module 1002 is configured to execute steps 204 and 208. For example, node 1000 may be a processing device for executing the method embodiment shown in FIG7 . In this case, processing module 1002 is configured to execute steps 701, 702, 703, and 704. Sending module 1001 is configured to execute steps 705 and 706.
例如节点1000可为用于执行图2所示的方法实施例的第一总线设备,那么,接收模块1003用于执行步骤201以接收扫描请求消息、用于执行步骤205以接收第一配置报文以及第二配置报文。发送模块1001用于执行步骤202以发送第一响应消息、步骤206。例如节点1000可为用于执行图7所示的方法实施例的第一总线设备,那么,接收模块1003用于执行步骤705以接收第一访问请求。For example, node 1000 may be a first bus device for executing the method embodiment shown in FIG2 . In this case, receiving module 1003 is configured to execute step 201 to receive a scan request message and step 205 to receive a first configuration message and a second configuration message. Sending module 1001 is configured to execute step 202 to send a first response message and step 206. For example, node 1000 may be a first bus device for executing the method embodiment shown in FIG7 . In this case, receiving module 1003 is configured to execute step 705 to receive a first access request.
例如节点1000可为用于执行图2所示的方法实施例的第二总线设备,那么,接收模块1003用于执行步骤201以接收扫描请求消息、用于执行步骤206。发送模块1001用于执行步骤203。处理模块1002用于执行步骤207。例如节点1000可为用于执行图7所示的方法实施例的第二总线设备,那么,接收模块1003用于执行步骤706以接收第二访问请求。For example, node 1000 may be a second bus device for executing the method embodiment shown in FIG2 . In this case, receiving module 1003 is configured to execute step 201 to receive a scan request message and to execute step 206. Sending module 1001 is configured to execute step 203. Processing module 1002 is configured to execute step 207. For example, node 1000 may be a second bus device for executing the method embodiment shown in FIG7 . In this case, receiving module 1003 is configured to execute step 706 to receive a second access request.
应理解,各模块执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。It should be understood that the specific process of each module executing the above corresponding steps has been described in detail in the above method embodiment, and for the sake of brevity, it will not be repeated here.
图11为本申请实施例提供的芯片系统的一种结构示例图。该芯片系统1100(或者也可以称为处理系统)包括处理器1110以及输入/输出接口(input/output interface)1120。FIG11 is a diagram illustrating a structure of a chip system according to an embodiment of the present application. The chip system 1100 (or processing system) includes a processor 1110 and an input/output interface 1120.
其中,处理器1110可以为芯片系统1100中的处理电路。处理器1110可以耦合连接存储单元,调用存储单元中的指令,使得芯片系统1100可以实现本申请各实施例的方法和功能。输入/输出接口1120,可以为芯片系统1100中的输入输出电路,将芯片系统1100处理好的信息输出,或将待处理的数据或信令信息输入芯片系统1100进行处理。The processor 1110 may be a processing circuit in the chip system 1100. The processor 1110 may be coupled to a storage unit and call instructions in the storage unit so that the chip system 1100 can implement the methods and functions of the various embodiments of the present application. The input/output interface 1120 may be an input/output circuit in the chip system 1100, outputting information processed by the chip system 1100 or inputting data or signaling information to be processed into the chip system 1100 for processing.
可选地,处理器1110可以由一个或多个处理器实现,包括该一个或多个处理器或该一个或多个处理器中的处理部分。Optionally, the processor 1110 may be implemented by one or more processors, including the one or more processors or a processing portion in the one or more processors.
可选地,输入/输出接口1120可以包括收发电路、输入输出电路或通信接口。Optionally, the input/output interface 1120 may include a transceiver circuit, an input/output circuit, or a communication interface.
作为一种方案,该芯片系统1100用于实现上文各个方法实施例中由源节点或目标节点执行的操作。As a solution, the chip system 1100 is used to implement the operations performed by the source node or the target node in the above various method embodiments.
具体地,处理器1110用于实现上文方法实施例中处理装置或总线设备执行的处理相关的操作;输入/输出接口1120用于实现上文方法实施例中由处理装置或总线设备执行的发送和/或接收相关的操作。Specifically, the processor 1110 is used to implement the processing-related operations performed by the processing device or bus device in the above method embodiment; the input/output interface 1120 is used to implement the sending and/or receiving-related operations performed by the processing device or bus device in the above method embodiment.
本申请实施例还提供一种计算机可读存储介质,其上存储有用于实现上述各方法实施例中由源节点或目标节点执行的方法的计算机指令。An embodiment of the present application also provides a computer-readable storage medium on which computer instructions for implementing the methods executed by the source node or the target node in the above-mentioned method embodiments are stored.
例如,该计算机程序被计算机执行时,使得该计算机可以实现上述方法各实施例中由处理装置或总线设备执行的方法。For example, when the computer program is executed by a computer, the computer can implement the method performed by the processing device or bus device in each embodiment of the above method.
本申请实施例还提供一种计算机程序产品,包含指令,该指令被计算机执行时以实现上述各方法实施例中由处理装置或总线设备执行的方法。An embodiment of the present application further provides a computer program product comprising instructions, which, when executed by a computer, implement the methods performed by the processing device or bus device in the above-mentioned method embodiments.
本申请实施例还提供一种通信系统,该通信系统包括上文各实施例中的设备以及多个总线设备。An embodiment of the present application further provides a communication system, which includes the device in the above embodiments and multiple bus devices.
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。例如,所述计算机可以是个人计算机,服务器,或者网络设备等。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD)等。例如,前述的可用介质包括但不限于:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. For example, the computer can be a personal computer, a server, or a network device, etc. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)). For example, the aforementioned available medium includes, but is not limited to, various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims (23)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410342563.2A CN120692106A (en) | 2024-03-22 | 2024-03-22 | An access method, related device and storage medium |
| CN202410342563.2 | 2024-03-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025195208A1 true WO2025195208A1 (en) | 2025-09-25 |
Family
ID=97074220
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2025/081494 Pending WO2025195208A1 (en) | 2024-03-22 | 2025-03-10 | Access method, related devices, and storage medium |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN120692106A (en) |
| WO (1) | WO2025195208A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140068607A1 (en) * | 2012-09-05 | 2014-03-06 | Michael Tsirkin | Managing safe removal of a passthrough device in a virtualization system |
| CN112789565A (en) * | 2018-10-04 | 2021-05-11 | 恩德莱斯和豪瑟尔过程解决方案股份公司 | Aggregator device for standardized access to multiple network segments of a field bus system |
| CN115333991A (en) * | 2022-08-12 | 2022-11-11 | 迈普通信技术股份有限公司 | Cross-device link aggregation method, device, system and computer-readable storage medium |
| CN116431543A (en) * | 2023-04-18 | 2023-07-14 | 青岛本原微电子有限公司 | Bus access control system and control method based on aggregation distribution |
-
2024
- 2024-03-22 CN CN202410342563.2A patent/CN120692106A/en active Pending
-
2025
- 2025-03-10 WO PCT/CN2025/081494 patent/WO2025195208A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140068607A1 (en) * | 2012-09-05 | 2014-03-06 | Michael Tsirkin | Managing safe removal of a passthrough device in a virtualization system |
| CN112789565A (en) * | 2018-10-04 | 2021-05-11 | 恩德莱斯和豪瑟尔过程解决方案股份公司 | Aggregator device for standardized access to multiple network segments of a field bus system |
| CN115333991A (en) * | 2022-08-12 | 2022-11-11 | 迈普通信技术股份有限公司 | Cross-device link aggregation method, device, system and computer-readable storage medium |
| CN116431543A (en) * | 2023-04-18 | 2023-07-14 | 青岛本原微电子有限公司 | Bus access control system and control method based on aggregation distribution |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120692106A (en) | 2025-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108984465B (en) | A message transmission method and device | |
| US11829309B2 (en) | Data forwarding chip and server | |
| US20200387405A1 (en) | Communication Method and Apparatus | |
| US20230342087A1 (en) | Data Access Method and Related Device | |
| WO2022007470A1 (en) | Data transmission method, chip, and device | |
| US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
| CN103763173A (en) | Data transmission method and computing node | |
| US20230152978A1 (en) | Data Access Method and Related Device | |
| EP4421631A1 (en) | Data migration method and apparatus, and electronic device | |
| CN117033275B (en) | DMA method and device between acceleration cards, acceleration card, acceleration platform and medium | |
| US20240356886A1 (en) | Network Node Configuration Method and Apparatus, and Access Request Processing Method and Apparatus | |
| WO2024217333A1 (en) | Io access method and apparatus based on block storage, and electronic device and medium | |
| EP4407952A1 (en) | Network storage method, storage system, data processing unit, and computer system | |
| WO2025118533A1 (en) | Data transmission method and computing device | |
| WO2023174146A1 (en) | Offloading-card namespace management system and method, and input/output request processing system and method | |
| CN115643318A (en) | Command Execution Method, Device, Equipment, and Computer-Readable Storage Medium | |
| CN111679918A (en) | A message transmission method and device | |
| WO2025190156A1 (en) | Data transmission method, node and storage medium | |
| CN116204463A (en) | Data processing method and system, electronic device, storage medium | |
| CN117971135B (en) | Storage device access method and device, storage medium and electronic device | |
| WO2025195208A1 (en) | Access method, related devices, and storage medium | |
| WO2025007852A1 (en) | Virtual-instance deployment method and system based on cloud service | |
| CN118612272A (en) | Vehicle-mounted image transmission method, device, electronic device and storage medium | |
| CN116225742A (en) | Message distribution method, device and storage medium | |
| US11601515B2 (en) | System and method to offload point to multipoint transmissions |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25772916 Country of ref document: EP Kind code of ref document: A1 |