Data processing method, device, storage medium and chip system

By dynamically setting bandwidth units for different business flow data, the problem of unreasonable link bandwidth allocation in the existing technology is solved, and efficient bandwidth resource management and low-latency transmission of multi-stream concurrent transmission are achieved.

CN115604123BActive Publication Date: 2025-10-03HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110785349.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-07-12
Publication Date
2025-10-03
Estimated Expiration
2041-07-12

AI Technical Summary

Technical Problem

When multiple business flow data are transmitted through the same interface, the existing technology cannot effectively allocate link bandwidth, resulting in bandwidth resource waste or transmission delay, and cannot meet the bandwidth requirements of different business categories.

Method used

By determining the bandwidth units corresponding to different business flow data, dynamically setting different bandwidth units according to business categories, data segmentation and integration are performed to achieve multi-stream concurrent transmission.

Benefits of technology

It achieves reasonable allocation of bandwidth resources, reduces transmission delay, reduces bandwidth waste, and meets the transmission needs of different business categories.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115604123B_ABST
    Figure CN115604123B_ABST
Patent Text Reader

Abstract

The present application provides a data processing method, device, storage medium, and chip system, relating to the field of data transmission technology, and capable of realizing concurrent transmission of multiple stream services. The method comprises: determining bandwidth units corresponding to multiple business flow data to be processed; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data volumes; obtaining, based on the at least two bandwidth units, at least two data blocks corresponding to the at least two bandwidth units with different data volumes; and integrating the at least two data blocks to obtain an integrated target data stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data transmission technology, and in particular to a data processing method, device, storage medium and chip system. Background Art

[0002] Currently, high-speed data transmission interfaces such as the Universal Serial Bus (USB), DisplayPort (DP), and High Definition Multimedia Interface (HDMI) are widely used. Not only do people have higher requirements for interface transmission speeds, but they also want the same interface to be able to transmit multiple or even multiple types of data. When multiple service flows of different service categories are transmitted simultaneously through the same interface, they need to share the total link bandwidth. How to effectively allocate link bandwidth among these multiple service flows has become a technical problem that needs to be solved by those skilled in the art. Summary of the Invention

[0003] The present application provides a data processing method, device, storage medium and chip system, which can effectively allocate link bandwidth and realize multi-stream concurrent transmission of business flow data.

[0004] In the first aspect, the technical solution of the present application provides a data processing method, which is applied to a first device, and the first device is used to send data through a data transmission interface; the method includes: determining the bandwidth units corresponding to the multiple business flow data to be processed; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data volumes; according to the at least two bandwidth units, obtaining at least two data blocks corresponding to the data volumes of the at least two bandwidth units; at least two data blocks are obtained based on the multiple business flow data; the at least two data blocks are integrated to obtain the integrated target data stream. Allocating bandwidth units of different sizes to multiple business flow data can meet the different bandwidth requirements of business flow data of different business categories in the multi-stream concurrent transmission scenario, and realize the reasonable allocation of bandwidth resources.

[0005] In one possible implementation, determining bandwidth units corresponding to multiple pieces of business flow data to be processed includes: identifying service categories corresponding to the multiple pieces of business flow data; and determining the bandwidth unit corresponding to the service category corresponding to any one piece of business flow data in the multiple pieces of business flow data as the bandwidth unit corresponding to the one piece of business flow data. Determining the bandwidth unit of the business flow data based on the service category to which the business flow data belongs allows the multiple pieces of business flow data to be divided based on the service category, and corresponding bandwidth units are configured for each service category to meet the varying bandwidth resource requirements of services in different service categories.

[0006] In a possible implementation, the multiple service categories include: at least two of audio service, video service, and USB service, for example, audio service and video service; wherein the USB service includes at least one of various services supported by the USB interface.

[0007] In one possible implementation, the bandwidth unit corresponding to the audio service has an 8-bit data unit, while the bandwidth unit corresponding to the video service and USB service has an 128-bit data unit. The 8-bit bandwidth unit corresponding to the audio service can meet the transmission rate requirements of most audio services, thereby reducing bandwidth resource usage without affecting the smoothness of audio playback on the host device. The 128-bit bandwidth unit corresponding to the video service is compatible with the encoding system and, compared to the 8-bit bandwidth unit in DP2.0, transmits a larger amount of data within a single Time Slot. Under the same total bandwidth resource conditions, compared to DP2.0, this solution can transmit more data with fewer data blocks, thereby reducing data block management overhead and lowering transmission latency.

[0008] In one possible implementation, before integrating at least two data blocks, the method further includes: determining the bandwidth numbers corresponding to the multiple business flow data based on at least the target bandwidths corresponding to the multiple business flow data, the total number of data blocks in a cycle, and the effective bandwidth; wherein the effective bandwidth is the bandwidth used to transmit the multiple business flow data. In one possible implementation, integrating at least two data blocks to obtain a target data stream to be sent includes: integrating at least two data blocks according to the bandwidth number to obtain a target data stream including at least one cycle; wherein the number of data blocks corresponding to any business flow data in a cycle is equal to the bandwidth number corresponding to any business flow data. The more bandwidth number allocated to a business flow data in a cycle, the greater the amount of data transmitted per unit time for the business flow data. Therefore, by setting the bandwidth number, the allocation of bandwidth resources between the multiple business flow data can be further controlled, thereby matching the different requirements of different business flow data for bandwidth resources, and realizing multi-dimensional regulation of bandwidth resources.

[0009] In one possible implementation, integrating at least two data blocks includes: obtaining serial numbers corresponding to multiple pieces of business flow data; and sequentially arranging the data blocks corresponding to the multiple pieces of business flow data within a cycle according to the serial numbers to obtain a data block sequence. The data block sequence includes multiple cyclically occurring combinations of first data blocks, wherein the multiple first data blocks in the first data block combinations are derived from the at least two pieces of business flow data and are arranged in the order of the serial numbers of the at least two pieces of business flow data. This arrangement is easy to implement and manage.

[0010] In one possible implementation, in the first data block combination, any two adjacent first data blocks originate from different items of business flow data. This arrangement of data blocks for different items of business flow data is performed in sequence, avoiding the continuous occupation of multiple data blocks by the same item of business flow data. This arrangement ensures that the data blocks of each item of business flow data have equal priority in the arrangement order, thus avoiding transmission delays for some services due to the arrangement. Compared to the continuous arrangement of multiple data blocks for the same item of business flow data within a cycle in DP2.0, the arrangement provided in this embodiment of the present application can ensure the concurrent transmission of multiple business flow data and reduce the delay of some services.

[0011] In one possible implementation, the data block sequence further includes a second data block combination; in the data block sequence, the second data block combination is arranged after multiple first data block combinations, and the second data blocks in the second data block combination are derived from the same business flow data.

[0012] In one possible implementation, a port flow table is stored in the first device. The port flow table is used to record at least one of a service category, a bandwidth, and a serial number corresponding to multiple service flow data. The setting of the port flow table can facilitate the maintenance of data transmission at each port (i.e., a data transmission interface).

[0013] In one possible implementation, after determining the bandwidth units corresponding to the multiple service flow data to be processed, the method further includes: generating a message header, wherein the message header carries the number information, service category information, bandwidth unit information, and bandwidth quantity information corresponding to the multiple service flow data; and encapsulating the message header in the target data flow. Encapsulating the message header enables synchronization of information such as bandwidth units between different devices.

[0014] In a possible implementation, encapsulating the message header in the target data stream includes: encapsulating a message header every N cycles in the target data stream, where N is a positive integer greater than or equal to 1.

[0015] In a possible implementation, one cycle includes 125 data blocks.

[0016] In one possible implementation, before determining the bandwidth units corresponding to the multiple business flow data to be processed, the method further includes: obtaining business parameters corresponding to the multiple business categories; the business parameters include at least one of a target bandwidth and a transmission frequency; the transmission frequency is the frequency at which multiple business flow data of the same business category are transmitted through a data transmission interface within a predetermined time period; and determining the bandwidth units corresponding to the multiple business categories based on the business parameters. The target bandwidth is the bandwidth requested by the business from the system. The target bandwidth reflects the single transmission rate requirement of the business flow data, and the transmission frequency reflects the frequency of the host device's demand for this type of business flow data. The target bandwidth and transmission frequency can represent the degree of bandwidth demand of the business flow data. Therefore, allocating bandwidth units based on these two business parameters can effectively match the corresponding bandwidth requirements.

[0017] In one possible implementation, bandwidth units corresponding to multiple service categories are determined based on service parameters, including: determining a first service category with the smallest first target bandwidth based on first target bandwidths corresponding to the multiple service categories; determining a first bandwidth unit corresponding to the first service category; and, among at least two bandwidth units, determining the first bandwidth unit with the smallest data volume.

[0018] In one possible implementation, after determining that the first service category corresponds to the first bandwidth unit, the method further includes determining that at least one service category other than the first service category among the multiple service categories, having the same data volume, corresponds to the same bandwidth unit. This bandwidth unit allocation method is easy to implement and reduces the complexity of data management and maintenance.

[0019] In one possible implementation, before determining that at least one of the multiple service categories other than the first service category corresponds to the same bandwidth unit with the same data volume, the method further includes: determining the data volume of the minimum data object for encoding the target data stream; determining that at least one of the multiple service categories other than the first service category corresponds to the same bandwidth unit with the same data volume, including: determining that at least one of the multiple service categories other than the first service category corresponds to the same bandwidth unit with the same data volume, and the data volume of the same bandwidth unit is the same as the data volume of the minimum data object. Since encoding is required in most cases after obtaining the target data stream, and the encoding is then transmitted through a physical link, this bandwidth unit allocation method keeps the size of the bandwidth unit consistent with the data volume of the minimum data object during encoding, is compatible with the encoding system, and reduces the workload of adaptively changing the encoding system.

[0020] In one possible implementation, after determining that the first service category corresponds to the first bandwidth unit, the method further includes: determining that at least two service categories, other than the first service category, among the multiple service categories correspond to at least two bandwidth units with different data volumes. This bandwidth unit allocation method can better meet the varying needs of different service categories, compared to allocating only two bandwidth units to all service categories. The greater the number of bandwidth units, the greater the overhead in data block management and maintenance, and may require adaptive modification of the encoding system.

[0021] In one possible implementation, after determining the bandwidth unit corresponding to the service category corresponding to any one of the multiple service flow data as the bandwidth unit corresponding to any one of the multiple service flow data, the method further includes: obtaining second target bandwidths corresponding to the multiple service flow data respectively; and adjusting the bandwidth unit corresponding to any one of the service flow data when the difference between the second target bandwidth corresponding to any one of the service flow data and the first target bandwidth corresponding to the service category corresponding to any one of the service flow data exceeds a predetermined threshold.

[0022] In one possible implementation, if the service category corresponding to any service flow data item is audio, the target bandwidth is determined based on at least one of the audio sampling rate, audio sampling bit width, and number of channels; and / or if the service category corresponding to any service flow data item is video, the target bandwidth is determined based on at least one of the video resolution, refresh rate, and color depth. This approach can accurately obtain the target bandwidth required for video or audio services.

[0023] In a possible implementation, the data volume of a single data block obtained based on any item of service flow data is the same as the data volume of a bandwidth unit corresponding to any item of service flow data.

[0024] In one possible implementation, a first device is configured to send data to a second device or a routing device via a data transmission interface. After determining the bandwidth units corresponding to the multiple service flow data items to be processed, the method further includes: generating a notification message containing number information, service category information, and bandwidth unit information corresponding to at least one service flow data item; transmitting the notification message to the routing device or the second device via a first link to synchronize the bandwidth unit information; the first link being a physical link connecting the first device and the second device or the routing device. This approach provides a more diverse synchronization mechanism for information such as bandwidth units, avoiding the problem of data transmission failure caused by the failure of a single synchronization mechanism, and improving system stability.

[0025] In a possible implementation, the first link is an SB link or an AUX channel.

[0026] In a second aspect, the technical solution of the present application provides a data processing method, which is applied to a second device, and the second device is used to receive data through a data transmission interface; the method includes: receiving a target data stream; the target data stream includes at least two data blocks, and the at least two data blocks are obtained based on multiple business flow data; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data sizes; determining the bandwidth units corresponding to the multiple business flow data respectively; splitting the target data stream at least according to the bandwidth units corresponding to the multiple business flow data respectively, and obtaining multiple data blocks corresponding to the multiple business flow data respectively; integrating the multiple data blocks corresponding to the same business flow data into corresponding business flow data, and obtaining the restored multiple business flow data.

[0027] On the third aspect, the technical solution of the present application provides a data processing method, which is applied to a routing device, and the routing device is used to forward data through a data transmission interface; the method includes: receiving a target data stream; in the target data stream, multiple business flow data of different business categories correspond to at least two bandwidth units with different data sizes; determining the bandwidth units corresponding to the multiple business flow data; splitting the target data stream at least according to the bandwidth units corresponding to the multiple business flow data, to obtain multiple data blocks corresponding to the multiple business flow data; determining the destination addresses corresponding to the multiple business flow data; integrating multiple data blocks corresponding to at least one business flow data corresponding to the same destination address, obtaining sub-data streams corresponding to the addresses of at least one item, and forwarding them separately.

[0028] In one possible implementation, determining the bandwidth units corresponding to the multiple business flow data includes: obtaining a message header encapsulated in the target data flow, and determining the bandwidth units corresponding to the multiple business flow data based on at least the bandwidth unit information carried in the message header.

[0029] In one possible implementation, determining bandwidth units corresponding to multiple business flow data includes: identifying business categories corresponding to multiple business flow data, and determining the bandwidth unit corresponding to the business category corresponding to any business flow data as the bandwidth unit corresponding to any business flow data.

[0030] In one possible implementation, after determining the bandwidth unit corresponding to the service category corresponding to any item of business flow data as the bandwidth unit corresponding to any item of business flow data, the method further includes: receiving a notification message; the notification message carries the number, service category and bandwidth unit information corresponding to at least one item of business flow data; the notification message is transmitted through a first link; the first link is a physical link connected between the first device and the routing device; and according to the bandwidth unit corresponding to at least one item of business flow data recorded in the notification message, modifying the bandwidth unit corresponding to the business flow data with the corresponding number.

[0031] In one possible implementation, the message header carries bandwidth numbers corresponding to multiple business flow data items; the target data stream includes at least one cycle, wherein the number of data blocks corresponding to any business flow data item in one cycle is equal to the bandwidth number corresponding to any business flow data item; the method further includes: obtaining bandwidth resource information of the second link; the second link is a physical link connected between the routing device and the second device, or connected between different routing devices; based on the bandwidth resource information, adjusting the bandwidth number corresponding to at least one business flow data item.

[0032] In a fourth aspect, the technical solution of the present application also provides a data transmission system, which includes: a first device for executing any method in the above-mentioned first aspect; a second device for executing any method in the above-mentioned second aspect; a physical link for transmitting the target data stream as described in any method in the above-mentioned first aspect or second aspect, or for transmitting multiple data blocks corresponding to at least one business flow data corresponding to the same destination address as described in any method in the above-mentioned third aspect.

[0033] In the fifth aspect, the technical solution of the present application also provides a data transmission interface for transmitting the target data stream as described in any one of the methods in the first or second aspects above, or for transmitting multiple data blocks corresponding to at least one business flow data corresponding to the same destination address as described in any one of the methods in the third aspect above.

[0034] In the sixth aspect, the technical solution of the present application also provides a physical link for transmitting the target data stream as described in any one of the methods in the first or second aspects above, or for transmitting multiple data blocks corresponding to at least one business flow data corresponding to the same destination address as described in any one of the methods in the third aspect above.

[0035] Among them, a sub-data stream is obtained by integrating multiple data blocks corresponding to at least one business flow data corresponding to the same destination address. Therefore, the physical link or the data transmission interface can be used to transmit the sub-data stream as described in the third aspect above.

[0036] In the seventh aspect, the technical solution of the present application also provides an electronic device for sending data through a data transmission interface, the electronic device comprising: one or more processors; a memory; at least one application; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs include instructions, which, when executed by the electronic device, enable the electronic device to execute a method as described in any one of the first to third aspects above.

[0037] In an eighth aspect, the technical solution of the present application further provides a storage medium comprising computer instructions, which, when executed on an electronic device, enables the electronic device to execute a method as described in any one of the first to third aspects above.

[0038] In the ninth aspect, the technical solution of the present application also provides a chip system, including: a communication interface for inputting and / or outputting data; a processor for executing a computer executable program so that a device equipped with the chip system executes a method as described in any one of the first to third aspects above.

[0039] In the tenth aspect, the technical solution of the present application also provides a software program product, which includes program instructions. When the program instructions are run on an electronic device, the electronic device executes the method as described in any one of the first to third aspects above.

[0040] The data processing method, device, storage medium, and chip system provided in the embodiments of the present application allocate bandwidth units of different specifications to business flow data of different business categories, segment and integrate the data according to the data volume of the bandwidth units, and process the business flow data of different business categories into a single business flow for transmission, thereby realizing the effective allocation and management of bandwidth resources in the scenario of concurrent transmission of multiple business flow data. Specifically, different bandwidth units are allocated to different business flow data categories, which can adapt to the differences in bandwidth requirements of different business flow data categories during transmission and meet the different transmission speed requirements of different types of business. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 This is an example diagram of an application scenario of the data processing method provided in an embodiment of the present application;

[0042] Figure 2 This is an example diagram of a DP2.0 cycle in the related art;

[0043] Figure 3 This is an example diagram of the business flow data 2 in the related art DP2.0 being insufficient to fill a TimeSlot;

[0044] Figure 4This is a schematic diagram of data transmission according to priority in the related technology USB4 1.0;

[0045] Figure 5 This is a system architecture diagram of the data processing method provided in the embodiment of the present application;

[0046] Figure 6 This is an example diagram of an application scenario with a routing device in the data processing method provided in an embodiment of the present application;

[0047] Figure 7 This is a flowchart of the data processing method provided in the embodiment of the present application;

[0048] Figure 8 This is a schematic diagram of a business category classification of the data processing method provided in an embodiment of the present application;

[0049] Figure 9 Schematic diagram of data segmentation and integration in one embodiment of the data processing method provided in the embodiment of the present application;

[0050] Figure 10 This is a schematic diagram of filling data at the end of a cycle in one embodiment of the data processing method provided by an embodiment of the present application;

[0051] Figure 11 Schematic diagram of the hardware architecture of the source device provided in an embodiment of the present application;

[0052] Figure 12 Schematic diagram of the hardware architecture of the sink device provided in an embodiment of the present application;

[0053] Figure 13 This is a schematic diagram of the hardware architecture of the routing device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0054] The technical solution in this application will be described below with reference to the accompanying drawings.

[0055] The data processing solution provided in the embodiment of the present application can be applied to various application scenarios in which data is transmitted from a source device to a sink device, wherein the source device is the sender of the data and the sink device is the receiver of the data. The source device (i.e., the first device) can be any device that stores data content (such as audio, video, and other media data). Figure 1As shown, a computer host 101, a laptop computer 102, a digital video converter box (Set Top Box, STB, referred to as set-top box) 103, a DVD (Digital Video Disc) 104, etc. can all be used as source devices; the sink device (i.e., the second device) can be any device with the ability to express data (such as media data), such as a display 105, a display screen (such as a TV display or a smart screen such as Huawei Smart Screen) 106, a speaker 107, etc., and can also be Figure 1 Augmented reality (AR) equipment, virtual reality (VR) equipment, projectors, etc. not shown in the figure.

[0056] Data is transmitted between the source device and the sink device via a data transmission interface and a corresponding physical link. The data transmission interface may be a variety of existing interfaces such as a DP (e.g., DP2.0) interface, a USB interface, and an HDMI interface, or a new interface designed to implement the data processing method provided in the embodiments of the present application.

[0057] In the existing technology, the scheme for concurrent transmission of multi-stream data based on high-speed data transmission interface does not take into account the differences in transmission speed requirements of different types of services (i.e., different service categories), and cannot meet the different bandwidth requirements of different categories of services. It may also lead to problems such as large data segmentation workload, excessive bandwidth waste or service transmission delays.

[0058] For example, taking DP2.0 (DisplayPort2.0) as an example, it has established a bandwidth allocation mechanism for multi-service transmission scenarios to support Multi-Stream Transport (MST) mode, such as Figure 2 As shown in the figure, when multi-stream transmission occurs, the total link bandwidth is divided into fixed-size bandwidth units, called time slots, where Figure 2 Each small unit in the byte is a time slot. The minimum bandwidth that can be allocated to each service is the data volume of one bandwidth unit, or the data volume corresponding to one time slot. For example, in the current DP2.0 protocol standard, the data volume of a time slot is 8 bits (binary digits). Therefore, when allocating bandwidth, the data volume of the bandwidth unit corresponding to different service types is 8 bits. During transmission, every 64 time slots form a cycle, and each cycle always begins with a multi-stream transport packet header (MTPH).

[0059] Under this allocation method, different types of service flow data are allocated the same-sized bandwidth units, namely common bandwidth units. If the data volume of each common bandwidth unit is small, for example, 8 bits, then when the upper layer splits the data blocks, the large data must be forcibly split into smaller blocks to match the smaller common bandwidth units. This increases the workload of the splitting process and may require more overhead in the data header to manage each small data block. Bandwidth units can also be called bandwidth units.

[0060] However, increasing the data volume of a common bandwidth unit may waste bandwidth resources for services with low transmission rate (i.e., bandwidth, representing the amount of data transmitted per unit time). For example, assuming that 1 second is divided into N time slots, and the total bandwidth carried by these N time slots is Y, then each time slot transmits Y / N Mbps of bandwidth. If an audio service requires X Mbps of bandwidth, the number of time slots to be allocated within each N time slots is (N*X) / (Y*1024), where N is the number of time slots in 1 second and is a constant. Since the number of time slots is rounded up when calculating the number of time slots, when (N*X) / 1024 is less than Y, the audio service is rounded up and allocated one time slot. The smaller X is, the more space remains in the single time slot, resulting in a waste of bandwidth resources. For example, assume that the audio service requires 1.1 Mbps of bandwidth, and the total link bandwidth Y = 16.2 Gbps. The larger the amount of data per time slot, the smaller N. For N < 1024, the audio service requires less than 0.07 time slots, rounded up to 1. Of this, at least 0.93 time slots of bandwidth are wasted. Padding data should be inserted during actual transmission of this wasted portion.

[0061] Therefore, for services that do not require high transmission rates, the amount of data in the required bandwidth unit is much smaller than the amount of data in the established public bandwidth unit. In other words, the amount of data actually transmitted in each time slot is not enough to fill the data space of one time slot, resulting in serious bandwidth waste. Figure 3As shown in the figure, service flow data 2 represents a service type with low bandwidth requirements. The amount of data in its individual data blocks is insufficient to fill a time slot, resulting in a waste of bandwidth resources. Service flow data 1 represents a service type with relatively high bandwidth requirements. To reduce this waste, when the upper layer splits the data blocks, multiple small data blocks are forcibly aggregated and spliced ​​into larger data blocks to fit within the time slot, in order to fit within the larger common bandwidth unit. This results in additional splicing work and increased transmission delay.

[0062] For USB4 1.0, see Figure 4 As shown in the figure, USB4 1.0 supports multi-stream transmission. Before each service is transmitted, it independently applies for bandwidth. After scheduling and arbitration through a three-layer structure mechanism, the highest-priority service is transmitted first, while other low-priority service streams wait for transmission. After the highest-priority service is transmitted, the bandwidth is released, and other services are transmitted according to a similar principle. USB4 1.0 does not allocate bandwidth, which can be considered as no multi-stream time-sharing concurrency. From a micro perspective, it is an exclusive transmission, that is, the highest-priority service is transmitted first, which will cause greater delays in the response of other low-priority services.

[0063] In view of this, in order to reduce the occurrence of the above problems, the embodiments of the present application propose a new bandwidth allocation mechanism in a multi-stream concurrent transmission scenario, and a data processing method based on the bandwidth allocation mechanism, which sets different bandwidth units for different business categories. For example, according to the business category of each business flow to be transmitted, the actual bandwidth required, the transmission behavior, etc., different bandwidth units are flexibly (dynamically and statically) set, wherein different business categories correspond to at least two bandwidth units with different data volumes. This solution meets the different bandwidth requirements of different business categories and reasonably allocates bandwidth resources. Moreover, since the bandwidth unit is no longer divided equally, for business types (i.e., business categories) with high transmission speed requirements, a larger bandwidth unit can be set, reducing the number of times large blocks of data in the business type data are segmented, reducing the overhead of segmentation and management. Moreover, the data integration solution adopted in some embodiments of the method can reduce the transmission delay time of some businesses and achieve multi-stream concurrency from a macro perspective. In addition, by adjusting the size of the bandwidth unit data volume, bandwidth waste can be reduced to a certain extent.

[0064] See Figure 5 , the data processing solution provided in the embodiment of the present application can be based on Figure 5 The system architecture shown (for example only) is implemented. Each service flow (i.e., each service flow data) in the source device undergoes multi-stream processing and is then transmitted to the sink device via a physical link. The data is then integrated and restored to its individual service flows in the sink device. The multi-stream processing process can employ the data processing method provided in the embodiments of this application.

[0065] In one possible implementation, the physical link may include a primary link and an auxiliary link, where the auxiliary link may be an SB Link (Sideband Link). The primary link is used to transmit various service flows, such as video, audio, and USB services. The SB Link is a full-duplex link with low-speed communication capabilities, used to control information exchange between devices. For example, the SB Link can be used to control information exchange between a source device and a sink device, between a source device and a routing device, between routing devices, or between a routing device and a sink device.

[0066] like Figure 5 As shown in the figure, the source device and the sink device can be connected through a single physical link or a multi-level physical link. If it is a single physical link, the source device and the sink device are directly connected. A typical example of a direct connection is that a set-top box outputs audio and video content to a monitor or TV through a media interface. If it is a multi-level physical link, each level of the physical link between the source device and the sink device is connected through a routing device. For example, in the home scenario, refer to Figure 6 As shown, the source device in the living room can be connected to the sink device display and speakers in the bedroom through the routing device. There can be multiple routing devices between the source device and the sink device. In actual applications, the routing device can be connected to one or more source devices, one or more sink devices, and one or more upstream routing devices, or one or more downstream routing devices, and is responsible for forwarding each service flow. Among them, Figure 6 Please refer to the connection link between the source device, router device, speakers and display. Figure 5 The secondary physical link shown in .

[0067] Routing devices can extend transmission distance, distribute paths, and expand interfaces. For example, Figure 5 In the example, the routing device between the source and sink devices has four ports, while the source device only has two ports. Therefore, the routing device expands the number of ports. Under current technical conditions, the effective transmission distance of a high-speed data transmission interface is generally limited to 20 meters when the physical link is transmitted via copper cable. The configuration of the routing device can extend the transmission distance. On the other hand, when there are multiple sink devices that need to receive data from the source device, a routing device is required to distribute the data. For example, the same set-top box, as the source device, needs to be connected to the monitor and speakers in the bedroom. The monitor receives video data, while the speakers receive audio data. The routing device needs to split the service flow sent by the source device and integrate it into the corresponding video service flow and audio service flow, and send them to the monitor and speakers respectively.

[0068] See Figure 7As shown in the figure, the implementation of a data transmission process requires the coordinated cooperation of three parts, including the transmitter, the physical link, and the receiver. The transmitter can be a source device or a routing device; the receiver can be a sink device or a routing device. If the transmitter is a source device, it contains multiple service sources and data processing modules. If the transmitter is a routing device, it does not contain a service source, but only a data processing module. If the receiver is a sink device, it contains multiple service sinks and data processing modules. If the receiver is a routing device, it does not contain a service sink, but only a data processing module. The physical link includes the main link and the SB Link, which is located between the transmitter and the receiver and is used to transmit data.

[0069] The data processing method provided in the embodiment of the present application is described in detail below. The process of the data processing method provided in the embodiment of the present application may include bandwidth allocation, data segmentation and data integration. The step of bandwidth allocation can be performed in advance, that is, determining the bandwidth units corresponding to the multiple business flow data to be processed, wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data of different business categories correspond to at least two bandwidth units with different data sizes, and then according to the data size of the bandwidth unit corresponding to each business flow data, each business flow data is segmented respectively to obtain data blocks corresponding to the data size and the corresponding bandwidth unit, and the sizes of the data blocks corresponding to different categories are different, and then the data blocks of different specifications are integrated to obtain the target data stream to be sent.

[0070] It should be noted that the bandwidth required by business flow data reflects the transmission rate requirements of business flow data from a macro perspective, and the bandwidth unit actually divides the unit time into multiple smaller time slots. The larger the amount of data transmitted in each time slot, the more data is transmitted per unit time. That is, the bandwidth unit in the embodiment of the present application reflects the bandwidth resources occupied by business flow data during transmission from a micro perspective. The larger the data volume of the bandwidth unit, the more bandwidth resources are allocated to the business category or the business flow data.

[0071] In one possible implementation, see Figure 7 As shown in the figure, data adaptation and caching can also be performed before data segmentation. Specifically, data output from various service sources is adapted and entered into corresponding caches. After data segmentation and integration, all data is transmitted to the receiving end via a physical link. Adaptation involves receiving data from various service sources, arranging the service flow data according to specific rules, and completing data packetization. Caching involves storing the service flow data to provide input for data segmentation.

[0072] It should be noted that Figure 7The service sources shown in the figure are shown by service category to illustrate the concurrent transmission of multiple categories of service flow data. In actual applications, the service source can be multiple service flow data items, and multiple items in the multiple service flow data items can belong to the same service category. For example, the service sources in actual data processing are audio service flow data 0, video service flow data 1, video service flow data 2, video service flow data 3, and USB3 service flow data 4, where 0-4 are the numbers corresponding to each service flow data item, one number corresponds to one service flow data item, and one service category can correspond to multiple service flow data items.

[0073] It should be noted that in the embodiments of the present application, the business flow data can be a continuous data stream corresponding to the business object to be transmitted (e.g., a file); or it can be one or more non-continuous data blocks corresponding to the business object to be transmitted. In some embodiments, one item of business flow data corresponds to one file to be transmitted.

[0074] Because data chunking requires dividing data chunks into correspondingly sized bandwidth units, bandwidth allocation must precede data chunking. There's no specific order in which bandwidth allocation, adaptation, and caching should be performed. Subsequent data processing, such as adaptation and caching, can occur after determining the bandwidth units for each service flow.

[0075] Specifically, bandwidth allocation can be based on service categories, which requires first determining multiple service categories and then determining the bandwidth units corresponding to each service category. Figure 8 As shown, as one possible implementation method, in the embodiments of the present application, service flow data in various data formats is divided into audio service, video service, USB service, and other service categories. Other service categories can be customized, such as image data, text data, etc. USB service refers to one or more of the various services supported by the USB interface, that is, data formats that can be transmitted through the USB interface can be classified as USB service. For ease of understanding and description, the following description mainly uses the three categories of audio service, video service, and USB service as examples.

[0076] Among them, the audio service category may include any one or more of the following audio file formats: Moving Picture Experts Group Audio Layer III (MP3) or MP3Pro format; Moving Picture Experts Group (MPEG) format, such as MPEG-1, MPEG-2, MPEG-Layer3, MPEG-4, etc.; WMA (Windows Media Audio) format; Advanced Audio Coding (AAC) format; RealAudio format, etc.

[0077] The video service category may include any one or more of the following audio file formats: RealVideo format; FLV (FLASH VIDEO) format; MPEG-4 format; WMV (Windows Media Video); Audio Video Interleaved (AVI); Advanced Streaming Format (ASF); MOV (QuickTime encapsulation format); 3rd Generation Partnership Project (3GPP or 3GP) file format; DivX format; XviD format; FLV (Flash Video) format, etc.

[0078] The purpose of setting the USB service category is to be compatible with the current USB interface, that is, the data processing solution provided in the embodiment of the present application can be applied to the USB interface, or the data transmission interface based on this solution is a new interface compatible with USB services.

[0079] Specifically, the bandwidth units corresponding to the multiple service categories can be determined in the following manner:

[0080] Obtain service parameters corresponding to multiple service categories, and determine the bandwidth units corresponding to the corresponding service categories based on the service parameters. For example, obtain service parameters corresponding to audio services, video services, and USB services respectively. Service parameters can be parameters that can characterize the degree of demand for bandwidth resources when transmitting service flow data. For example, target transmission rate (i.e., target bandwidth), transmission behavior, etc. can all be used as service parameters. The transmission behavior can be the various behaviors of multiple data under the same service category during the historical transmission process. The degree of demand for bandwidth resources of a certain service category can be summarized based on the historical behavior of the service category. For example, the transmission behavior can include the transmission frequency.

[0081] Specifically, the service parameter may be a target bandwidth, which is the target value or expected value of the bandwidth that the service flow data of the service category needs to occupy during transmission, that is, the expected value of the amount of data that needs to be transmitted per unit time. This target value or expected value can ensure that the playback smoothness on the host device side is not affected when transmitting and playing at the same time. For example, the target bandwidth for transmitting video data from a set-top box to a TV LCD screen should ensure that the TV LCD screen can play the video smoothly.

[0082] Exemplarily, the service parameters of video data may include video resolution, refresh rate, and color depth, i.e., the target bandwidth of the video data may be determined based on at least one of the video resolution, refresh rate, and color depth of the video data. Generally speaking, the higher the video resolution, refresh rate, and color depth, the greater the bandwidth required for video data transmission. In other words, the target bandwidth of the video data is positively correlated with the video resolution, refresh rate, and color depth. As an implementation method, the data volume of the target bandwidth of the video data can be obtained by multiplying the video resolution, refresh rate, and color depth. For example, common video resolutions may include 960P / 1080P / 2K / 4K / 8K, refresh rates of 24 / 30 / 60 / 120fps, and color depths of 24 / 30 / 36 / 48bpp. Therefore, when the video resolution is 8K, the refresh rate is 60fps, and the color depth is 24bpp, high-quality video can be played. The target bandwidth corresponding to video data of this specification is approximately 57Gbps (8K*60fps*24bpp).

[0083] Exemplarily, the service parameters of the audio data may include the audio sampling rate, audio sampling bit width, and number of channels of the audio data. That is, the target bandwidth of the audio data should be determined based on at least one of the audio sampling rate, audio sampling bit width, and number of channels of the audio data. Generally speaking, the higher the audio sampling rate, the larger the audio sampling bit width, or the more channels there are, the greater the bandwidth required for the audio data to be transmitted. That is, the target bandwidth of the audio data is positively correlated with the audio sampling rate, audio sampling bit width, and number of channels. As an implementable method, the data volume of the target bandwidth of audio data can be obtained by multiplying the audio sampling rate, the audio sampling bit width and the number of channels. For example, common audio sampling rates of audio data are generally 32 / 44.1 / 48 / 88.2 / 96 / 192kHz, the audio sampling bit width can be 8 / 16 / 24 / 32bit, and the number of channels can be 1 to 32 channels. Extremely high-quality audio requires a bandwidth of 196Mbps (192kHz*32bit*32channel). The maximum target bandwidth of audio data is 196Mbps, and the minimum target bandwidth is 256kbps (32kHz*8bit*1channel).

[0084] It should be noted that the above parameters such as audio sampling rate and color depth used to determine the target bandwidth are only examples. Audio files or video files of different formats may correspond to different parameters, which can be determined according to the specific data format.

[0085] Generally speaking, the target bandwidth corresponding to video data (i.e., business flow data whose business category is video business) is greater than the target bandwidth corresponding to audio data (i.e., business flow data whose business category is audio business), that is, the transmission rate required for video data is generally greater than the transmission rate required for audio data, while the transmission rate required for USB business data (i.e., business flow data whose business category is USB business) may be less than that of video data but greater than that of audio data.

[0086] Specifically, as one possible implementation, since the actual data format corresponding to the USB service is uncertain, the target bandwidth for the USB service can be set between the target bandwidths corresponding to the audio service and the target bandwidth corresponding to the video service. For example, if the target bandwidth for the audio service is x Mbps and the target bandwidth for the video service is y Gbps, the target bandwidth for the USB service can be set between x Mbps and y Gbps.

[0087] In another possible implementation, the service parameter may be transmission frequency. Transmission frequency refers to the number of times service flow data of the same service category is transmitted within a predetermined time period. For example, if service flow data of a certain category is transmitted more than 100 times in the past week, the transmission frequency is high, indicating that the data of this service category has a greater demand for bandwidth resources. Therefore, more bandwidth can be allocated to this service category.

[0088] It should be noted that when allocating bandwidth resources based on business parameters, two or more parameters in the business parameters can be combined. For example, the business parameters can include both the target bandwidth and the transmission frequency. When the parameter value of any one of them is higher, the data volume of the bandwidth unit allocated to the business flow data of this category will also be larger; or, only when the target bandwidth and the transmission frequency are both high, a bandwidth unit with a larger data volume will be allocated to the business category. For example, considering that the audio service transmits a small amount of data and is not transmitted frequently, the data volume of the bandwidth unit of the audio service is set to the minimum, such as 8 bits, 16 bits, etc., to reduce bandwidth waste; considering that the video service and USB3 service transmit a large amount of data and are transmitted frequently, the bandwidth unit of such services is set to 128 bits or 256 bits, etc., to meet the requirements of continuous transmission and reduce the number of blocks when dividing the data blocks and the overhead of the blocks.

[0089] Specifically, a feasible rule for determining the bandwidth units corresponding to multiple service categories based on service parameters is: according to the target bandwidths corresponding to the multiple service categories, determine the first service category with the smallest target bandwidth; determine the first bandwidth unit corresponding to the first service category; among at least two bandwidth units, the first bandwidth unit has the smallest data volume. That is, the service category with the smallest target bandwidth corresponds to the bandwidth unit with the smallest data volume, and the bandwidth units allocated to the other service categories except the first service category in the multiple service categories must have a larger data volume than the first bandwidth unit. For example, when the first service category is an audio service, the data volume of the corresponding first bandwidth unit can be 8 bits, and the data volumes of other service categories are all larger than 8 bits. A feasible approach is that other service categories correspond to the same bandwidth units with the same data volume.

[0090] Alternatively, described from another perspective, the following rules should be met between any two categories of business flow data to be allocated: when the target bandwidth or transmission frequency corresponding to the first business category is smaller than the target bandwidth or transmission frequency corresponding to the second business category, the data volume of the first bandwidth unit corresponding to the first business category is determined to be smaller than the data volume of the second bandwidth unit corresponding to the second business category.

[0091] The more bandwidth unit specifications there are, the more complex the management mechanism needs to be to manage multiple bandwidth units of different specifications, increasing data management overhead. In addition, after obtaining the target data stream, it generally needs to undergo communication encoding and other processing before being transmitted over the physical link. For example, DP2.0 uses a 128-bit / 132-bit encoding method. Too many different bandwidth units of different specifications may also cause incompatibility with subsequent communication encoding. To achieve better compatibility with subsequent encoding mechanisms, as an implementable method, one can first obtain the data volume information of the minimum data object used to encode the target data stream during the subsequent encoding process, and set the data volume of the bandwidth units corresponding to other service categories other than the first service category to the same as the data volume of the minimum data object during the encoding process. For example, in a current communication encoding method, encoding is performed every 128 bits. In this case, the data volume of the bandwidth units of the same specification corresponding to other service categories other than the first service category can be set to 128 bits. If the communication encoding method uses encoding every 132 bits, then all other service categories correspond to bandwidth units with a data volume of 132 bits.

[0092] Therefore, see Figure 9As shown in the figure, one feasible bandwidth allocation method is to set the bandwidth unit corresponding to audio services to 8 bits (abbreviated as b), and the bandwidth unit data volume of other service categories is 128 bits (b). That is, for non-audio service flows, a larger bandwidth unit is set, and the corresponding service flow data is arranged into a 128-bit structure for transmission. For audio service flows, a smaller bandwidth unit is set, and the corresponding audio data is arranged into an 8-bit structure for transmission.

[0093] Optionally, as another implementable method, in order to better meet the different bandwidth requirements of different business categories, at least two bandwidth units with different data volume sizes are allocated to at least two business categories other than the first business category in multiple business categories. For example, the bandwidth unit allocated to the audio business is 8 bits, the USB business corresponds to 128 bits, and the video business corresponds to 256 bits. The advantage of this method is that it can better match the different bandwidth requirements of different business categories, but this solution needs to solve the problem of incompatibility with the coding system to overcome the difference between bandwidth units of different specifications and the subsequent communication coding process. One feasible way is to adjust the subsequent coding mechanism, that is, the amount of data encoded each time in the communication coding process can be changed to make it compatible with bandwidth units of different specifications. Alternatively, the coding system is not changed.

[0094] It should be noted that the bandwidth allocation mechanism provided by the embodiment of the present application may include a static allocation method and a dynamic allocation method. Among them, the static allocation method is to determine the data volume of the bandwidth units of various possible business categories before actual application, and generate a bandwidth information table, which records each business category and the data volume of the bandwidth units corresponding to each business category; the bandwidth information table is stored in the source device, the host device and the routing device for query. When the business flow data to be sent issues a transmission request, in response to the request, the source device first identifies the business category corresponding to the business flow data, and then queries the bandwidth information table for the data volume of the bandwidth unit corresponding to the business category. The data volume of the queried bandwidth unit is then marked as the data volume of the bandwidth unit corresponding to the business flow data, and when data is segmented, it is segmented according to the data volume of the corresponding bandwidth unit. The dynamic allocation method can be to obtain the service parameters corresponding to each service flow data after each service flow data sends a transmission request, and temporarily dynamically allocate bandwidth units to each service flow data based on the service parameters. Alternatively, another feasible method is to combine the dynamic allocation method with the static allocation method. After querying the bandwidth units corresponding to each service category based on the static bandwidth information table and determining the bandwidth unit corresponding to the service category corresponding to any service flow data as the bandwidth unit corresponding to the service flow data, the service parameter information of each service flow data is further obtained to adjust the bandwidth unit corresponding to the service flow data based on the service parameters. For example, the target bandwidth corresponding to each of the multiple service flow data can be obtained. If the difference between the target bandwidth corresponding to any service flow data (second target bandwidth) and the target bandwidth corresponding to the service category corresponding to the service flow data (first target bandwidth) exceeds a predetermined threshold, the bandwidth unit corresponding to the service flow data is adjusted. To avoid confusion and clarify the description, the target bandwidth corresponding to the service category is defined as the first target bandwidth, and the target bandwidth corresponding to each service flow data is defined as the second target bandwidth. For example, the first target bandwidth corresponding to video services is generally on the order of Gbps. If in actual applications, a certain video format service flow data to be transmitted is detected and the required second target bandwidth is only on the order of Mbps, then the data volume of the bandwidth unit corresponding to the video service flow data can be reduced.

[0095] Alternatively, if the target bandwidth or transmission frequency corresponding to the first business flow data among multiple business flow data is smaller than the target bandwidth or fourth transmission frequency corresponding to the second business flow data, and the third bandwidth unit corresponding to the first business flow data is larger than the fourth bandwidth unit corresponding to the second business flow data, the data volume of the third bandwidth unit and / or the fourth bandwidth unit can be dynamically modified based on a pre-set adjustment rule. The adjustment rule may be that the higher the target bandwidth or transmission frequency, the larger the data volume of the corresponding bandwidth unit.

[0096] Thus, in the solution provided by the embodiment of the present application, when multiple business flows are transmitted, there are multiple different bandwidth units, and different business flows are allocated bandwidth resources according to the bandwidth units of the business flows to meet the different bandwidth requirements of different businesses.

[0097] After determining the bandwidth units corresponding to each business flow data, the data flow of each business flow data can be adapted, cached, and then segmented. Figure 9 As shown, an audio format file can be used as an audio service stream data and be divided into multiple 8-bit data blocks. The division is performed evenly. The remaining data may be less than 8 bits and is also treated as a separate data block. A video format file can be used as a video service stream data and be divided into multiple 128-bit data blocks. The division is performed evenly. The remaining data less than 128 bits is also treated as a separate data block. USB service stream data is also divided into multiple 128-bit data blocks. As mentioned above, one feasible method is to keep the size of the divided data blocks consistent with the data volume of the corresponding bandwidth unit, which will not be repeated here. In another feasible method, a predetermined mapping relationship can be set between the size of the data blocks divided from any type of service stream data and the data volume of the bandwidth unit corresponding to the any type of service stream data. For example, the size of the data block can be several times the data volume of the bandwidth unit, etc. In this way, the multiplier information between the data block and the bandwidth unit can also be recorded in the bandwidth information table. For example, one data block corresponds to two bandwidth units, etc.

[0098] After data segmentation, each service flow data is segmented into multiple data blocks, with different services corresponding to at least two sizes of data blocks. Next, the segmented data blocks are integrated, and multiple service flows are integrated into one service flow for transmission.

[0099] In DP2.0, every 64 time slots constitute a cycle. A cycle is a set of data consisting of M time slots in a data stream, which facilitates management, such as encapsulation. In the embodiment of this application, 16 ≤ M < 999, and each cycle or multiple cycles can encapsulate a message header. A cycle can include 125 time slots.

[0100] The integrated business flow can include multiple cycles. Before integration, it is necessary to determine the number of time slots corresponding to each business flow data in a cycle, that is, the bandwidth allocated to different business flow data items. The bandwidth number is the number of time slots occupied by each business flow data in a cycle in the integrated business flow, or it can be understood as the number of bandwidth units corresponding to each business flow data in a cycle. The larger the bandwidth number, the greater the amount of data transmitted per unit time. Therefore, the allocation of bandwidth number is to allocate bandwidth resources between different business flow data items from another dimension. A bandwidth unit determines the amount of data filled in a single time slot, and the bandwidth number determines the number of time slots allocated to each business flow data item in a cycle.

[0101] One possible implementation of bandwidth allocation is to allocate bandwidth for different service flow data. The bandwidth is used to determine the number of data blocks corresponding to a service flow data item within a cycle. For example, audio services are allocated a first number of bandwidth units, video services are allocated a second number of bandwidth units, and USB services are allocated a third number of bandwidth units. Exemplarily, the first number < the third number < the second number. Alternatively, another possible bandwidth allocation method is to allocate bandwidth based on service items. For example, a file to be transferred can be considered a service item, and bandwidth is allocated across different files, where different files may correspond to the same service category.

[0102] Specifically, bandwidth can be allocated in the following ways:

[0103] The bandwidths corresponding to the plurality of service flow data are determined based on at least the target bandwidths corresponding to the plurality of service flow data, the total number of data blocks in a cycle, and the effective bandwidth. The effective bandwidth is the bandwidth used to transmit the service flow data, and the effective bandwidth = the number of link channels × the link channel transmission rate × the effective bandwidth ratio.

[0104] Assume that the transmission bandwidth (i.e., target bandwidth) requested by one of the service flows currently being transmitted is B Gbps, and the total number of data blocks within a cycle is M. For non-audio service flows, the bandwidth requested for this service flow is: (M × B) / (number of link channels × link channel transmission rate × effective bandwidth ratio), which is then rounded up to obtain the final result. For audio service flows, due to the smaller data volume, the bandwidth for audio services is divided more finely. For example, if the bandwidth unit size for audio services is 8 bits and the bandwidth unit size for video services is 128 bits, the bandwidth requested for the audio service flow is: (M × 16 × B) / (number of link channels × link channel transmission rate × effective bandwidth ratio), which is then rounded up to obtain the final result. The constant 16 in (M×16×B) is only an example. This constant can be determined based on the multiple of the two bandwidth units corresponding to the video service and the audio service. That is, the value of the constant can be equal to the ratio of the data volume of the bandwidth unit corresponding to the video service to the data volume of the bandwidth unit corresponding to the audio service. For example, when the bandwidth unit size corresponding to the audio service is 16 bits and the bandwidth unit size corresponding to the video service is 128 bits, the constant can be 8. The number of time slots (or data blocks) in a cycle is M. For example, if a cycle includes 125 data blocks, then M = 125. "Number of link channels × link channel transmission rate" is the total bandwidth of the primary link. That is, the number of link channels is the number of channels of the primary link, and the link channel transmission rate is the channel transmission rate of the primary link, not the number of channels or channel transmission rate of the auxiliary link. For example, if the primary link has 6 channels, each with a speed of 16 Gbps, then the total bandwidth of the primary link is 96 Gbps. Due to overhead such as message headers, management data, and checksum information, the total bandwidth of the main link cannot be 100% used for service transmission. Therefore, the effective bandwidth ratio appears, which is the percentage of bandwidth used for service transmission to the total bandwidth. When the bandwidth unit corresponding to non-audio services (such as video services and USB services) is 128 bits, the bandwidth corresponding to non-audio services represents the number of 128-bit data blocks allocated for non-audio services (1 time slot is filled with 128 bits of data), and the bandwidth corresponding to audio services represents the number of 8-bit data blocks allocated for audio services (1 time slot is filled with 8 bits of data, or it can also be filled with empty service data).

[0105] In one feasible implementation, the service category and bandwidth information of each service flow data can be maintained through a port flow table. The port flow table can be stored in the first device or the routing device to record one or more of the service category, bandwidth, and number corresponding to each of the multiple service flow data.

[0106] For example, the port flow table may be as shown in Table 1 below:

[0107] Table 1

[0108] Stream Number Valid bits Flow Category Bandwidth 0 1 0x1 (audio service flow) 0x0001 (audio bandwidth) 1 1 0x2 (Video Service Flow) 0x0015 (non-audio bandwidth) 2 1 0x2 (Video Service Flow) 0x002D (non-audio bandwidth) 3 1 0x2 (Video Service Flow) 0x000F (non-audio bandwidth number) 4 1 0x3 (USB3 service flow) 0x0005 (non-audio bandwidth) 5 0 0x0 (empty service flow) NA

[0109] The flow number represents the number of each service flow data item, meaning that each service flow data item is considered a service flow, and different service flows are numbered to distinguish them. The valid bit indicates whether the service flow is being sent on the current port, with 0 indicating not being sent and 1 indicating being sent. The valid bit setting allows the routing device to control which service flow data items are sent and which are not sent on each port during traffic diversion. This allows the routing device to pre-configure a port flow table, with each port corresponding to a port flow table, to maintain information such as the bandwidth required to transmit data from the corresponding port. The stream category indicates the type of business stream corresponding to the current stream number, which may include multiple business streams such as empty business stream, audio business stream, video business stream, USB3 business stream, etc.; the bandwidth number indicates the number of bandwidth units allocated to the business stream corresponding to the current stream number in a cycle, among which the audio business stream numbered 0 and the stream category (i.e., business category) 0x1 corresponds to 1 bandwidth, the video business stream numbered 2 and the stream category (i.e., business category) 0x2 corresponds to 45 bandwidths, and the USB business stream numbered 4 and the stream category (i.e., business category) 0x3 corresponds to 5 bandwidths.

[0110] After determining the bandwidth, a consolidation step can be performed to combine at least two data block sizes (e.g., 8-bit and 128-bit) from multiple service flow data streams to obtain the target data stream to be transmitted. The consolidation step should refer to the bandwidth of each service flow data stream to obtain a target data stream that includes at least one cycle. The number of data blocks corresponding to any service flow data stream in a cycle is equal to the bandwidth corresponding to that service flow data stream.

[0111] Specifically, the integration of data blocks can be implemented in the following ways:

[0112] Obtain the numbers corresponding to the multiple business flow data, for example, by querying the port flow table to obtain the number information for each business flow data item. Then, within a cycle, arrange the data blocks corresponding to the multiple business flow data items in order according to the numbers to obtain a data block sequence. For example, the port performs multi-stream transmission according to the port flow table shown in Table 1. All valid business flows are allocated one bandwidth number to the channel at a time in ascending order of flow numbers. After the port completes allocation of the largest valid business flow, it returns to the smallest valid business flow to be allocated, and cyclically allocates the data blocks according to the above rule to obtain a data block sequence.

[0113] Specifically, the data block queue sequence includes multiple first data block combinations that appear cyclically. The multiple first data blocks in the first data block combination are derived from at least two business flow data and are arranged in the order of the numbers of the at least two business flow data. For example, taking Table 1 as an example, the port has a total of 5 valid business flows, numbered from 0 to 4, see Figure 10 As shown ( Figure 10 The target data stream is inside the dotted rectangle. These five business flow data are arranged in order from 0 to 4. The business flow data from number 0 to number 4 form the first data block combination. Next, return to the business flow data numbered 0 and arrange them in order again to obtain the second first data block combination until the bandwidth of each business flow data in a cycle is fully allocated. Figure 9 The numbers of the data blocks shown in are the numbers of the corresponding business flow data (business flow).

[0114] It should be noted that in actual applications, it is very likely that the remaining TimeSlots in a cycle correspond to the same type of business flow data. For the convenience of description and distinction, the embodiment of the present application defines a business flow local combination that only contains data blocks corresponding to one business flow data (with the same number) as a second data block combination, and the second data block in the second data block combination comes from the same business flow data; and defines a local combination of data blocks containing different business flow data (with different numbers) as a first data block combination. For example Figure 9 In the example, the first data block combination includes 5 data blocks with different numbers from 0 to 4, while the second data block combination only includes the data block with number 2.

[0115] It should be noted that the embodiment of the present application proposes the following integration mechanism: as a feasible implementation method, in a cycle, the second data block combination is arranged after the first data block combination, and, in the first data block combination, any two adjacent first data blocks come from different items of business flow data, that is, in each first data block combination, only one bandwidth unit is allocated to each numbered business flow data item, and business flow data with the same number is not allowed to continuously occupy multiple adjacent bandwidth units. To facilitate understanding of the improvements made by the method provided in the embodiment of the present application, please refer to Figure 3 , Figure 3 A schematic diagram for describing the business flow after data integration in the prior art DP2.0. As can be seen from the figure, the business flow data 1 continuously occupies multiple time slots, while in the embodiment of the present application, refer to Figure 9As shown, in a data block sequence at the front of a cycle, data blocks of different numbers are arranged in sequence, and there is no situation where data blocks with the same number are arranged continuously, that is, adjacent data blocks in the first data block combination come from different business flow data; until the number of data blocks arranged for each business flow data reaches the bandwidth number, if there are still data blocks of one type of business flow data remaining, they can be arranged continuously, corresponding to the second data block combination. The effect of this design is that different numbered businesses are transmitted concurrently as much as possible, that is, from a micro perspective, different items of business flow data (for example, 5 business flow data items numbered 0-4) are controlled to be transmitted simultaneously, so that the effect of concurrent transmission of multiple business flow data can be shown at a macro level, avoiding the delay of other business flow data caused by the priority transmission of one business flow data. For business types with higher transmission speed requirements, in a cycle, the remaining data blocks of the business flow data with a larger bandwidth number can be distributed at the end. This type of business flow data occupies the most bandwidth in a cycle, so from a macro perspective, the transmission speed of the business flow data with a larger bandwidth number is not affected.

[0116] It should be noted that, during the actual processing, the solution provided by the embodiment of the present application may add some padding data according to the coding requirements. For example, if the coding system requires 128 bits of data to be processed each time, data blocks less than 128 bits may be padded to facilitate management and parsing at the receiving end. For example, the first Time Slot in a cycle, that is, service flow 0, may be padded to 128 bits to facilitate subsequent coding processing by the coding module. When the amount of data in a single Time Slot in the prior art exceeds 128 bits, the embodiment of the present application provides a method that can reduce bandwidth waste even when data padding is performed.

[0117] In other implementations, padding can be omitted. Alternatively, to reduce bandwidth waste, multiple 8-bit data blocks can be concatenated to facilitate encoding and decoding. For example, if there are multiple small services to be transmitted, these services can be fragmented and concatenated to further improve bandwidth utilization. Alternatively, data can be sent based on actual bandwidth units without accumulating and concatenating the data, reducing the concatenation workload and the resulting transmission delay.

[0118] In addition, illustratively, see Figure 10 As shown, a cycle may include 125, wherein, when the remaining data amount of each service flow data is insufficient to fill a cycle, data 0 may be filled in the remaining Time Slot of the cycle.

[0119] In an embodiment of the present application, the bandwidth allocation information needs to be synchronized between the source device and the host device and the routing device so that the service flow sent by the source device can be decoded and split by the host device. Under the static bandwidth resource allocation method, unified bandwidth allocation information can be stored in the source device, the host device and the routing device, that is, at least the bandwidth unit information corresponding to various service categories is pre-stored, or the bandwidth number information corresponding to each service category can also be stored, that is, the bandwidth allocation information can be written into the corresponding hardware device as the factory default parameter of the product, or it can be written uniformly when the source device and the host device perform software upgrades. If the bandwidth unit is set dynamically, the source device at the sending end should inform the receiving end (routing device or host device) of information such as the type of each service flow and its dynamically set bandwidth unit in real time. At this time, the sending end can synchronize this information to the receiving end through an auxiliary link or by setting some fields in the target data stream, so that the receiving end can distinguish the bandwidth units corresponding to each service.

[0120] Specifically, the following two methods can be used to synchronize bandwidth information:

[0121] Method 1: Send a notification message through the auxiliary link before data transmission.

[0122] After the source device determines the bandwidth unit information corresponding to each service flow data item, it generates a notification message that carries at least the number information, service category information, and bandwidth unit information corresponding to one or more service flow data items. The notification message is then transmitted to the routing device or sink device via the first link to synchronize the bandwidth unit information. The first link is a physical link connecting the first device and the second device or routing device. For example, the first link can be an SB link or an AUX channel (Auxiliary channel).

[0123] Taking SB Link as an example, SB Link is a full-duplex link with low-speed communication capabilities. It can implement multiple functions such as plug-in detection, forward and reverse plug-in identification, control information exchange, topology discovery, and network establishment. Among them, control information exchange can be used to achieve information synchronization between the sender and the receiver. Therefore, when dynamically setting the bandwidth unit, the sender can encapsulate information such as each service flow type and its corresponding bandwidth unit and inform the receiver in advance through SB Link so that the receiver can immediately and correctly parse the received data. As an implementation method, the packet example is shown in Table 2 below, where information such as each service flow type and the corresponding dynamically set bandwidth unit can be encapsulated from the 8th byte to the last byte.

[0124] Table 2

[0125]

[0126]

[0127] As can be seen from the table, in one possible implementation, the notification message may only include information about the bandwidth units of the adjusted service flow. That is, this synchronization method is equivalent to performing dynamic adjustments based on the static bandwidth allocation method. When it is found that one or more bandwidth units determined based on the service category are unreasonable, the data volume of the bandwidth unit corresponding to the service flow data can be dynamically adjusted. The specific trigger conditions for dynamic adjustment can be various. For example, since the data format in USB services is uncertain, the bandwidth unit pre-determined based on the category of USB services may not be suitable for the data type currently to be transmitted and classified as USB services. Therefore, the data format of the specific service flow data under the USB service type can be identified. When the bandwidth unit corresponding to the pre-determined USB service category cannot meet the transmission speed requirements of the data format, a bandwidth unit with a larger data volume can be re-allocated to the service flow data of the data format, and the changed service flow data can be notified to the receiving end (routing device or sink device) via a notification message.

[0128] Method 2: Set relevant fields in the target data stream to synchronize bandwidth information.

[0129] Specifically, after determining the bandwidth unit information and bandwidth number corresponding to each business flow data, a message header is generated. The message header should carry the necessary bandwidth allocation information required by the receiving end to be decoded and split. For example, it can carry the numbering information, business category information, bandwidth unit information and bandwidth number information corresponding to multiple business flow data. The message header is then encapsulated in the target data stream. The message header can be generated by the sending end, generally by the source device or routing device. After obtaining the integrated target data stream, the source device can encapsulate a message header before the business flow data to record the type of each type of business flow data and the bandwidth unit in the subsequent data. For example, refer to Table 3 below, which is an example of the information format carried in the business flow data header (message header).

[0130] Table 3

[0131]

[0132]

[0133] For example, all necessary information related to bandwidth resource allocation can be encapsulated in Table 3, also known as the Character Delimitation Table. This table consists of four 128-bit data elements, including a delimiter character (a predefined special string), CD (Character Delimitation), and three bandwidth allocation characters, LC0, LC1, and LC2 (Link Count). This table can be transmitted as a data header. Flowid represents the number of each service flow, Type represents the type of service flow, Control represents the type of operation on the service flow (e.g., whether to send), and bw_cnt represents the amount of bandwidth allocated to the corresponding service flow. Upon receiving this data header, the receiver can synchronize bandwidth information with the transmitter using flowid, type, and bw_cnt. As shown in the figure, LC0, LC1, and LC2 correspond to 12 items of service flow data. In practice, since this table can be dynamically updated, the number of service flow data items maintained by this table is not limited to 12.

[0134] It should be noted that the header or data header carrying the information shown in Table 3 may be encapsulated in the target data stream every several cycles, that is, once every N cycles, where N is a positive integer greater than or equal to 1. For example, if N = 3, a header is encapsulated every three cycles, and the header carries the bandwidth resource allocation information for those three cycles. The information N, i.e., the number of cycles corresponding to one header, may be included in the delimiter characters shown in Table 3 or added as a separate field in Table 3 or Table 2.

[0135] It should be noted that Table 2 and Table 3 above are examples. Table 3 may also only carry the bandwidth unit information corresponding to one or several changed business flow data items, and Table 2 may also carry information such as the bandwidth unit of each business flow data item. That is, if a dynamic maintenance method based on a static allocation method is adopted, the bandwidth unit of each business flow data item does not need to be dynamically set. The corresponding bandwidth unit can be set in advance for different types of business. When one or several items need to be adjusted, the sending end informs the receiving end through the SB Link or through a field in the business flow data that requires setting a business flow type. After receiving the type of each business flow, the receiving end parses the data according to the bandwidth unit specified in advance. If a completely dynamic bandwidth allocation method is adopted, then Table 2 or Table 3 above needs to carry information such as the bandwidth unit of all business flow data items.

[0136] Therefore, information such as bandwidth allocation and delimiter information (e.g., delimiter characters) is added to the consolidated traffic flow. This information can be added before or after the data is consolidated at a predetermined location. Furthermore, routing information should be added so that the receiving end can properly parse the data. This routing information at least includes the destination address of the receiving end.

[0137] The above embodiment is mainly described from the perspective of the source device. The embodiment of the present application also provides a data processing method performed on the sink device (second device). The method includes at least the following process:

[0138] Receive a target data stream sent by a source device or a routing device. As mentioned above, the target data stream includes at least two data blocks, and the at least two data blocks are obtained based on multiple business flow data, that is, at least two data blocks are derived from multiple business flow data; wherein the multiple business flow data correspond to at least two business categories and at least two bandwidth units with different data sizes; then, determine the bandwidth units corresponding to the multiple business flow data respectively, split the target data stream at least according to the bandwidth units corresponding to the multiple business flow data respectively, obtain multiple data blocks corresponding to the multiple business flow data respectively, and then integrate the multiple data blocks corresponding to the same business flow data into corresponding business flow data to obtain restored multiple business flow data.

[0139] Specifically, see Figure 7 As shown, the data splitting process performed on the host device side may include several steps, such as data splitting, integration (restoration) of various business flow data, caching, and de-adaptation. Data splitting is the inverse process of data integration performed on the source device side. According to information such as the bandwidth unit corresponding to each business flow data and the size of the bandwidth unit corresponding to each business flow data, data blocks of corresponding sizes are split from the target data stream, and multiple data blocks from the same business flow data (i.e., data blocks corresponding to the same business flow data number) are integrated to restore the various business flow data.

[0140] The embodiment of the present application also provides a data processing method, which is applied to a routing device, that is, in the embodiment of the present application, the routing device side has also been improved accordingly. Specifically, the routing device is used to perform at least the following steps: receiving a target data stream; as above, the target data stream includes at least two data blocks, and the at least two data blocks are obtained based on multiple business flow data; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data sizes; then determine the bandwidth units corresponding to the multiple business flow data, and then, at least according to the bandwidth units corresponding to each business flow data, split the target data stream to obtain multiple data blocks corresponding to each business flow data; then determine the destination address corresponding to each business flow data; integrate the multiple data blocks corresponding to at least one business flow data corresponding to the same destination address to obtain the corresponding sub-data stream; and forward at least one sub-data stream to its respective destination address. Wherein, the destination address can be the target port address, for example, it can be the ID (Identity document) of the target port.

[0141] As a feasible implementation method, the routing device can obviously determine the bandwidth unit information corresponding to each service flow data through the message header transmitted through the main link or the notification message transmitted through the auxiliary link.

[0142] If static bandwidth allocation is used, the routing device can pre-store a bandwidth information table, and then dynamically modify the bandwidth allocation information (including bandwidth units and / or bandwidth amount) of individual service flow data based on the notification message or the message header encapsulated in the service flow. Specifically, the following methods can be used:

[0143] The notification message is received, and the bandwidth unit corresponding to the service flow data with the corresponding number is modified according to the bandwidth unit corresponding to at least one service flow data recorded in the notification message.

[0144] In an embodiment of the present application, the dynamic allocation of bandwidth units is initiated by the source device, and the routing device can modify the bandwidth number. Specifically, the message header also carries the bandwidth number information corresponding to each business flow data. After receiving the message header, the routing device obtains the bandwidth resource information of the second link, wherein the second link is a physical link connected between the routing device and the second device, or connected between different routing devices. The routing device adjusts the bandwidth number corresponding to at least one business flow data according to the bandwidth resource information corresponding to the second link. For example, the transmission capacity of the physical link (first link) from the source device to the routing device reaches 100Gbps, while the transmission capacity of the physical link (second link) connecting the routing device and the host device is only 100Mbps. The original bandwidth number allocation scheme is obviously not applicable to the second link, so the routing device needs to adjust the bandwidth number.

[0145] It should be noted that, unlike source devices, routing devices do not need to perform steps such as adaptation, caching, and bandwidth allocation. However, routing devices can perform steps such as aggregation and bandwidth adjustment. For example, if a service flow sent by a source device contains service flow data with different destination addresses, the routing device needs to split the service flow and then aggregate it separately, that is, split the service flow, and distribute it to the corresponding sink devices.

[0146] Among them, under the dynamic allocation method, for the same business flow, during the transmission process, the source device can dynamically adjust the minimum bandwidth unit, and transmit the bandwidth unit to the receiver in real time through the field in the business flow data or notify the routing device through SB Link before the transmission starts, so that the routing device can also perform data segmentation. For example, after the source device sends the target data stream, it notifies the routing device that it wants to modify a certain business flow data. The routing device needs to split and restore the business flow into various business flow data, and then segment and integrate the business flow data according to the modified bandwidth unit information. For the specific segmentation and integration steps, please refer to the method description on the source device side above, which will not be repeated here.

[0147] An embodiment of the present application also provides a data transmission system, including: a first device, namely a source device, for executing the data processing method executed by the above-mentioned source device; a second device, namely a sink device, for executing the data processing method executed by the above-mentioned sink device; a physical link, for transmitting a target data stream or a sub-data stream sent by a routing device, the sub-data stream being a data stream obtained by integrating multiple data blocks corresponding to at least one business flow data corresponding to the same destination address.

[0148] The embodiment of the present application also provides a data transmission interface for transmitting a target data stream or a sub-data stream sent by a routing device.

[0149] The embodiment of the present application also provides a physical link for transmitting the target data stream or the sub-data stream sent by the routing device. The physical link includes a main link and an auxiliary link. The main link is used to transmit the target data stream; the auxiliary link is used to transmit the notification message. Specifically, the main link is used to transmit the integrated high-speed data, and may include multiple transmission channels and support multiple transmission rates. SB Link is a full-duplex link with low-speed communication capability. It only includes two transmission channels, one transmission channel is used to send low-speed data, and the other transmission channel is used to receive low-speed data. It is used to control information interaction between the source device and the host device. The sending end sets different bandwidth unit information for different types of services, and can inform the receiving end in advance through SB Link before the service transmission so that the receiving end can parse the data normally.

[0150] An embodiment of the present application further provides an electronic device, which may include: a processor; a memory; at least one application; and one or more computer programs, wherein the one or more computer programs are stored in the memory and include instructions. When the instructions are executed, the terminal device may perform any of the methods described above in the embodiments executed by the source device.

[0151] An embodiment of the present application further provides an electronic device, which may include: a processor; a memory; at least one application; and one or more computer programs, wherein the one or more computer programs are stored in the memory and include instructions. When the instructions are executed, the electronic device may perform the method described above based on the execution of the host device.

[0152] An embodiment of the present application also provides a routing device, which includes: one or more processors; a memory; at least one application; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs include instructions. When the instructions are executed by the routing device, the routing device executes the above-mentioned method based on routing device execution.

[0153] In summary, the bandwidth allocation scheme provided by the embodiment of the present application can set a small bandwidth unit at the sending end to reduce bandwidth waste for business flow types that rarely transmit and have a very small amount of data each time. If there are multiple small bandwidth unit business transmissions, the sending end can perform fragmentation management and splicing to further improve bandwidth utilization. It can also send data according to the actual bandwidth unit without accumulating and splicing the data to reduce the splicing workload and the resulting transmission delay. For business flow types that frequently transmit and have a very large amount of data each time, the sending end can set a large bandwidth unit to meet the requirements of continuous transmission of large amounts of data, while reducing the number of data blocks and overhead.

[0154] A feasible product hardware architecture of the electronic device (source device) 110 provided in the embodiment of the present application is shown in FIG. Figure 11 As shown, the hardware architecture of the electronic device 110 may include:

[0155] One or more first data transmission interfaces 111 may use the hardware structure of existing interfaces such as DP interface, USB interface (host device interface), etc., or may be an interface with a completely new hardware design that is different from previous interfaces.

[0156] The first processor 112 includes one or more processing units. For example, the first processor 112 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a digital signal processor (DSP), etc. The different processing units may be independent devices or integrated into one or more processors.

[0157] The first memory 113 is used to store the above-mentioned computer instructions for implementing data processing and various business flow data, such as audio data, video data and USB business flow data. The first memory 113 can be an external memory independent of the first processor 112, or it can be set in the first processor 112. For example, in some embodiments, the memory built into the first processor 112 can be a cache memory, which is used to store instructions or data just used or circulated by the first processor 112. If the first processor 112 needs to use the instruction or data again, it can be directly called from the cache memory. This avoids repeated access and reduces the waiting time of the first processor 112.

[0158] The memory may be a read-only memory (ROM), other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer.

[0159] The first power management module 114 receives input from the battery and / or charging management module and provides power to the first processor 112 and the first memory 113. The first power management module 114 can also be used to monitor parameters such as battery capacity, battery cycle count, and battery health status (leakage, impedance). In some other embodiments, the first power management module 114 can also be provided in the first processor 112. In other embodiments, the first power management module 114 and the charging management module can also be provided in the same device.

[0160] It should be understood that the structures illustrated in the various figures of the embodiments of this application do not constitute a specific limitation on the electronic device 110. In other embodiments of this application, the electronic device 110 may include more or fewer components than shown, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0161] A feasible product hardware architecture of the electronic device (sink device) 120 provided in the embodiment of the present application is shown in FIG. Figure 12 As shown, the hardware architecture of the sink device 120 may include:

[0162] One or more second data transmission interfaces 121 , which may also use the hardware structure of existing interfaces such as DP interface and USB interface (slave device interface), or may be an interface with a completely new hardware design that is different from the previous interfaces. The interface 121 is compatible with the interface 111 .

[0163] The second processor 122 includes one or more processing units. For example, the second processor 122 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a digital signal processor (DSP), etc. The different processing units may be independent devices or integrated into one or more processors.

[0164] The display screen 123 is used to play the received video data. Specifically, the display screen 123 may include a display panel. The display panel may be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a MiniLED, a MicroLed, a Micro-oLed, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device 120 may include at least one display screen 123.

[0165] It should be noted that the display screen 123 is an optional component of the electronic device and is not a necessary component. In most embodiments, a display screen is required to display video data. In some embodiments, the sink device may not have a display screen. For example, when the sink device is a speaker, it does not have a display screen. Figure 12 The structure shown is merely an exemplary structure and should not be construed as necessarily limiting the sink device.

[0166] A speaker 124 and an audio circuit 125 , wherein the speaker 124 is connected to the second processor 122 via the audio circuit for playing audio data.

[0167] Input unit 126, the input unit is used for the user to control the playback of media data such as video or audio. Specifically, as an implementable method, the input unit 126 can be integrated with the display screen 123 to form a touch display screen; the input unit 126 can also include a pressure sensor ( Figure 12 (not shown), the pressure sensor senses the pressure signal generated by the user, and the pressure signal can be converted into an electrical signal to complete the user command input. In some embodiments, the pressure sensor can be set on the display screen 123.

[0168] The sink device may further include a second power management module 127 .

[0169] In one implementation, the second processor 122 or the first processor 112 may further include one or more other interfaces. The interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a general-purpose input / output (GPIO) interface, and / or a universal serial bus (USB) interface.

[0170] Among them, any processor can include multiple groups of I2C buses, and the processor can be coupled to the sensor group 112, the power management module 115, the flash 120, etc. through different I2C bus interfaces. For example, the processor can be coupled to the display screen 123 through the I2C interface, so that the processor and the display screen 123 communicate through the I2C bus interface.

[0171] In one implementation, the processor may include multiple I2S buses, and the I2S interface may be used for audio communication. The processor may be coupled to the audio circuit 125 via the I2S bus to enable communication between the processor and the audio circuit 125, thereby controlling the speaker 124 to produce sound.

[0172] A feasible product hardware architecture of the routing device 130 is shown in FIG. Figure 13 As shown, it may include: one or more third data transmission interfaces 131, a third processor 132, a second memory 133 and a third power management module 134. For hardware descriptions, please refer to the corresponding components in the source device and will not be repeated here.

[0173] An embodiment of the present application further provides a computer storage medium comprising computer instructions, which, when executed on an electronic device, enables the electronic device to execute any of the above methods.

[0174] An embodiment of the present application also provides a chip system, including: a communication interface for inputting and / or outputting information; and a processor for executing a computer executable program so that a device equipped with the chip system executes any of the methods described above.

[0175] It should be understood that in the various embodiments of the present application, “first”, “second”, etc. are only used to refer to different objects and do not mean any other limitations on the objects referred to.

[0176] It should be understood that the term "unit" in the embodiments of the present application can be implemented in the form of software and / or hardware, without specific limitation. For example, a "unit" can be a software program, a hardware circuit, or a combination of the two that implements the above-mentioned functions. The hardware circuit may include an application-specific integrated circuit (ASIC), an electronic circuit, a processor (such as a shared processor, a dedicated processor, or a group processor, etc.) and memory for executing one or more software or firmware programs, a combined logic circuit, and / or other suitable components that support the described functions.

[0177] Therefore, the units of each example described in the embodiments of this application can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0178] In the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent the existence of A alone, the existence of A and B at the same time, and the existence of B alone. Among them, A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following" and similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b and c can be represented by: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple.

[0179] Those skilled in the art will appreciate that the various units and algorithm steps described in the embodiments disclosed herein can be implemented using a combination of electronic hardware, computer software, and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0180] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0181] In the several embodiments provided in this application, if any function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of this application. The aforementioned storage medium includes: 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.

[0182] The above description is merely a specific embodiment of the present application. Any person skilled in the art may easily conceive of variations or substitutions within the technical scope disclosed in this application, and such variations or substitutions shall be within the scope of protection of this application. The scope of protection of this application shall be subject to the scope of protection of the claims.

Claims

1. A data processing method, characterized in that: Applied to a first device, the first device is used to send data through a data transmission interface; the method includes: Determining bandwidth units corresponding to the plurality of business flow data to be processed, wherein the plurality of business flow data correspond to at least two business categories, and the plurality of business flow data correspond to at least two bandwidth units with different data volumes; Obtaining, according to the at least two bandwidth units, at least two data blocks having data amounts corresponding to the at least two bandwidth units; the at least two data blocks are obtained based on the multiple business flow data; The at least two data blocks are integrated to obtain an integrated target data stream.

2. The method according to claim 1, wherein The determining of bandwidth units corresponding to the plurality of service flow data to be processed includes: Identifying the service categories corresponding to the plurality of service flow data; The bandwidth unit corresponding to the service category corresponding to any one of the multiple service flow data is determined as the bandwidth unit corresponding to the any one of the service flow data.

3. The method according to claim 2, wherein The service categories include audio service and video service; wherein the data volume of the bandwidth unit corresponding to the audio service is 8 bits; and the data volume of the bandwidth unit corresponding to the video service is 128 bits.

4. The method according to claim 1, wherein Before integrating the at least two data blocks, the method further includes: The bandwidth numbers corresponding to the multiple business flow data are determined based at least on the target bandwidths corresponding to the multiple business flow data, the total number of data blocks in a cycle and the effective bandwidth; wherein the effective bandwidth is the bandwidth used to transmit the multiple business flow data.

5. The method according to claim 4, wherein the step of integrating the at least two data blocks to obtain a target data stream to be sent comprises: According to the bandwidth number, the at least two data blocks are integrated to obtain a target data stream including at least one cycle; wherein the number of data blocks corresponding to any business flow data in a cycle is equal to the bandwidth number corresponding to any business flow data.

6. The method according to claim 5, wherein The integrating the at least two data blocks includes: Obtaining numbers corresponding to the plurality of business flow data respectively; In the one cycle, the data blocks corresponding to the plurality of business flow data are sequentially arranged according to the numbers to obtain a data block sequence; The data block sequence includes a plurality of first data block combinations that appear cyclically, and the plurality of first data blocks in the first data block combination are derived from at least two business flow data and are arranged in the order of the numbers of the at least two business flow data.

7. The method according to claim 6, wherein In the first data block combination, any two adjacent first data blocks are derived from different items of business flow data.

8. The method according to claim 6, wherein The data block sequence further includes a second data block combination; In the data block sequence, the second data block combination is arranged after the multiple first data block combinations, and the second data blocks in the second data block combination are derived from the same business flow data.

9. The method according to claim 4, wherein A port flow table is stored in the first device, and the port flow table is used to record at least one of the service categories, bandwidth numbers, and numbers corresponding to the multiple pieces of service flow data.

10. The method according to claim 4, wherein After determining the bandwidth units corresponding to the plurality of service flow data to be processed, the method further includes: Generate a message header, wherein the message header carries number information, service category information, bandwidth unit information, and bandwidth quantity information corresponding to the multiple service flow data respectively; The message header is encapsulated in the target data stream.

11. The method according to claim 10, wherein The encapsulating the message header in the target data stream includes: In the target data stream, one message header is encapsulated every N cycles, where N is a positive integer greater than or equal to 1.

12. The method according to any one of claims 4 to 11, wherein: One cycle consists of 125 data blocks.

13. The method according to claim 2, wherein Before determining the bandwidth units corresponding to the plurality of service flow data to be processed, the method further includes: Obtaining service parameters corresponding to the service categories respectively; the service parameters include at least one of a target bandwidth and a transmission frequency; the transmission frequency is a frequency at which multiple service flow data of the same service category are transmitted through the data transmission interface within a predetermined time period; Bandwidth units corresponding to the service categories are determined according to the service parameters.

14. The method according to claim 13, wherein The determining, based on the service parameters, bandwidth units corresponding to the service categories respectively includes: determining, according to the first target bandwidths corresponding to the service categories, a first service category having the smallest first target bandwidth; A first bandwidth unit corresponding to the first service category is determined; among the at least two bandwidth units, the first bandwidth unit has the smallest data volume.

15. The method according to claim 14, wherein After determining that the first service category corresponds to the first bandwidth unit, the method further includes: It is determined that at least one service category other than the first service category among the service categories corresponds to a same bandwidth unit with the same data volume.

16. The method according to claim 15, wherein Before determining that at least one service category other than the first service category among the service categories corresponds to the same bandwidth unit with the same data volume, the method further includes: Determining a minimum data size of a data object required to encode the target data stream; The determining that at least one of the service categories other than the first service category corresponds to the same bandwidth unit with the same data volume includes: It is determined that at least one service category other than the first service category among the service categories corresponds to a same bandwidth unit with a same data volume, and the data volume of the same bandwidth unit is the same as the data volume of the minimum data object.

17. The method according to claim 14, wherein After determining that the first service category corresponds to the first bandwidth unit, the method further includes: At least two service categories other than the first service category among the service categories are determined to correspond to at least two bandwidth units with different data volumes.

18. The method according to claim 13, wherein After determining the bandwidth unit corresponding to the service category corresponding to any one of the plurality of service flow data as the bandwidth unit corresponding to the any one of the service flow data, the method further includes: Obtaining second target bandwidths corresponding to the plurality of service flow data respectively; When the difference between the second target bandwidth corresponding to any item of business flow data and the first target bandwidth corresponding to the business category corresponding to any item of business flow data exceeds a predetermined threshold, the bandwidth unit corresponding to any item of business flow data is adjusted.

19. The method according to any one of claims 13 to 18, wherein When the service category corresponding to any item of service flow data is an audio service, the target bandwidth is determined based on at least one of an audio sampling rate, an audio sampling bit width, and a number of channels; and / or, In the case where the service category corresponding to any item of service flow data is a video service, the target bandwidth is determined based on at least one of video resolution, refresh rate, and color depth.

20. The method of claim 1, wherein The data volume of a single data block obtained based on any one item of business flow data is the same as the data volume of a bandwidth unit corresponding to the any one item of business flow data.

21. The method according to claim 1, wherein The first device is used to send data to the second device or the routing device through the data transmission interface; After determining the bandwidth units corresponding to the plurality of service flow data to be processed, the method further includes: Generate a notification message, wherein the notification message carries number information, service category information, and bandwidth unit information corresponding to at least one service flow data; The notification message is transmitted to the routing device or the second device via a first link to synchronize bandwidth unit information; the first link is a physical link connected between the first device and the second device or the routing device.

22. The method according to claim 21, wherein The first link is an SB link or an AUX channel.

23. A data processing method, characterized in that: Applied to a second device, the second device is used to receive data through a data transmission interface; the method includes: Receive a target data stream; the target data stream includes at least two data blocks, the at least two data blocks are obtained based on multiple business flow data; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data sizes; Determining bandwidth units corresponding to the plurality of service flow data respectively; Splitting the target data stream at least according to the bandwidth units respectively corresponding to the multiple business flow data to obtain multiple data blocks respectively corresponding to the multiple business flow data; Integrate multiple data blocks corresponding to the same business flow data into corresponding business flow data to obtain the restored multiple business flow data.

24. A data processing method, characterized in that: Applied to a routing device, the routing device is used to forward data through a data transmission interface; the method includes: Receive a target data stream; the target data stream includes at least two data blocks, the at least two data blocks are obtained based on multiple business flow data; wherein the multiple business flow data correspond to at least two business categories, and the multiple business flow data correspond to at least two bandwidth units with different data sizes; Determining bandwidth units corresponding to the plurality of service flow data respectively; Splitting the target data stream at least according to the bandwidth units respectively corresponding to the multiple business flow data to obtain multiple data blocks respectively corresponding to the multiple business flow data; Determine the destination addresses corresponding to the multiple business flow data respectively; integrate multiple data blocks corresponding to at least one business flow data corresponding to the same destination address, and forward them separately.

25. The method of claim 24, wherein: The determining of the bandwidth units corresponding to the plurality of service flow data respectively includes: A message header encapsulated in the target data flow is obtained, and bandwidth units corresponding to the multiple service flow data are determined at least according to bandwidth unit information carried in the message header.

26. The method of claim 24, wherein: The determining of the bandwidth units corresponding to the plurality of service flow data respectively includes: The service categories corresponding to the multiple service flow data are identified, and a bandwidth unit corresponding to the service category corresponding to any one of the service flow data is determined as the bandwidth unit corresponding to the any one of the service flow data.

27. The method according to claim 26, wherein After determining the bandwidth unit corresponding to the service category corresponding to any one item of service flow data as the bandwidth unit corresponding to the any one item of service flow data, the method further includes: receiving a notification message; the notification message carries a number, a service category, and bandwidth unit information corresponding to at least one service flow data; the notification message is transmitted via a first link; the first link is a physical link connected between the first device and the routing device; According to the bandwidth units corresponding to at least one item of service flow data recorded in the notification message, the bandwidth units corresponding to the service flow data with corresponding numbers are modified.

28. The method of claim 25, wherein: The message header carries the bandwidth numbers corresponding to the multiple service flow data respectively; The target data stream includes at least one cycle, wherein the number of data blocks corresponding to any one item of service flow data in one cycle is equal to the bandwidth number corresponding to any one item of service flow data; The method further comprises: Obtaining bandwidth resource information of a second link; the second link is a physical link connected between the routing device and the second device, or connected between different routing devices; Based on the bandwidth resource information, the bandwidth corresponding to at least one item of business flow data is adjusted.

29. A data transmission system, characterized in that: include: A first device, configured to perform the method according to any one of claims 1 to 22; a second device configured to perform the method according to claim 23; A physical link for transmitting a target data stream as described in any one of the methods of claims 1-22 or 23, or for transmitting a plurality of data blocks corresponding to at least one service flow data corresponding to the same destination address as described in any one of the methods of claims 24-28.

30. A data transmission interface, characterized in that: Used to transmit the target data stream as described in any one of the methods of claims 1-22 or 23, or used to transmit multiple data blocks corresponding to at least one business flow data corresponding to the same destination address as described in any one of claims 24-28.

31. A physical link, characterized in that Used to transmit the target data stream as described in any one of claims 1-22 or 23, or used to transmit multiple data blocks corresponding to at least one business flow data corresponding to the same destination address as described in any one of claims 24-28.

32. An electronic device, characterized in that: The electronic device is configured to send data via a data transmission interface, the electronic device comprising: One or more processors; a memory; at least one application; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs include instructions that, when executed by the electronic device, cause the electronic device to perform the method described in any one of claims 1-22 or 23 or 24-28.

33. A storage medium, characterized in that The method comprises computer instructions, which, when executed on an electronic device, cause the electronic device to execute the method according to any one of claims 1-22, 23, or 24-28.

34. A chip system, characterized in that: include: a communication interface for inputting and / or outputting data; A processor, configured to execute a computer executable program so that a device equipped with the chip system executes a method as described in any one of claims 1-22 or 23 or 24-28.

35. A software program product, characterized in that The software program product includes program instructions, and when the program instructions are run on an electronic device, the electronic device is caused to perform the method according to any one of claims 1 to 22, 23, or 24 to 28.

Citation Information

Patent Citations

  • Communication station and method for communicating using minimum bandwidth units of various tone allocations for OFDMA HEW

    CN105706407A

  • Service transmission method and device, and computer storage medium

    CN110798415A