Picking an optimal channel for an access point in a wireless network

Information

  • Patent Grant
  • 8238298
  • Patent Number
    8,238,298
  • Date Filed
    Monday, September 15, 2008
    16 years ago
  • Date Issued
    Tuesday, August 7, 2012
    12 years ago
Abstract
A novel technique involves evaluating a real-time environment of a channel based on a nonlinear function of the number of neighbor radios and channel utilization requirements. The technique can be used to pick a channel for an AP that is added to a wireless network or to tune a channel for an existing AP. The technique can be applied to, for example, a relatively new wideband option in the 802.11n standard.
Description
BACKGROUND

Auto-RF tuning allows wireless controller systems to automatically assign a channel number and/or power level for access point (AP) radios. This is useful in deployments where no network planning is desired and customers wish to have their controller system automatically start working without any configuration done for AP radio channel numbers and power values. A main functionality of auto-RF is dynamic channel assignment, to detect and adapt to changes in RF environments in a dynamic and intelligent fashion. Improving auto-RF is a topic of ongoing research.


SUMMARY

A novel technique for picking a channel for an access point (AP) in a wireless network involves evaluating a real-time environment of a channel based on a nonlinear function of the number of neighbor radios and channel utilization requirements. The technique can be used to pick a channel for an AP that is added to a wireless network or to tune a channel for an existing AP. The technique can be applied to, for example, a relatively new wideband option in the 802.11n standard.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 depicts an example of a system for picking a channel for an access point (AP) in a wireless network.



FIG. 2 depicts a flowchart of an example of a method for picking a channel for an AP on a wireless network.



FIG. 3 depicts an example of a flowchart of a method for calculating a channel utilization value.



FIG. 4 depicts an example of a flowchart of a method for calculating a wideband channel utilization value.



FIG. 5 depicts an example of a flowchart of a method for picking a channel to optimize throughput for a wireless network.



FIG. 6 depicts a conceptual diagram of an example of a process for determining whether to switch channels when auto-tuning.



FIG. 7 depicts an example of a system capable of performing techniques described in this paper.





DETAILED DESCRIPTION

In the following description, several specific details are presented to provide a thorough understanding. One skilled in the relevant art will recognize, however, that the concepts and techniques disclosed herein can be practiced without one or more of the specific details, or in combination with other components, etc. In other instances, well-known implementations or operations are not shown or described in detail to avoid obscuring aspects of various examples disclosed herein.



FIG. 1 depicts an example of a system 100 for picking a channel for an access point (AP) in a wireless network. FIG. 1 includes APs 102-1 to 102-N (referred to collectively as APs 102), controllers 104-1 to 104-N (referred to collectively as controllers 104), a wireless network environment monitoring engine (WNEM engine) 106, a stations database 108, and a wideband channel selection (WCS) engine 110. Advantageously, the system 100 can be used to allocate a relatively under-utilized channel to an AP (e.g., the AP 102-N) when the AP is added to the wireless network. The system 100 can be used to auto-tune any or all of the APs 102 while the system is operational. The system 100 can be used to allow intelligent switching from narrowband to wideband when a station (not shown) enters an area with wideband.


In the example of FIG. 1, the APs 102 can include wireless access points (APs), mesh points, mesh point portals, mesh APs, mesh stations, client devices, or other known or convenient devices for acting as a wireless network access location. The APs 102 typically include at least one radio and in other respects can be implemented as hardware, firmware, software implemented in a computer-readable medium and executed by a processor, or a combination thereof. The APs 102 are stations that can establish a wireless connection with other stations. Stations can include any applicable computing device capable of wireless communication, for example a notebook computer, a wireless phone, or a personal digital assistant (PDA).


Computer-readable media include all applicable known or convenient storage media that a computer can read. As used herein, computer-readable medium is intended to encompass all statutory computer-readable media, and explicitly exclude all non-statutory computer-readable media. Currently, statutory requirements for computer-readable media exclude signals having the software embodied thereon, and include memory (including registers, cache, RAM, and non-volatile storage) of a general-purpose or special-purpose computer.


A wireless network 103 typically defines the range at which the APs 102 can operate. Stations that associate with one of the APs 102 can be referred to as “on” the wireless network. It is possible to extend the range of the wireless network using untethered APs or equivalent technology. For illustrative purposes, these technologies are largely ignored in this paper because an understanding of such technologies is unnecessary for an understanding of the teachings herein. Similarly, overlapping and ad hoc wireless networks are largely ignored in this paper because an understanding of such concepts is unnecessary for an understanding of the teachings herein.


The wireless network 103 can be coupled to another network (not shown). An example of another network may be any type of communication network, such as, but not limited to, the Internet or an infrastructure network. The term “Internet” as used herein refers to a network of networks which uses certain protocols, such as TCP/IP, and possibly other protocols, such as the hypertext transfer protocol (HTTP), for hypertext markup language (HTML) documents that make up the World Wide Web (the web).


In the example of FIG. 1, the controllers 104 can be implemented as hardware, firmware, software implemented in a computer-readable medium and executed by a processor, or a combination thereof. The controllers 104 can be distinct physical or logical devices, or some or all of the functionality of the various controllers 104 can be combined on the same physical device, and/or have shared logic. For illustrative convenience, each of the APs 102 is coupled to an associated controller 104. For example, the AP 102-1 is coupled to the controller 104-1.


The controllers 104 may or may not be “on” one or more of the APs 102. APs that have the functionality of a controller are sometimes referred to as “smart APs”, though in some cases smart APs may have a subset of the controller functionality, and still operate in coordination with an external controller.


In the example of FIG. 1, the WNEM engine 106 can be implemented as hardware, firmware, software implemented in a computer-readable medium and executed by a processor, or a combination thereof. The WNEM engine 106 is coupled to the APs 102, and can be implemented on a wired device, such as a server, or distributed across various system components. For illustrative convenience, it is assumed that the WNEM engine 106 “listens to” the wireless network associated with the APs 102, and therefore includes wireless access to the wireless network. However, it should be understood that in an alternative description where the WNEM engine 106 is characterized as having no direct wireless access, the WNEM engine 106 can be forwarded data from, for example, the APs 102. The WNEM engine 106 monitors the wireless network. In certain implementations and/or cases, characteristics of the wireless network associated with channel utilization are most relevant.


In the example of FIG. 1, the stations database 108 is coupled to the WNEM engine 106. The stations database 108 can be implemented as hardware, firmware, software implemented in a computer-readable medium and executed by a processor, or a combination thereof. The stations database 108 stores data associated with stations on the wireless network. In certain implementations and/or cases, data associated with neighboring APs is of particular relevance.


The term “database,” as used in this paper, is intended to have the broadest possible reasonable meaning. Thus, the database includes any data storage that allows meaningful access to the data. Examples of databases include conventional commercial databases, as well as comma-delimited data files (or other equivalently delimited files), practically any data structure (e.g., objects, tables, arrays, etc.), and any other applicable structure that facilitates convenient access to data. For illustrative convenience, databases are also assumed to have the appropriate database interfaces, if needed.


In the example of FIG. 1, the WCS engine 110 is coupled to the stations database 108. The WCS engine 110 can be implemented as hardware, firmware, software implemented in a computer-readable medium and executed by a processor, or a combination thereof. The WCS engine 110 uses data from the stations database 108 to intelligently select channels for one or more of the APs 102. The WCS engine 110 can select a channel for an AP specifically, or select channels for multiple APs as part of a global tuning configuration. In alternative embodiments, the WCS engine 110 could be distributed across the APs 102 and/or controllers 104, or implemented, in whole or in part, in the WNEM engine 106.


In the example of FIG. 1, in operation, the WNEM engine 106 monitors the APs 102-1 and 102-2 (it may monitor additional APs, but this is not necessary for the example described here). The WNEM engine 106 stores data associated with the APs 102-1, 102-2, which can include data associated with other stations within range of the APs 102-1, 102-2, in the stations database 108. The WCS engine 110 uses data from the stations database 108 to determine an optimal channel for the AP 102-N. The controller 104-N commands the AP 102-N to use the optimal channel. It may be noted that the phrase “picking a channel” as used in this paper includes picking a channel for an AP that is newly added to the wireless network (or newly considered for whatever reason) and includes tuning a channel for an AP that is already on the wireless network.


Advantageously, a utility function that grows nonlinearly by the number of neighbor APs can be used to evaluate and/or predict channel conditions. The more neighbor APs that exist, the higher channel usage on average that can be anticipated. Typically it would be desirable to tune away from the higher channel usage when lower channel capacity is available to a target AP. Past channel utilization characteristics can also be considered. The total number of neighbor APs is a prediction for the future channel utilization, while the past values tell the historic or current channel usage behaviors. A mix of using both values can provide a more comprehensive channel evaluation than using only one or the other.



FIG. 2 depicts a flowchart 200 of an example of a method for picking a channel for an AP on a wireless network. The method is organized as a sequence of modules in the flowchart 200. However, it should be understood that these, and modules associated with other methods described herein, may be reordered for parallel execution or into different sequences of modules.


In the example of FIG. 2, the flowchart 200 starts at module 202 with providing a station database associated with a wireless network. The station database may be similar to the station database 108 (FIG. 1), or may be dissimilar. Typically, providing the station database includes monitoring the wireless network to obtain an up-to-date station database, but providing the station database could also or instead include historic data associated with the wireless network.


In the example of FIG. 2, the flowchart 200 continues to module 204 with determining a channel load indicator for each available channel. A channel load indicator is a known or convenient value that is indicative of channel utilization. In general, it might be more desirable to pick for an AP a channel that has low channel utilization. For convenience in this paper, it is often assumed that a channel load indicator that has a “low” value is associated with a channel having low channel utilization. Examples of how to determine a channel load indicator are described later with reference to FIGS. 3 and 4.


In the example of FIG. 2, the flowchart 200 continues to module 206 with picking a channel to optimize throughput for the wireless network using the channel load indicator associated with at least one available channel. In practice, it may or may not be desirable to use the channel load indicators associated with each available channel. However, there may be a policy reason for considering only a subset (or one) of the possible channels. It should be noted that an algorithm for determining channel load indicators for each available channel could stop upon finding a channel load indicator associated with a free or relatively free channel. For the purposes of this example, it is assumed that in such a case the channel load indicator of the free or relatively free value is 0 and all other channel load indicators are 1. In this way, each channel has an associated channel load indicator. Examples of how to pick a channel to optimize throughput for the wireless network are described later with reference to FIG. 5.



FIG. 3 depicts an example of a flowchart 300 of a method for calculating a channel utilization value. In the example of FIG. 3 the flowchart 300 starts at module 302 with selecting a channel. The intention when selecting the channel is to eventually cycle through each channel available to an AP to find the optimal channel for the AP. What is meant be “each channel” is each channel that is considered. This may be a subset of all channels. For example, policies may prohibit the use of certain channels for certain data types, or the algorithm might search for a relatively open channel and stop when one is found (which means “each channel” refers only to those channels that were considered before the algorithm stopped). For illustrative simplicity in this example, it is assumed that a channel is selected on a per-AP basis, rather than by way of a global tuning algorithm.


In the example of FIG. 3, the flowchart 300 continues to module 304 with determining a channel loading indicator for a neighboring AP. One example of a convenient channel loading indicator is a relative signal strength indicator (RSSI). Although the RSSI is a convenient characteristic to measure, due to its ubiquity in wireless networks, any applicable known or convenient characteristic could be used. For example, the channel loading indicator could be associated with a signal-to-noise ratio (SNR). Another example might be to calculate from a noise floor associated with an AP. Any applicable known or convenient technique can be used so long as the technique has at least some correlation with channel loading. What is meant by “neighboring AP” is an AP that is within range of an AP for which a channel is being picked. To be within range of the AP, neighboring APs must be detectable.


In the example of FIG. 3, the flowchart 300 continues to decision point 306 where it is determined whether there is another neighboring AP. If it is determined that there is another neighboring AP (306-Y), then the flowchart 300 returns to module 304 and continues as described previously. If, on the other hand, it is determined that there are no more neighboring APs (306-N), then the flowchart 300 continues to module 308 where functions of the channel loading indicators are combined to obtain a channel load metric for the currently considered channel.


The summation symbol, Σ, is used in this paper for illustrative simplicity. The channel loading indicators can be combined in any applicable known or convenient manner so long as the result is a meaningful channel load metric, including values from which a meaningful channel loading metric can be derived.


There are several options for the function, f( ). Some good candidates for f( ) include but are not limited to log_M(N) or (N)^{1/M}, e.g., log10( ) or sqrt( ). The good characteristics of these functions are that they give more weight to the same number increment when N is small. This is more realistic, where having one more neighbor when N=4 apparently has more impact than having one more neighbor when N=30. Here are three specific examples:


1) utilization index=50*log10(N)+U, where U is a channel utilization value;


2) utilization index=20*log2(N+1)+U;


3) utilization index=10*sqrt(N)+U.


With example 1, N=1 would anticipate a 50% channel time, while N=100 would anticipate a 100%. This might be a good choice since N=100 is rare to see in some practical implementations.


With example 2, N=1 would anticipate a 20% channel time, while N=31 would anticipate a 100%. N=31 might be too small to anticipate a 100% in some practical implementations.


With example 3, N=1 would anticipate a 10% channel time, N=4 would be 20%, N=25 would be 50%, while N=100 would anticipate a 100%.


In general, it may be desirable to consider computing costs when choosing a function, f( ). In this respect, sqrt( ) might be more preferable than using a logarithm. Also, it may be good to choose an f( ) with parabola fitting well with a real scenario.


N can be replaced by giving weight to neighbors by their channel loading indicator. E.g., N=Σ(f(RSSI)) or N=Σ(f(SNR)), where f( ) includes a weighting functionality. Also, a noise floor can be put as a factor with an equation such as index=u*f(N+c)+U+f(NF).


It may be useful for the function of the channel loading indicator to provide results that do not change the order of the channel loading indicators considered. For example, if the channel loading indicator is RSSI, RSSIx>RSSIy→f(RSSIx)>f(RSSIy). However, while useful for logical simplicity, this is not, strictly speaking, a requirement. It should further be noted that the function could be an identity function. That is, the actual value of the channel loading indicators could be combined.


It should be noted that an AP on a second channel that is right next to a first channel could interfere with throughput of an AP using the first channel. Normally, the signal power spectrum is degraded by about 30 dB when it penetrates into a neighboring channel. If a signal's RSSI is strong enough (say >−60 dBm), it is likely to reduce the neighbor channel's throughput. So, rather than simply sum the functions of RSSI values to obtain a channel load metric, it may be desirable to use the following formula: channel load metric=Σi f(RSSIi)+Σj f(RSSIj−A), where j refers to the jth AP seen on the neighbor channel and A represents the adjacent channel rejection level, e.g. 30 dB.


In the example of FIG. 3, the flowchart 300 continues to decision point 310 where it is determined whether there are more channels available to the AP. If it is determined that there are more channels available to the AP (310-Y), then the flowchart 300 returns to module 302 and continues as described previously. If, on the other hand, it is determined that there are no more channels available to the AP (310-N), then the flowchart 300 continues to module 312 where an optimal channel is chosen using the channel load metrics.



FIG. 4 depicts an example of a flowchart 400 of a method for calculating a wideband channel utilization value. In the example of FIG. 4 the flowchart 400 starts at module 402 with selecting a narrowband channel. For the purposes of this paper, a narrowband channel is the smallest sub-band of a band, as defined in a relevant wireless standard. For the purposes of this paper, a wideband channel encompasses multiple narrowband channels. While it is possible that a wideband channel could encompass a narrowband channel plus a fraction more, most well-known standards have relatively constant narrowband channels and wideband channels that include an integer number of narrowband channels. It may be noted, however, that some bands have one or more “extra” narrowband channels. For example, a wideband channel may include two narrowband channels, but the band in question might have an odd number of narrowband channels. In this paper, the narrowband that is not part of a wideband is referred to as an edge band.


In the example of FIG. 4, the flowchart 400 continues to module 404 with determining a channel loading indicator for a neighboring AP.


In the example of FIG. 4, the flowchart 400 continues to decision point 406 where it is determined whether there is another neighboring AP. If it is determined that there is another neighboring AP (406-Y), then the flowchart 400 returns to module 404 and continues as described previously. If, on the other hand, it is determined that there are no more neighboring APs (406-N), then the flowchart 400 continues to module 408 where functions of the channel loading indicators are combined to obtain a narrowband channel load metric for the currently considered channel.


Calculating a narrowband channel loading metric is optional in the sense that the purpose of the example of FIG. 4 is to calculate a wideband channel load metric. However, one way to calculate a wideband channel load metric is by taking a function of constituent narrowband channel loading metrics. Depending on the implementation and/or configuration of the system, the narrowband channel loading metric can also be calculated for archival purposes or to aid in a determination regarding whether an AP should use a narrowband or wideband channel.


In the example of FIG. 4, the flowchart 400 continues to decision point 410 where it is determined whether the just-considered band is a second sub-band of a wideband channel. For illustrative convenience, it is assumed that a wideband channel covers two narrowband channels. The teaching can be expanded naturally to include wideband channels that cover some other multiple of narrowband channels, or fractions thereof.


If it is determined that the just-considered band is a second sub-band, Ni+1, of a wideband channel (410-Y), then the flowchart 400 continues to module 412 with where a function of the channel utilization values of the previously considered band, Ni, and the just-considered band, Ni+1, are combined to obtain a wideband channel load metric.


If, on the other hand, it is determined that the just-considered band is not a second sub-band of a wideband channel (410-N), or in any case after the wideband channel utilization value is generated, the flowchart 400 continues to decision point 414 where it is determined whether there are more channels available to the AP. If it is determined that there are more channels available to the AP (414-Y), then the flowchart 400 returns to module 402 and continues as described previously. If, on the other hand, it is determined that there are no more channels available to the AP (414-N), then the flowchart 400 continues to module 416 where an optimal channel is chosen using the wideband channel load metrics. In some implementations and/or configurations the optimal channel may only be a wideband channel. In other implementations and/or configurations, the optimal channel may be either a narrowband channel or a wideband channel. In this case, presumably the narrowband channel load metrics are also used to choose an optimal channel.



FIG. 5 depicts an example of a flowchart 500 of a method for picking a channel to optimize throughput for a wireless network. Picking a channel in wireless networks is made more difficult by the introduction of both narrowband and wideband channels. The IEEE 802.11n system with wideband is coming so there will be challenges accommodating wideband and narrowband (e.g., conventional 20 MHz band) APs. Under the assumption that primary channel overlap with a secondary channel is discouraged in 40 MHz BSS, a higher weight (e.g., double) can be assigned to the secondary channel of neighbors when calculating a channel utility index. Using a formula similar to that described with reference to FIG. 3 to determine a channel load metric, the following formula is useful: C=N1+w*N2. N1 refers to the number of neighbors whose primary channel is the same as the evaluated channel and N2 refers to the number of neighbors whose secondary channel is the same as the evaluated channel. C can be used by any channel evaluation algorithm, in the same way as the number of neighbors is used in evaluating 20 MHz channels.


In the example of FIG. 5, the flowchart 500 starts at module 502 with obtaining narrowband channel load metrics and wideband channel load metrics. These metrics can be obtained in a manner similar to that described with reference to FIGS. 3 and 4, or in some other applicable known or convenient manner.


In the example of FIG. 5, the flowchart 500 continues to module 504 with determining the best narrowband channel load metric. While the values of the narrowband channel load metrics are implementation-specific, a best value is typically a lowest number, which corresponds to a lowest channel utilization. Of course, it is trivial to make the best value the highest number (e.g., by the equivalent of multiplying a number by −1). It should be noted that the best narrowband channel load metric is not necessarily associated with the narrowband channel having the lowest channel utilization, but, assuming there are no other policies or rules dictating otherwise, the best narrowband channel load metric would be associated with the preferably (but not guaranteed) lowest channel utilization. In this paper, this preference is indicated by referring to the best channel utilization as a best predicted channel utilization.


In the example of FIG. 5, the flowchart 500 continues to module 506 with determining the best wideband channel load metric. Again, although the best value is implementation-specific; a simple way to determine the best wideband channel load metric is by selecting the lowest value.


In the example of FIG. 5, the flowchart 500 continues to decision point 508 where it is determined whether the best wideband channel load metric, W, is greater than the best narrowband channel load metric times a weight, wN. How to decide the value of the weight ‘w’ is discussed later. For the purposes of this example, it is sufficient to note that the system can be configured to encourage or discourage wideband channel use over narrowband channel use by increasing or decreasing the weight multiple of the narrowband channel. If it is determined that the best wideband channel load metric is greater than the weighted best narrowband channel load metric (508-Y), then the flowchart 500 continues to module 510 where the channel associated with the best narrowband channel load metric is selected. If, on the other hand, it is determined that the best wideband channel load metric is not greater than the weighted best narrowband channel load metric (508-N), then the flowchart 500 continues to module 512 where the channel associated with the best wideband channel load metric is selected.


It should be noted that the best narrowband channel utilization value could be associated with an edge narrowband channel that is not a part of any wideband channel. Depending upon the implementation of a system that has narrowband channels that are not part of any wideband channel, such channels could be made unavailable, favored for narrowband traffic, or treated as any other narrowband channel.


When comparing a 40 MHz channel to a 20 MHz channel, an example of a criterion could be: if (f40(N40)>w*f20(N20)) then choose the 20 MHz channel, where f is defined as the channel utilization expectation, N as a parameter that might be decided using any previously described, known, or convenient technique, and was a weight factor.


There could be a number of reasons to choose various values for w. For example, if radios are doing MPDU aggregation, throughput is roughly twice as high on 40 MHz channels than on 20 MHz channels. So, it may be advantageous to set w close to 2. For radios not supporting aggregation, the throughputs are quite close for 40 MHz (drop down 75%) or 20 MHz channels (drop down almost half). In this situation, it may be advantageous to set w close to 1.2.


Another possible way to choose a value for w is to consider actual values and pick a number that makes sense given the throughput characteristics.


Another possible way to choose a value for w is to consider that voice only needs a narrow band. It may be advantageous to choose a large value of w for channels with a high percentage of voice traffic (e.g., if a majority of traffic is expected to be voice on a given channel). Similarly, a system could be configured such that a particular AP serves voice, while another AP serves data. In such cases, the various APs may have different associated values of w.


For APs that are already on the wireless network, it may be desirable to require that the channel load metric of the predicted optimal channel is less than the channel load metric of the AP's current channel by more than a tuning threshold, T. I.e., Ccurrent−Cnew>T, assuming the lower the value of C, the more (predicted) optimal the channel. The tuning threshold is useful to reduce the likelihood that an AP will switch back and forth between channels as estimated channel usage fluctuates over time.



FIG. 6 depicts a conceptual diagram 600 of an example of a process for determining whether to switch channels when auto-tuning. The diagram 600 includes a plurality of function blocks 602-1 to 602-N (referred to collectively as function blocks 602), an N-to-1 multiplexor 604, an adder 606, and an auto-tuning engine 608.


The function blocks 602 take as input a plurality of channel loading indicators, C, (e.g., one for each relevant neighboring AP on a channel), and output channel loading metrics for their associated channels, which are a combination of the channel loading indicators associated with the channel. The channel loading indicators may be pre-weighted based upon policy- or rules-based considerations.


The N-to-1 multiplexor 604 selects one of the channel loading metrics. For illustrative simplicity, it is assumed that the lowest-value channel loading metric is associated with the lowest (weighted) predicted channel utilization. It is further assumed that the channel with the lowest predicted channel utilization is the most desirable choice for auto-tuning. The output of the N-to-1 multiplexor 604 is, therefore, the lowest channel loading metric output from the function blocks 602. In any case, the term “best” is used in this paper to describe a value that is determined to be the most desirable, whether that value is the lowest, highest, or somewhere in between.


The adder 606 adds together the lowest channel loading metric output from the N-to-1 multiplexor 604 and a tuning threshold. The tuning threshold may be a constant or a variable, and may be set in accordance with policy, practical observations, etc. Any known or convenient algorithm or rule to set the tuning threshold value can be used, keeping in mind the goal is to auto-tune channels such that an AP doesn't switch back and forth between channels relatively frequently, but does switch when channel utilization, throughput, or other traffic characteristics can actually be improved.


The auto-tuning engine 608 takes as inputs the output of the adder 606 and a channel load metric associated with a channel that an AP is currently on. The auto-tuning engine 608 changes to the channel associated with the lowest channel load metric if the lowest channel load metric plus the threshold is lower than the channel load metric associated with the channel that the AP is currently on. The auto-tuning engine 608 does not change channels otherwise. In this way, the AP will not switch to a channel if channel utilization is only nominally (however that is defined by way of setting the tuning threshold value) better.


Due to high computing costs when using nonlinear functions to calculate channel load metric, an alternative is to use an adjustable threshold, instead of a fixed threshold, when deciding whether to change channels. If it is assumed a channel load metric increases linearly as the number of neighbors grows, a threshold can be designed to adjust accordingly (e.g., T=indexcurrent*10%) and only change channels if (indexcurrent−indexnew)>T. This example has a low computing cost. Since channel utilization, U, is not incorporated into the index calculation in this example, this works well for simulating a nonlinear effect on the f( ) function. However, if U is counted, this example may not be ideal because U should not be nonlinear like the portion calculated from the number of neighbors.



FIG. 7 depicts an example of a system 700 capable of performing techniques described in this paper. The system 700 may be a conventional computer system that can be used as a client computer system, such as a wireless client or a workstation, or a server computer system. The system 700 includes a device 702, I/O devices 704, and a display device 706. The device 702 includes a processor 708, a communications interface 710, memory 712, display controller 714, non-volatile storage 716, I/O controller 718, clock 722, and radio 724. The device 702 may be coupled to or include the I/O devices 704 and the display device 706.


The device 702 interfaces to external systems through the communications interface 710, which may include a modem or network interface. It will be appreciated that the communications interface 710 can be considered to be part of the system 700 or a part of the device 702. The communications interface 710 can be an analog modem, ISDN modem or terminal adapter, cable modem, token ring IEEE 802.5 interface, Ethernet/IEEE 802.3 interface, wireless 802.11 interface, satellite transmission interface (e.g. “direct PC”), WiMAX/IEEE 802.16 interface, Bluetooth interface, cellular/mobile phone interface, third generation (3G) mobile phone interface, code division multiple access (CDMA) interface, Evolution-Data Optimized (EVDO) interface, general packet radio service (GPRS) interface, Enhanced GPRS (EDGE/EGPRS), High-Speed Downlink Packet Access (HSPDA) interface, or other interfaces for coupling a computer system to other computer systems.


The processor 708 may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. The memory 712 is coupled to the processor 708 by a bus 720. The memory 712 can be Dynamic Random Access Memory (DRAM) and can also include Static RAM (SRAM). The bus 720 couples the processor 708 to the memory 712, also to the non-volatile storage 716, to the display controller 714, and to the I/O controller 718.


The I/O devices 704 can include a keyboard, disk drives, printers, a scanner, and other input and output devices, including a mouse or other pointing device. The display controller 714 may control in the conventional manner a display on the display device 706, which can be, for example, a cathode ray tube (CRT) or liquid crystal display (LCD). The display controller 714 and the I/O controller 718 can be implemented with conventional well known technology.


The non-volatile storage 716 is often a magnetic hard disk, flash memory, an optical disk, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory 712 during execution of software in the device 702. One of skill in the art will immediately recognize that the terms “machine-readable medium” or “computer-readable medium” includes any type of storage device that is accessible by the processor 708.


Clock 722 can be any kind of oscillating circuit creating an electrical signal with a precise frequency. In a non-limiting example, clock 722 could be a crystal oscillator using the mechanical resonance of vibrating crystal to generate the electrical signal.


The radio 724 can include any combination of electronic components, for example, transistors, resistors and capacitors. The radio is operable to transmit and/or receive signals.


The system 700 is one example of many possible computer systems which have different architectures. For example, personal computers based on an Intel microprocessor often have multiple buses, one of which can be an I/O bus for the peripherals and one that directly connects the processor 708 and the memory 712 (often referred to as a memory bus). The buses are connected together through bridge components that perform any necessary translation due to differing bus protocols.


Network computers are another type of computer system that can be used in conjunction with the teachings provided herein. Network computers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a network connection into the memory 712 for execution by the processor 708. A Web TV system, which is known in the art, is also considered to be a computer system, but it may lack some of the features shown in FIG. 7, such as certain input or output devices. A typical computer system will usually include at least a processor, memory, and a bus coupling the memory to the processor.


In addition, the system 700 is controlled by operating system software which includes a file management system, such as a disk operating system, which is part of the operating system software. One example of operating system software with its associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Wash., and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile storage 716 and causes the processor 708 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing files on the non-volatile storage 716.


Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is Appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.


The present example also relates to apparatus for performing the operations herein. This Apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.


The algorithms and displays presented herein are not inherently related to any particular computer or other Apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized Apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present example is not described with reference to any particular programming language, and various examples may thus be implemented using a variety of programming languages.

Claims
  • 1. A method comprising: selecting, by a device, a first narrowband channel;receiving first one or more channel loading indicators associated with respective one or more neighboring access points (APs) on the first narrowband channel;deriving a first channel load metric from the first one or more channel loading indicators;selecting a second narrowband channel;receiving second one or more channel loading indicators associated with respective one or more neighboring APs on the second narrowband channel;deriving a second channel load metric from the second one or more channel loading indicators;combining the first channel load metric and the second channel load metric to obtain a wideband channel load metric;if the wideband channel load metric is greater than the first channel load metric and the second channel load metric, sending a signal indicative of the wideband channel; andif the first channel load metric is greater than the wideband channel load metric and the second channel load metric, sending a signal indicative of the first narrowband channel.
  • 2. The method of claim 1, wherein the wideband channel load metric is a first wideband channel load metric, further comprising: predicting a lower channel load on a first wideband channel associated with the first wideband channel load metric than on a second wideband channel associated with a second wideband channel load metric; andif the second wideband channel load metric is greater than the first channel load metric and the second channel load metric, picking the first wideband channel for use by an AP.
  • 3. The method of claim 1, wherein the wideband channel load metric is a first wideband channel load metric, further comprising: predicting a lower channel load on a first wideband channel associated with the first wideband channel load metric than on a second wideband channel associated with a second wideband channel load metric; andauto-tuning an AP to the first wideband channel.
  • 4. The method of claim 1, further comprising providing a stations database that includes data associated with APs.
  • 5. The method of claim 1, further comprising providing a stations database that includes data associated with client stations.
  • 6. The method of claim 1, further comprising: obtaining a relative signal strength indicator (RSSI) associated with a first AP;generating a first channel loading indicator of the first one or more channel loading indicators from a function of the RSSI associated with the first AP;obtaining an RSSI associated with a second AP; andgenerating a second channel loading indicator of the second channel loading indicators from a function of the RSSI associated with the second AP.
  • 7. The method of claim 1, further comprising: obtaining a signal-to-noise ratio (SNR) associated with a first AP;generating a first channel loading indicator of the first one or more channel loading indicators from a function of the SNR associated with the first AP;obtaining an SNR associated with a second AP; andgenerating a second channel loading indicator of the second one or more channel loading indicators from a function of the SNR associated with the second AP.
  • 8. The method of claim 1, wherein the wideband channel load metric is a first wideband channel load metric, further comprising: selecting a third narrowband channel;receiving third one or more channel loading indicators associated with respective one or more neighboring access points (APs) on the third narrowband channel;deriving a third channel load metric from the third one or more channel loading indicators;selecting a fourth narrowband channel;receiving fourth one or more channel loading indicators associated with respective one or more neighboring APs on the fourth narrowband channel;deriving a fourth channel load metric from the fourth one or more channel loading indicators; andcombining the third channel load metric and the fourth channel load metric to obtain a second wideband channel load metric.
  • 9. The method of claim 1, further comprising: calculating a first index from a function of each channel loading indicator associated with respective one or more neighboring APs on the first narrowband channel;combining the indices to derive the first channel load metric;calculating a second index from a function of each channel loading indicator associated with respective one or more neighboring APs on the second narrowband channel; andcombining the first index and the second index to derive the second channel load metric.
  • 10. The method of claim 1, further comprising: adding a tuning threshold to the wideband channel load metric;determining that the wideband channel load metric plus the tuning threshold have a lower value than a current channel load metric; andswitching channels for an AP from a channel associated with the current channel load metric to a channel associated with the wideband channel load metric.
  • 11. A system, comprising: a wireless network environment monitoring engine configured to obtain data associated with stations in a wireless network;the wireless network environment monitoring engine configured to store the data in a stations database;a wideband channel selection engine configured to calculate narrowband channel load metrics for narrowband channels available to an access point (AP) based on the data associated with stations in the wireless network;the wideband channel selection engine configured to combine the narrowband channel load metrics to obtain wideband channel load metrics for one or more wideband channels available to the AP;the wideband channel selection engine configured to (1) weight a best narrowband channel load metric from the narrowband channel load metrics to define a weighted best narrowband channel load metric, and (2) determine a best wideband channel load metric from the wideband channel load metrics; andthe wideband channel selection engine configured to select a narrowband channel associated with the best narrowband channel load metric if the best wideband channel load metric is greater than the weighted best narrowband channel load metric.
  • 12. The system of claim 11, wherein: the wideband channel selection engine configured to select a channel associated with the best wideband channel load metric when the weighted best narrowband channel load metric is greater than the best wideband channel load metric.
  • 13. The system of claim 11, wherein: the wideband channel selection engine configured to tune the AP to a channel associated with the best wideband channel load metric when the weighted best narrowband channel load metric is greater than the best wideband channel load metric.
  • 14. The system of claim 11, wherein: the wideband channel selection engine configured to tune the AP to a channel associated with the best narrowband channel load metric when the best wideband channel load metric is greater than the weighted best narrowband channel load metric.
  • 15. The system of claim 11, further comprising: a plurality of function blocks having inputs and an output;an N-to-1 multiplexor coupled to the plurality of function blocks;an adder coupled to the N-to-1 multiplexor;an auto-tuning engine coupled to the adder and the AP;a first function block of the plurality of function blocks configured to receive a channel loading indicator for each relevant neighboring AP on a first channel as inputs and provides a first channel load metric for the first channel as output;a second function block of the plurality of function blocks configured to receive a channel loading indicator for each relevant neighboring AP on a second channel as inputs and provides a second channel load metric for the second channel as output; andthe N-to-1 multiplexor configured to receive at least the first channel load metric and the second channel load metric as inputs and outputs a best channel load metric;the adder configured to combine the best channel load metric and a tuning threshold;the auto-tuning engine configured to: receive the combined best channel load metric and tuning threshold and a current channel load metric associated with the AP; andtune the AP to a channel associated with the best channel load metric when the combined best channel load metric and tuning threshold are indicative of better channel characteristics than the current channel load metric.
  • 16. A method comprising: receiving, by a device, channel loading indicators for a plurality of neighboring access points (APs);computing a function for each of the channel loading indicators to define a channel load metric for each of channel load indicators;combining a plurality of channel load metrics of the channel load metrics for each available channel to obtain a wideband channel load metric;selecting a narrowband channel load metric from the channel load metrics, the narrowband channel load metric associated with a narrowband channel; andsending a signal indicative of the narrowband channel to optimize throughput for a wireless network when a weighted narrowband channel load metric is greater than the wideband channel load metric.
  • 17. The method of claim 16, further including sending a signal indicative of a wideband channel associated with the wideband channel load metric when the narrowband channel load metric is greater than the wideband channel load metric.
CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Patent Application No. 61/190,576, filed Aug. 29, 2008, entitled “Picking an Optimal Channel for an Access Point in a Wireless Network” which is hereby incorporated by reference in its entirety.

US Referenced Citations (588)
Number Name Date Kind
3641433 Mifflin et al. Feb 1972 A
4168400 de Couasnon et al. Sep 1979 A
4176316 DeRosa et al. Nov 1979 A
4247908 Lockhart, Jr. et al. Jan 1981 A
4291401 Bachmann Sep 1981 A
4291409 Weinberg et al. Sep 1981 A
4409470 Shepard et al. Oct 1983 A
4460120 Shepard et al. Jul 1984 A
4475208 Ricketts Oct 1984 A
4494238 Groth, Jr. Jan 1985 A
4500987 Hasegawa Feb 1985 A
4503533 Tobagi et al. Mar 1985 A
4550414 Guinon et al. Oct 1985 A
4562415 McBiles Dec 1985 A
4630264 Wah et al. Dec 1986 A
4635221 Kerr Jan 1987 A
4639914 Winters Jan 1987 A
4644523 Horwitz Feb 1987 A
4672658 Kavehrad et al. Jun 1987 A
4673805 Shepard et al. Jun 1987 A
4707839 Andren et al. Nov 1987 A
4730340 Frazier, Jr. Mar 1988 A
4736095 Shepard et al. Apr 1988 A
4740792 Sagey et al. Apr 1988 A
4758717 Shepard et al. Jul 1988 A
4760586 Takeda Jul 1988 A
4789983 Acampora et al. Dec 1988 A
4829540 Waggener, Sr. et al. May 1989 A
4850009 Zook et al. Jul 1989 A
4872182 McRae et al. Oct 1989 A
4894842 Broekhoven et al. Jan 1990 A
4901307 Gilhousen et al. Feb 1990 A
4933952 Albrieux et al. Jun 1990 A
4933953 Yagi Jun 1990 A
4955053 Siegmund Sep 1990 A
4995053 Simpson et al. Feb 1991 A
5008899 Yamamoto Apr 1991 A
5027343 Chan et al. Jun 1991 A
5029183 Tymes Jul 1991 A
5103459 Gilhousen et al. Apr 1992 A
5103461 Tymes Apr 1992 A
5109390 Gilhousen et al. Apr 1992 A
5119502 Kallin et al. Jun 1992 A
5142550 Tymes Aug 1992 A
5151919 Dent Sep 1992 A
5157687 Tymes Oct 1992 A
5187575 Lim Feb 1993 A
5231633 Hluchyj et al. Jul 1993 A
5280498 Tymes et al. Jan 1994 A
5285494 Sprecher et al. Feb 1994 A
5329531 Diepstraten et al. Jul 1994 A
5339316 Diepstraten Aug 1994 A
5371783 Rose et al. Dec 1994 A
5418812 Reyes et al. May 1995 A
5444851 Woest Aug 1995 A
5448569 Huang et al. Sep 1995 A
5450615 Fortune et al. Sep 1995 A
5465401 Thompson Nov 1995 A
5479441 Tymes et al. Dec 1995 A
5483676 Mahany et al. Jan 1996 A
5488569 Kaplan et al. Jan 1996 A
5491644 Pickering et al. Feb 1996 A
5517495 Lund et al. May 1996 A
5519762 Bartlett May 1996 A
5528621 Heiman et al. Jun 1996 A
5542100 Hatakeyama Jul 1996 A
5546389 Wippenbeck et al. Aug 1996 A
5561841 Markus Oct 1996 A
5568513 Croft et al. Oct 1996 A
5570366 Baker et al. Oct 1996 A
5584048 Wieczorek Dec 1996 A
5598532 Liron Jan 1997 A
5630207 Gitlin et al. May 1997 A
5640414 Blakeney, II et al. Jun 1997 A
5649289 Wang et al. Jul 1997 A
5668803 Tymes et al. Sep 1997 A
5677954 Hirata et al. Oct 1997 A
5706428 Boer et al. Jan 1998 A
5715304 Nishida et al. Feb 1998 A
5729542 Dupont Mar 1998 A
5734699 Lu et al. Mar 1998 A
5742592 Scholefield et al. Apr 1998 A
5774460 Schiffel et al. Jun 1998 A
5793303 Koga Aug 1998 A
5794128 Brockel et al. Aug 1998 A
5812589 Sealander et al. Sep 1998 A
5815811 Pinard et al. Sep 1998 A
5828653 Goss Oct 1998 A
5828960 Tang et al. Oct 1998 A
5835061 Stewart Nov 1998 A
5838907 Hansen Nov 1998 A
5844900 Hong et al. Dec 1998 A
5852722 Hamilton Dec 1998 A
5862475 Zicker et al. Jan 1999 A
5872968 Knox et al. Feb 1999 A
5875179 Tikalsky Feb 1999 A
5887259 Zicker et al. Mar 1999 A
5896561 Schrader et al. Apr 1999 A
5909686 Muller et al. Jun 1999 A
5915214 Reece et al. Jun 1999 A
5920821 Seazholtz et al. Jul 1999 A
5933607 Tate et al. Aug 1999 A
5938721 Dussell et al. Aug 1999 A
5949988 Feisullin et al. Sep 1999 A
5953669 Stratis et al. Sep 1999 A
5960335 Umemoto et al. Sep 1999 A
5969678 Stewart Oct 1999 A
5970066 Lowry et al. Oct 1999 A
5977913 Christ Nov 1999 A
5980078 Krivoshein et al. Nov 1999 A
5982779 Krishnakumar et al. Nov 1999 A
5987062 Engwer et al. Nov 1999 A
5987328 Ephremides et al. Nov 1999 A
5991817 Rowett et al. Nov 1999 A
5999813 Lu et al. Dec 1999 A
6005853 Wang et al. Dec 1999 A
6011784 Brown et al. Jan 2000 A
6012088 Li et al. Jan 2000 A
6029196 Lenz Feb 2000 A
6041240 McCarthy et al. Mar 2000 A
6041358 Huang et al. Mar 2000 A
6070243 See et al. May 2000 A
6073075 Kondou et al. Jun 2000 A
6073152 De Vries Jun 2000 A
6078568 Wright et al. Jun 2000 A
6088591 Trompower et al. Jul 2000 A
6101539 Kennelly et al. Aug 2000 A
6115390 Chuah Sep 2000 A
6118771 Tajika et al. Sep 2000 A
6119009 Baranger et al. Sep 2000 A
6122520 Want et al. Sep 2000 A
6144638 Obenhuber et al. Nov 2000 A
6148199 Hoffman et al. Nov 2000 A
6154776 Martin Nov 2000 A
6160804 Ahmed et al. Dec 2000 A
6177905 Welch Jan 2001 B1
6188649 Birukawa et al. Feb 2001 B1
6199032 Anderson Mar 2001 B1
6208629 Jaszewski et al. Mar 2001 B1
6208841 Wallace et al. Mar 2001 B1
6212395 Lu et al. Apr 2001 B1
6218930 Katzenberg et al. Apr 2001 B1
6240078 Kuhnel et al. May 2001 B1
6240083 Wright et al. May 2001 B1
6240291 Narasimhan et al. May 2001 B1
6246751 Bergl et al. Jun 2001 B1
6249252 Dupray Jun 2001 B1
6256300 Ahmed et al. Jul 2001 B1
6256334 Adachi Jul 2001 B1
6259405 Stewart et al. Jul 2001 B1
6262988 Vig Jul 2001 B1
6269246 Rao et al. Jul 2001 B1
6285662 Watanabe et al. Sep 2001 B1
6304596 Yamano et al. Oct 2001 B1
6304906 Bhatti et al. Oct 2001 B1
6317599 Rappaport et al. Nov 2001 B1
6326918 Stewart Dec 2001 B1
6336035 Somoza et al. Jan 2002 B1
6336152 Richman et al. Jan 2002 B1
6347091 Wallentin et al. Feb 2002 B1
6356758 Almeida et al. Mar 2002 B1
6393290 Ufongene May 2002 B1
6397040 Titmuss et al. May 2002 B1
6404772 Beach et al. Jun 2002 B1
6421714 Rai et al. Jul 2002 B1
6429879 Sturgeon et al. Aug 2002 B1
6446206 Feldbaum Sep 2002 B1
6456239 Werb et al. Sep 2002 B1
6470025 Wilson et al. Oct 2002 B1
6473449 Cafarella et al. Oct 2002 B1
6493679 Rappaport et al. Dec 2002 B1
6496290 Lee Dec 2002 B1
6512916 Forbes, Jr. Jan 2003 B1
6526275 Calvert Feb 2003 B1
6535732 McIntosh et al. Mar 2003 B1
6564380 Murphy May 2003 B1
6567146 Hirakata et al. May 2003 B2
6567416 Chuah May 2003 B1
6574240 Tzeng Jun 2003 B1
6580700 Pinard et al. Jun 2003 B1
6587680 Ala-Laurila et al. Jul 2003 B1
6587835 Treyz et al. Jul 2003 B1
6603970 Huelamo Platas et al. Aug 2003 B1
6614787 Jain et al. Sep 2003 B1
6615276 Mastrianni et al. Sep 2003 B1
6624762 End, III Sep 2003 B1
6625454 Rappaport et al. Sep 2003 B1
6631267 Clarkson et al. Oct 2003 B1
6650912 Chen et al. Nov 2003 B2
6658389 Alpdemir Dec 2003 B1
6659947 Carter et al. Dec 2003 B1
6661787 O'Connell et al. Dec 2003 B1
6674403 Gray et al. Jan 2004 B2
6677894 Sheynblat et al. Jan 2004 B2
6678516 Nordman et al. Jan 2004 B2
6678802 Hickson Jan 2004 B2
6687498 McKenna et al. Feb 2004 B2
6697415 Mahany Feb 2004 B1
6721334 Ketcham Apr 2004 B1
6725260 Philyaw Apr 2004 B1
6738629 McCormick et al. May 2004 B1
6747961 Ahmed et al. Jun 2004 B1
6756940 Oh et al. Jun 2004 B2
6760324 Scott et al. Jul 2004 B1
6785275 Boivie et al. Aug 2004 B1
6798788 Viswanath et al. Sep 2004 B1
6801782 McCrady et al. Oct 2004 B2
6826399 Hoffman et al. Nov 2004 B1
6839338 Amara et al. Jan 2005 B1
6839348 Tang et al. Jan 2005 B2
6839388 Vaidyanathan Jan 2005 B2
6847620 Meier Jan 2005 B1
6847892 Zhou et al. Jan 2005 B2
6856800 Henry et al. Feb 2005 B1
6879812 Agrawal et al. Apr 2005 B2
6901439 Bonasia et al. May 2005 B1
6917688 Yu et al. Jul 2005 B2
6934260 Kanuri Aug 2005 B1
6937566 Forslow Aug 2005 B1
6938079 Anderson et al. Aug 2005 B1
6957067 Iyer et al. Oct 2005 B1
6973622 Rappaport et al. Dec 2005 B1
6978301 Tindal Dec 2005 B2
6980533 Abraham et al. Dec 2005 B1
6985469 Leung Jan 2006 B2
6993683 Bhat et al. Jan 2006 B2
6996630 Masaki et al. Feb 2006 B1
7013157 Norman et al. Mar 2006 B1
7020438 Sinivaara et al. Mar 2006 B2
7020773 Otway et al. Mar 2006 B1
7024199 Massie et al. Apr 2006 B1
7024394 Ashour et al. Apr 2006 B1
7027773 McMillin Apr 2006 B1
7031705 Grootwassink Apr 2006 B2
7035220 Simcoe Apr 2006 B1
7039037 Wang et al. May 2006 B2
7058414 Rofheart et al. Jun 2006 B1
7062566 Amara et al. Jun 2006 B2
7068999 Ballai Jun 2006 B2
7079537 Kanuri et al. Jul 2006 B1
7089322 Stallmann Aug 2006 B1
7092529 Yu et al. Aug 2006 B2
7110756 Diener Sep 2006 B2
7116979 Backes et al. Oct 2006 B2
7126913 Patel et al. Oct 2006 B1
7134012 Doyle et al. Nov 2006 B2
7139829 Wenzel et al. Nov 2006 B2
7142867 Gandhi et al. Nov 2006 B1
7146166 Backes et al. Dec 2006 B2
7155236 Chen et al. Dec 2006 B2
7155518 Forslow Dec 2006 B2
7158777 Lee et al. Jan 2007 B2
7159016 Baker Jan 2007 B2
7221927 Kolar et al. May 2007 B2
7224970 Smith et al. May 2007 B2
7239862 Clare et al. Jul 2007 B1
7246243 Uchida Jul 2007 B2
7263366 Miyashita Aug 2007 B2
7274730 Nakabayashi Sep 2007 B2
7280495 Zweig et al. Oct 2007 B1
7290051 Dobric et al. Oct 2007 B2
7293136 More et al. Nov 2007 B1
7310664 Merchant et al. Dec 2007 B1
7317914 Adya et al. Jan 2008 B2
7320070 Baum Jan 2008 B2
7324468 Fischer Jan 2008 B2
7324487 Saito Jan 2008 B2
7324489 Iyer et al. Jan 2008 B1
7349412 Jones et al. Mar 2008 B1
7350077 Meier et al. Mar 2008 B2
7359676 Hrastar Apr 2008 B2
7370362 Olson et al. May 2008 B2
7376080 Riddle et al. May 2008 B1
7379423 Caves et al. May 2008 B1
7382756 Barber et al. Jun 2008 B2
7417953 Hicks et al. Aug 2008 B2
7421248 Laux et al. Sep 2008 B1
7421487 Peterson et al. Sep 2008 B1
7440416 Mahany et al. Oct 2008 B2
7443823 Hunkeler et al. Oct 2008 B2
7447502 Buckley Nov 2008 B2
7451316 Halasz et al. Nov 2008 B2
7460855 Barkley et al. Dec 2008 B2
7466678 Cromer et al. Dec 2008 B2
7475130 Silverman Jan 2009 B2
7477894 Sinha Jan 2009 B1
7480264 Duo et al. Jan 2009 B1
7483390 Rover et al. Jan 2009 B2
7489648 Griswold Feb 2009 B2
7493407 Leedom et al. Feb 2009 B2
7505434 Backes Mar 2009 B1
7509096 Palm et al. Mar 2009 B2
7529925 Harkins May 2009 B2
7551574 Peden, II et al. Jun 2009 B1
7551619 Tiwari Jun 2009 B2
7558266 Hu Jul 2009 B2
7570656 Raphaeli et al. Aug 2009 B2
7573859 Taylor Aug 2009 B2
7577453 Matta Aug 2009 B2
7592906 Hanna et al. Sep 2009 B1
7603119 Durig et al. Oct 2009 B1
7636363 Chang et al. Dec 2009 B2
7680501 Sillasto et al. Mar 2010 B2
7693526 Qian et al. Apr 2010 B2
7715432 Bennett May 2010 B2
7716379 Ruan et al. May 2010 B2
7724703 Matta et al. May 2010 B2
7724704 Simons et al. May 2010 B2
7729278 Chari et al. Jun 2010 B2
7733868 Van Zijst Jun 2010 B2
7746897 Stephenson et al. Jun 2010 B2
7788475 Zimmer et al. Aug 2010 B2
7805529 Galluzzo et al. Sep 2010 B2
7817554 Skog et al. Oct 2010 B2
7844298 Riley Nov 2010 B2
7865713 Chesnutt et al. Jan 2011 B2
7873061 Gast et al. Jan 2011 B2
7894852 Hansen Feb 2011 B2
7912982 Murphy Mar 2011 B2
7920548 Lor et al. Apr 2011 B2
7929922 Kubo Apr 2011 B2
7945399 Nosovitsky et al. May 2011 B2
7986940 Lee et al. Jul 2011 B2
8019082 Wiedmann et al. Sep 2011 B1
20010024953 Balogh Sep 2001 A1
20020021701 Lavian et al. Feb 2002 A1
20020052205 Belostotsky et al. May 2002 A1
20020060995 Cervello et al. May 2002 A1
20020062384 Tso May 2002 A1
20020069278 Forslow Jun 2002 A1
20020078361 Giroux et al. Jun 2002 A1
20020080790 Beshai Jun 2002 A1
20020087699 Karagiannis et al. Jul 2002 A1
20020094824 Kennedy et al. Jul 2002 A1
20020095486 Bahl Jul 2002 A1
20020101868 Clear et al. Aug 2002 A1
20020116655 Lew et al. Aug 2002 A1
20020157020 Royer Oct 2002 A1
20020174137 Wolff et al. Nov 2002 A1
20020176437 Busch et al. Nov 2002 A1
20020188756 Weil et al. Dec 2002 A1
20020191572 Weinstein et al. Dec 2002 A1
20020194251 Richter et al. Dec 2002 A1
20030014646 Buddhikot et al. Jan 2003 A1
20030018889 Burnett et al. Jan 2003 A1
20030043073 Gray et al. Mar 2003 A1
20030055959 Sato Mar 2003 A1
20030107590 Levillain et al. Jun 2003 A1
20030120764 Laye et al. Jun 2003 A1
20030133450 Baum Jul 2003 A1
20030134642 Kostic et al. Jul 2003 A1
20030135762 Macaulay Jul 2003 A1
20030156586 Lee et al. Aug 2003 A1
20030174706 Shankar et al. Sep 2003 A1
20030193910 Shoaib et al. Oct 2003 A1
20030204596 Yadav Oct 2003 A1
20030227934 White et al. Dec 2003 A1
20040002343 Brauel et al. Jan 2004 A1
20040003285 Whelan et al. Jan 2004 A1
20040019857 Teig et al. Jan 2004 A1
20040025044 Day Feb 2004 A1
20040029580 Haverinen et al. Feb 2004 A1
20040030777 Reedy et al. Feb 2004 A1
20040038687 Nelson Feb 2004 A1
20040044749 Harkin Mar 2004 A1
20040047320 Eglin Mar 2004 A1
20040053632 Nikkelen et al. Mar 2004 A1
20040054569 Pombo et al. Mar 2004 A1
20040054774 Barber et al. Mar 2004 A1
20040054926 Ocepek et al. Mar 2004 A1
20040062267 Minami et al. Apr 2004 A1
20040064560 Zhang et al. Apr 2004 A1
20040068668 Lor et al. Apr 2004 A1
20040078598 Barber et al. Apr 2004 A1
20040093506 Grawrock et al. May 2004 A1
20040095914 Katsube et al. May 2004 A1
20040095932 Astarabadi et al. May 2004 A1
20040106403 Mori et al. Jun 2004 A1
20040111640 Baum Jun 2004 A1
20040114546 Seshadri et al. Jun 2004 A1
20040119641 Rapeli Jun 2004 A1
20040120370 Lupo Jun 2004 A1
20040143428 Rappaport et al. Jul 2004 A1
20040143755 Whitaker et al. Jul 2004 A1
20040165545 Cook Aug 2004 A1
20040174900 Volpi et al. Sep 2004 A1
20040184475 Meier Sep 2004 A1
20040208570 Reader Oct 2004 A1
20040214572 Thompson et al. Oct 2004 A1
20040221042 Meier Nov 2004 A1
20040230370 Tzamaloukas Nov 2004 A1
20040233234 Chaudhry et al. Nov 2004 A1
20040236702 Fink et al. Nov 2004 A1
20040246937 Duong et al. Dec 2004 A1
20040246962 Kopeikin et al. Dec 2004 A1
20040252656 Shiu et al. Dec 2004 A1
20040255167 Knight Dec 2004 A1
20040259542 Viitamaki et al. Dec 2004 A1
20040259555 Rappaport et al. Dec 2004 A1
20040259575 Perez-Breva et al. Dec 2004 A1
20050015592 Lin Jan 2005 A1
20050021979 Wiedmann et al. Jan 2005 A1
20050025105 Rue Feb 2005 A1
20050026611 Backes Feb 2005 A1
20050030894 Stephens Feb 2005 A1
20050030929 Swier et al. Feb 2005 A1
20050037818 Seshadri et al. Feb 2005 A1
20050040968 Damarla et al. Feb 2005 A1
20050054326 Rogers Mar 2005 A1
20050054350 Zegelin Mar 2005 A1
20050058132 Okano et al. Mar 2005 A1
20050059405 Thomson et al. Mar 2005 A1
20050059406 Thomson et al. Mar 2005 A1
20050064873 Karaoguz et al. Mar 2005 A1
20050068925 Palm et al. Mar 2005 A1
20050073980 Thomson et al. Apr 2005 A1
20050078644 Tsai et al. Apr 2005 A1
20050097618 Arling et al. May 2005 A1
20050114649 Challener et al. May 2005 A1
20050120125 Morten et al. Jun 2005 A1
20050122927 Wentink Jun 2005 A1
20050122977 Lieberman Jun 2005 A1
20050128142 Shin et al. Jun 2005 A1
20050128989 Bhagwat et al. Jun 2005 A1
20050144237 Heredia et al. Jun 2005 A1
20050147032 Lyon et al. Jul 2005 A1
20050154933 Hsu et al. Jul 2005 A1
20050157730 Grant et al. Jul 2005 A1
20050159154 Goren Jul 2005 A1
20050163078 Oba et al. Jul 2005 A1
20050163146 Ota et al. Jul 2005 A1
20050175027 Miller et al. Aug 2005 A1
20050180345 Meier Aug 2005 A1
20050180358 Kolar et al. Aug 2005 A1
20050181805 Gallagher Aug 2005 A1
20050190714 Gorbatov et al. Sep 2005 A1
20050193103 Drabik Sep 2005 A1
20050207336 Choi et al. Sep 2005 A1
20050213519 Relan et al. Sep 2005 A1
20050220033 DelRegno et al. Oct 2005 A1
20050223111 Bhandaru et al. Oct 2005 A1
20050239461 Verma et al. Oct 2005 A1
20050240665 Gu et al. Oct 2005 A1
20050243737 Dooley et al. Nov 2005 A1
20050245258 Classon et al. Nov 2005 A1
20050245269 Demirhan et al. Nov 2005 A1
20050259597 Benedetto et al. Nov 2005 A1
20050259611 Bhagwat et al. Nov 2005 A1
20050270992 Sanzgiri et al. Dec 2005 A1
20050273442 Bennett et al. Dec 2005 A1
20050276218 Ooghe et al. Dec 2005 A1
20050286466 Tagg et al. Dec 2005 A1
20060030290 Rudolf et al. Feb 2006 A1
20060035662 Jeong et al. Feb 2006 A1
20060039395 Perez-Costa et al. Feb 2006 A1
20060041683 Subramanian et al. Feb 2006 A1
20060045050 Floros et al. Mar 2006 A1
20060046744 Dublish et al. Mar 2006 A1
20060050742 Grandhi et al. Mar 2006 A1
20060073847 Pirzada et al. Apr 2006 A1
20060094440 Meier et al. May 2006 A1
20060098607 Zeng et al. May 2006 A1
20060104224 Singh et al. May 2006 A1
20060114872 Hamada Jun 2006 A1
20060117174 Lee Jun 2006 A1
20060128415 Horikoshi et al. Jun 2006 A1
20060143496 Silverman Jun 2006 A1
20060152344 Mowery Jul 2006 A1
20060160540 Strutt et al. Jul 2006 A1
20060161983 Cothrell et al. Jul 2006 A1
20060165103 Trudeau et al. Jul 2006 A1
20060168383 Lin Jul 2006 A1
20060173844 Zhang et al. Aug 2006 A1
20060174336 Chen Aug 2006 A1
20060178168 Roach Aug 2006 A1
20060182118 Lam et al. Aug 2006 A1
20060189311 Cromer et al. Aug 2006 A1
20060190721 Kawakami et al. Aug 2006 A1
20060193258 Ballai Aug 2006 A1
20060200862 Olson et al. Sep 2006 A1
20060206582 Finn Sep 2006 A1
20060215601 Vieugels et al. Sep 2006 A1
20060217131 Alizadeh-Shabdiz et al. Sep 2006 A1
20060245393 Bajic Nov 2006 A1
20060248229 Saunderson et al. Nov 2006 A1
20060248331 Harkins Nov 2006 A1
20060268696 Konstantinov et al. Nov 2006 A1
20060274774 Srinivasan et al. Dec 2006 A1
20060276192 Dutta et al. Dec 2006 A1
20060285489 Francisco et al. Dec 2006 A1
20060292992 Tajima et al. Dec 2006 A1
20070002833 Bajic Jan 2007 A1
20070008884 Tang Jan 2007 A1
20070010248 Dravida et al. Jan 2007 A1
20070011318 Roth Jan 2007 A1
20070025265 Porras et al. Feb 2007 A1
20070025306 Cox et al. Feb 2007 A1
20070027964 Herrod et al. Feb 2007 A1
20070054616 Culbert Mar 2007 A1
20070058598 Ling Mar 2007 A1
20070064673 Bhandaru et al. Mar 2007 A1
20070064718 Ekl et al. Mar 2007 A1
20070067823 Shim et al. Mar 2007 A1
20070070937 Demirhan et al. Mar 2007 A1
20070076694 Iyer et al. Apr 2007 A1
20070081477 Jakkahalli et al. Apr 2007 A1
20070082677 Hart et al. Apr 2007 A1
20070083924 Lu Apr 2007 A1
20070086378 Matta et al. Apr 2007 A1
20070086397 Taylor Apr 2007 A1
20070086398 Tiwari Apr 2007 A1
20070091845 Brideglall Apr 2007 A1
20070091889 Xiao et al. Apr 2007 A1
20070098086 Bhaskaran May 2007 A1
20070104197 King May 2007 A1
20070106776 Konno et al. May 2007 A1
20070115842 Matsuda et al. May 2007 A1
20070133494 Lai et al. Jun 2007 A1
20070135159 Sinivaara Jun 2007 A1
20070135866 Baker et al. Jun 2007 A1
20070136372 Proctor et al. Jun 2007 A1
20070150945 Whitaker et al. Jun 2007 A1
20070160046 Matta Jul 2007 A1
20070171909 Pignatelli Jul 2007 A1
20070183375 Tiwari Aug 2007 A1
20070189222 Kolar et al. Aug 2007 A1
20070195793 Grosser et al. Aug 2007 A1
20070230457 Kodera et al. Oct 2007 A1
20070248009 Petersen Oct 2007 A1
20070253380 Jollota et al. Nov 2007 A1
20070255116 Mehta et al. Nov 2007 A1
20070258448 Hu Nov 2007 A1
20070260720 Morain Nov 2007 A1
20070268506 Zeldin Nov 2007 A1
20070268514 Zeldin et al. Nov 2007 A1
20070268515 Freund et al. Nov 2007 A1
20070268516 Bugwadia et al. Nov 2007 A1
20070286208 Kanada et al. Dec 2007 A1
20070287390 Murphy et al. Dec 2007 A1
20070291689 Kapur et al. Dec 2007 A1
20070297329 Park et al. Dec 2007 A1
20080002588 McCaughan et al. Jan 2008 A1
20080008117 Alizadeh-Shabdiz Jan 2008 A1
20080013481 Simons et al. Jan 2008 A1
20080014916 Chen Jan 2008 A1
20080031257 He Feb 2008 A1
20080056200 Johnson Mar 2008 A1
20080056211 Kim et al. Mar 2008 A1
20080064356 Khayrallah Mar 2008 A1
20080069018 Gast Mar 2008 A1
20080080441 Park et al. Apr 2008 A1
20080102815 Sengupta et al. May 2008 A1
20080107077 Murphy May 2008 A1
20080114784 Murphy May 2008 A1
20080117822 Murphy et al. May 2008 A1
20080130523 Fridman et al. Jun 2008 A1
20080151844 Tiwari Jun 2008 A1
20080159319 Gast et al. Jul 2008 A1
20080162921 Chesnutt et al. Jul 2008 A1
20080220772 Islam et al. Sep 2008 A1
20080226075 Gast Sep 2008 A1
20080228942 Lor et al. Sep 2008 A1
20080250496 Namihira Oct 2008 A1
20080261615 Kalhan Oct 2008 A1
20080276303 Gast Nov 2008 A1
20090031044 Barrack et al. Jan 2009 A1
20090046688 Volpi et al. Feb 2009 A1
20090059930 Ryan et al. Mar 2009 A1
20090067436 Gast et al. Mar 2009 A1
20090073905 Gast Mar 2009 A1
20090131082 Gast May 2009 A1
20090198999 Harkins Aug 2009 A1
20090247103 Aragon Oct 2009 A1
20090257437 Tiwari Oct 2009 A1
20090260083 Szeto et al. Oct 2009 A1
20090274060 Taylor Nov 2009 A1
20090287816 Matta et al. Nov 2009 A1
20090293106 Gray et al. Nov 2009 A1
20100002610 Bowser et al. Jan 2010 A1
20100024007 Gast Jan 2010 A1
20100040059 Hu Feb 2010 A1
20100172276 Aragon Jul 2010 A1
20100180016 Bugwadia et al. Jul 2010 A1
20100195549 Aragon et al. Aug 2010 A1
20100261475 Kim et al. Oct 2010 A1
20100329177 Murphy et al. Dec 2010 A1
20110128858 Matta et al. Jun 2011 A1
20110158122 Murphy et al. Jun 2011 A1
Foreign Referenced Citations (19)
Number Date Country
0 992 921 Apr 2000 EP
1 542 409 Jun 2005 EP
1542 409 Jun 2005 EP
2 329 801 Mar 1999 GB
2429080 Feb 2007 GB
2000-215169 Aug 2000 JP
2003-234751 Aug 2003 JP
2003274454 Sep 2003 JP
2004-032525 Jan 2004 JP
WO-9403986 Feb 1994 WO
WO-9911003 Mar 1999 WO
WO 0006271 Feb 2000 WO
WO 0018148 Mar 2000 WO
WO 02089442 Nov 2002 WO
WO-03085544 Oct 2003 WO
WO 2004013986 Feb 2004 WO
WO-2004095192 Nov 2004 WO
WO-2004095800 Nov 2004 WO
WO 2006014512 Feb 2006 WO
Related Publications (1)
Number Date Country
20100067379 A1 Mar 2010 US
Provisional Applications (1)
Number Date Country
61190576 Aug 2008 US