COMMUNICATION METHOD, DEVICE, STORAGE MEDIUM, AND COMPUTER PROGRAM PRODUCT
20250015926 ยท 2025-01-09
Inventors
Cpc classification
H04L1/0081
ELECTRICITY
H04L5/0053
ELECTRICITY
International classification
Abstract
Embodiments of this disclosure relate to a wireless communication method, a device, a storage medium, and a computer program product. The method proposed herein includes: A receiving device generates a feedback frame in response to receiving of an aggregated frame, where the feedback frame includes first indication information and second indication information, the first indication information indicates a window size of a feedback window used to transmit the feedback frame, the window size is determined based on configuration information associated with the feedback window, and the second indication information indicates receiving status information of receiving the aggregated frame by the receiving device; and the receiving device sends the feedback frame to a sending device in the feedback window. This disclosure provides a frame structure of the block acknowledgment-based feedback frame, so that the feedback window used to transmit the feedback frame can be dynamically adjusted at a fine granularity.
Claims
1. A wireless communication method, comprising: generating, by a receiving device, a feedback frame in response to receiving of an aggregated frame, wherein the feedback frame comprises first indication information and second indication information, the first indication information indicates a window size of a feedback window used to transmit the feedback frame, the window size is determined based on configuration information associated with the feedback window, the second indication information indicates receiving status information of receiving the aggregated frame by the receiving device; and sending, by the receiving device, the feedback frame to a sending device in the feedback window.
2. The method according to claim 1, wherein the generating the feedback frame comprises: determining a bit value corresponding to the window size; and generating the first indication information of the feedback frame based on the bit value.
3. The method according to claim 2, further comprising: receiving downlink control information; obtaining, from the downlink control information, an indication field associated with a feedback type of the feedback frame; and determining the configuration information based on the indication field associated with the feedback type.
4. The method according to claim 1, wherein a data amount of the feedback frame transmitted in the feedback window is 8, 16, 32, 64, 128, 256, or 512 bits.
5. The method according to claim 1, wherein the receiving the status information is indicated in a variable-length content field comprised in the second indication information.
6. The method according to claim 1, wherein the aggregated frame comprises a plurality of aggregated medium access control protocol data units.
7. The method according to claim 1, wherein the feedback frame comprises a block acknowledgment frame.
8. A wireless communication method, comprising: sending, by a sending device, an aggregated frame; and receiving, by the sending device, a feedback frame in a feedback window used by a receiving device to transmit the feedback frame for the aggregated frame, wherein the feedback frame comprises first indication information and second indication information, the first indication information indicates a window size of the feedback window, the window size is determined based on configuration information associated with the feedback window, and the second indication information indicates receiving status information of receiving the aggregated frame by the receiving device.
9. The method according to claim 8, further comprising: determining, based on an attribute of the aggregated frame, the configuration information associated with the feedback window; determining, based on the configuration information, an indication field that is in downlink control information and that is associated with a feedback type of the feedback frame; and sending the downlink control information to the receiving device.
10. The method according to claim 8, wherein the aggregated frame comprises a plurality of aggregated medium access control protocol data units.
11. The method according to claim 8, wherein the feedback frame comprises a block acknowledgment frame.
12. A communication device, comprising: a transceiver and a processor coupled to the transceiver, wherein the processor is configured to perform the method according to claim 1.
13. A communication device, comprising: a transceiver and a processor coupled to the transceiver, wherein the processor is configured to perform the method according to claim 8.
14. A receiving device, comprising: a processor, configured to generate a feedback frame in response to receiving of an aggregated frame, wherein the feedback frame comprises first indication information and second indication information, the first indication information indicates a window size of a feedback window used to transmit the feedback frame, the window size is determined based on configuration information associated with the feedback window, the second indication information indicates receiving status information of receiving the aggregated frame by the receiving device; and a transceiver, coupled to the processor and configured to cooperate with the processor to send the feedback frame to a sending device in the feedback window.
15. The receiving device according to claim 14, wherein in generating the feedback frame, the processor is further configured to: determine a bit value corresponding to the window size; and generate the first indication information of the feedback frame based on the bit value.
16. The receiving device according to claim 15, the processor is further configured to: receive downlink control information; obtain, from the downlink control information, an indication field associated with a feedback type of the feedback frame; and determine the configuration information based on the indication field associated with the feedback type.
17. The receiving device according to claim 14, wherein a data amount of the feedback frame transmitted in the feedback window is 8, 16, 32, 64, 128, 256, or 512 bits.
18. The receiving device according to claim 14, wherein the receiving the status information is indicated in a variable-length content field comprised in the second indication information.
19. The receiving device according to claim 14, wherein the aggregated frame comprises a plurality of aggregated medium access control protocol data units.
20. The receiving device according to claim 14, wherein the feedback frame comprises a block acknowledgment frame.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0037] With reference to the accompanying drawings and the following detailed descriptions, the foregoing and other features, advantages, and aspects of embodiments of this disclosure become more apparent. In the accompanying drawings, same or similar reference numerals indicate same or similar elements.
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
DESCRIPTION OF EMBODIMENTS
[0047] The following describes some example embodiments with reference to the accompanying drawings. Although example embodiments of this disclosure are shown in the accompanying drawings, it should be understood that this disclosure may be implemented in various forms, and should not be construed as being limited to embodiments described herein. On the contrary, these embodiments are provided so that this disclosure is thoroughly and completely understood. It should be understood that the accompanying drawings and embodiments of this disclosure are merely used as examples, but are not intended to limit the protection scope of this disclosure.
[0048] The terms communication network and wireless network used in this specification are networks that comply with any appropriate communication standard, such as long term evolution (LTE), advanced LTE (LTE-A), wideband code division multiple access (WCDMA), and high speed packet access (HSPA). In addition, communication between a terminal device and an access network device in a communication network may be performed according to any appropriate generation communication protocol, including but not limited to a first generation (1G), a second generation (2G), a 2.5G, a 2.75G, a third generation (3G), a fourth generation (4G), a 4.5G, a fifth generation (5G) communication protocol, and/or any other protocol that is currently known or to be developed in the future. Embodiments of this disclosure may be applied to various communication systems, including a cellular communication system and a non-cellular communication system. In view of rapid development of communication, certainly, there is a future type of communication technology and system that can embody this disclosure. Therefore, the scope of this disclosure should not be considered to be limited to the systems described above. For the purpose of description, embodiments of this disclosure are described with reference to a 5G communication system.
[0049] The terms terminal device and user equipment used in this specification are terminal devices that can perform wireless communication. By way of example and not limitation, the terminal device may also be referred to as a communication device, user equipment (UE), a subscriber station (SS), a portable subscriber station, a mobile station (MS), or an access terminal (AT). The terminal device may include but is not limited to a mobile phone, a cellular phone, a smartphone, an IP voice (VOIP) phone, a wireless local loop phone, a tablet computer, a wearable terminal device, a personal digital assistant (PDA), a portable computer, a desktop computer, an image capture terminal device (for example, a digital camera), a game terminal device, a music storage and playback device, a vehicle-mounted wireless terminal device, a wireless endpoint, a mobile station, laptop embedded equipment (LEE), a laptop mounted device (LME), a USB dongle, a smart device, wireless customer premises equipment (CPE), an internet of things (IoT) device, a watch or another wearable device, a head-mounted display (HMD), a vehicle, an unmanned aerial vehicle, a medical device and application (for example, remote surgery), an industrial device and application (for example, a robot and/or another wireless device operating in industrial and/or automated processing chain environments), a consumer electronic device, a device in a commercial wireless network and/or an industrial wireless network, and the like. In the following descriptions, the terms terminal device, communication device, terminal, user equipment, and UE may be used interchangeably.
[0050] The term access network device used in this specification includes but is not limited to a base station (BS), a gateway, a registration management entity, and another appropriate device in a communication system. The term base station or BS indicates a NodeB (or NB), an evolved NodeB (eNodeB or eNB), an NR (new radio) NB (also referred to as gNB), a remote radio unit (RRU), a radio head-end (RH), a remote radio head-end (RRH), a relay, a low power node (for example, femto, pico, or the like). In addition, the term access network device may be a central unit (CU) or a distributed unit (DU). In some example embodiments, the CU and the DU may be placed in different locations. For example, the CU is placed in a central equipment room, and the DU is placed in a heavy-traffic area. In some other example embodiments, the CU and the DU may alternatively be placed in a same location, for example, in different components of a same equipment room or a same rack.
[0051] The term include and variants thereof used in this specification indicate open inclusion, that is, include but is not limited to. Unless otherwise stated, the term or indicates and/or. The term based on indicates at least partially based on. The terms example embodiments and some embodiments both indicate at least one example embodiment. Other explicit and implicit definitions may also be included below.
[0052] With reference to
[0053]
[0054] In the network environment 100, the device 110 and the device 120 each may include but is not limited to a mobile phone, a cellular phone, a smartphone, a tablet computer, a tablet phone, a computer, a portable computer, a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, an entertainment unit, a navigation device, a communication device, a fixed location data unit, a mobile location data unit, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, and a video player, a digital video disc (DVD) player, a portable digital video player, or any other appropriate device that can support wireless communication.
[0055] It should be understood that the network environment 100 is merely an example, and does not imply any limitation on the scope of this disclosure. Embodiments of this disclosure may be further embodied in another network environment or architecture. In addition, it should be further understood that the network environment 100 may further include another element or entity for implementing communication connection, data transmission, and the like. For brief description, these elements or entities are not shown in
[0056] The network environment 100 in this embodiment of this disclosure may be a wireless network complying with any protocol that is currently known or to be developed in the future, including but not limited to a narrowband internet of things (NB-IoT) system, a global system for mobile communications (GSM) system, an enhanced data rate for GSM evolution (EDGE) system, a wideband code division multiple access (WCDMA) system, a code division multiple access 2000 (CDMA2000) system, a time division synchronization code division multiple access (TD-SCDMA) system, a long term evolution (LTE) system, and three application scenarios eMBB, URLLC, and eMTC in a 5G mobile communication system.
[0057] As described above, in a wireless communication system, data transmission is usually not completely reliable due to characteristics such as sudden change, multipath fading, and the like of a wireless channel. Therefore, for the data transmission, the system needs to use a feedback acknowledgment frame for acknowledgment. For example, the feedback acknowledgment frame may include acknowledgment (ACK) at a medium access control (MAC) layer, block acknowledgment (Block Ack) at the MAC layer, and ACK at a physical (PHY) layer.
[0058] In a mobile hotspot (Wi-Fi) communication system based on the 802.11abg protocol, a MAC frame sent by a sending end is usually a single MAC frame of a medium access control service data unit (MSDU) type. Each time the sending end sends such a MAC frame, an ACK frame is needed to acknowledge transmission of the MAC frame.
[0059] In the foregoing solution, because only a single MSDU MAC frame can be acknowledged, and the single MSDU is generally limited to only about 1500 bits due to an Ethernet MTU limitation, efficiency of a MAC layer in the entire system is poor. Even if a transmission rate of a physical layer can be provided, a throughput of the system cannot be greatly improved.
[0060] In a Wi-Fi communication system based on protocols such as 802.11n, 802.11ac, and 802.11ax, and the like, a MAC frame sent by a sending end is usually a MAC frame of an aggregated medium access control protocol data unit (AMPDU) type, and may be obtained by aggregating one or more medium access control protocol data units (MPDU). Each MPDU may include one or more MSDUs. A receiving end replies with a BA frame for each MAC AMPDU aggregated frame to perform acknowledgment.
[0061] In the foregoing solution, a data frame acknowledged by a BA acknowledgment window in the 802.11n and 802.11ac protocols is fixed at 64 bits. For a BA acknowledgment window in the 802.11ax, although support of 256 bits is added, only two types of 64 bits and 256 bits are supported. The 64 bits and the 256 bits are acknowledged in a BA session establishment phase, and do not dynamically change after a BA session is established. In this case, an adjustment granularity of the acknowledgment window is excessively coarse, and a size of the BA acknowledgment window cannot be adjusted more finely. Another problem is that BA feedback information cannot be dynamically adjusted. If a large acknowledgment window is used for BA at an initial stage, a same large acknowledgment window is still used even when a subsequent data amount decreases. However, a small quantity of aggregated frames can be acknowledged actually. Consequently, system efficiency is greatly reduced.
[0062] In addition, in wireless communication systems such as long term evolution (LTE) new radio (NR), and the like, at a sending end, after a MAC layer frame is aggregated, it is seen that only an entire transport block frame (TB FRAME) is transmitted at a PHY layer. The PHY layer performs ACK acknowledgment on the entire TB frame or on code block group (CBG) transport blocks that are obtained through division on the TB frame and that are for transmission.
[0063] In this solution, transmission overheads of an acknowledgment frame are small. However, a receiving end can only acknowledge the entire TB frame or the CBG transport blocks. Once a TB or CBG transport block is large, a transmission packet error rate increases, and consequently, retransmission efficiency may be low. In addition, in this solution, retransmission needs to be combined with a hybrid automatic repeat request (HARQ) to perform retransmission combination, so that a high transmission success rate of the physical layer can be achieved. However, HARQ implementation complexity and costs are high.
[0064] Therefore, a solution in which a size of the BA frame acknowledgment window can be dynamically adjusted frame by frame at a fine granularity is expected to be implemented. Therefore, the system efficiency is improved and a low transmission packet error rate is ensured.
[0065] Therefore, embodiments of this disclosure provide a wireless communication method. In the method, a receiving device generates a feedback frame in response to receiving of an aggregated frame. The feedback frame includes first indication information and second indication information. The first indication information indicates a window size of a feedback window used to transmit the feedback frame, and the window size may be determined based on configuration information associated with the feedback window. The second indication information indicates receiving status information of receiving the aggregated frame by the receiving device. The receiving device sends the feedback frame to a sending device in the feedback window. This disclosure provides a frame structure of the block acknowledgment-based feedback frame, so that the feedback window used to transmit the feedback frame can be dynamically adjusted at a fine granularity.
[0066]
[0067] As shown in
[0068] In 210, the receiving device 120 generates a feedback frame for a receiving state of the aggregated frame. In some embodiments, the feedback frame may be a BA frame.
[0069] The feedback frame may include first indication information. The first indication information may indicate a window size of a feedback window used to transmit the feedback frame. The receiving device 120 may determine the window size of the feedback window based on configuration information associated with the feedback window.
[0070] In some embodiments, the first indication information may include a bit value corresponding to a data amount that can be carried by the window size of the feedback window. For example, the data amount of the feedback frame that can be transmitted in the feedback window may be set to 8, 16, 32, 64, 128, 256, or 512 bits, which may correspond to bit values 1 to 7 respectively. A field length occupied by the first indication information in the feedback frame may be 4 bits.
[0071] The feedback frame may further include second indication information. In some embodiments, the second indication information may indicate receiving status information of receiving the aggregated frame by the receiving device 120. The receiving status information may be included in a variable-length content field included in the second indication information.
[0072] In some embodiments, the receiving device 120 may, for example, dynamically obtain or determine the configuration information associated with the feedback window by using downlink scheduling signaling.
[0073] In some embodiments, the sending device may, for example, generate scheduling signaling by using the sent feedback frame. The scheduling signaling may be, for example, downlink control information (DCI). For example, the configuration information associated with the feedback window may be indicated, by the sending device, in an indication field that is in the DCI and that is associated with a feedback type of the feedback frame. The sending device may send the generated scheduling signaling to the receiving device 120.
[0074] The receiving device 120 may receive the DCI. The receiving device 120 may obtain, from the DCI, the indication field associated with the feedback type of the feedback frame, and further determine, based on the indication field, the configuration information associated with the feedback window. An example embodiment of the indication field that is in the DCI and that is associated with the feedback type of the feedback frame may be shown below.
TABLE-US-00001 TABLE 1 Indication field associated with the feedback type of the feedback frame Indication field Length name (bit) Meaning ACK type 4 Corresponds to the first indication information in the feedback frame.
[0075] As shown in Table 1, the indication field may be an ACK type field in the DCI, and a length of the indication field may be set to 4 bits. Content of the indication field may correspond to the first indication information in the feedback frame.
[0076] As shown in
[0077] With reference to
[0078] In some embodiments, an example embodiment of a format of the BA Control field may be shown below.
TABLE-US-00002 TABLE 2 Format of the BA Control field Field Length name (bit) Meaning BA 4 Indicates a bitmap size, where values 1 to 7 indicate Control a window length 8, 16, 32, 64, 128, 256, or 512 bits respectively, a value 0 indicates single-frame aggregation, and other values are reserved (RESV).
[0079] In some embodiments, an example embodiment of a format of the BA INFO field may be shown below.
TABLE-US-00003 TABLE 3 Format of the BA INFO field Field Length name (bit) Meaning TID 3 Indicates a corresponding queue ID. RESV 5 Indicates to be reserved. SSN 12 Indicates a start MAC sequence. Bitmap 8 to 512 Indicates a variable-length bit.
[0080] It should be understood that, with reference to
[0081] According to the example embodiments of this disclosure described above, a frame structure of the BA-based feedback frame is implemented, so that the feedback window used to transmit the feedback frame can be dynamically adjusted at a fine granularity. In this manner, system efficiency can be significantly improved, and a low transmission packet error rate can be ensured.
[0082] It should be understood that although the foregoing descriptions include some specific implementation details, this should not be construed as limitations on the scope of any invention or claim, but rather as descriptions of specific example embodiments that may be specific to a specific invention. Some features described in this specification in the context of separate example embodiments may alternatively be integrated into a single example embodiment. Conversely, various features that are described in the context of a single example embodiment may alternatively be implemented separately in a plurality of example embodiments or in any appropriate sub-combination.
[0083]
[0084] In 410, a receiving device 120 generates a feedback frame in response to receiving of an aggregated frame. The feedback frame includes first indication information and second indication information. The first indication information indicates a window size of a feedback window used to transmit the feedback frame. The window size is determined based on configuration information associated with the feedback window. The second indication information indicates receiving status information of receiving the aggregated frame by the receiving device.
[0085] In 420, the receiving device sends the feedback frame to a sending device in the feedback window.
[0086] In some example embodiments, the receiving device may determine a bit value corresponding to the window size, and generate the first indication information of the feedback frame based on the bit value.
[0087] In some example embodiments, the receiving device may receive downlink control information, obtain, from the downlink control information, an indication field associated with a feedback type of the feedback frame, and determine the configuration information based on the indication field associated with the feedback type.
[0088] In some example embodiments, a data amount of the feedback frame transmitted in the feedback window is 8, 16, 32, 64, 128, 256, or 512 bits.
[0089] In some example embodiments, the receiving status information is indicated in a variable-length content field included in the second indication information.
[0090] In some example embodiments, the aggregated frame includes a plurality of aggregated medium access control protocol data units.
[0091] In some example embodiments, the feedback frame includes a block acknowledgment frame.
[0092]
[0093] In 510, a sending device 110 sends an aggregated frame.
[0094] In 520, the sending device 110 receives a feedback frame in a feedback window used by a receiving device to transmit the feedback frame for the aggregated frame. The feedback frame includes first indication information and second indication information. The first indication information indicates a window size of the feedback window. The window size is determined based on configuration information associated with the feedback window. The second indication information indicates receiving status information of receiving the aggregated frame by the receiving device.
[0095] In some example embodiments, the sending device may determine, based on an attribute of the aggregated frame, the configuration information associated with the feedback window, determine, based on the configuration information, an indication field that is in downlink control information and that is associated with a feedback type of the feedback frame, and send the downlink control information to the receiving device.
[0096] In some example embodiments, the aggregated frame includes a plurality of aggregated medium access control protocol data units.
[0097] In some example embodiments, the feedback frame includes a block acknowledgment frame.
[0098]
[0099] As shown in
[0100] In an embodiment in which the communication apparatus 600 is implemented as the receiving device 120 shown in
[0101] In some example embodiments, the logic circuit 620 is further configured to: determine a bit value corresponding to the window size; and generate the first indication information of the feedback frame based on the bit value.
[0102] In some example embodiments, the input/output interface 610 may be configured to receive downlink control information; and the logic circuit 620 may be further configured to: obtain, from the downlink control information, an indication field associated with a feedback type of the feedback frame; and determine the configuration information based on the indication field associated with the feedback type.
[0103] In some example embodiments, a data amount of the feedback frame transmitted in the feedback window is 8, 16, 32, 64, 128, 256, or 512 bits.
[0104] In some example embodiments, the receiving status information is indicated in a variable-length content field included in the second indication information.
[0105] In some example embodiments, the aggregated frame includes a plurality of aggregated medium access control protocol data units.
[0106] In some example embodiments, the feedback frame includes a block acknowledgment frame.
[0107] In an embodiment in which the communication apparatus 600 is implemented as the sending device 110 shown in
[0108] In some example embodiments, the logic circuit 620 may be further configured to: determine, based on an attribute of the aggregated frame, the configuration information associated with the feedback window; and determine, based on the configuration information, an indication field that is in downlink control information and that is associated with a feedback type of the feedback frame. The input/output interface 610 may be further configured to send the downlink control information to the receiving device.
[0109] In some example embodiments, the aggregated frame includes a plurality of aggregated medium access control protocol data units.
[0110] In some example embodiments, the feedback frame includes a block acknowledgment frame.
[0111] It should be understood that the communication apparatus 600 in
[0112]
[0113] As shown in
[0114] The processor 710 may be of any appropriate type applicable to a local technical environment, and may include but is not limited to one or more of a general-purpose computer, a dedicated computer, a microcontroller, a digital signal processor (DSP), and a controller-based multi-core controller architecture. The communication apparatus 700 may include a plurality of processors, such as application-specific integrated circuit chips, where the chips belong, in terms of time, to a clock synchronized with a main processor. The processor 710 is coupled to a communication unit 740. The communication unit 740 may receive and send information by using a radio signal or by using an optical fiber, a cable, and/or another component.
[0115] The memory 720 may include one or more nonvolatile memories and one or more volatile memories. An example nonvolatile memory includes but is not limited to a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, a hard disk, a compact disc (CD), a digital versatile disc (DVD), or another magnetic storage and/or optical storage. An example volatile memory includes but is not limited to a random access memory (RAM), and the like.
[0116] This embodiment of this disclosure may be implemented by using a computer program, so that the communication apparatus 700 can perform any process described with reference to
[0117] In the foregoing embodiments in which the sending device 110 and the receiving device 120 determine, by using the machine learning algorithm module, the reinforcement learning model, and the like, to adjust the parameter, the module and model may be stored in the memory 720 in a manner of the computer program code or the instructions 730. The processor executes the program code or the instructions in the memory 720, so that the communication apparatus 700 performs the processing processes implemented by the sending device 110 and the receiving device 120 in
[0118] In some embodiments, the computer program may be tangibly included in a computer-readable medium. The computer-readable medium may be included in the communication apparatus 700 (for example, in the memory 720) or another storage device that can be accessed by the communication apparatus 700. The computer program may be loaded from the computer-readable medium to the RAM for execution. The computer-readable medium may include any type of tangible nonvolatile memory, such as a ROM, an EPROM, a flash memory, a hard disk, a CD, a DVD, or the like.
[0119]
[0120] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0121] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0122] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0123] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0124] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0125] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0126] When the communication apparatus 800 is configured to implement the functions of the receiving device 120 in the method embodiment shown in
[0127] When the communication apparatus 800 is configured to implement the functions of the sending device 110 in the method embodiment shown in
[0128] When the communication apparatus 800 is configured to implement the functions of the sending device 110 in the method embodiment shown in
[0129] When the communication apparatus 800 is configured to implement the functions of the sending device 110 in the method embodiment shown in
[0130] When the communication apparatus 800 is configured to implement the functions of the sending device 110 in the method embodiment shown in
[0131] For more detailed descriptions of the processing unit 810 and the transceiver unit 820, directly refer to the related descriptions in the method embodiments shown in
[0132]
[0133] In general, various example embodiments of this disclosure may be implemented in hardware, a dedicated circuit, software, logic, or any combination thereof. Some aspects may be implemented in hardware, and other aspects may be implemented in firmware or software that may be performed by a controller, a microprocessor, or another computing device. When aspects of the example embodiments of this disclosure are illustrated or described as block diagrams, flowcharts, or represented by using some other figures, it is understood that the blocks, apparatuses, systems, techniques, or methods described herein may be implemented as non-limiting examples in hardware, software, firmware, a dedicated circuit or logic, general-purpose hardware or a controller, or another computing device, or some combinations thereof.
[0134] For example, the example embodiments of this disclosure may be described in a context of machine-executable or computer-executable instructions. The machine-executable instructions are included in, for example, a program module executed in a device on a real or virtual processor of a target. In general, the program module includes a routine, a program, a library, an object, a class, a component, a data structure, and the like, and performs a specific task or implements a specific abstract data structure. In various example embodiments, functions of program modules may be combined or split between the described program modules. The machine-executable instructions for the program module may be executed locally or in a distributed device. In the distributed device, the program module may be located in both a local storage medium and a remote storage medium.
[0135] Computer program code used to implement the methods in this disclosure may be written in one or more programming languages. The computer program code may be provided for a processor of a general-purpose computer, a dedicated computer, or another programmable data processing apparatus, so that when the program code is executed by the computer or the another programmable data processing apparatus, functions/operations specified in the flowcharts and/or block diagrams are implemented. The program code may be executed all on the computer, partially on the computer, as an independent software package, partially on the computer and partially on a remote computer, or all on a remote computer or server.
[0136] In the context of this disclosure, the computer program code or related data may be carried by any appropriate carrier, so that a device, an apparatus, or a processor can perform various processing and operations described above. An example of the carrier includes a signal, a computer-readable medium, and the like. For example, an example of the signal may include propagating signals in electrical, optical, radio, sound, or other forms, such as carrier waves, infrared signals, and the like.
[0137] In the context of this disclosure, a machine-readable medium or the computer-readable medium may be any tangible medium that includes or stores a program for or has a program related to an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include but is not limited to an electronic, a magnetic, an optical, an electromagnetic, an infrared, or a semiconductor system, apparatus, or device, or any appropriate combination thereof. A more detailed example of the machine-readable storage medium includes an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any appropriate combination thereof.
[0138] In addition, although operations are described in a particular order, this should not be understood as requiring such operations to be completed in the particular order shown or in a successive order, or performing all the illustrated operations to obtain the desired results. In some cases, multitasking or parallel processing is advantageous. Similarly, although the foregoing descriptions include some specific implementation details, this should not be construed as limitations on the scope of any claim, but rather as descriptions of specific example embodiments. Some features described in this specification in the context of separate example embodiments may alternatively be integrated into a single example embodiment. Conversely, various features that are described in the context of a single example embodiment may alternatively be implemented separately in a plurality of example embodiments or in any appropriate sub-combination.
[0139] Although the subject matter has been described in language specific to structural features and/or methodological actions, it should be understood that the subject matter defined in the appended claims is not limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as example forms of implementing the claims.