Abstract:
*A method includes 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. Another method includes 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.

Description:
FIELD OF THE INVENTION 
       [0001]    The invention relates to controlling the feeding of data from a feed buffer. 
       BACKGROUND TO THE INVENTION 
       [0002]    It 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. 
         [0003]    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. 
         [0004]    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&#39;s transmitter. 
       SUMMARY OF THE INVENTION 
       [0005]    A 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.       
 
         [0010]    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. 
         [0011]    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. 
         [0012]    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. 
         [0013]    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. 
         [0014]    The first and the second thresholds may have the same value. Alternatively they may be different. When they are different, hysteresis is provided. 
         [0015]    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. 
         [0016]    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. 
         [0017]    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.       
 
         [0021]    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.       
 
         [0026]    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.       
 
         [0033]    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.       
 
         [0038]    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. 
         [0039]    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. 
         [0040]    The first and the second thresholds may have the same value. 
         [0041]    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. 
         [0042]    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. 
         [0043]    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.       
 
         [0047]    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.       
 
         [0054]    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.       
 
         [0059]    Embodiments of the invention will now be described by way of example only, with reference to the accompanying drawings. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0060]    In the drawings: 
           [0061]      FIG. 1  is a schematic drawing of a system comprising a module and a laptop computer, the system embodying various aspects of the invention; 
           [0062]      FIG. 2  is a state machine diagram illustrating operation of part if the  FIG. 1  system; and 
           [0063]      FIG. 3  is a drawing illustrating operation of the  FIG. 1  system in certain conditions. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0064]    In the drawings, like reference numerals refer to like elements. 
         [0065]    Referring to  FIG. 1 , a system  10  comprises a module  11  connected to a laptop computer  12 . The module  11  is a 3G data card, implemented on a mini PCIe (PCI Express) card. The module  11  is internal to the laptop computer  12 , in the sense that it is contained wholly within a housing  13  of the laptop computer  12  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 the laptop computer  12 . The laptop computer  12  includes a fan  14  which is operable to expel hot air from within the housing  13  so as to maintain the temperature within the housing  13  within acceptable limits. As is usual, the fan  14  is operated only when necessary, and is operated at a speed which is appropriate taking into account the ambient temperature within the housing  13 , as measured by a temperature sensor  38 . The laptop computer is shown in very schematic form. It will be appreciated that the laptop computer  12  includes many other components (display, keyboard, graphics card, etc), components are omitted from the Figure because they are not useful in understanding the invention. 
         [0066]    The laptop computer  12  includes a USB connector  15 , which is mated with a corresponding USB connector  16  forming part of the module  11 . Thus, the laptop computer  12  and the module  11  are able to communicate data and commands to one another. Furthermore, the USB connection allows the laptop computer  12  to provide electrical power to the module  11 . 
         [0067]    A bus  17  of the laptop  12  is connected to the USB connector  15 ,  16  by a hardware interface  18 . Similarly, an interface  20  connects the USB connector  15 ,  16  to a bus  19  of the module  11 . 
         [0068]    The bus  19  of the module  11  allows communication between a number of devices, namely a ROM  21 , a microprocessor  22 , and some RAM  23 . Some of the RAM  23  constitutes a transmit buffer  24  for the module  11 . A transmitter  25  is connected to the bus  19  via a transmitter-bus interface  26 . A receiver  27  is connected to the bus  19  via a receiver-bus interface  28 . The transmitter  25  and the receiver are connected to and share a common antenna  29 A, which is located in the laptop  12  and is coupled to the transmitter  25  and the receiver  27  by an antenna connector  29 B. A temperature sensor  30  is connected to provide temperature measurements to the microprocessor  22 . 
         [0069]    The bus  17  of the laptop allows communication between some RAM  31 , some of which constitutes a feed buffer  32  for the laptop  12 , a CPU  33 , storage  34 , a dial-up modem  35  and a controller  36 . Stored in the storage  34  is a program  37  constituting a driver for the USB interface  16 ,  18  and a user interface. Some functions of the driver part of the program  37  are described in more detail below. For the purposes of this explanation, the driver program  37  is considered to be part of the module  11 , although it physically resides on the laptop  12 . 
         [0070]    The module  11  is a cellular radio transceiver. It is operable to communicate with a 3G mobile telephone network  9  according to a WCDMA (Wideband Code Division Multiple Access) communications protocol of the 3G standard. The module  11  may or may not be operable according to the Rel5 version, relating to HSDPA (High Speed Downlink Packet Access). The module  11  is subscribed to cellular data service provided by the network  9 . This is achieved by the cooperation of the microprocessor  22  and the RAM  23  to implement a protocol stack  40 . The protocol stack  40  is conventional. It includes a layer 1 (L1)  41 . The L1  41  is also known as the WCDMA physical layer. Above the L1  41  is a MAC (Medium Access Control) layer  42 . This layer is also known as a WCDMA L2 protocol layer. Above the MAC layer  43  is an RLC (Radio Link Control) layer  44 . This is also known as a WCDMA L3 protocol layer. The RLC layer  44  owns the transmit buffer  24 . The protocol stack  40  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 the RAM  23 . 
         [0071]    Receiver operation is not described here since it is not relevant to this explanation. Transmit operation is as follows. The protocol stack  40  maintains the transmit buffer  24  in the RAM  23 . The transmit buffer stores data received from the laptop  12  prior to transmission through the transmitter  25  through the antenna  29 . 
         [0072]    In WCDMA, a number of different transmit data rates are defined. A sample configuration is: 
         [0000]    
       
         
               
               
               
             
               
               
               
             
           
               
                   
               
               
                 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 
               
               
                   
               
             
          
         
       
     
         [0073]    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 the module  11 . the number of blocks transmitted per unit of time determines the user data rate. If the network  9  allows the module  11  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. 
         [0074]    Conventionally, the L1 protocol layer  41  of the module  11  causes transmission of the data that is queued in the transmit buffer  24 . If there is no data in the transmit buffer  24 , there is no transmission to the network  9 . If there is sufficient data in the buffer, then convention is that transmission occurs at the configuration specified by the network  9 . 
         [0075]    However, if the amount of data in the transmit buffer  24  is less than the available uplink capacity, the MAC layer  42  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, the L1 layer  41  requires only 4 blocks of data (each of 336 bits) per 10 ms slot. In this case, the MAC layer  42  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, the L1 layer  41  requires only 2 blocks of data per 10 ms slot. In this case, the MAC layer  42  automatically adapts the transmits configuration to use the 2×336 bit configuration (64 kbps bearer). 
         [0076]    If the rate of data entering the transmit buffer is between 64 kbps and 128 kbps, the L1 layer  41  switches between transmitting 2 blocks of data per 10 ms slot and 4 blocks of data per 10 ms slot. This occurs because the protocol stack  40  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, the L1 layer  41  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, the L1 layer  41  switches between transmitting 4 blocks of data per 10 ms slot and 12 blocks of data per 10 ms slot. Thus, by this scheme, the module  11  selects a transmit data rate which is dependent on the amount of data in the transmit buffer  24 . This is conventional. 
         [0077]    In addition to this, the network  9  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 transmit buffer  24 . TVMs are calculated in the MAC layer  42 . If a TVM exceeds a network-defined threshold, it is an indication that the available uplink capacity on the allocated bearer is insufficient. The module  11  informs the network  9 , and the network  9  can choose to allocate a larger bearer, and the module  11  is notified as appropriate. Conversely, if the amount of data queued in the transmit buffer  24  is less than a network-defined threshold, it is an indication that the available uplink capacity on the allocated bearer is excessive. The module  11  informs the network  9 , and the network  9  then reconfigures the module  11  to use a lower data rate bearer. For example, it may withdraw the 12×336 bit (384 kbps) configuration. In this case, the network  9  may allocate the bearer to one or more other users. 
         [0078]    If the network  9  supports TVM, the module  11  still selects a transmit data rate which is dependent on the amount of data in the transmit buffer  24 , although the transmit data rate cannot be greater than that allocated by the network  9 . 
         [0079]    The microprocessor  22  of the module  11  is arranged under control of a program permanently stored in the ROM  21  to monitor the temperature of the module  11 . This program is a WWAN (Wireless Wide Area Network) server  39 , which is described below. Monitoring of the temperature of the module  11  involves periodic interrogation of the temperature sensor  30 , with the sensor  30  responding with a signal indicative of the temperature of the module  11 . The exact way in which the temperature of the module  11  is monitored is not crucial to the invention. It is however preferred that the module  11  is provided with two or more temperature sensors. 
         [0080]    In the embodiment of  FIG. 1 , the module  11  has three on-board temperature sensors  30   a ,  30   b ,  30   c . The first sensor  30   a  is associated with an RF part of the module, which includes the transmitter  25  and the receiver  37 . The second sensor  30   b  is associated with a VCTCXO (Voltage Controlled Temperature Compensated Oscillator) (not shown) which provides the transmitter  25  and the receiver  27  with oscillator signals. The third sensor  30   c  is associated with the RAM  23 . For simplicity, the module temperature is taken to be the highest of the temperatures provided by the three sensors  30   a - 30   c  including any sensor tolerance. However, the temperature of the module  11  may instead be derived in any other suitable way. 
         [0081]    The WWAN server  39  is run on the module  11  using the microprocessor  22  and the RAM  23  to cause the microprocessor  22  to monitor the temperature of the temperature sensors  30   a ,  30   b ,  30   c  and thus the temperature of the module  11 . The WWAN server  39  of the module  11  causes the microprocessor  22  to report to the laptop  12  via the USB interface  15 ,  16  when the temperature of the module  11  crosses one of a number of predetermined thresholds. 
         [0082]    Alternatively, the WWAN server  39  of the module  11  may be arranged to report, for instance periodically, the temperature of the module  11  to the laptop  12 . 
         [0083]    Alternatively temperature reporting may occur in response to a request, generated by the program  37 , to the WWAN server  39  for a temperature measurement. 
         [0084]    Whichever way it is achieved, the laptop  12  is able to determine when the temperature sensors  30   a - 30   c  indicate that a temperature has risen above certain thresholds. The laptop  12  also is able to determine when the temperature sensors  30   a - 30   c  indicate that a temperature has fallen below certain thresholds. These determinations are made from data received over the USB interface  15 ,  16 . 
         [0085]    The driver program  37  causes the laptop  12  to adjust its operation on the basis of the monitored temperature of the module  11 . In particular, the driver program  37  causes the laptop  12  to provide data to the module  11  for transmission at a rate which is dependent on the temperature of the module  11 , as will now be described. 
         [0086]    A number of temperature thresholds are defined. Example thresholds are: 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Threshold 
                 Value [° C.] 
               
               
                   
                   
               
             
             
               
                   
                 TCritical 
                 80 
               
               
                   
                 TRadioOff 
                 75 
               
               
                   
                 TRadioOn 
                 73 
               
               
                   
                 TThrottle2 
                 70 
               
               
                   
                 TThrottle1 
                 65 
               
               
                   
                   
               
             
          
         
       
     
         [0087]    The driver program is operable to operate in a state defined by the state machine  50  diagram of  FIG. 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 . 
         [0088]    The ‘module on’ state  51  is entered when the laptop  12  boots up and power is applied to the module  11 ; or following recovery from the ‘fault mode’  52 . The WWAN server  39  reads the temperature of the module  11 , and in conjunction with a software radio enable/disable feature (not shown) of the laptop  12 , and W_DISABLE configurations, causes a state transition to ‘radio off’ state  54 , ‘radio on’ state  53  or ‘fault mode’ state  52  as appropriate 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 W_DISABLE state 
                 Same state as when laptop 12 was last powered 
               
               
                 USB state 
                 Alive: state is transitory only 
               
               
                 Module Processor 
                 MCU: Awake 
               
               
                 State 
                 DSP: Sleep 
               
               
                   
               
             
          
         
       
     
         [0089]    The ‘fault mode’ state  52  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 the module  11  has been violated. 
         [0090]    The module  11  first informs the laptop  12  that this state is being entered, and then enters a ‘power down’ state. This ensures that the module  11  is in its lowest operational state, even though power is still supplied to the module  11  by the USB interface  15 ,  16 . 
         [0091]    The laptop thermal design should be such that the ‘fault mode’ state  52  is never entered, as the excessive module temperature will be due a high ambient temperature in the laptop  12 , and not from the module  11 . However if this mode is entered, then the WWAN server  39  writes data to permanent memory (i.e. the ROM  21 ) to indicate that this has happened 
         [0092]    The ‘fault mode’ state  52  can only be exited when the laptop  12  reboots: ‘module on’ state  51  is then entered. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 W_DISABLE state 
                 N/A 
               
               
                   
                 USB state 
                 Selective Suspend 
               
               
                   
                 Module Processor 
                 MCU: Sleep 
               
               
                   
                 State 
                 DSP: Sleep 
               
               
                   
                   
               
             
          
         
       
     
         [0093]    The ‘radio on’ state  53  is the usual operational state of the module  11 . 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). 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 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 &amp; DSP: Sleep, Awake for Page read 
               
               
                 Processor 
                 Cellular Connected: MCU &amp; DSP: Fully Awake 
               
               
                 State 
               
               
                   
               
             
          
         
       
     
         [0094]    The ‘radio off’ state  54  is the mode in which communication to/from the network  9  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”). The module  11  informs the laptop  12  that this state is being entered, and a timer is started in the laptop by the driver program  37 . Once the timer (ElapsedTime) exceeds a predetermined value, equal to CoolingTime, the driver program  37  of the laptop  12  polls the WWAN server  39  to report the temperature of the module  11 . The WWAN Server  39  then reads the module temperature and reports the temperature to the driver program  37 . If the module temperature is still high, such that only the ‘radio off’ state  54  or the ‘fault mode’ state  52  can be entered, then the procedure is repeated, but with an increased CoolingTime timer value. 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 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 
               
               
                   
               
             
          
         
       
     
         [0095]    The ‘throttle 1’ state  55  is identical to the ‘radio on’ state  53 , except that the UL data rate is throttled. 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 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 &amp; DSP: Sleep, Awake for Page read 
               
               
                 Processor 
                 Cellular Connected: MCU &amp; DSP: Fully Awake 
               
               
                 State 
               
               
                   
               
             
          
         
       
     
         [0096]    The ‘throttle 2’ state  56  is identical to the ‘throttle 1’ state  55 , except that the UL data rate is throttled to an even lower data rate. 
         [0000]    
       
         
               
               
             
           
               
                   
               
             
             
               
                 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 &amp; DSP: Sleep, Awake for Page read 
               
               
                 Processor 
                 Cellular Connected: MCU &amp; DSP: Fully Awake 
               
               
                 State 
               
               
                   
               
             
          
         
       
     
         [0097]    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), the WWAN server  39  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’ state  53 . 
         [0098]    State change 2 (denoted by a 2 in a circle in the Figure) occurs from either the initial power on (‘module on’ state  51 ) or ‘radio on’ state  53 . This state change occurs only when the WWAN server  39  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, the module  11  transitions to the ‘radio off’ state  54 . 
         [0099]    State change 3 (denoted by a 3 in a circle in the Figure) can occur from any state. It occurs when the WWAN server  39  detects that the module temperature is above TCritical, the state change is into the ‘fault mode’  52 . 
         [0100]    State change 4 (denoted by a 4 in a circle in the Figure) occurs when the module is in the ‘fault mode’ state  52  and the laptop  12  powers off and reboots. Here, the module leaves the ‘fault mode’ state  52  and transitions to the ‘module on’ state  51  such that “normal” operation can be resumed. This is the only recovery from the ‘fault mode’ state  52 . 
         [0101]    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 the WWAN server  39  detects that the module temperature is below TThrottle 1  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, the module  11  transitions to the ‘radio on’ state  53 , where radio operation is unrestricted. 
         [0102]    State change 6 (denoted by a 6 in a circle in the Figure) can occur from any operational state. It occurs when the WWAN server  39  detects that the module temperature is above TThrottle 1 , 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, the module  11  transitions to the ‘throttle 1’ state  55 . 
         [0103]    State change 7 (denoted by a 7 in a circle in the Figure) can occur from any operational state. It occurs when the WWAN server  39  detects that the module temperature is above TThrottle 2 , 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, the module  11  transitions to the ‘throttle 2’ state  56 . 
         [0104]    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. 
         [0105]    The provision of two throttling stages for WCDMA/HSDPA allows for design flexibility and future algorithm tuning. 
         [0106]    To switch off the transmitter  25 , the cellular software and radio are disabled. This simplifies the interface between the protocol software  40  and the WWAN server  39 , compared to merely disabling the transmitter. This does result in the module  11  disconnecting from the network  9 , so an indication of this is provided to software of the laptop  12 . When the module  11  cools sufficiently, the cellular software and radio can be re-enabled and the module  11  performs a cell search and re-registers with the network  9 . 
         [0107]    An algorithm implementing the state machine of  FIG. 2  exists in the driver program  37 . 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-up modem  35  also can be throttled should this be necessary. The dial-up modem and the USB interface are selectively enabled by a controller  36 . 
         [0108]    The driver program  37  creates the feed buffer  32 . The driver program  37  starts a timer, ticking at a fixed rate, only when there is data in the feed buffer  32 . The tick period can be called the “Throttle Timer Period”. When no throttling is present, i.e. the module is in ‘radio on’ state  53 , the rate at which data is sent over the USB connection  15 ,  16  is governed by conventional flow control in the protocol software  40 . When the ‘Throttle 1 ’ state  55  is entered, a cap on the amount of data sent over the USB connection  15 ,  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 ‘Throttle 2 ’ state  56  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&gt;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 the driver program  37  to calculate suitable values. 
         [0109]    The driver program  37  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 the module  11 , the amount of data that is transmitted in one Throttle Timer Period preferably is small compared to the size of the transmit buffer  24 . 
         [0110]    The data is sent from the feed buffer  32  to the module  11  via the USB connection  15 ,  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 the module  11 , and hence the protocol software stack  40 , is in bursts. If the module  11  is in either of the throttle 1  and throttle 2  states  55 ,  56 , the average data rate is controlled by the driver program  37  to be the required data rate mentioned above. The value of the Throttle Timer Period is selected so as to allow smooth operation of the module  11 , i.e. is small enough so as to prevent the transmit data rate selected by the protocol stack  40  or the network  9  from unnecessary switching but is large enough so as to allow full size packets to be sent from the feed buffer  32  to the module  11  whilst achieving the required average data rate. 
         [0111]    When throttling data flow from the feed buffer  32  to the module  11 , the module  11  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 transmit buffer  23  from the laptop  12  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 the L1 layer  41  determines that the transmit data rate is too high. At this time, the L1 layer  41  changes the transmit data rate to a lower rate. The reduction in transmit data rate occurs immediately the L1 layer  41  calculates the new required block size. 
         [0112]    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. 
         [0113]    If the network  9  supports TVM, the reduced amount of data in the buffer can cause the network  9  to remove some bearer from that allocated to the module  11 . 
         [0114]    Whether or not the network  9  supports TVM, the adjustment of the data rate passing to the transmit buffer  24  over the USB connection  15 ,  16  results in the protocol software  40  automatically reducing the transmit data rate, and thus reducing the amount of heat generated by the module  11 . This is achieved without any change to the protocol software  40 , which thus can be conventional. 
         [0115]    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). 
         [0116]    The fact that the driver program  37  resides in the laptop  12  means that it does not have any negative effect on other programs. The presence of the driver program  37  on the laptop  12  also is advantageous since the availability of the RAM  31  means that more data can be buffered on the laptop  12  than could be buffered on the module  11 . 
         [0117]    The effect of this operation is a reduction in transmit power, and thus a reduction in generated heat, when the module  11  is hot. Reducing the heat generated by the module  11  increases the probability of the module  11  being able to continue. Put another way, reducing the transmit data rate decreases the likelihood that the module  11  will reach its maximum operating temperature and thus be switched off. 
         [0118]    The inventors have found that, for WCDMA (including HSDPA), the only way to reduce transmitter power is to reduce the transmit data rate. If the module  11  reduces transmit power without reducing data rate, the mobile phone network  9  requests the module  11  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. 
         [0119]    In WCDMA, the network  9  defines a different transmit power for each of the UL (uplink) data rates that the network  9  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: 
         [0000]    
       
         
               
               
               
               
             
               
               
               
               
             
           
               
                   
               
               
                 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 
               
               
                   
               
             
          
         
       
     
         [0120]    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 the network  9 , which are known by UEs. 
         [0121]    In the above example, reduction by the MAC layer  42  of the transmit data rate from 384 kbps to 128 kbps results in a reduction in transmit power of approximately 5 dB. 
         [0122]    The reduction in heat generation when throttling is achieved whether or not the network supports TVM. 
         [0123]    An example operation of the algorithm implemented in the driver program  37  is shown in  FIG. 3 . In this Figure, the thresholds TCritical, TRadioOff, TRadioOn, TThrottle 2  and TThrottle 1  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’ state  53 . at point A, the temperature of the module  11 =rises above the TThrottle 1  threshold. This causes the module  11  to transition to the ‘throttle 1’ state  55 , having a medium data rate. This reduces the data rate and thus the amount of heat generated by the module  11 . The temperature of the module  11  continues to rise, perhaps because of heat generated by other components within the laptop  12 . At point B, the temperature rises above the Tthrottle 2  threshold. This causes the module  11  to transition to the ‘throttle 2’ state  56 . This reduces the data rate to a low data rate, and thus reduces further the amount of heat generated by the module  11 . The temperature of the module rises further above the TRadioOn threshold, which does not cause any transitions, then at point C falls below the TThrottle 2  threshold. This causes the module  11  to transition to the ‘throttle 1’ state  55 . This increases the data rate, and thus the amount of heat generated by the module  11 . 
         [0124]    At point D, the temperature again rises above the TThrottle 2  threshold. This causes the module  11  to transition to the ‘throttle 2’ state  56 . This again reduces the data rate, and thus the amount of heat generated by the module  11 . The temperature of the module  11  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’ state  54 . The temperature of the module  11  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’ state  56 . 
         [0125]    The temperature of the module  11  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’ state  54 . At this stage, the module  11  is generating little or no heat. The temperature of the module  11  continues to rise, because of external heat sources, until at point H it rises above the TCritical threshold. At this point, the module  11  transitions to ‘fault mode’ state  52 . Here, the module  11  writes to permanent memory that fault mode was entered. Operation of the radio cannot begin again until the temperature falls below the TRadioOn threshold. 
         [0126]    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. 
         [0127]    In another embodiment, the two throttling thresholds could be used as a single throttling threshold with hysteresis. 
         [0128]    In a further embodiment, only one throttle state is defined. In this case, the module  11  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: 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Threshold 
                 Value [° C.] 
               
               
                   
                   
               
             
             
               
                   
                 TCritical 
                 80 
               
               
                   
                 TRadioOff 
                 75 
               
               
                   
                 TRadioOn 
                 70 
               
               
                   
                 TThrottle2 
                 70 
               
               
                   
                 TThrottle1 
                 65 
               
               
                   
                   
               
             
          
         
       
     
         [0129]    The invention is applicable to transmitters operating according to standards other than WCDMA standards. 
         [0130]    Although the above embodiment relates to a PCIe miniaturecard internal to a laptop computer  12 , 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. 
         [0131]    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. 
         [0132]    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. 
         [0133]    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.