Construction method and apparatus for hybrid virtual device

By building hybrid virtual devices, the starting point, function and end point input and output modules are used to optimize device redundancy on the chip, solving the problem of low chip bus access efficiency, and achieving efficient, flexible use of device functions and area reduction.

WO2025139137A1PCT designated stage expired Publication Date: 2025-07-03GREE ELECTRIC APPLIANCE INC OF ZHUHAI +1
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/121991
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-25
Filing Date
2024-09-27
Publication Date
2025-07-03

AI Technical Summary

Technical Problem

As chip versatility and integration increase, the number of functional modules increases, resulting in a decrease in chip bus access efficiency, and many device modules are redundant, increasing chip area.

Method used

By determining the data source type and output data type, build the starting point, function and end point input and output modules, generate independent virtual devices, and form hybrid virtual devices to optimize device redundancy.

Benefits of technology

It improves the efficiency and flexibility of equipment, reduces chip area and cost, and achieves efficient equipment function implementation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024121991_03072025_PF_FP_ABST
    Figure CN2024121991_03072025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a construction method and apparatus for a hybrid virtual device. The method comprises: determining a data source type, and on the basis of the data source type, determining a starting point input and output module; determining a functional module; determining an output data type, and on the basis of the output data type, determining an end point input and output module; using the starting point input and output module, the functional module, and the end point input and output module to generate a plurality of independent virtual devices; and using the plurality of independent virtual devices to construct a hybrid virtual device. Therefore, the virtual device realizes a specific device function on a chip, and device redundancy is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

A method and device for constructing a hybrid virtual device

[0001] This application claims priority to a patent application filed with the State Intellectual Property Office of China on December 25, 2023, with application number 202311799980.1 and application name “A method and device for constructing a hybrid virtual device”. Technical Field

[0002] The present application relates to the technical field of constructing hybrid virtual devices, and in particular to a method for constructing a hybrid virtual device, a device for constructing a hybrid virtual device, an electronic device, and a computer-readable storage medium. Background Art

[0003] A chip's functional modules are connected to the chip bus as slave devices and are accessed by the processor's I / O instructions. As chips become more versatile and integrated, the number of functional modules increases. However, too many devices on the bus can reduce access efficiency. For specific applications, many device modules are not used, leading to redundancy and increased chip area.

[0004] Summary of the Invention

[0005] The embodiments of the present application provide a method, apparatus, electronic device, and computer-readable storage medium for constructing a hybrid virtual device to overcome the above-mentioned problems or at least partially solve the above-mentioned problems.

[0006] The present application discloses a method for constructing a hybrid virtual device, including:

[0007] Determine a data source type, and determine a starting point input and output module based on the data source type;

[0008] Determine functional modules;

[0009] determining an output data type, and determining a destination input / output module based on the output data type;

[0010] Using the starting point input and output module, the functional module and the end point input and output module to generate a plurality of independent virtual devices;

[0011] A plurality of the independent virtual devices are used to construct a hybrid virtual device.

[0012] Optionally, it also includes:

[0013] Constructing a data source module configuration parameter table, an intermediate node module configuration parameter table, and a data sink module configuration parameter table for the independent virtual device;

[0014] Determining data source module configuration parameters for the starting point input and output module, and writing the data source module configuration parameters into the data source module configuration parameter table;

[0015] When the functional module is a peripheral module, determining an intermediate node module configuration parameter for expressing an input and output data format for the functional module, and writing the intermediate node module configuration parameter into the intermediate node module configuration parameter table;

[0016] Determining data sink module configuration parameters for the starting point input and output module, and writing the data sink module configuration parameters into the data sink module configuration parameter table;

[0017] The hybrid virtual device is started.

[0018] Optionally, the hybrid virtual device is provided with a bus arbiter, the independent virtual device is provided with a corresponding device identifier, the functional module is provided with a corresponding input data buffer memory, and further includes:

[0019] When input data for a target virtual device is monitored, a target data source module configuration parameter corresponding to the target virtual device is read from the data source module configuration parameter table according to a target device identifier corresponding to the target virtual device;

[0020] Determining a target functional module corresponding to the target virtual device based on the target device identifier;

[0021] Acquire the input data based on the target data source module configuration parameters;

[0022] The bus arbiter stores the input data into the target input data buffer memory corresponding to the target functional module.

[0023] Optionally, it also includes:

[0024] Acquire a state parameter of the target input data buffer memory;

[0025] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a first preset threshold, the target function module is increased to a first frequency using a first-level frequency multiplication coefficient;

[0026] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a second preset threshold, the target functional module is increased to a second frequency using a secondary frequency multiplication coefficient;

[0027] wherein the second frequency is higher than the first frequency;

[0028] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a third preset threshold, the target functional module is increased to a maximum frequency using a three-level frequency multiplication coefficient.

[0029] Optionally, the target functional module is configured with a corresponding pipeline configuration table, including:

[0030] When the target functional module has finished processing the input data, it sends an output request message to the bus arbiter; the output request message at least includes the target device identifier and output packet length information for the data packet of the input data;

[0031] determining, by a bus arbiter, the next-level functional module identifier of a next-level functional module corresponding to the target functional module in the pipeline configuration table according to the target device identifier and the target functional module identifier of the currently requested target functional module; the next-level functional module having a corresponding sequence of data to be processed, the sequence of data to be processed being used to express the order of input data to be processed by the target functional module; the input data having a corresponding priority identifier;

[0032] Compiling the input data into the to-be-processed data sequence according to the priority identifier through a bus arbiter;

[0033] The input data is stored in a next-stage input data buffer memory corresponding to the next-stage functional module through a bus arbiter based on the data sequence to be processed.

[0034] Optionally, the functional module is provided with an input port and an output port, and the functional module is connected to the input data buffer memory via the input port and the output port.

[0035] Optionally, the functional module is configured with a corresponding state machine and further includes:

[0036] Determining whether the input data buffer memory is empty;

[0037] If it is determined that the input data buffer memory is not empty, a reset operation is performed on the state machine.

[0038] The embodiment of the present application further discloses a device for constructing a hybrid virtual device, comprising:

[0039] A data source type determination module, configured to determine a data source type and determine a starting point input and output module based on the data source type;

[0040] A function module determination module, used to determine the function module;

[0041] an output data type determination module, configured to determine an output data type and determine a destination input / output module based on the output data type;

[0042] An independent virtual device generation module, configured to generate a plurality of independent virtual devices using the starting point input and output module, the function module, and the end point input and output module;

[0043] The hybrid virtual device construction module is used to construct a hybrid virtual device using a plurality of the independent virtual devices.

[0044] The embodiment of the present application further discloses an electronic device, comprising a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other via the communication bus;

[0045] The memory is used to store computer programs;

[0046] The processor is used to implement the method described in the embodiment of the present application when executing the program stored in the memory.

[0047] The embodiment of the present application further discloses a computer-readable storage medium having instructions stored thereon, which, when executed by one or more processors, causes the processors to execute the method described in the embodiment of the present application.

[0048] The embodiments of the present application include the following advantages:

[0049] In an embodiment of the present application, a data source type is determined, and a starting input / output module is determined based on the data source type; a functional module is determined; an output data type is determined, and an end input / output module is determined based on the output data type; a plurality of independent virtual devices are generated using the starting input / output module, the functional module, and the end input / output module; and a hybrid virtual device is constructed using the plurality of independent virtual devices, so that the virtual device implements specific device functions on a chip and reduces device redundancy. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] FIG1 is a flowchart of a method for constructing a hybrid virtual device provided in an embodiment of the present application;

[0051] FIG2 is a schematic diagram of the structure of an independent virtual device provided in an embodiment of the present application;

[0052] FIG3 is a schematic diagram of a process for user registration of a virtual device provided in an embodiment of the present application;

[0053] FIG4 is a schematic structural diagram of a functional module provided in an embodiment of the present application;

[0054] FIG5 is a schematic diagram showing the relationship between storage thresholds and frequency multiplication levels of functional modules provided in an embodiment of the present application;

[0055] FIG6 is a schematic structural diagram of a bus arbiter provided in an embodiment of the present application;

[0056] FIG7 is a schematic diagram of a reset process for a state machine provided in an embodiment of the present application;

[0057] FIG8 is a schematic diagram of a process of scheduling based on a bus arbiter provided in an embodiment of the present application;

[0058] FIG9 is a structural block diagram of a device for constructing a hybrid virtual device provided in an embodiment of the present application;

[0059] FIG10 is a block diagram of the hardware structure of an electronic device provided in an embodiment of the present application;

[0060] FIG11 is a schematic diagram of a computer-readable medium provided in an embodiment of the present application. DETAILED DESCRIPTION

[0061] In order to make the above-mentioned purposes, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0062] In practical applications, virtual devices can be configured to implement specific device functions on a chip, reducing the number of devices and increasing flexibility when multiple channels and types of devices are required. To further effectively reduce device redundancy, embodiments of the present application provide a hybrid virtual device that improves device scalability while enabling efficient use of functional modules.

[0063] 1 , a flowchart of a method for constructing a hybrid virtual device provided in an embodiment of the present application is shown, which may specifically include the following steps:

[0064] Step 101, determining a data source type, and determining a starting point input and output module based on the data source type;

[0065] Step 102, determining the functional module;

[0066] Step 103, determining the output data type, and determining the destination input and output module based on the output data type;

[0067] Step 104: Generate multiple independent virtual devices using the starting point input and output module, the functional module, and the end point input and output module;

[0068] Step 105: Use multiple independent virtual devices to construct a hybrid virtual device.

[0069] A hybrid virtual device may be composed of multiple independent virtual devices. Therefore, in order to construct a hybrid virtual device, the embodiment of the present application may first generate independent virtual devices.

[0070] GPIO (English: General-purpose input / output) is short for general-purpose input / output. Its functions are similar to P0-P3 of the 8051. Its pins can be freely used by the user through program control. The pins can be used as general-purpose input (GPI), general-purpose output (GPO), or general-purpose input and output (GPIO) depending on practical considerations, such as as clk generator, chip select, etc.

[0071] Direct Memory Access (DMA) is a feature provided by some computer bus architectures that enables data to be sent from an attached device (such as a disk drive) directly to the computer's mainboard memory.

[0072] Refer to Figure 2, which is a structural diagram of an independent virtual device provided in an embodiment of the present application. The independent virtual device in the embodiment of the present application can be composed of a starting input and output module, one or more functional modules, and an end point input and output module, wherein the input and output module closest to the starting point can be a first-level functional module, and the next input and output module closest to the starting point can be a second-level functional module, and so on. The embodiment of the present application can use a data pipeline method to combine multiple functional modules to form multiple independent virtual devices. Optionally, different virtual devices can use the same functional module. For example, two virtual devices need to perform encryption and decryption operations on input and output data. At this time, the two virtual devices can share the same encryption and decryption functional module in different time periods, wherein the starting point and end point of the flow are input and output modules, such as the GPIO chip pin input and output module and the DMA memory input and output module, wherein the data flow between the functional modules can be unidirectional or bidirectional.

[0073] Once the structure of the independent virtual device is determined, the independent virtual device can be generated according to the structure.

[0074] In a specific implementation, the embodiment of the present application can determine the data source type, and determine the starting input and output module based on the data source type, determine the functional module according to actual business needs, determine the output data type, and determine the end point input and output module based on the output data type, thereby determining an independent virtual device through the starting point input and output module, the functional module and the end point input and output module, and a hybrid virtual device can be constructed through multiple independent virtual devices.

[0075] For example, referring to FIG3 , FIG3 is a flowchart of a user registering a virtual device provided in an embodiment of the present application.

[0076] The user applies for a virtual device number from the virtual device manager, and the virtual device manager reserves the virtual device identifier for the virtual device in the virtual device pipeline configuration table;

[0077] Static random-access memory (SRAM) is a type of random access memory. The term "static" refers to the fact that the data stored in this type of memory remains permanently stored as long as the power is on. In contrast, the data stored in dynamic random-access memory (DRAM) requires periodic updating. However, when the power supply is cut off, the data stored in SRAM will disappear (called volatile memory), unlike ROM or flash memory, which can still store data after power is removed.

[0078] The starting point input and output module is used to sample the data source, so it can also be regarded as a data source module. Users can determine the virtual device data source module in the following ways:

[0079] If the source data is obtained from the chip pin through GPIO sampling, that is, the data source type is data for GPIO, the chip pin input and output module is used as the starting input and output module;

[0080] If the source data is obtained from the system SRAM, that is, the data source type is data for the SRAM, the DMA memory input and output module is used as the starting input and output module.

[0081] Functional modules can also be regarded as intermediate node modules. Functional modules can be determined according to actual business needs. For example, an encryption and decryption data processing module performs encryption and decryption operations on data.

[0082] The endpoint input / output module can be used for data output, so it can also be considered a data sink module. Users can identify the data sink module in the following ways:

[0083] If the data is output from the chip pin through GPIO, that is, the output data type is data for GPIO, the chip pin input and output module can be used as the end point input and output module;

[0084] If the source data is obtained from the system SRAM, that is, the data source type is data for SRAM, the DMA memory input and output module is used as the end point input and output module;

[0085] In an optional embodiment of the present application, when there is no data sink module, the hybrid virtual device can be configured on a processor, such as a central processing unit CPU, etc. The processor can be configured with an IO bus, and the processor can take the output data from the status parameter table of the last-level functional module in the independent virtual device through the IO bus.

[0086] After completing the construction of the hybrid virtual device, you can start the hybrid virtual device. At this time, the hybrid virtual device will process the input data obtained from the data source module step by step under the scheduling of the virtual device manager, and place the results in the input data buffer memory of the data sink module, and send an interrupt signal to the processor according to the user configuration.

[0087] Of course, the above examples are only examples. For example, those skilled in the art can replace manual selection with preset rule codes, and the embodiments of the present application do not limit this.

[0088] In an embodiment of the present application, a data source type is determined, and a starting input / output module is determined based on the data source type; a functional module is determined; an output data type is determined, and an end input / output module is determined based on the output data type; a plurality of independent virtual devices are generated using the starting input / output module, the functional module, and the end input / output module; and a hybrid virtual device is constructed using the plurality of independent virtual devices, so that the virtual device implements specific device functions on a chip and reduces device redundancy.

[0089] Based on the above embodiment, a modified embodiment of the above embodiment is proposed. It should be noted that, in order to simplify the description, only the differences from the above embodiment are described in the modified embodiment.

[0090] In an optional embodiment of the present application, it further includes:

[0091] Constructing a data source module configuration parameter table, an intermediate node module configuration parameter table, and a data sink module configuration parameter table for the independent virtual device;

[0092] Determining data source module configuration parameters for the starting point input and output module, and writing the data source module configuration parameters into the data source module configuration parameter table;

[0093] When the functional module is a peripheral module, determining an intermediate node module configuration parameter for expressing an input and output data format for the functional module, and writing the intermediate node module configuration parameter into the intermediate node module configuration parameter table;

[0094] Determining data sink module configuration parameters for the starting point input and output module, and writing the data sink module configuration parameters into the data sink module configuration parameter table;

[0095] The hybrid virtual device is started.

[0096] For example, referring to FIG3 , FIG3 is a flowchart of a user registering a virtual device provided in an embodiment of the present application.

[0097] The user applies for a virtual device number from the virtual device manager, and the virtual device manager reserves the virtual device identifier for the virtual device in the virtual device pipeline configuration table;

[0098] The starting point input and output module is used to sample the data source, so it can also be regarded as a data source module. Users can configure the virtual device data source module in the following ways:

[0099] Construct the data source module configuration parameter table, intermediate node module configuration parameter table and data sink module configuration parameter table for independent virtual devices;

[0100] If the source data is obtained by sampling from the chip pin through GPIO, that is, the data source type is GPIO data, the chip pin input and output module is used as the starting input and output module, and the data source module configuration parameters such as sampling clock source, clock frequency, and filter coefficient are written into the data source module configuration parameter table for the virtual device;

[0101] If the source data is obtained from the system SRAM, that is, the data source type is data for SRAM, the DMA memory input and output module is used as the starting input and output module, and the data source module configuration parameters such as data input address, length, buffer threshold, interrupt, etc. are written into the source module configuration parameter table for the virtual device. At the same time, the first-level functional module node of the virtual device identifier of the virtual device is inserted into the virtual device pipeline configuration table.

[0102] SPI stands for Serial Peripheral Interface. As the name suggests, SPI is a synchronous serial communication interface specification primarily used for short-distance communication in embedded systems.

[0103] A Universal Asynchronous Receiver / Transmitter (UART) is an asynchronous receiver / transmitter (ART), a component of computer hardware that transmits data via serial communication. It performs parallel-to-serial data conversion on the transmitter side and serial-to-parallel data conversion on the receiver side. It is versatile because parameters such as transmission speed and data rate are configurable. UARTs are often used to connect to other communication interfaces, such as EIA RS-232.

[0104] The I²C bus is a simple, bidirectional, two-wire synchronous serial bus. It requires only two wires to transmit information between connected devices. A master device initiates bus data transmission and generates a clock to open the bus for transmission. At this point, any addressed device is considered a slave. The relationship between master and slave, sender and receiver, on the bus is not constant, but depends on the direction of data transmission. To send data to a slave, the master first addresses the slave, then actively sends data to the slave, and finally terminates the data transmission. To receive data from a slave, the master first addresses the slave, then receives the data sent by the slave, and finally terminates the reception process. In this case, the master is responsible for generating the timing clock and terminating the data transmission.

[0105] The functional module can also be regarded as an intermediate node module. The functional module can be determined according to actual business needs, for example, an encryption and decryption data processing module for performing encryption and decryption operations on data; the user can configure the functional module in the following way. If the functional module is a peripheral module such as SPI / UART / I2C, the intermediate node module configuration parameters used to express the input and output data format for the functional module, such as the byte format of I2C, the bit address format, etc. can be used as intermediate node module configuration parameters and written into the intermediate node module configuration parameter table for the virtual device, and the functional module identifier of the virtual device can be inserted into the virtual device pipeline configuration table.

[0106] The endpoint input and output module can be used for data output, so it can also be regarded as a data sink module. Users can configure the data sink module in the following ways:

[0107] If the data is output from the chip pin through GPIO, that is, the output data type is data for GPIO, the chip pin input and output module can be used as the end point input and output module; and the data sink module configuration parameters such as output clock source and clock frequency are written into the data sink module configuration parameter table of the data sink module for the virtual device;

[0108] If the source data is obtained from the system SRAM, that is, the data source type is data for SRAM, the DMA memory input and output module is used as the endpoint input and output module, and the data output address, length, buffer threshold, interrupt and other data sink module configuration parameters are written into the data sink module configuration parameter table for the data sink module.

[0109] In an optional embodiment of the present application, when there is no data sink module, the hybrid virtual device can be configured on a processor, such as a central processing unit CPU, etc. The processor can be configured with an IO bus, and the processor can take the output data from the status parameter table of the last-level functional module in the independent virtual device through the IO bus.

[0110] After completing the construction of the hybrid virtual device, you can start the hybrid virtual device. At this time, the hybrid virtual device will process the input data obtained from the data source module step by step under the scheduling of the virtual device manager, and place the results in the input data buffer memory of the data sink module, and send an interrupt signal to the processor according to the user configuration.

[0111] In an optional embodiment of the present application, the hybrid virtual device is provided with a bus arbiter, the independent virtual device is provided with a corresponding device identifier, the functional module is provided with a corresponding input data buffer memory, and further includes:

[0112] When input data for a target virtual device is monitored, a target data source module configuration parameter corresponding to the target virtual device is read from the data source module configuration parameter table according to a target device identifier corresponding to the target virtual device;

[0113] Determining a target functional module corresponding to the target virtual device based on the target device identifier;

[0114] Acquire the input data based on the target data source module configuration parameters;

[0115] The bus arbiter stores the input data into the target input data buffer memory corresponding to the target functional module.

[0116] Optionally, the functional module is provided with an input port and an output port, and the functional module is connected to the input data buffer memory via the input port and the output port.

[0117] Refer to Figure 4, which is a structural diagram for a functional module provided in an embodiment of the present application; multiple functional modules and multiple input data buffer memories can be in a one-to-one correspondence, and the input ports and output ports of multiple functional modules and multiple input data buffer memories or registers constitute a data exchange matrix, and data is transmitted in the form of byte stream or bit stream. The data in the data buffer adopts a mixed storage method, and the data packets of multiple virtual devices enter the buffer in sequence, with the virtual device identifier as the boot code for the data packet of the input data.

[0118] In a specific implementation, the bus arbiter can be a device used to determine which data is processed by the module first when multiple data point to the same module. Each independent virtual device can be configured with a unique device identifier. It can be understood that the target device identifier can be an identifier used to mark the target virtual device. When the input data for the target virtual device is monitored, the target data source module configuration parameters corresponding to the target virtual device can be read from the data source module configuration parameter table according to the target device identifier corresponding to the target virtual device. The target data source module configuration parameters can be used to sample the data source. The target device identifier can also be used to determine the target functional module corresponding to the target virtual device, that is, the functional module that the target virtual device needs to use when processing actual business, and then the input data is stored in the target input data buffer memory corresponding to the target functional module through the bus arbiter.

[0119] An embodiment of the present application implements hybrid virtual device input and output data buffer management. The input and output ports of multiple functional modules of the device and multiple data buffer static memories or registers form a data exchange matrix, and data is transmitted in the form of byte stream or bit stream. Data packets of different virtual devices are mixed and stored, and are identified and distinguished by the packet pre-device identifier.

[0120] In an optional embodiment of the present application, it further includes:

[0121] Acquire a state parameter of the target input data buffer memory;

[0122] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a first preset threshold, the target function module is increased to a first frequency using a first-level frequency multiplication coefficient;

[0123] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a second preset threshold, the target functional module is increased to a second frequency using a secondary frequency multiplication coefficient;

[0124] wherein the second frequency is higher than the first frequency;

[0125] When it is determined based on the state parameter that the storage capacity of the target input data buffer memory exceeds a third preset threshold, the target functional module is increased to a maximum frequency using a three-level frequency multiplication coefficient.

[0126] In practical applications, the multiplier refers to the relative proportional relationship between the CPU main frequency and the external frequency.

[0127] Refer to Figure 5, which is a schematic diagram of the relationship between the functional module storage threshold and the multiplication level provided in an embodiment of the present application. The embodiment of the present application can adjust the operating frequency of the functional module according to the speed of the input data of the input data buffer memory corresponding to each functional module, and adopts a three-level threshold mechanism. When the data in the functional module input buffer grows to the first preset threshold, the first-level multiplication coefficient is adopted, when it grows to the second preset threshold, the second-level multiplication coefficient is adopted, and when it grows to the third preset threshold, the highest operating frequency is used. When it is reduced to the next level threshold, a binary frequency reduction coefficient is uniformly adopted until the lowest threshold.

[0128] Specifically, a virtual device manager may be configured for the hybrid virtual device. The virtual device manager may be a management system for the hybrid virtual device. The virtual device manager obtains state parameters for a target input data buffer memory and monitors the state of the input data buffer of each functional module based on the state parameters to prevent overflow and data loss.

[0129] When the data in the target functional module input buffer increases to a first preset threshold, the virtual device manager uses a first-level frequency multiplication factor to increase the frequency of the target functional module to a first frequency until the data in the target input data buffer memory stops increasing;

[0130] When the data in the target functional module input buffer increases to a second preset threshold, the virtual device manager uses a secondary frequency multiplication factor to increase the target functional module to a second frequency until the data in the target input data buffer memory no longer increases;

[0131] S54: When the data in the target functional module input buffer increases to a third preset threshold, the virtual device manager uses a three-level frequency multiplication factor to increase the frequency of the target functional module to a third frequency until the data in the target input data buffer memory overflows;

[0132] In an optional embodiment of the present application, when the data in the input buffer of the target functional module decreases, the virtual device manager can use the binary frequency coefficient of the target functional module to reduce the frequency until the data in the target input data buffer memory no longer decreases or reaches the minimum threshold or has reached the minimum operating frequency of the target functional module.

[0133] In an embodiment of the present application, by obtaining status parameters for the target input data buffer memory; when it is determined based on the status parameters that the storage capacity of the target input data buffer memory exceeds a first preset threshold, a first-level frequency multiplication coefficient is used to increase the target functional module to a first frequency; when it is determined based on the status parameters that the storage capacity of the target input data buffer memory exceeds a second preset threshold, a second-level frequency multiplication coefficient is used to increase the target functional module to a second frequency; wherein the second frequency is higher than the first frequency; when it is determined based on the status parameters that the storage capacity of the target input data buffer memory exceeds a third preset threshold, a third-level frequency multiplication coefficient is used to increase the target functional module to the highest frequency, so that the virtual device manager can adaptively adjust the operating frequency of each functional module according to the speed at which each functional module inputs data, so as to achieve a balance between power consumption and throughput.

[0134] In an optional embodiment of the present application, the target functional module is configured with a corresponding pipeline configuration table, including:

[0135] When the target functional module has finished processing the input data, it sends an output request message to the bus arbiter; the output request message at least includes the target device identifier and output packet length information;

[0136] determining, by a bus arbiter, the next-level functional module identifier of a next-level functional module corresponding to the target functional module in the pipeline configuration table according to the target device identifier and the target functional module identifier of the currently requested target functional module; the next-level functional module having a corresponding sequence of data to be processed, the sequence of data to be processed being used to express the order of input data to be processed by the target functional module; the input data having a corresponding priority identifier;

[0137] Compiling the input data into the to-be-processed data sequence according to the priority identifier through a bus arbiter;

[0138] The input data is stored in a next-stage input data buffer memory corresponding to the next-stage functional module through a bus arbiter based on the data sequence to be processed.

[0139] Refer to FIG6 , which is a schematic structural diagram of a bus arbiter provided in an embodiment of the present application;

[0140] In a specific implementation, the embodiment of the present application implements a virtual device manager with a data exchange matrix and a bus arbiter. The bus arbiter references the pipeline configuration information of each virtual device and imports the output data into the input buffer of the next-level functional module of the pipeline according to the virtual device identifier, device priority and functional module identifier of the current requested output.

[0141] When the target functional module has finished processing the input data, an output request message may be sent to the bus arbiter; the output request message includes at least a target device identifier and output packet length information for the data packet of the input data. The bus arbiter may search the pipeline configuration table for the next-level functional module identifier of the next-level functional module corresponding to the target functional module based on the target device identifier and the target functional module identifier of the currently requested target functional module, and may configure a data sequence to be processed for the next-level functional module, which is used to express the order of the input data to be processed by the target functional module. The input data has a corresponding priority identifier, and the bus arbiter may compile the input data into the data sequence to be processed based on the priority identifier. Finally, the bus arbiter may store the input data in a next-level input data buffer memory corresponding to the next-level functional module based on the data sequence to be processed.

[0142] For example, when multiple independent virtual devices simultaneously apply to the bus arbiter to output to the same next-level functional module for data processing, the data of the multiple independent virtual devices will be arranged into a sequence of data to be processed. High-priority input data can be arranged before low-priority input data and processed by the next-level functional module first.

[0143] In an embodiment of the present application, by enabling each functional module to specify an input data buffer memory by software, the data bus arbiter transmits the output data of one functional module to the input data buffer memory of the next functional module through the data exchange matrix according to the configuration of each virtual device, and prioritizes the data of the high-speed virtual device according to the priority specified by the user, so as to achieve a high-throughput and low-latency scheduling operation mode for the functional module.

[0144] In an optional embodiment of the present application, the functional module is configured with a corresponding state machine, further comprising:

[0145] Determining whether the input data buffer memory is empty;

[0146] If it is determined that the input data buffer memory is not empty, a reset operation is performed on the state machine.

[0147] In practical applications, a state machine refers to a finite-state machine (FSM), also known as a finite-state automaton (FSA), which is a mathematical computational model that represents a finite number of states and the transitions and actions between these states.

[0148] Refer to Figure 7, which is a schematic diagram of a reset process for a state machine provided in an embodiment of the present application. Before the input data is stored in the target input data buffer memory corresponding to the target functional module through the bus arbiter, it can be determined whether the input data buffer memory is empty; if it is determined that the input data buffer memory is not empty, a reset operation is performed on the state machine to complete the initialization of the state machine.

[0149] In order to enable those skilled in the art to better understand the embodiments of the present application, a complete example is used below to illustrate the embodiments of the present application.

[0150] As shown in Figure 2, multiple functional modules are combined in a data pipeline manner to form multiple hybrid virtual devices. Different virtual devices can use the same functional module (for example, if two virtual devices need to encrypt and decrypt input and output data, they can share the same encryption and decryption functional module in a time-sharing manner). The starting point and end point of the flow are input and output modules, such as the GPIO chip pin input and output module and the DMA memory input and output module. The data flow between the functional modules can be unidirectional or bidirectional.

[0151] As shown in Figure 3, the input ports and output ports of multiple functional modules and multiple data buffer static memories or registers form a data exchange matrix, which transmits data in byte stream or bit stream mode. The data in the data buffer adopts a mixed storage mode. The data packets of multiple virtual devices enter the buffer in sequence, and the virtual device identifier is used as the packet guide code.

[0152] As shown in Figure 7, hybrid virtual device switching is performed according to the device identification in the input data, including four steps: resetting the module and reading the next data packet, loading configuration parameters according to the virtual device identification, loading status parameters according to the virtual device identification, and starting the function module to process device data;

[0153] As shown in Figure 6, the virtual device manager is implemented with a data exchange matrix and a bus arbiter. The bus arbiter references the pipeline configuration information of each virtual device and imports the output data into the input buffer of the next-level functional module in the pipeline according to the device ID, device priority, and functional module ID of the current output request.

[0154] As shown in Figure 5, the operating frequency of each functional module is adjusted according to the speed of the input data of the functional module, and a three-level threshold mechanism is adopted. When the data in the functional module input buffer increases to the first threshold, the first frequency multiplication coefficient is adopted; when it increases to the second threshold, the second frequency multiplication coefficient is adopted; when it increases to the third threshold, the highest operating frequency is used; when it decreases to the next threshold, a binary frequency reduction coefficient is uniformly adopted until the lowest threshold.

[0155] As shown in Figure 3, the hybrid virtual device configuration data pipeline can be implemented as follows:

[0156] The user applies for a virtual device identifier from the virtual device manager, and the virtual device manager reserves the virtual device identifier in the virtual device pipeline configuration table;

[0157] The user configures the data source module of the virtual device:

[0158] If the source data is obtained by sampling from the chip pin through GPIO, the chip pin input and output module is used, and the configuration parameters such as sampling clock source, clock frequency, and filter coefficient are written into the configuration parameter table of the data source module of the virtual device;

[0159] If the source data is obtained from the system SRAM, a DMA memory input and output module is used, and the configuration parameters such as the data input address, length, buffer threshold, interrupt, etc. are written into the configuration parameter table of the data source module of the virtual device. At the same time, the first-level function module node of the virtual device identifier is inserted into the virtual device pipeline configuration table;

[0160] The user configures the parameters of the virtual device intermediate node module:

[0161] If it is a peripheral module such as SPI / UART / I2C, the parameters such as input and output data format will be configured and written into the node module configuration parameter table of the virtual device. At the same time, the functional module identifier of the virtual device will be inserted into the virtual device pipeline configuration table.

[0162] User-configured data sink module parameters:

[0163] If the data is output from the chip pin through GPIO, use the chip pin input and output module, and write the configuration parameters such as output clock source and clock frequency into the configuration parameter table of the data sink module of the virtual device;

[0164] If the data is output to the system SRAM, a DMA memory input / output module is used, and the configuration parameters such as the data output address, length, buffer threshold, and interrupt are written into the configuration parameter table of the data sink module. At the same time, the node of the last-level functional module identified by the virtual device is inserted into the virtual device pipeline configuration table. The data sink module may not be present, in which case the processor will directly retrieve the data from the status parameter table of the last-level functional module in the virtual device via the IO bus.

[0165] Start the virtual device, and then the virtual device will process the input data obtained from the source data module step by step under the scheduling of the virtual device manager, place the results in the input buffer of the data sink module, and send an interrupt to the processor according to the user configuration.

[0166] As shown in Figure 7, the functional module can switch devices in the following ways:

[0167] When it is determined that the input data buffer memory of the functional module is not empty, the state machine of the functional module is reset and the data packet is read in at the same time. The functional module reads the configuration parameters of the module at this level of the virtual device from the configuration parameter table according to the virtual device identifier;

[0168] The function module reads the state parameters of the module at this level of the virtual device from the state parameter table according to the virtual device identifier;

[0169] The functional module starts to process the data packet and sends the result to the bus arbiter, which transmits it to the input data buffer of the next level module.

[0170] As shown in FIG5 , the virtual device manager can implement adaptive frequency switching of the functional modules in the following ways:

[0171] The virtual device manager monitors the status of each functional module's input data buffer to prevent overflow and data loss;

[0172] When the data in the functional module input buffer increases to a first-level threshold, the virtual device manager increases the frequency of the functional module using a first-level frequency multiplication factor until the data in the input buffer no longer increases;

[0173] When the data in the functional module input buffer increases to the secondary threshold, the virtual device manager increases the frequency of the functional module using the secondary frequency multiplication factor until the data in the input buffer stops increasing;

[0174] When the data in the function module input buffer increases to the third threshold, the virtual device manager adopts the highest operating frequency of the function module until the input buffer data overflows;

[0175] When the data in the function module input buffer decreases, the virtual device manager uses the binary frequency coefficient of the function module to reduce the frequency until the input buffer data no longer decreases or reaches the minimum threshold or reaches the minimum operating frequency of the module.

[0176] As shown in FIG8 , FIG8 is a schematic diagram of a process of scheduling based on a bus arbiter provided in an embodiment of the present application; the bus arbiter in the virtual device manager can perform scheduling in the following manner:

[0177] After processing the current input data, the functional module sends an output request to the bus arbiter. The output request contains information such as the virtual device identifier and the output packet length.

[0178] The bus arbiter searches the pipeline configuration table according to the virtual device identifier and the currently requested functional module identifier to obtain the next-level functional module identifier;

[0179] If multiple devices simultaneously request the bus arbiter to output to the input buffer memory of the same functional module, the bus arbiter selects one device based on the device priority;

[0180] The bus arbiter switches the corresponding switch of the data exchange matrix and sends the output data of the device to the input buffer of the next level functional module in the form of byte stream or bit stream;

[0181] The bus arbiter re-executes the step of searching the pipeline configuration table according to the virtual device identifier and the currently requested functional module identifier to obtain the next-level functional module identifier.

[0182] Through the above method, a hybrid virtual device is realized by using a data pipeline to combine functional modules, and the operation of the virtual device is scheduled through the data exchange matrix and bus arbiter. This not only greatly improves the operating efficiency of each functional module, but also increases the flexibility of device channel expansion and function expansion. At the same time, it reduces the chip redundant area, reduces the chip cost, and can achieve a balance between power consumption and throughput.

[0183] It should be noted that for the method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present application are not limited by the order of the actions described, because according to the embodiments of the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present application.

[0184] 9 shows a block diagram of a hybrid virtual device construction apparatus provided in an embodiment of the present application, which may include the following modules:

[0185] A data source type determination module 901 is configured to determine a data source type and determine a starting point input and output module based on the data source type;

[0186] Functional module determination module 902, used to determine the functional module;

[0187] An output data type determination module 903 is configured to determine an output data type and determine a destination input / output module based on the output data type;

[0188] An independent virtual device generating module 904 is configured to generate a plurality of independent virtual devices using the starting point input / output module, the function module, and the end point input / output module;

[0189] The hybrid virtual device construction module 905 is configured to construct a hybrid virtual device using a plurality of the independent virtual devices.

[0190] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0191] In addition, an embodiment of the present application also provides an electronic device, including: a processor, a memory, and a computer program stored in the memory and runnable on the processor. When the computer program is executed by the processor, the various processes of the above-mentioned hybrid virtual device construction method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0192] The present application also provides a computer-readable storage medium storing a computer program. When executed by a processor, the computer program implements the various steps of the aforementioned hybrid virtual device construction method embodiment, achieving the same technical effects. To avoid repetition, the details are omitted here. The computer-readable storage medium may be, for example, a read-only memory (ROM), random access memory (RAM), a magnetic disk, or an optical disk.

[0193] FIG10 is a schematic diagram of the hardware structure of an electronic device for implementing various embodiments of the present application.

[0194] The electronic device 1000 includes but is not limited to components such as a radio frequency unit 1001, a network module 1002, an audio output unit 1003, an input unit 1004, a sensor 1005, a display unit 1006, a user input unit 1007, an interface unit 1008, a memory 1009, a processor 1010, and a power supply 1011. Those skilled in the art will appreciate that the electronic device structure shown in FIG10 does not constitute a limitation on the electronic device, and the electronic device may include more or fewer components than shown, or combine certain components, or arrange the components differently. In the embodiments of the present application, the electronic device includes but is not limited to a mobile phone, a tablet computer, a laptop computer, a PDA, a vehicle-mounted terminal, a wearable device, and a pedometer.

[0195] It should be understood that in the embodiments of the present application, the RF unit 1001 may be used to receive and transmit signals during information transmission or calls. Specifically, it receives downlink data from the base station and transmits it to the processor 1010 for processing; in addition, it transmits uplink data to the base station. Typically, the RF unit 1001 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low-noise amplifier, a duplexer, and the like. Furthermore, the RF unit 1001 may communicate with the network and other devices via a wireless communication system.

[0196] The electronic device provides users with wireless broadband Internet access through the network module 1002, such as helping users to send and receive emails, browse web pages, and access streaming media.

[0197] The audio output unit 1003 can convert audio data received by the RF unit 1001 or the network module 1002 or stored in the memory 1009 into an audio signal and output it as sound. In addition, the audio output unit 1003 can also provide audio output related to a specific function performed by the electronic device 1000 (for example, a call signal reception sound, a message reception sound, etc.). The audio output unit 1003 includes a speaker, a buzzer, a receiver, etc.

[0198] The input unit 1004 is used to receive audio or video signals. The input unit 1004 may include a graphics processing unit (GPU) 10041 and a microphone 10042. The graphics processor 10041 processes image data of still pictures or videos obtained by an image capture device (such as a camera) in video capture mode or image capture mode. The processed image frames can be displayed on the display unit 1006. The image frames processed by the graphics processor 10041 can be stored in the memory 1009 (or other storage medium) or transmitted via the radio frequency unit 1001 or the network module 1002. The microphone 10042 can receive sound and process such sound into audio data. In the case of telephone call mode, the processed audio data can be converted into a format that can be sent to a mobile communication base station via the radio frequency unit 1001 for output.

[0199] The electronic device 1000 also includes at least one sensor 1005, such as a light sensor, a motion sensor, and other sensors. Specifically, the light sensor includes an ambient light sensor and a proximity sensor, wherein the ambient light sensor can adjust the brightness of the display panel 10061 according to the brightness of the ambient light, and the proximity sensor can turn off the display panel 10061 and / or the backlight when the electronic device 1000 is moved to the ear. As a type of motion sensor, the accelerometer sensor can detect the magnitude of acceleration in all directions (generally three axes), and can detect the magnitude and direction of gravity when stationary. It can be used to identify the posture of the electronic device (such as horizontal and vertical screen switching, related games, magnetometer posture calibration), vibration recognition related functions (such as pedometer, tapping), etc.; the sensor 1005 can also include a fingerprint sensor, a pressure sensor, an iris sensor, a molecular sensor, a gyroscope, a barometer, a hygrometer, a thermometer, an infrared sensor, etc., which will not be repeated here.

[0200] The display unit 1006 is used to display information input by the user or information provided to the user. The display unit 1006 may include a display panel 10061, which may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.

[0201] The user input unit 1007 can be used to receive input digital or character information, and to generate key signal input related to the user settings and function control of the electronic device. Specifically, the user input unit 1007 includes a touch panel 10071 and other input devices 10072. The touch panel 10071, also known as a touch screen, can collect user touch operations on or near it (such as operations performed by the user using any suitable object or accessory such as a finger, stylus, etc. on or near the touch panel 10071). The touch panel 10071 may include two parts: a touch detection device and a touch controller. Among them, the touch detection device detects the user's touch direction, detects the signal caused by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device and converts it into contact point coordinates, which are then sent to the processor 1010, which receives the command sent by the processor 1010 and executes it. In addition, the touch panel 10071 can be implemented using various types such as resistive, capacitive, infrared, and surface acoustic wave. In addition to the touch panel 10071, the user input unit 1007 may further include other input devices 10072. Specifically, the other input devices 10072 may include but are not limited to a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and an operating stick, which will not be described in detail here.

[0202] Furthermore, the touch panel 10071 may be overlaid on the display panel 10061. When the touch panel 10071 detects a touch operation on or near the touch panel 10071, the touch operation is transmitted to the processor 1010 to determine the type of touch event. The processor 1010 then provides a corresponding visual output on the display panel 10061 based on the type of touch event. Although in FIG10 , the touch panel 10071 and the display panel 10061 are used as two independent components to implement the input and output functions of the electronic device, in some embodiments, the touch panel 10071 and the display panel 10061 may be integrated to implement the input and output functions of the electronic device, and the specific details are not limited here.

[0203] The interface unit 1008 is an interface for connecting external devices to the electronic device 1000. For example, the external devices may include a wired or wireless headset port, an external power supply (or battery charger) port, a wired or wireless data port, a memory card port, a port for connecting a device with an identification module, an audio input / output (I / O) port, a video I / O port, a headphone port, etc. The interface unit 1008 may be used to receive input (e.g., data information, power, etc.) from the external device and transmit the received input to one or more elements within the electronic device 1000, or may be used to transmit data between the electronic device 1000 and the external device.

[0204] Memory 1009 can be used to store software programs and various data. Memory 1009 may primarily include a program storage area and a data storage area. The program storage area may store an operating system and at least one application required for a function (such as a sound playback function or an image playback function); the data storage area may store data generated based on the use of the mobile phone (such as audio data, a phone book, etc.). Furthermore, memory 1009 may include high-speed random access memory and non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device.

[0205] The processor 1010 is the control center of the electronic device. It connects the various components of the electronic device using various interfaces and circuits. By running or executing software programs and / or modules stored in the memory 1009 and accessing data stored in the memory 1009, it performs various functions of the electronic device and processes data, thereby monitoring the entire electronic device. The processor 1010 may include one or more processing units; preferably, the processor 1010 may integrate an application processor and a modem processor, wherein the application processor primarily processes the operating system, user interface, and application programs, while the modem processor primarily handles wireless communications. It is understood that the modem processor may not be integrated into the processor 1010.

[0206] The electronic device 1000 may also include a power supply 1011 (such as a battery) to supply power to each component. Preferably, the power supply 1011 may be logically connected to the processor 1010 through a power management system, thereby managing functions such as charging, discharging, and power consumption through the power management system.

[0207] In addition, the electronic device 1000 includes some functional modules not shown, which will not be described here.

[0208] It should be noted that, in this document, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.

[0209] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.

[0210] As shown in FIG11 , in another embodiment provided in the present application, a computer-readable storage medium 1101 is further provided, in which instructions are stored. When the computer-readable storage medium 1101 is executed on a computer, the computer executes the method for constructing a hybrid virtual device described in the above embodiment.

[0211] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms without departing from the purpose of this application and the scope of protection of the claims, all of which are within the protection of this application.

[0212] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed in the embodiments of this application can be implemented in 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. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0213] 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.

[0214] In the embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0215] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0216] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0217] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present 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, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a RAM, a magnetic disk, or an optical disk.

[0218] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A construction method of a hybrid virtual device, characterized in that, Including: Determine the data source type, and determine the starting input / output module based on the data source type; Determine the functional module; Determine the output data type, and determine the ending input / output module based on the output data type; Generate multiple independent virtual devices by using the starting input / output module, the functional module, and the ending input / output module; Construct a hybrid virtual device by using multiple independent virtual devices.

2. The method according to claim 1, characterized in that Also including: Construct a data source module configuration parameter table, an intermediate node module configuration parameter table, and a data sink module configuration parameter table for the independent virtual device; Determine the data source module configuration parameters for the starting input / output module, and write the data source module configuration parameters into the data source module configuration parameter table; When the functional module is a peripheral module, determine the intermediate node module configuration parameters for expressing the input / output data format for the functional module, and write the intermediate node module configuration parameters into the intermediate node module configuration parameter table; Determine the data sink module configuration parameters for the starting input / output module, and write the data sink module configuration parameters into the data sink module configuration parameter table; Start the hybrid virtual device.

3. The method according to claim 1 or 2, characterized in that, The hybrid virtual device is provided with a bus arbiter, the independent virtual device is provided with a corresponding device identifier, the functional module is provided with a corresponding input data buffer memory, and also including: When input data for a target virtual device is detected, read the target data source module configuration parameters corresponding to the target virtual device from the data source module configuration parameter table according to the target device identifier corresponding to the target virtual device; Determine the target functional module corresponding to the target virtual device based on the target device identifier; Obtain the input data based on the target data source module configuration parameters; Store the input data into the target input data buffer memory corresponding to the target functional module through the bus arbiter.

4. The method according to claim 3, wherein Also including: Obtain the status parameters for the target input data buffer memory; When it is determined based on the status parameters that the storage amount of the target input data buffer memory exceeds a first preset threshold, upregulate the target functional module to a first frequency by using a first frequency multiplication coefficient; When it is determined based on the status parameters that the storage amount of the target input data buffer memory exceeds a second preset threshold, upregulate the target functional module to a second frequency by using a second frequency multiplication coefficient; Wherein, the second frequency is higher than the first frequency; When it is determined based on the status parameters that the storage amount of the target input data buffer memory exceeds a third preset threshold, upregulate the target functional module to the highest frequency by using a third frequency multiplication coefficient.

5. The method according to claim 4, characterized in that, The target functional module is configured with a corresponding pipeline configuration table, including: When the target functional module finishes processing the input data, send an output request message to the bus arbiter; the output request message at least includes the target device identifier and the output packet length information of the data packet for the input data; The bus arbiter determines, according to the target device identifier and the target function module identifier of the target function module of the current request, the next-level function module identifier of the next-level function module corresponding to the target function module in the pipeline configuration table; the next-level function module has a corresponding data sequence to be processed, and the data sequence to be processed is used to represent the input data order to be processed by the target function module; the input data has a corresponding priority identifier. The bus arbiter incorporates the input data into the data sequence to be processed according to the priority identifier. The bus arbiter stores the input data into the next-level input data buffer memory corresponding to the next-level function module based on the data sequence to be processed.

6. The method according to claim 3, characterized in that, The function module is provided with an input port and an output port, and the function module is connected to the input data buffer memory through the input port and the output port.

7. The method according to claim 5, characterized in that, The function module is configured with a corresponding state machine, and further includes: Determine whether the input data buffer memory is empty. If it is determined that the input data buffer memory is not empty, a reset operation is performed on the state machine.

8. A construction device for a hybrid virtual device, characterized in that, Including: A data source type determination module, configured to determine the data source type and determine the start input / output module based on the data source type. A function module determination module, configured to determine the function module. An output data type determination module, configured to determine the output data type and determine the end point input / output module based on the output data type. An independent virtual device generation module, configured to generate a plurality of independent virtual devices by using the start input / output module, the function module, and the end input / output module. A hybrid virtual device construction module, configured to construct a hybrid virtual device by using a plurality of the independent virtual devices.

9. An electronic device, characterized in that, Including a processor, a communication interface, a memory, and a communication bus. Among them, the processor, the communication interface, and the memory complete mutual communication through the communication bus. The memory is used to store computer programs. When the processor executes the program stored on the memory, it implements the method according to any one of claims 1-7.

10. A computer-readable storage medium, characterized in that, Instructions are stored thereon, and when executed by one or more processors, cause the processor to execute the method according to any one of claims 1-7.

Citation Information

Patent Citations

  • Virtual machine calculation and storage cluster based on Rocks cluster technology and building method thereof

    CN103577247A

  • Virtual machine operation system and virtual machine operation method

    CN103902351A

  • Lightweight mobile edge computing node and construction method

    CN112130960A

  • Resource scheduling method and device, electronic equipment and computer readable storage medium

    CN112330229A

  • Construction method and device of hybrid virtual equipment

    CN117908668A