FIELD OF THE INVENTIONThe invention relates to controlling the feeding of data from a feed buffer.
BACKGROUND TO THE INVENTIONIt is well known to attach modules to laptop or notebook computers to provide additional functionality thereto. Examples include Wi-Fi (IEEE 802.11) and 3G data card modules which connect to a laptop via a PCMCIA (Personal Computer Memory Card International Association) interface. It is known also to provide a Wi-Fi module as an ExpressCard, which is a form of PCI-Express device. Wi-Fi and 3G data modules also can be connected by USB (Universal Serial Bus) interface to a laptop computer.
Such modules can be external or internal. A module is powered by electrical power provided over the interface by which it is connected to the laptop computer. The main components of a module are a transceiver, a processor (which provides a control function as well as a processing function), buffer memory and an antenna connector. An antenna within the laptop can be connected to the module via the antenna connector. The presence of the processor and the memory results in operation of the modules being dependent on the ambient temperature falling within an acceptable range.
It is known to provide a module with a temperature sensor by which it can be detected whether the temperature of the module is above the upper limit of the acceptable range and thus close down the module's transmitter.
SUMMARY OF THE INVENTIONA first aspect of the invention relates to a method comprising:
- feeding data from a feed buffer to an interface;
- receiving at least one signal dependent on a temperature external to the interface;
- determining from the at least one received signal that a temperature of the device has risen above a first threshold, and
- in response to a positive determination, reducing a feeding rate of data from the feed buffer to the interface to a first predetermined rate, the first predetermined rate being non-zero.
This provides the advantage that it can allow an external transmitter to continue to operate, albeit at a reduced data rate, whilst reducing the possibility of a maximum operating temperature being exceeded and transmitter operation ceased. Although data rate is reduced when the temperature rises above a threshold, this is considered to be acceptable considering that the probability of the transmitter being available at a given time is increased. The advantage is achieved because the heat generated by the transmitter is reduced as the transmit data rate is reduced.
The method may comprise receiving the at least one signal dependent on the temperature external to the interface via the interface. This provides a simple arrangement in which a device to which data is being fed need be connected only by one connection.
The method may comprise buffering data which has not been fed to the interface. This allows normal operation of applications providing data for transmission but whilst allowing data feeding to the interface to be restricted.
The method may comprise responding to an indication that the temperature has fallen below a second threshold by increasing a rate of feeding data to the interface to a rate greater than the first rate. This allows transmission at increased data rate when appropriate.
The first and the second thresholds may have the same value. Alternatively they may be different. When they are different, hysteresis is provided.
The method may comprise responding to an indication that the temperature has risen above a third threshold by reducing a feeding rate of data from the feed buffer to the interface to a second predetermined rate, wherein the second predetermined rate is less than the first predetermined rate. Provision of two different restricted data feeding rates is advantageous since it allows for a finer resolution of control over the heat generated by the external transmitter.
The method may comprise responding to an indication that the temperature has fallen below a fourth threshold by increasing a rate of feeding data to the interface at the first rate. The third and fourth thresholds may have the same value.
The method may comprise controlling a feeding rate of data from the feed buffer to the interface by limiting the amount of data that is sent in each of plural consecutive time periods. This allows data transfer at conventional speeds whilst allowing overall data rate to be limited to a suitable level. Controlling a feeding rate of data from the feed buffer to the interface may comprise repeating a sequence comprising the steps of:
- starting a timer,
- after the timer started, feeding data to the interface until a predetermined amount of data has been fed to the interface, and
- refraining from feeding data to the interface until following expiration of the timer.
A second aspect of the invention provides a computer program, preferably stored on a medium, comprising machine-readable instructions which when executed by computer apparatus cause the computer apparatus to perform a method comprising:
- feeding data from a feed buffer to an interface;
- receiving at least one signal dependent on a temperature external to the interface;
- determining from the at least one received signal that a temperature of the device has risen above a first threshold, and
- in response to a positive determination, reducing a feeding rate of data from the feed buffer to the interface to a first predetermined rate, the first predetermined rate being non-zero.
A third aspect of the invention provides apparatus comprising:
- a feed buffer;
- an interface;
- a feeder for feeding data from the feed buffer to the interface;
- a receiver for receiving at least one signal dependent on a temperature external to the interface; and
- a determiner for determining from the at least one received signal that a temperature of the device has risen above a first threshold,
- wherein the feeder is response to the determiner to reduce a feeding rate of data from the feed buffer to the interface to a first predetermined rate, the first predetermined rate being non-zero.
A fourth aspect of the invention provides a method comprising:
- maintaining a transmit buffer;
- controlling a transmitter to transmit data from the transmit buffer at a transmit data rate, the transmit data rate being dependent on the amount of data stored in the transmit buffer;
- feeding data from a feed buffer to the transmit buffer; and
- in response to determining that a temperature has risen above a first threshold, reducing a feeding rate of data from the feed buffer to the transmit buffer to a first predetermined rate, the first predetermined rate being non-zero.
This provides the advantage that it can allow the transmitter to continue to operate, albeit at a reduced data rate, whilst reducing the possibility of a maximum operating temperature being exceeded and transmitter operation ceased. Although data rate is reduced when the temperature rises above a threshold, this is considered to be acceptable considering that the probability of the transmitter being available at a given time is increased. The advantage is achieved because the heat generated by the transmitter is reduced as the transmit data rate is reduced.
The method may comprise responding to a determination that the temperature has fallen below a second threshold by increasing a rate of feeding data from the feed buffer to the transmit buffer to a rate greater than the first rate. This allows transmission at increased data rate when appropriate.
The first and the second thresholds may have the same value.
The method may comprise responding to a determination that the temperature has risen above a third threshold by reducing a feeding rate of data from the feed buffer to the interface to a second predetermined rate, wherein the second predetermined rate is less than the first predetermined rate. Provision of two different restricted data feeding rates is advantageous since it allows for a finer resolution of control over the heat generated by the external transmitter.
The method may comprise responding to a determination that the temperature has fallen below a fourth threshold by increasing a rate of feeding data from the feed buffer to the transmit buffer to the first predetermined rate. The third and fourth thresholds may have the same value.
The method may comprise controlling a feeding rate of data from the feed buffer to the transmit buffer by limiting the amount of data that is sent in each of plural consecutive time periods. This allows data transfer at conventional speeds whilst allowing overall data rate to be limited to a suitable level. Controlling a feeding rate of data from the feed buffer to the transmit buffer may comprise repeating a sequence comprising the steps of:
- starting a timer,
- after the timer started, feeding data to the transmit buffer until a predetermined amount of data has been fed to the feed buffer, and
- refraining from feeding data to the feed buffer until following expiration of the timer.
A fifth aspect of the invention provides apparatus comprising:
- a transmit buffer;
- a transmitter;
- a controller, the controller being arranged to control the transmitter to transmit data from the transmit buffer at a transmit data rate, the transmit data rate being dependent on the amount of data stored in the transmit buffer;
- a feed buffer; and
- a feeder for feeding data from the feed buffer to the transmit buffer; and
- the feed buffer being responsive to a determination that a temperature has risen above a threshold to reduce a feeding rate of data from the feed buffer to the transmit buffer to a first predetermined rate, the first predetermined rate being non-zero.
A sixth aspect of the invention provides a computer program, preferably stored on a medium, comprising machine-readable instructions which when executed by computer apparatus cause the computer apparatus to perform a method comprising:
- maintaining a transmit buffer;
- controlling a transmitter to transmit data from the transmit buffer at a transmit data rate, the transmit data rate being dependent on the amount of data stored in the transmit buffer;
- feeding data from a feed buffer to the transmit buffer; and
- in response to determining that a temperature has risen above a first threshold, reducing a feeding rate of data from the feed buffer to the transmit buffer to a first predetermined rate, the first predetermined rate being non-zero.
Embodiments of the invention will now be described by way of example only, with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGSIn the drawings:
FIG. 1 is a schematic drawing of a system comprising a module and a laptop computer, the system embodying various aspects of the invention;
FIG. 2 is a state machine diagram illustrating operation of part if theFIG. 1 system; and
FIG. 3 is a drawing illustrating operation of theFIG. 1 system in certain conditions.
DETAILED DESCRIPTION OF THE EMBODIMENTSIn the drawings, like reference numerals refer to like elements.
Referring toFIG. 1, asystem10 comprises amodule11 connected to alaptop computer12. Themodule11 is a 3G data card, implemented on a mini PCIe (PCI Express) card. Themodule11 is internal to thelaptop computer12, in the sense that it is contained wholly within ahousing13 of thelaptop computer12 and cannot be removed therefrom without removing a cover (not shown) forming part of the housing. As such, the module is required to operate in a relatively high ambient temperature environment inside thelaptop computer12. Thelaptop computer12 includes afan14 which is operable to expel hot air from within thehousing13 so as to maintain the temperature within thehousing13 within acceptable limits. As is usual, thefan14 is operated only when necessary, and is operated at a speed which is appropriate taking into account the ambient temperature within thehousing13, as measured by atemperature sensor38. The laptop computer is shown in very schematic form. It will be appreciated that thelaptop computer12 includes many other components (display, keyboard, graphics card, etc), components are omitted from the Figure because they are not useful in understanding the invention.
Thelaptop computer12 includes aUSB connector15, which is mated with acorresponding USB connector16 forming part of themodule11. Thus, thelaptop computer12 and themodule11 are able to communicate data and commands to one another. Furthermore, the USB connection allows thelaptop computer12 to provide electrical power to themodule11.
Abus17 of thelaptop12 is connected to theUSB connector15,16 by ahardware interface18. Similarly, an interface20 connects theUSB connector15,16 to abus19 of themodule11.
Thebus19 of themodule11 allows communication between a number of devices, namely aROM21, amicroprocessor22, and someRAM23. Some of theRAM23 constitutes a transmitbuffer24 for themodule11. Atransmitter25 is connected to thebus19 via a transmitter-bus interface26. Areceiver27 is connected to thebus19 via a receiver-bus interface28. Thetransmitter25 and the receiver are connected to and share acommon antenna29A, which is located in thelaptop12 and is coupled to thetransmitter25 and thereceiver27 by anantenna connector29B. A temperature sensor30 is connected to provide temperature measurements to themicroprocessor22.
Thebus17 of the laptop allows communication between someRAM31, some of which constitutes afeed buffer32 for thelaptop12, aCPU33,storage34, a dial-upmodem35 and acontroller36. Stored in thestorage34 is aprogram37 constituting a driver for theUSB interface16,18 and a user interface. Some functions of the driver part of theprogram37 are described in more detail below. For the purposes of this explanation, thedriver program37 is considered to be part of themodule11, although it physically resides on thelaptop12.
Themodule11 is a cellular radio transceiver. It is operable to communicate with a 3Gmobile telephone network9 according to a WCDMA (Wideband Code Division Multiple Access) communications protocol of the 3G standard. Themodule11 may or may not be operable according to the Rel5 version, relating to HSDPA (High Speed Downlink Packet Access). Themodule11 is subscribed to cellular data service provided by thenetwork9. This is achieved by the cooperation of themicroprocessor22 and theRAM23 to implement aprotocol stack40. Theprotocol stack40 is conventional. It includes a layer 1 (L1)41. TheL141 is also known as the WCDMA physical layer. Above theL141 is a MAC (Medium Access Control)layer42. This layer is also known as a WCDMA L2 protocol layer. Above theMAC layer43 is an RLC (Radio Link Control) layer44. This is also known as a WCDMA L3 protocol layer. The RLC layer44 owns the transmitbuffer24. Theprotocol stack40 is shown in the Figure, although it will be appreciated that it has no physical form but instead is formed by hardware operating under the control of software, relevant parts of which is held at run-time in theRAM23.
Receiver operation is not described here since it is not relevant to this explanation. Transmit operation is as follows. Theprotocol stack40 maintains the transmitbuffer24 in theRAM23. The transmit buffer stores data received from thelaptop12 prior to transmission through thetransmitter25 through the antenna29.
In WCDMA, a number of different transmit data rates are defined. A sample configuration is:
|
| Number of 336 | User Data | Typical Weighting |
| bit blocks | Rate [kbps] | [User Data/Control Data] |
|
|
| 12 | 384 | 15/4 |
| 4 | 128 | 15/8 |
| 2 | 64 | 15/15 |
|
It can be seen from this that reducing the number of 336 bit blocks transmitted reduces the user data rate and also reduces the ratio of user data to control data. The configurations are known by UEs (User Equipments) such as themodule11. the number of blocks transmitted per unit of time determines the user data rate. If thenetwork9 allows themodule11 to transmit at 12×336 bits every 10 ms, this gives a user data rate of 384 kbps. This means that there is available uplink (UL) capacity to transmit 384 kbps, and is termed a 384 kbps bearer.
Conventionally, theL1 protocol layer41 of themodule11 causes transmission of the data that is queued in the transmitbuffer24. If there is no data in the transmitbuffer24, there is no transmission to thenetwork9. If there is sufficient data in the buffer, then convention is that transmission occurs at the configuration specified by thenetwork9.
However, if the amount of data in the transmitbuffer24 is less than the available uplink capacity, theMAC layer42 reduces the transmit data rate by reducing the number of blocks of 336 bits. In this example, if the rate of data entering the transmit buffer is about 128 kbps, theL1 layer41 requires only 4 blocks of data (each of 336 bits) per 10 ms slot. In this case, theMAC layer42 automatically adapts the transmits configuration to use the 4×336 bit configuration (128 kbps bearer). Similarly, if the rate of data entering the transmit buffer is around 64 kbps, theL1 layer41 requires only 2 blocks of data per 10 ms slot. In this case, theMAC layer42 automatically adapts the transmits configuration to use the 2×336 bit configuration (64 kbps bearer).
If the rate of data entering the transmit buffer is between 64 kbps and 128 kbps, theL1 layer41 switches between transmitting 2 blocks of data per 10 ms slot and 4 blocks of data per 10 ms slot. This occurs because theprotocol stack40 selects the number of blocks to transmit in a unit of time depending on the amount of data in the buffer. Similarly, if the rate of data entering the transmit buffer is between 0 kbps and 64 kbps, theL1 layer41 switches between not transmitting and transmitting 2 blocks of data per 10 ms slot. Also, if the rate of data entering the transmit buffer is between 128 kbps and 384 kbps, theL1 layer41 switches between transmitting 4 blocks of data per 10 ms slot and 12 blocks of data per 10 ms slot. Thus, by this scheme, themodule11 selects a transmit data rate which is dependent on the amount of data in the transmitbuffer24. This is conventional.
In addition to this, thenetwork9 may define Traffic Volume Measurements (TVM). TVM currently is not widely supported by 3G networks, but it has some advantages. A TVM is a measure of the amount of data queued in the transmitbuffer24. TVMs are calculated in theMAC layer42. If a TVM exceeds a network-defined threshold, it is an indication that the available uplink capacity on the allocated bearer is insufficient. Themodule11 informs thenetwork9, and thenetwork9 can choose to allocate a larger bearer, and themodule11 is notified as appropriate. Conversely, if the amount of data queued in the transmitbuffer24 is less than a network-defined threshold, it is an indication that the available uplink capacity on the allocated bearer is excessive. Themodule11 informs thenetwork9, and thenetwork9 then reconfigures themodule11 to use a lower data rate bearer. For example, it may withdraw the 12×336 bit (384 kbps) configuration. In this case, thenetwork9 may allocate the bearer to one or more other users.
If thenetwork9 supports TVM, themodule11 still selects a transmit data rate which is dependent on the amount of data in the transmitbuffer24, although the transmit data rate cannot be greater than that allocated by thenetwork9.
Themicroprocessor22 of themodule11 is arranged under control of a program permanently stored in theROM21 to monitor the temperature of themodule11. This program is a WWAN (Wireless Wide Area Network)server39, which is described below. Monitoring of the temperature of themodule11 involves periodic interrogation of the temperature sensor30, with the sensor30 responding with a signal indicative of the temperature of themodule11. The exact way in which the temperature of themodule11 is monitored is not crucial to the invention. It is however preferred that themodule11 is provided with two or more temperature sensors.
In the embodiment ofFIG. 1, themodule11 has three on-board temperature sensors30a,30b,30c. Thefirst sensor30ais associated with an RF part of the module, which includes thetransmitter25 and thereceiver37. Thesecond sensor30bis associated with a VCTCXO (Voltage Controlled Temperature Compensated Oscillator) (not shown) which provides thetransmitter25 and thereceiver27 with oscillator signals. The third sensor30cis associated with theRAM23. For simplicity, the module temperature is taken to be the highest of the temperatures provided by the three sensors30a-30cincluding any sensor tolerance. However, the temperature of themodule11 may instead be derived in any other suitable way.
TheWWAN server39 is run on themodule11 using themicroprocessor22 and theRAM23 to cause themicroprocessor22 to monitor the temperature of thetemperature sensors30a,30b,30cand thus the temperature of themodule11. TheWWAN server39 of themodule11 causes themicroprocessor22 to report to thelaptop12 via theUSB interface15,16 when the temperature of themodule11 crosses one of a number of predetermined thresholds.
Alternatively, theWWAN server39 of themodule11 may be arranged to report, for instance periodically, the temperature of themodule11 to thelaptop12.
Alternatively temperature reporting may occur in response to a request, generated by theprogram37, to theWWAN server39 for a temperature measurement.
Whichever way it is achieved, thelaptop12 is able to determine when the temperature sensors30a-30cindicate that a temperature has risen above certain thresholds. Thelaptop12 also is able to determine when the temperature sensors30a-30cindicate that a temperature has fallen below certain thresholds. These determinations are made from data received over theUSB interface15,16.
Thedriver program37 causes thelaptop12 to adjust its operation on the basis of the monitored temperature of themodule11. In particular, thedriver program37 causes thelaptop12 to provide data to themodule11 for transmission at a rate which is dependent on the temperature of themodule11, as will now be described.
A number of temperature thresholds are defined. Example thresholds are:
| |
| Threshold | Value [° C.] |
| |
| TCritical | 80 |
| TRadioOff | 75 |
| TRadioOn | 73 |
| TThrottle2 | 70 |
| TThrottle1 | 65 |
| |
The driver program is operable to operate in a state defined by the state machine50 diagram ofFIG. 2. The driver can operate in one of six states: ‘module on’51, ‘fault mode’52, ‘radio on’53, ‘radio off’54, ‘throttle 1’55 and ‘throttle 2’56.
The ‘module on’state51 is entered when thelaptop12 boots up and power is applied to themodule11; or following recovery from the ‘fault mode’52. TheWWAN server39 reads the temperature of themodule11, and in conjunction with a software radio enable/disable feature (not shown) of thelaptop12, and W_DISABLE configurations, causes a state transition to ‘radio off’state54, ‘radio on’state53 or ‘fault mode’state52 as appropriate
|
| W_DISABLE state | Same state as whenlaptop 12 was last powered |
| USB state | Alive: state is transitory only |
| Module Processor | MCU: Awake |
| State | DSP: Sleep |
|
The ‘fault mode’state52 is the fault condition and is only entered (from any state), when the module temperature exceeds a critical component temperature: TCritical. This can be used to prove that the warranty of themodule11 has been violated.
Themodule11 first informs thelaptop12 that this state is being entered, and then enters a ‘power down’ state. This ensures that themodule11 is in its lowest operational state, even though power is still supplied to themodule11 by theUSB interface15,16.
The laptop thermal design should be such that the ‘fault mode’state52 is never entered, as the excessive module temperature will be due a high ambient temperature in thelaptop12, and not from themodule11. However if this mode is entered, then theWWAN server39 writes data to permanent memory (i.e. the ROM21) to indicate that this has happened
The ‘fault mode’state52 can only be exited when thelaptop12 reboots: ‘module on’state51 is then entered.
| |
| W_DISABLE state | N/A |
| USB state | Selective Suspend |
| Module Processor | MCU: Sleep |
| State | DSP: Sleep |
| |
The ‘radio on’state53 is the usual operational state of themodule11. In this state, the module temperature is low enough to permit data transmission at full rate; and both software and hardware radio controls are set to enable a network connection. This state is left if either there is a rise in module temperature or there is a reason why the radio cannot be operated (e.g. on entering “flight mode”, where radio operation is prohibited).
|
| W_DISABLE | INACTIVE (High) |
| state |
| USB state | Cellular Idle: Selective Suspend with Remote Wakeup |
| to report module temperature and signal strength; |
| and Resume Signalling from laptop as necessary. |
| Cellular Connected: Interrupt EPs polled every 8 ms; |
| BULK IN/OUT EPs posted when active data. |
| Module | Cellular Idle: MCU & DSP: Sleep, Awake for Page read |
| Processor | Cellular Connected: MCU & DSP: Fully Awake |
| State |
|
The ‘radio off’state54 is the mode in which communication to/from thenetwork9 is prohibited. The most likely triggers for entering this state are excessive module temperature and either software or hardware radio controls preventing radio operation (e.g. entering “flight mode”). Themodule11 informs thelaptop12 that this state is being entered, and a timer is started in the laptop by thedriver program37. Once the timer (ElapsedTime) exceeds a predetermined value, equal to CoolingTime, thedriver program37 of thelaptop12 polls theWWAN server39 to report the temperature of themodule11. TheWWAN Server39 then reads the module temperature and reports the temperature to thedriver program37. If the module temperature is still high, such that only the ‘radio off’state54 or the ‘fault mode’state52 can be entered, then the procedure is repeated, but with an increased CoolingTime timer value.
|
| W_DISABLE | ACTIVE (Low) |
| state |
| USB state | Selective Suspend with occasional Remote Wakeup to |
| report module temperature; and occasional Resume |
| Signalling from laptop to request the temperature. |
| Module Processor | MCU: Sleep, Awake only to make temperature |
| State | measurements, or when instructed by laptop. |
| DSP: Sleep |
|
The ‘throttle 1’state55 is identical to the ‘radio on’state53, except that the UL data rate is throttled.
|
| W_DISABLE | INACTIVE (High) |
| state |
| USB state | Cellular Idle: Selective Suspend with Remote Wakeup to |
| report module temperature and signal strength; and |
| Resume Signalling from laptop as necessary. |
| Cellular Connected: Interrupt EPs polled every 8 ms; |
| BULK IN/OUT EPs posted when active data. |
| Module | Cellular Idle: MCU & DSP: Sleep, Awake for Page read |
| Processor | Cellular Connected: MCU & DSP: Fully Awake |
| State |
|
The ‘throttle 2’state56 is identical to the ‘throttle 1’state55, except that the UL data rate is throttled to an even lower data rate.
|
| W_DISABLE | INACTIVE (High) |
| state |
| USB state | Cellular Idle: Selective Suspend with Remote Wakeup to |
| report module temperature and signal strength; and |
| Resume Signalling from laptop as necessary. |
| Cellular Connected: Interrupt EPs polled every 8 ms; |
| BULK IN/OUT EPs posted when active data. |
| Module | Cellular Idle: MCU & DSP: Sleep, Awake for Page read |
| Processor | Cellular Connected: MCU & DSP: Fully Awake |
| State |
|
State change 1 (denoted by a 1 in a circle in the Figure) occurs only when power is first applied to the module (3.3 V rail), theWWAN server39 detects that the module temperature is below TCritical, a software command is set to enable the WWAN radio, and a hardware W_DISABLE is disabled (high) to enable the WWAN radio. This causes the module to transition to the ‘radio on’state53.
State change 2 (denoted by a 2 in a circle in the Figure) occurs from either the initial power on (‘module on’ state51) or ‘radio on’state53. This state change occurs only when theWWAN server39 detects that the module temperature is above TRadioOff, but below TCritical, or software command is set to disable the WWAN radio, or hardware W_DISABLE is (low) to disable the WWAN radio. With this state change, themodule11 transitions to the ‘radio off’state54.
State change 3 (denoted by a 3 in a circle in the Figure) can occur from any state. It occurs when theWWAN server39 detects that the module temperature is above TCritical, the state change is into the ‘fault mode’52.
State change 4 (denoted by a 4 in a circle in the Figure) occurs when the module is in the ‘fault mode’state52 and thelaptop12 powers off and reboots. Here, the module leaves the ‘fault mode’state52 and transitions to the ‘module on’state51 such that “normal” operation can be resumed. This is the only recovery from the ‘fault mode’state52.
State change 5 (denoted by a 5 in a circle in the Figure) occurs from any state where there are restrictions on radio operation (disabled or throttled). This state change occurs when theWWAN server39 detects that the module temperature is below TThrottle1 and TRadioOh, and a software command is set to enable the WWAN radio, and the hardware W_DISABLE is disabled (high) to enable the WWAN radio. With this state change, themodule11 transitions to the ‘radio on’state53, where radio operation is unrestricted.
State change 6 (denoted by a 6 in a circle in the Figure) can occur from any operational state. It occurs when theWWAN server39 detects that the module temperature is above TThrottle1, but below TRadioOn and a software command is set to enable the WWAN radio, and the hardware W_DISABLE is disabled (high) to enable the WWAN radio. With this state change, themodule11 transitions to the ‘throttle 1’state55.
State change 7 (denoted by a 7 in a circle in the Figure) can occur from any operational state. It occurs when theWWAN server39 detects that the module temperature is above TThrottle2, but below TRadioOn and a software command is set to enable the WWAN radio, and the hardware W_DISABLE is disabled (high) to enable the WWAN radio. With this state change, themodule11 transitions to the ‘throttle 2’state56.
Some of the terms above, e.g. W_DISABLE, are specific to PCI miniaturecard, although it will be appreciated that corresponding interrupts can be used in other implementations.
The provision of two throttling stages for WCDMA/HSDPA allows for design flexibility and future algorithm tuning.
To switch off thetransmitter25, the cellular software and radio are disabled. This simplifies the interface between theprotocol software40 and theWWAN server39, compared to merely disabling the transmitter. This does result in themodule11 disconnecting from thenetwork9, so an indication of this is provided to software of thelaptop12. When themodule11 cools sufficiently, the cellular software and radio can be re-enabled and themodule11 performs a cell search and re-registers with thenetwork9.
An algorithm implementing the state machine ofFIG. 2 exists in thedriver program37. This allows all the data passing over USB can be throttled, not merely the data over NDIS (Network Driver Interface Specification). This means that data sent over the dial-upmodem35 also can be throttled should this be necessary. The dial-up modem and the USB interface are selectively enabled by acontroller36.
Thedriver program37 creates thefeed buffer32. Thedriver program37 starts a timer, ticking at a fixed rate, only when there is data in thefeed buffer32. The tick period can be called the “Throttle Timer Period”. When no throttling is present, i.e. the module is in ‘radio on’state53, the rate at which data is sent over theUSB connection15,16 is governed by conventional flow control in theprotocol software40. When the ‘Throttle1’state55 is entered, a cap on the amount of data sent over theUSB connection15,16 in the Throttle Timer Period is made. The first cap is a maximum amount of data that can be sent, and corresponds to x bytes. When the ‘Throttle2’state56 is initiated, a second cap on the amount of data sent over the USB connection in the Throttle Timer Period is made. The second cap corresponds to y bytes, where x>y. x and y may be configurable dynamically, but they preferably are fixed. The second cap (y bytes) corresponds to the lowest possible UL data rate, i.e. 64 kbps. The first cap (x bytes) corresponds to the next lowest data rate, i.e. 128 kbps. The values of x and y depends on the length of the Throttle Timer Period, but it is easy for thedriver program37 to calculate suitable values.
Thedriver program37 thus defines plural contiguous and sequential time periods, each having a length equal to the Throttle Timer Period, and limits the amount of data that is fed to the USB interface in each of the time periods. Thus, although data can be transmitted burstily, taking an average using a resolution less than the Throttle Timer Period provides a throttled and steady feeding data rate. To ensure that the burstiness of the data feeding does not cause problems with themodule11, the amount of data that is transmitted in one Throttle Timer Period preferably is small compared to the size of the transmitbuffer24.
The data is sent from thefeed buffer32 to themodule11 via theUSB connection15,16 at the usual full-speed USB data rate of 12 Mbps. Data rate control is effected by inserting delays between packets. The effect of this is that the data entering themodule11, and hence theprotocol software stack40, is in bursts. If themodule11 is in either of the throttle1 and throttle2 states55,56, the average data rate is controlled by thedriver program37 to be the required data rate mentioned above. The value of the Throttle Timer Period is selected so as to allow smooth operation of themodule11, i.e. is small enough so as to prevent the transmit data rate selected by theprotocol stack40 or thenetwork9 from unnecessary switching but is large enough so as to allow full size packets to be sent from thefeed buffer32 to themodule11 whilst achieving the required average data rate.
When throttling data flow from thefeed buffer32 to themodule11, themodule11 normally will for a short time continue to transmit data at higher data rate. After the data rate has begun to be throttled, the fact that the transmit data rate is significantly greater than the rate at which data is entered into the transmitbuffer23 from thelaptop12 means that the buffer begins to empty of data. After a short time, the amount of data stored in the buffer falls to a point where theL1 layer41 determines that the transmit data rate is too high. At this time, theL1 layer41 changes the transmit data rate to a lower rate. The reduction in transmit data rate occurs immediately theL1 layer41 calculates the new required block size.
Although there is a possibility of a reduction in transmission data rate causing overflow of the transmit buffer or the loss of data, feeding data from the feed buffer correctly can ensure that the possibility is no greater than if transmission had continued at the greater data rate.
If thenetwork9 supports TVM, the reduced amount of data in the buffer can cause thenetwork9 to remove some bearer from that allocated to themodule11.
Whether or not thenetwork9 supports TVM, the adjustment of the data rate passing to the transmitbuffer24 over theUSB connection15,16 results in theprotocol software40 automatically reducing the transmit data rate, and thus reducing the amount of heat generated by themodule11. This is achieved without any change to theprotocol software40, which thus can be conventional.
There is not any prioritization between real-time and non-real-time data flows at the USB driver level. In embodiments where there is prioritization, this is handled at a higher level (e.g. TCP/IP Protocol Driver).
The fact that thedriver program37 resides in thelaptop12 means that it does not have any negative effect on other programs. The presence of thedriver program37 on thelaptop12 also is advantageous since the availability of theRAM31 means that more data can be buffered on thelaptop12 than could be buffered on themodule11.
The effect of this operation is a reduction in transmit power, and thus a reduction in generated heat, when themodule11 is hot. Reducing the heat generated by themodule11 increases the probability of themodule11 being able to continue. Put another way, reducing the transmit data rate decreases the likelihood that themodule11 will reach its maximum operating temperature and thus be switched off.
The inventors have found that, for WCDMA (including HSDPA), the only way to reduce transmitter power is to reduce the transmit data rate. If themodule11 reduces transmit power without reducing data rate, themobile phone network9 requests themodule11 to increase the transmit power up to the correct level. In WCDMA, because there is less spreading of the data at higher data rates, the need to achieve the required signal-to-noise ratio when transmitting at a higher data rate gives rise to higher power consumption.
In WCDMA, thenetwork9 defines a different transmit power for each of the UL (uplink) data rates that thenetwork9 supports. This is achieved by weighting the relative powers for the control data and user data. The power savings resulting from the above mentioned sample configuration are:
|
| Number of | | | Estimated |
| 336 bit | User Data | Typical Weighting | Drop in Tx |
| blocks | Rate [kbps] | [User Data/Control Data] | power [dB] |
|
|
| 12 | 384 | 15/4 | — |
| 4 | 128 | 15/8 | 5 |
| 2 | 64 | 15/15 | 9 |
|
If the user data rate drops, then the module can use a lower weighting which in turn equates to a lower transmit power. In the example, if the transmit data rate decreases from 384 kbps to 64 kbps, the transmit power decreases by approximately 9 dB. It will be appreciated, though, that any decrease in transmit power resulting from a reduced transmit data rate is solely dependent on the configuration of the weightings for each data rate set by thenetwork9, which are known by UEs.
In the above example, reduction by theMAC layer42 of the transmit data rate from 384 kbps to 128 kbps results in a reduction in transmit power of approximately 5 dB.
The reduction in heat generation when throttling is achieved whether or not the network supports TVM.
An example operation of the algorithm implemented in thedriver program37 is shown inFIG. 3. In this Figure, the thresholds TCritical, TRadioOff, TRadioOn, TThrottle2 and TThrottle1 are shown horizontally. Temperature is on the vertical axis and time is on the horizontal axis. A line shows how module temperature changes over time. Before a point A, the module is in the ‘radio on’state53. at point A, the temperature of themodule11=rises above the TThrottle1 threshold. This causes themodule11 to transition to the ‘throttle 1’state55, having a medium data rate. This reduces the data rate and thus the amount of heat generated by themodule11. The temperature of themodule11 continues to rise, perhaps because of heat generated by other components within thelaptop12. At point B, the temperature rises above the Tthrottle2 threshold. This causes themodule11 to transition to the ‘throttle 2’state56. This reduces the data rate to a low data rate, and thus reduces further the amount of heat generated by themodule11. The temperature of the module rises further above the TRadioOn threshold, which does not cause any transitions, then at point C falls below the TThrottle2 threshold. This causes themodule11 to transition to the ‘throttle 1’state55. This increases the data rate, and thus the amount of heat generated by themodule11.
At point D, the temperature again rises above the TThrottle2 threshold. This causes themodule11 to transition to the ‘throttle 2’state56. This again reduces the data rate, and thus the amount of heat generated by themodule11. The temperature of themodule11 then rises above the TRadioOn threshold, which does not cause any transitions, then at point E rises above the TRadioOff threshold. This causes the module to transition to the ‘radio off’state54. The temperature of themodule11 then fails below the TRadioOff threshold, which does not cause any transitions, then at point F rises below the TRadioOn threshold. This causes the module to transition to the ‘throttle 2’state56.
The temperature of themodule11 then rises again above the TRadioOn threshold, which again does not cause any transitions, then at point G rises above the TRadioOff threshold. This causes the module to transition to the ‘radio off’state54. At this stage, themodule11 is generating little or no heat. The temperature of themodule11 continues to rise, because of external heat sources, until at point H it rises above the TCritical threshold. At this point, themodule11 transitions to ‘fault mode’state52. Here, themodule11 writes to permanent memory that fault mode was entered. Operation of the radio cannot begin again until the temperature falls below the TRadioOn threshold.
From this, it will be seen that the TRadioOn and TRadioOff provide hysteresis, which help to prevent a ping-pong effect. Hysteresis is not applied on the throttling thresholds since it is thought that ping-ponging between data rates is not particularly problematic.
In another embodiment, the two throttling thresholds could be used as a single throttling threshold with hysteresis.
In a further embodiment, only one throttle state is defined. In this case, themodule11 may in an operational state either be ‘radio on’, ‘throttle’ or ‘radio off’. This may be achieved using the algorithm described above by a small modification of the temperature thresholds, as follows:
| |
| Threshold | Value [° C.] |
| |
| TCritical | 80 |
| TRadioOff | 75 |
| TRadioOn | 70 |
| TThrottle2 | 70 |
| TThrottle1 | 65 |
| |
The invention is applicable to transmitters operating according to standards other than WCDMA standards.
Although the above embodiment relates to a PCIe miniaturecard internal to alaptop computer12, the skilled person will appreciate that the invention has broader applicability than this. For instance, the invention in some instances can be embodied as a module which largely is external to a laptop computer or other device. Thus, the invention may be applicable to WCDMA (including HSDPA) cards or modules which are connectable with PCMCIA slots and the like such that a part of the card or module is internal and part is external.
The invention is applicable in some aspects also to apparatus in which a radio module is connected to another device without a specific interface, for instance when the module and the device are hard-wired together.
The invention is applicable also to mobile telephones, smart phones, PDAs (Personal Digital Assistants) and the like which have internal or partly internal transceiver modules.
In some applications, the one or more temperature sensors on the output of which decisions are made may not be associated specifically with the module itself, but may be located at any suitable position within the host device.