Patent Description:
The invention generally relates to Peripheral Component Interconnect Express (PCIe) technology, and more particularly, to a PCIe technology in which the PCIe speed may be adjusted dynamically. In particular, the present invention related to PCIe speed-adjusting method, a wireless device, and a user equipment according to the pre-characterizing parts of the independent claims. Such a method, wireless device and user equipment are shown in <CIT> and <CIT>.

In conventional communication technologies, a Peripheral Component Interconnect Express (PCIe)-based wireless device may use Wi-Fi or Bluetooth to operate in the Industrial Scientific Medical (ISM) band, along with a PCIe interface to communicate with the host platform.

In order to receive a wireless packet correctly, the received signal power must be greater than the noise power (i.e. the signal-to-noise ratio (SNR) should be good enough) to prevent the noise from influencing the performance of the wireless device. However, the PCIe operating noise from the PCIe interface may affect the SNR. Therefore, when the SNR is degraded because of the PCIe operating noise, the performance of the wireless device will suffer.

A dynamic Peripheral Component Interconnect Express (PCIe) speed-adjusting method, wireless device and user equipment (UE) are provided to overcome the problems mentioned above. The present application proposes a more flexible way to dynamically adjust the PCIe speed based on at least two of the noise level threshold, the signal to noise ratio (SNR) threshold, the current data-rate requirement. Therefore, in the present application, the PCIe interference with the performance of the wireless device will be reduced. A method, a wireless device, and a user equipment according to the invention are defined in the independent claims. The dependent claims define preferred embodiments thereof.

An embodiment of the invention provides a dynamic Peripheral Component Interconnect Express (PCIe) speed-adjusting method. The dynamic PCIe speed-adjusting method is applied to a wireless device. The dynamic PCIe speed-adjusting method may include a step in which the wireless device determines whether to change from the current PCIe speed to a target PCIe speed based on at least two of the noise level threshold, the SNR threshold, and the current data-rate requirement.

An embodiment of the invention provides a wireless device. The wireless device may include a processor. The processor is configured to determine whether to change from the current PCIe speed to a target PCIe speed based on at least two of the noise level threshold, the SNR threshold, and the current data-rate requirement. In particular, the wireless device, preferably the processor thereof, is preferably adapted to perform the method steps of the method according to the invention.

An embodiment of the invention provides a user equipment (UE). The UE may include a host device, a Peripheral Component Interconnect Express (PCIe) interface and a wireless device. The wireless device is coupled to the host device through the PCIe interface. The host device or the wireless device is configured to determine whether to change from the current PCIe speed to a target PCIe speed based on at least two of the noise level threshold, the SNR threshold, and the current data-rate requirement. In particular, the user equipment, preferably the host device or the wireless device thereof, is preferably adapted to perform the method steps of the method according to the invention.

Other aspects and features of the invention will become apparent to those with ordinary skill in the art upon review of the following descriptions of specific embodiments of the dynamic PCIe speed-adjusting methods, wireless device and UE. The link speed change of the PCIe link based on the current data rate requirement alone is not covered by the scope of the claims.

The invention will become more fully understood by referring to the following detailed description with reference to the accompanying drawings, wherein:.

<FIG> is a block diagram of a UE <NUM> according to an embodiment of the invention. As shown in <FIG>, the UE <NUM> may comprise an antenna circuit <NUM>, a wireless device <NUM>, a Peripheral Component Interconnect Express (PCIe) interface <NUM>, a host device <NUM>, a processor <NUM> and a memory device <NUM>. It should be noted that, in order to clarify the concept of the invention, <FIG> presents a simplified block diagram in which only the elements relevant to the invention are shown. However, the invention should not be limited to what is shown in <FIG>. The UE <NUM> may comprise other elements.

In the embodiments of the invention, the UE <NUM> may be a smartphone, a Personal Data Assistant (PDA), a pager, a laptop computer, a desktop computer, a wireless handset, or any computing device that includes a wireless communications interface.

In the embodiments of the invention, the antenna circuit <NUM> may receive signals from the network node and transmit signals to the network node, e.g., an access point (AP), a base station, and so on. The antenna circuit <NUM> may comprise one or more antennas.

In the embodiments of the invention, the wireless device <NUM> may be a wireless network interface card, but the invention should not be limited thereto. The wireless device <NUM> may provide wireless communication functions, e.g., Wi-Fi, Bluetooth, but the invention should not be limited thereto. The wireless device <NUM> may be coupled to the antenna circuit <NUM> to receive or transmit the wireless signal. In addition, the wireless device <NUM> may be coupled to the host device <NUM> through the PCIe interface <NUM> to communicate with the host device <NUM>.

In the embodiments of the invention, the wireless device <NUM> may be regarded as an end point (EP) or a PCIe device of the PCIe fabric and the host device <NUM> may be regarded as a root complex (RC) or a PCIe host of the PCIe fabric.

According to the embodiments of the invention, the wireless device <NUM> or the host device <NUM> determines whether change from the current PCIe speed to a target PCIe speed based on at least two of the noise level threshold, the signal to noise ratio (SNR) threshold, the current data-rate requirement. Details are discussed in <FIG> below. The noise level threshold, the SNR threshold and the current data-rate requirement may be pre-set or pre-stored in the UE <NUM>. The data-rate requirement may be the data throughput requirement for different frequency bands, e.g., <NUM> Wi-Fi band, <NUM> Wi-Fi band and <NUM> Wi-Fi band, but the invention should not be limited thereto. For higher frequency band (e.g., <NUM> Wi-Fi band or <NUM> Wi-Fi band), the data throughput requirement may be increased, i.e., a faster PCIe speed may be required. In the embodiments of the invention, the UE <NUM> may support different PCIe speeds, e.g., Gen1 (<NUM>. 5GT/s), Gen2 (5GT/s), Gen3 (8GT/s), but the invention should not be limited thereto. The wireless device <NUM> or the host device <NUM> may dynamically adjusts the PCIe speeds based on the PCIe speeds supported by the UE <NUM>.

According to the embodiments of the invention, the wireless device <NUM> or the host device <NUM> may perform the operations of changing the current PCIe speed to the target PCIe speed by sending a training sequence (TS) ordered set. That is to say, the wireless device <NUM> or the host device <NUM> may send a training sequence (TS) ordered set to trigger a state transition from normal operating state (L0) to the Recovery state in Link Training and Status State Machine (LTSSM). Then, the PCIe speed change may be performed in the Recovery state.

In the embodiments of the invention, the processor <NUM> may control the operations of the wireless device <NUM>, the host device <NUM> and the memory device <NUM>. Preferably, the processor may be a central processing unit (CPU). Preferably, the processor <NUM> may also be arranged to execute the program codes of the software modules. The program codes accompanied by specific data in a data structure may also be referred to as a processor logic unit or a stack instance when being executed. Therefore, the processor <NUM> may be regarded as being comprised of a plurality of processor logic units, each for executing one or more specific functions or tasks of the corresponding software modules.

In the embodiments of the invention, the memory device <NUM> may store the software and firmware program codes, system data, user data, etc. of the UE <NUM>. The memory device <NUM> may be a volatile memory such as a random access memory (RAM); a non-volatile memory such as a flash memory or a read-only memory (ROM); a hard disk; or any combination thereof.

<FIG> is a flow chart illustrating a dynamic PCIe speed-adjusting method according to an embodiment of the invention. The dynamic PCIe speed-adjusting method may be applied to the wireless device <NUM> or the host device <NUM> of the UE <NUM>. As shown in <FIG>, in step <NUM>, the wireless device <NUM> or the host device <NUM> determines whether change from the current PCIe speed to a target PCIe speed based on at least two of a noise level threshold, a signal to noise ratio (SNR) threshold and a current data rate requirement.

<FIG> is a flow chart illustrating the step S210 according to an embodiment of the invention. As shown in <FIG>, in step S310, the wireless device <NUM> or the host device <NUM> may determine whether the first noise level corresponding to the current PCIe speed is higher than the noise level threshold first.

When the wireless device <NUM> or the host device <NUM> determines that the first noise level corresponding to the current PCIe speed is higher than the noise level threshold, step S320 is performed. In step S320, the wireless device <NUM> or the host device <NUM> may select a target PCIe speed from at least one candidate PCIe speed. For example, when the UE <NUM> supports two PCIe speeds, Gen1(<NUM>. 5GT/s) and Gen2 (5GT/s) and the PCIe speed Gen1 (<NUM>. 5GT/s) is the current PCIe speed, the wireless device <NUM> or the host device <NUM> may select PCIe speed Gen1 (<NUM>. 5GT/s) to be the target PCIe speed. In addition, in an embodiment of the invention, the wireless device <NUM> or the host device <NUM> may select the candidate PCIe speed with the lowest speed to be the target PCIe speed first to save power. For example, if the UE <NUM> has candidate PCIe speeds Gen2 (5GT/s) and Gen3 (8GT/s), the wireless device <NUM> or the host device <NUM> may select the PCIe speed Gen2 (5GT/s) first to save power.

In step S330, the wireless device <NUM> or the host device <NUM> may determine whether the second noise level corresponding to the target PCIe speed is higher than the noise level threshold.

When the second noise level is higher than the noise level threshold, step S340 is performed. In step S340, the wireless device <NUM> or the host device <NUM> may determine whether the SNR corresponding to the target PCIe speed is higher than the SNR threshold. In this step, it means that the noise levels of the current PCIe speed and the target PCIe speed are not good. Therefore, the wireless device <NUM> or the host device <NUM> may further determine whether the SNR corresponding to the target PCIe speed is higher than the SNR threshold. That is to say, if the SNR corresponding to the target PCIe speed is good enough, the target PCIe still may be concerned by the wireless device <NUM> or the host device <NUM>, even if the second noise level of the target PCIe speed is higher than the noise level threshold.

When the SNR corresponding to the target PCIe speed is not higher than the SNR threshold (i.e., the SNR corresponding to the target PCIe speed is worse), step S320 is performed. The wireless device <NUM> or the host device <NUM> may select another target PCIe speed from the candidate PCIe speeds.

When the SNR corresponding to the target PCIe speed is higher than the SNR threshold (i.e., the SNR corresponding to the target PCIe speed is good enough), step S350 is performed. In step S350, the wireless device <NUM> or the host device <NUM> may determine whether the target PCIe speed meets the current data-rate requirement.

When the target PCIe speed meets the current data-rate requirement, step S360 is performed. In step S360, the wireless device <NUM> or the host device <NUM> may change the PCIe speed from the current PCIe speed to the target PCIe speed. Then, the flow of <FIG> will be repeated again.

When the target PCIe speed does not meet the current data-rate requirement, step S320 is performed. The wireless device <NUM> or the host device <NUM> may select another target PCIe speed from the candidate PCIe speeds. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S320.

When the second noise level is not higher than the noise level threshold in step S330, step S350 is performed. The wireless device <NUM> or the host device <NUM> may determine whether the target PCIe speed meets the current data-rate requirement. When the target PCIe speed meets the current data-rate requirement, the wireless device <NUM> or the host device <NUM> may perform step S360. Then, the flow of <FIG> will be repeated again. When the target PCIe speed does not meet the current data-rate requirement, the wireless device <NUM> or the host device <NUM> may perform step S320.

In the embodiment of the invention, in an example, as shown in <FIG>, when the wireless device <NUM> or the host device <NUM> determines that the first noise level corresponding to the current PCIe speed is not higher than the noise level threshold, the wireless device <NUM> or the host device <NUM> may maintain the current PCIe speed. Then, the flow of <FIG> will be repeated again.

In the embodiment of the invention, in another example, when the wireless device <NUM> or the host device <NUM> determines that the first noise level corresponding to the current PCIe speed is not higher than the noise level threshold, the wireless device <NUM> or the host device <NUM> may further determine whether the SNR corresponding to the current PCIe speed is higher than the SNR threshold. When the SNR corresponding to the current PCIe speed is higher than the SNR threshold, the wireless device <NUM> or the host device <NUM> may maintain the current PCIe speed. Then, the flow of <FIG> will be repeated again. When the SNR corresponding to the current PCIe speed is not higher than the SNR threshold, step S320 is performed. The wireless device <NUM> or the host device <NUM> may select the target PCIe speed from at least one candidate PCIe speed and perform above operations for target PCIe speed. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S320. In this example, although the first noise level corresponding to the current PCIe speed is not higher than the noise level threshold, the SNR corresponding to the current PCIe speed may be not higher than the SNR threshold (i.e., the SNR corresponding to the current PCIe speed is worse). For example, when the distance between the current linked access point (AP) and the UE is farther and farther, the signal strength may be decreased, and as result the SNR will be decreased. Therefore, in this example, the wireless device <NUM> or the host device <NUM> may further determine whether the SNR corresponding to the current PCIe speed is higher than the SNR threshold to avoid that the SNR of the current PCIe speed is too bad.

<FIG> is a flow chart illustrating the step S210 according to another embodiment of the invention. As shown in <FIG>, in step S410, the wireless device <NUM> or the host device <NUM> may determine whether the current PCIe speed meets the current data-rate requirement first.

When the current PCIe speed does not meet the current data-rate requirement, step S420 is performed. In step S420, the wireless device <NUM> or the host device <NUM> may select a target PCIe speed from at least one candidate PCIe speed. For example, when the UE <NUM> supports two PCIe speeds, Gen1 (<NUM>. 5GT/s) and Gen2 (5GT/s) and the PCIe speed Gen1 (<NUM>. 5GT/s) is the current PCIe speed, the wireless device <NUM> or the host device <NUM> may select PCIe speed Gen2 (5GT/s) to be the target PCIe speed. In an example, the wireless device <NUM> or the host device <NUM> may select the candidate PCIe speed with the lowest speed to be the target PCIe speed first to save power.

In step S430, the wireless device <NUM> or the host device <NUM> may determine whether the target PCIe speed meets the current data-rate requirement.

When the target PCIe speed does not meet the current data-rate requirement, step S420 is performed. The wireless device <NUM> or the host device <NUM> may select another target PCIe speed from the candidate PCIe speeds. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S420.

When the target PCIe speed meets the current data-rate requirement, step S440 is performed. In step S440, the wireless device <NUM> or the host device <NUM> may determine whether the second noise level corresponding to the target PCIe speed is higher than the noise level threshold.

When the second noise level is higher than the noise level threshold, step S450 is performed. In step S450, the wireless device <NUM> or the host device <NUM> may determine whether the SNR corresponding to the target PCIe speed is higher than the SNR threshold.

When the SNR corresponding to the target PCIe speed is higher than the SNR threshold, step S460 is performed. In step S460, the wireless device <NUM> or the host device <NUM> may change the PCIe speed from the current PCIe speed to the target PCIe speed. Then, the flow of <FIG> will be repeated again.

When the SNR corresponding to the target PCIe speed is not higher than the SNR threshold, step S420 is performed. The wireless device <NUM> or the host device <NUM> may select another target PCIe speed from the candidate PCIe speeds. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S420.

When the second noise level is not higher than the noise level threshold, step S460 is performed. The wireless device <NUM> or the host device <NUM> may change the PCIe speed from the current PCIe speed to the target PCIe speed. Then, the flow of <FIG> will be repeated again.

When the current PCIe speed meets the current data-rate requirement in step S410, step S470 is performed. In step S470, the wireless device <NUM> or the host device <NUM> may determine whether the first noise level corresponding to the current PCIe speed is higher than the noise level threshold.

When the wireless device <NUM> or the host device <NUM> determines that the first noise level corresponding to the current PCIe speed is higher than the noise level threshold, step S420 is performed. The wireless device <NUM> or the host device <NUM> may select a target PCIe speed from at least one candidate PCIe speed. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S420.

In the embodiment of the invention, in another example, when the wireless device <NUM> or the host device <NUM> determines that the first noise level corresponding to the current PCIe speed is not higher than the noise level threshold, the wireless device <NUM> or the host device <NUM> may further determine whether the SNR corresponding to the current PCIe speed is higher than the SNR threshold. When the SNR corresponding to the current PCIe speed is higher than the SNR threshold, the wireless device <NUM> or the host device <NUM> may maintain the current PCIe speed. Then, the flow of <FIG> will be repeated again. When the SNR corresponding to the current PCIe speed is not higher than the SNR threshold, step S420 is performed. The wireless device <NUM> or the host device <NUM> may selects the target PCIe speed from at least one candidate PCIe speed and perform above operations for target PCIe speed. Then, the wireless device <NUM> or the host device <NUM> may perform the following steps after step S420. In this example, although the first noise level corresponding to the current PCIe speed is not higher than the noise level threshold, the SNR corresponding to the current PCIe speed may be not higher than the SNR threshold (i.e., the SNR corresponding to the current PCIe speed is worse). For example, when the distance between the current linked access point (AP) and the UE is farther and farther, the signal strength may be decreased, and as result the SNR will be decreased. Therefore, in this example, the wireless device <NUM> or the host device <NUM> may further determine whether the SNR corresponding to the current PCIe speed is higher than the SNR threshold.

It should be noted that the flows of <FIG> and <FIG> are only used to illustrate the embodiments of the invention, but the invention should not be limited thereto.

In the dynamic PCIe speed-adjusting methods provided in the embodiments of the invention, the PCIe speed may be dynamically adjusted based on at least two of the noise level threshold, the SNR threshold and the current data-rate requirement. Therefore, in the dynamic PCIe speed-adjusting methods provided in the embodiments of the invention, the PCIe interference with the performance of the wireless device can be reduced.

Use of ordinal terms such as "first", "second", "third", etc., in the disclosure and claims is for description. It does not by itself connote any order or relationship.

The steps of the method described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module (e.g., including executable instructions and related data) and other data may reside in a data memory such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable storage medium known in the art. A sample storage medium may be coupled to a machine such as, for example, a computer/processor (which may be referred to herein, for convenience, as a "processor") such that the processor can read information (e.g., code) from and write information to the storage medium. A sample storage medium may be integral to the processor. The ASIC may reside in the UE. In the alternative, the processor and the storage medium may reside as discrete components in the UE. Moreover, in some aspects, any suitable computer-program product may comprise a computer-readable medium comprising codes relating to one or more of the aspects of the disclosure. In some aspects, a computer software product may comprise packaging materials.

It should be noted that although not explicitly specified, one or more steps of the methods described herein can include a step for storing, displaying and/or outputting as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or output to another device as required for a particular application. While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention can be devised without departing from the basic scope thereof. The above description is of the best-contemplated mode of carrying out the invention.

The above paragraphs describe many aspects. Obviously, the teaching of the invention can be accomplished by many methods, and any specific configurations or functions in the disclosed embodiments only present a representative condition.

Claim 1:
A dynamic Peripheral Component Interconnect Express, in the following also referred to as PCIe, speed-adjusting method, applied to a wireless device, characterized by:
determining, by the wireless device, whether to change from a current PCIe speed to a target PCIe speed based on at least two of a noise level threshold, a signal to noise ratio, in the following also referred to as SNR, threshold and a current data rate requirement.