Patent Publication Number: US-7720032-B2

Title: Method and apparatus for priority management of system algorithms in real time

Description:
CROSS REFERENCE TO RELATED APPLICATION(S) 
   This application is a continuation of U.S. patent application Ser. No. 10/419,471, filed Apr. 21, 2003, which claims the benefit of U.S. provisional application No. 60/417,529, filed on Oct. 10, 2002, which are incorporated by reference as if fully set forth. 

   FIELD OF INVENTION 
   This invention relates generally to complex real time systems in wireless communications, and more particularly to a method for dynamically managing the priority of system algorithms to achieve optimal efficiency. 
   BACKGROUND 
   The following are expansions for certain acronyms used in this application: 
   
     
       
         
             
             
             
           
             
                 
                 
             
           
          
             
                 
               SCC 
               slow congestion control 
             
             
                 
               F-DCA 
               fast dynamic channel allocation 
             
             
                 
               LM 
               link maintenance 
             
             
                 
               C-RNC 
               controlling network controller 
             
             
                 
                 
             
          
         
       
     
   
   There is an ever-increasing need to achieve enhanced efficiency of operation in complex communication systems, and, the need is even greater in management of real time systems that use a plurality of algorithms. 
   In complex real-time systems, it is desirable to use priority-handling mechanisms on processes to achieve optimal efficiency. The RRM (Radio Resource Management) algorithms fall into the above category. Traditional fixed-priority handling mechanisms work well in small and stable systems. However, the wireless communication environment is very dynamic and complex. It is necessary and beneficial that the execution priority of the algorithms can be changed according to the most current system status. 
   Prior art offers information in patent publications that deal with operating system scheduling and packet scheduling, for example. The following are examples of US patents generally in the field of networks: 
   In U.S. Pat. No. 6,453,360, titled “High Performance Network Interface”, a high performance network interface is provided for receiving a packet from a network and transferring it to a host computer system. A header portion of a received packet is parsed by a parser module to determine the received packet&#39;s compatibility with, or conformance to, one or more pre-selected protocols. Packets are stored in multiple queues with priorities. 
   U.S. Pat. No. 6,452,915, titled “IP-flow Classification in a Wireless Point To Multi-Point (PTMP) Transmission System”, is directed to an IP-flow classification system used in a wireless telecommunications system. More specifically, the IP flow classification system in said U.S. patent provides for grouping IP-flows from a packet-centric wireless point to a multi-point telecommunications system. A quality of service (QoS) grouping device therein may include an optional differentiated services (Diff-Serv) device that takes into account an optional Diff-Serv field priority-marking for the IP-flow. 
   In U.S. Pat. 6,449,251, titled “Packet Mapper for Dynamic Data Packet Prioritization”, a packet-mapper maps streams of data packets in a computer network, each data packet having a packet header containing feature values descriptive of the data packet. The packet-mapper includes a mapping table that associates application-related feature values with network-reserved feature values from a range of feature values reserved for use by selected network data packet streams. Prioritization in said US Patent is achieved by assigning a port-number for packets. 
   The above examples of US patent publications are, however, not directly applicable to management of and scheduling between different RRM algorithms, and do not take into account system status. 
   It is desirable to provide a method of dynamically managing system algorithms, e.g., RRM algorithms, so as to achieve optimal efficiency. 
   SUMMARY 
   The present invention provides a method of dynamically managing system algorithms in wireless communications, considering system status in real time. The present invention recognizes that in general, in complex real-time systems such as wireless systems, it is very desirable to use priority-handling mechanisms on the processes to achieve optimal efficiency. RRM is a collection of relatively independent algorithms whose common purpose is to manage the scarce radio resources efficiently. For example, although the purpose of each RRM algorithm may be somewhat independent of the other, the algorithms may end up acting on similar objects (e.g., one algorithm may want to reduce the rate of the link, whereas another may want to move it to another timeslot). To achieve optimal results, the algorithms should be executed in a timely manner. However, it is not efficient for the algorithms to be running at the same time trying to solve the same problem. Moreover, the best solution at one time may not be the best solution at another time due to the quick and unpredictable changes of system status and system-performance in the wireless environment. 
   The present inventive method of dynamic priority management provides an efficient way to prioritize different algorithms in a fast changing environment. It can be applied to, but is not limited to the RRM system. The inventive method is general and targets different types of complex and dynamic real-time systems. 
   As described hereinafter, a preferred embodiment provides a method for dynamic priority management of system algorithms. It is especially suitable for large, complex and dynamic systems such as wireless communication systems. Specifically, the following aspects of the inventive method are addressed hereinafter:
         a) when to increase or decrease algorithm priorities,   b) how to increase or decrease algorithm priorities,   c) how to assign priority parameters, and   d) how to dynamically manage priorities in the system.       

   The inventive method provides at least the following advantages:
         avoidance of the higher priority algorithms always triggering above lower priority algorithms even though they are not the best candidates to solve a problem under certain circumstances, and the ability to change priorities of the algorithms according to the latest system status and performance so that algorithms are executed in an optimal order and in a timely manner.       

   
     BRIEF DESCRIPTION OF THE FIGURES 
     A more detailed understanding of the invention may be had from the following description of a preferred embodiment, given by way of example and to be understood in conjunction with the accompanying drawings wherein: 
       FIG. 1  is a flowchart showing the process steps applicable to the preferred embodiment, to illustrate the decrease of priority; and, 
       FIG. 2  is a flowchart showing the process steps applicable to the preferred embodiment, to illustrate the increase of priority. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S) 
   Described hereinafter is a preferred embodiment of the inventive method of managing RRM algorithms, as an example, for obtaining optimum efficiency. For managing a plurality of algorithms, the following exemplary method steps may be noted: 
   a) define algorithm priority levels as P 1 , P 2 , . . . , P n (1. . . n are consecutive integers), where P n  has the highest priority. These predefined priority levels are the original priority designations for each algorithm, and 
   b) define the same priority parameters for algorithms within the same priority level. Priority parameters are those parameters that affect the trigger of an algorithm and they vary in different systems. In the RRM system, the priority parameters can include thresholds, filtering of a measurement, ‘n’ out of ‘m’ measurements that trigger an algorithm, and an algorithm periodical timer. 
   In a normal situation, the algorithms should be executed in the order of P n , P n−1 , . . . , and P 1  if they are triggered at the same time. 
   If, after the execution(s) of an algorithm, the problem is not solved (e.g., measurement exceeds threshold again), the priority of the algorithm should be decreased so that algorithms with lower priority can take action. 
   The method to decrease priority is: 
   c) When to decrease the algorithm priority: 
   There can be multiple reasons to decrease a priority level of an algorithm:
         aa. Decrease the priority to optimize interaction of the algorithms.       

   Option 1: A simple approach is to define a fixed parameter for all algorithms of all priority levels, as F.F is the number of consecutive times that the algorithm failed to solve the problem. After F times of the execution, the priority of the algorithm should be decreased as described in step (d) below. 
   Option 2: Use the priority level P n  as a weight parameter. F is the number of consecutive times that the algorithm failed to solve the problem. The priority of the algorithm decreases after P n *F times&#39; 0  execution. This is to provide algorithms with higher priority a “higher priority” to stay in their current priority, so that there are more chances that higher priority algorithms solve the problem.
         ab. Decrease the priority of an algorithm when it is undesirable to execute it. An example is to adjust algorithm priorities when the system environment has changed. Most likely the change will be reflected in measurement results. The priority of an algorithm can be decreased when a certain measurement has crossed a threshold and the algorithm is not a favorable candidate under this situation.       

   d) Decrease the priority level by 2, i.e., an algorithm with priority of P n  will have priority of P n−2 . This is to allow algorithms with priority level P n−1  to be executed. 
   e) Theoretically, there is no limit on how many times the priority can be decreased. Practically, there should be a design parameter to define the maximum number of decreases, or to define the lowest priority level that an algorithm can be assigned. 
   f) When an algorithm has been decreased by the maximum number of times, or it has reached its minimum priority level, the priority change should be stopped. 
   g) In case there is more than one algorithm with the same priority to be executed, the algorithms are chosen on a “first come, first serve” basis. 
   Once the priority of an algorithm is decreased, it should be restored, i.e., increased back, under certain circumstances. The increase of the priority is similar to the decrease thereof except that it is in the reverse order. 
   The method to increase the algorithm priority: 
   h) When to increase the algorithm priority:
         a. Priority was decreased using step (c) aa       

   Option 1: Increase the priority when the algorithm has been triggered again for the Nth time after it has been decreased (n=1, 2 . . . ). 
   Option 2: Use the original priority level P n  as a weight parameter. N is the number of times that the algorithm has been triggered again. The priority of the algorithm increases after N/P n  times&#39; execution. This is to provide algorithms with higher priority a “higher priority” to go back to or toward their original priority.
         b. Priority was decreased using step (c) ab       

   Increase the priority of an algorithm when it is desirable. 
   i) Increases the priority level by 2, i.e., restore to the last priority level. 
   j) Increase of priority stops when it has reached the original priority of the algorithm. 
   k) In case there is more than one algorithm with the same priority to be executed, the algorithms are chosen on a “first come, first serve” basis. 
   l) Priority is increased after time T has been decreased. T is a design parameter. The time should be relatively long, for example, greater than the time interval of n times&#39; executions of the algorithm. This is to make sure that an algorithm does not stay with priority lower than its original one in case it is not triggered for a long time. 
   The following is an example of the application of the inventive method for management and priority handling of the RRM algorithms. 
   Example: Assign priorities of the RRM algorithms as follows. This is the original priority of the algorithms under a normal situation. Note that algorithms within the same priority level have the same priority parameters, for example, the thresholds, the filtering of a measurement, the “n” out of “m” measurements that trigger the algorithm. 
   
     
       
         
             
           
             
               TABLE 1 
             
           
          
             
                 
             
             
               Priority of C-RNC RRM Algorithms 
             
          
         
         
             
             
             
          
             
                 
               Priority Level 
               Algorithms in C-RNC 
             
             
                 
                 
             
             
                 
               P 3  (highest) 
               SCC Escape, LM Escape 
             
             
                 
               P 2  (medium) 
               SCC Rate Control 
             
             
                 
               P 1  (lowest) 
               F-DCA Background 
             
             
                 
                 
             
          
         
       
     
   
     FIGS. 1 and 2  illustrate flowcharts of the operation using the guidelines for priority increase and decrease as set forth above. It is to be noted that the decision to increase or decrease is associated with the point (A) in the diagrams, which are separated for clarity. The steps in the two flowcharts are self-explanatory. Two scenarios are addressed in the following description. 
   Scenario 1: 
   SCC Escape and SCC Rate Control work on a cell-basis. SCC Escape algorithm may be given a higher priority since it is designed to solve current problems (interference, power). SCC Rate Control may be given a lower priority since it is designed to take proactive action to avoid cell congestion. 
   Define that at priority level 3, SCC Escape algorithm is triggered whenever it receives a bad measurement, and the measurement may be reported every 500 ms, for example. At priority level 2, SCC Rate Control algorithm, may be triggered every 3 seconds, for example. 
   If the SCC Escape algorithm cannot solve the problem after it is triggered once (here it is assumed that F is 1), its priority is decreased to 1, and it is assumed that it will be triggered 8 out of 10 measurements. So it may be triggered at least every 5 seconds, for example. This gives the SCC Rate Control algorithm the chance to take action over the SCC Escape algorithm. 
   If after the priority decrease, SCC Escape algorithm and SCC Rate Control algorithm are triggered at the same time, the SCC Rate Control algorithm is given higher priority to run since its priority level is higher. 
   If the SCC-Escape algorithm is triggered at priority level 1 (which means that the system may be experiencing a really bad quality), its priority should be increased to 3 so that it will be triggered more frequently. 
   If the SCC-Escape algorithm is not triggered for a period of time T (it means the system recovers after other algorithms take action), its priority should be increased back to 3. 
   Scenario 2: 
   F-DCA background is designed to equalize the load of the timeslots and optimize system performance. It is not desirable to run the system when it is overloaded. By dynamically decreasing the priority of the F-DCA background (which may go below 0−), its chances of running reduce, so that other higher priority algorithms will have a chance to operate on the resources. 
   The foregoing is a description of a preferred embodiment and an exemplary application of the invention to the RRM scenario, wherein, an optimal dynamic management of the algorithms, e.g., SCC Escape, LM Escape, SCC Rate Control, and F-DCA Background algorithms, achieves an optimal efficiency. 
   Even though the example hereinabove makes references to RRM algorithms, it is to be understood that the inventive concept of dynamic management of system-algorithms is applicable to other scenarios as well.