Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

A computing device operating according to a frequency division
multiplexed protocol in which communication occurs over a signal formed
from a plurality of sub-channels selected from anywhere in a frequency
spectrum. A computing device may select sub-channels cognitively by using
information about sub-channels previously deemed suitable or unsuitable
by that computing device or other computing devices. A described
technique for determining sub-channel suitability includes analyzing
radio frequency energy in the sub-channel to detect signals generated by
another computing device or high noise levels. Information may also be
used to cognitively select sub-channels to be analyzed, such as by first
selecting for analysis previously-used sub-channels.

Claims:

1. A method of operating a computing device for communication using a
frequency-division multiplexing protocol, the method comprising:
selecting, for communicating a signal, a first plurality of sub-channels
collectively having a first bandwidth, the first plurality being selected
from a second plurality of sub-channels, the second plurality
collectively having a second bandwidth, the second bandwidth being
greater than the first bandwidth, wherein selecting the first plurality
of sub-channels comprises preferentially selecting a sub-channel when the
sub-channel was previously selected for carrying a previous signal
communicated by the computing device, the previous signal being different
from the signal; and communicating the signal using the first plurality
of sub-channels.

2. The method of claim 1, wherein selecting the first plurality of
sub-channels comprises: (A) determining a number of sub-channels based on
a desired data rate; (B) examining a sub-channel of the second plurality
of sub-channels to determine whether the sub-channel has conditions
unsuitable to data transmission; (C) identifying the sub-channel as
suitable for communication or identifying the sub-channel as unsuitable
for communication according to a determination of act (B), and selecting
the sub-channel for communication if it has been identified as suitable;
(D) repeating acts (B) and (C) for different sub-channels of the second
plurality of sub-channels until at least the number of sub-channels is
selected.

3. The method of claim 2, wherein the act (D) further comprises storing
an indication of the first plurality of sub-channels selected.

4. The method of claim 2, wherein the act (D) further comprises storing
an indication of sub-channels identified as unsuitable for communication;
and the act (B) further comprises examining a sub-channel previously
identified as unsuitable after other sub-channels not previously
identified as unsuitable if the computing device attempts to create a new
signal within a period of time of storing the indication of sub-channels
identified as unsuitable.

5. The method of claim 2, wherein the act (B) further comprises choosing
a sub-channel to examine by one of a random selection process or a linear
sequential selection process.

6. The method of claim 2, wherein the act (B) further comprises examining
the sub-channel for a predetermined period of time before making the
determination.

7. The method of claim 1, wherein the communicating: transmitting a first
selection notice to at least one other computing device, the first
selection notice comprising a notification that the computing device has
selected the first plurality of sub-channels; and when a second selection
notice is received from another computing device, refraining from
selecting choosing sub-channels listed in the second selection notice
received from the other computing device for a predetermined period of
time.

8. The method of claim 1, wherein: the selecting is performed once at the
beginning of a communication session, and the method further comprises
releasing the first plurality of sub-channels at the end of the
communication session.

9. The method of claim 8, wherein a communication session is a discrete
data transmission.

10. The method of claim 1, further comprising: retrieving from storage an
indication of the sub-channels previously selected for carrying the
previous signal, wherein the indication of sub-channels previously
selected is a listing of sub-channels selected during one or more prior
performances of acts of retrieving, selecting, and communicating.

11. At least one computer readable storage medium encoded with
computer-executable instructions that, when executed by at least one
computer, cause the at least one computer to perform a method for
transmitting a signal comprising: retrieving from storage a first list of
at least one sub-channel previously selected for communicating a signal
and a second list of at least one sub-channel previously determined to be
unusable for communication; determining a set of usable sub-channels in a
first plurality of sub-channels, wherein the determining comprises
examining sub-channels of the first plurality to determine whether
sub-channels are usable, wherein the examining comprises examining the at
least one sub-channel in the first list to determine whether the at least
one sub-channel in the first list is usable, and conditionally examining
the at least one sub-channel in the second list to determine whether the
at least one sub-channel in the second list is usable when a number of
usable sub-channels in the first list is less than a desired number of
sub-channels; selecting, from the set of usable sub-channels, a second
plurality of sub-channels; and communicating the signal over the second
plurality of sub-channels.

12. The computer-readable storage medium of claim 11, wherein the method
further comprises, while the at least one computer is operating in a low
power mode: determining a second set of usable sub-channels in a third
plurality of sub-channels, the third plurality of sub-channels being a
subset of the first plurality of sub-channels; and selecting a fourth
plurality of sub-channels from the second set of usable sub-channels, the
fourth plurality being less than the third plurality.

13. The computer-readable storage medium of claim 11, wherein
conditionally examining the at least one sub-channel in the second list
comprises conditionally examining the at least one sub-channel in the
second list when a combined number of the number of usable sub-channels
in the first list and a number of usable sub-channels of the first
plurality not in the first list and not in the second list is less than
the desired number of sub-channels.

14. The computer-readable storage medium of claim 11, wherein the method
further comprises: determining the desired number of sub-channels to be
selected based on a desired data rate, wherein determining the set of
usable sub-channels comprises examining sub-channels to determine whether
sub-channels are usable until the desired number of sub-channels is
determined to be usable.

15. The computer-readable storage medium of claim 11, wherein retrieving
from the storage the first list of sub-channels comprises retrieving from
the data store a list of sub-channels previously selected by the at least
one computer for carrying a previous signal, the previous signal having
been transmitted by the at least one computer prior to the retrieving.

16. A method of communicating between a first computing device and a
second computing device, the method comprising: with the first computing
device, selecting, for carrying at least one message, a first plurality
of sub-channels collectively having a first bandwidth, the first
plurality of sub-channels being selected from a second plurality of
sub-channels, the second plurality of sub-channels collectively having a
second bandwidth, the second bandwidth greater than the first bandwidth,
wherein selecting the plurality of selected sub-channels comprises
preferentially selecting a sub-channel when the sub-channel was
previously selected by the first computing device for carrying a previous
signal transmitted by the first computing device, the previous signal
being different from the signal; and communicating the at least one
message over the first plurality of sub-channels.

17. The method of claim 16, wherein communicating the at least one
message over the first plurality of sub-channels comprises receiving a
message from the second computing device at the first computing device.

18. The method of claim 16, further comprising: transmitting from the
first computing device to the second computing device an identification
of the first plurality of sub-channels prior to the act of transmitting
the at least one message.

19. The method of claim 16, further comprising: transmitting, from the
first computing device to the second computing device, signals via the
first plurality of sub-channels to identify to the second computing
device that the first plurality of sub-channels have been selected.

20. The method of claim 16, further comprising: determining a third
plurality of sub-channels via which to receive a signal transmitted by
the second computing device, the third plurality of sub-channels having
been selected by the second computing device, the determining comprising
examining sub-channels previously used for communication between the
first computing device and the second computing device and analyzing
signals received on the sub-channels previously used prior to examining
signals received on other sub-channels not previously used.

Description:

RELATED APPLICATIONS

[0001] This application is a continuation application claiming the benefit
under 35 U.S.C. §120 of U.S. application Ser. No. 11/637,449,
entitled "COGNITIVE MULTI-USER OFDMA," filed on Dec. 12, 2006, which is
herein incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

[0002] Wireless connections between computing devices have become
increasingly common as computing devices have become more mobile. As a
result, wireless connections are now used in a variety of ways. For
example, wireless communication allows computing devices to connect to
hard-wired networks though access points so that devices brought within
range of the access point can access network resources, such as servers
and printers. Wireless communication also allows computing devices to
connect to other computing devices on an ad hoc basis so that the devices
may exchange data without any fixed infrastructure.

[0003] To establish a wireless connection between two computing devices, a
portion of a frequency spectrum is used to carry radio frequency signals
between the devices according to a wireless communication protocol. Many
wireless communication protocols divide an available frequency spectrum
into multiple channels such that multiple computing devices may transmit
data at the same time and minimize interference with each other.

[0004] Orthogonal Frequency Division Multiplexing (OFDM) is one
communication protocol, used in both wireless and wired networks, in
which a frequency spectrum is divided into multiple channels. In OFDM,
channels are further divided into usually equal sub-channels, each with a
relatively narrow bandwidth. By using sub-channels of narrow bandwidth,
communications are less susceptible to detrimental multipath fading or
other electromagnetic interference and the risk of narrow band
interference between nearby devices communicating through wireless
connections is reduced, which can lead to higher data rates or improved
error rate performance of data transmitted over a channel.

SUMMARY OF THE INVENTION

[0005] Wireless and wired communication between computing devices is
improved by using a set of selected sub-channels. The sub-channels may be
selected from anywhere in a frequency spectrum usable by the computing
devices for communication.

[0006] Sub-channels may be selected based on measurements of the
characteristics of those sub-channels. To improve the efficiency with
which the sub-channels are selected, a cognitive process may be used. A
cognitive process according to the invention may be applied in a mobile
computing device to prolong the operating time available from a battery
or other limited power source.

[0007] A cognitive process may base the selection of sub-channels on
current measurement of sub-channel characteristics and previously
obtained information. Information used for cognitive processing may
include information about sub-channels previously selected to establish a
connection, whether by the same computing device or another computing
device. Such information may also include information about sub-channels
previously determined to be unsuitable for use in establishing a channel.

[0008] In one illustrative embodiment of the invention, a subset of
suitable sub-channels is selected from a set of sub-channels, wherein the
subset is selected from anywhere in the set and the sub-channels are not
restricted to being contiguous. Sub-channel suitability may be determined
by any suitable technique, including examining the sub-channel for
signals generated by another computing device or for high levels of
electromagnetic interference from other sources. Techniques are also
employed for selection of sub-channels to be examined, which may also be
done in any suitable manner, including maintaining a list of
previously-used sub-channels to be examined first, sequentially scanning
through a list of sub-channels, and randomly selecting sub-channels.

[0009] In a further illustrative embodiment, a method of operating a
computing device for communication using a (FDM) Frequency Division
Multiplexing protocol is provided. The method comprises: selecting a
first plurality of selected sub-channels to carry a signal having a first
bandwidth, the first plurality being selected from a second plurality of
sub-channels, the second plurality collectively having a second
bandwidth, the second bandwidth greater than the first bandwidth; and
communicating the signal using the first plurality of selected
sub-channels.

[0010] In another illustrative embodiment, a computer apparatus comprising
at least one computer readable medium encoded with instructions for
execution on a computer is provided. The instructions, when executed,
perform a method comprising: determining a set of usable sub-channels in
a first plurality of sub-channels; selecting a second plurality of
selected sub-channels, the selected sub-channels being selected from the
set of usable sub-channels, the second plurality being less than the
first plurality; and communicating the signal over the second plurality
of selected sub-channels.

[0011] In one illustrative embodiment, a method of communicating between a
first computing device and a second computing device is provided. The
method comprises: with the first computing device, selecting a plurality
of selected sub-channels to carry a signal having a first bandwidth, the
selected sub-channels being selected from a plurality of sub-channels,
the plurality of sub-channels collectively having a second bandwidth, the
second bandwidth greater than the first bandwidth; and transmitting at
least one message over the plurality of selected sub-channels.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] In the drawings:

[0013] FIG. 1 is a diagram of an illustrative computer system environment
in which embodiments of the invention may be implemented;

[0014] FIG. 2 is a block diagram of an exemplary client computer that may
be used in accordance with embodiments of the invention;

[0015]FIG. 3 is a timeline of an exemplary process by which computing
devices select sub-channels and communicate data over the sub-channels;

[0016]FIG. 4 is a flowchart of an illustrative process of selecting
sub-channels for communication;

[0017] FIG. 5 is a flowchart of an illustrative process of selecting
sub-channels to examine for suitability; and

[0018]FIG. 6 is a timeline of a randomized back-off process according to
an embodiment of the invention that occurs when two computing devices
transmit data over the same sub-channel.

DETAILED DESCRIPTION

[0019] Applicants have appreciated that both wireless and wired
communication between computing devices may be improved by forming
channels from sub-channels of a frequency spectrum without regard to
whether the sub-channels are contiguous or non-contiguous.

[0020] Conventional implementations of Orthogonal Frequency Division
Multiplexing (OFDM) use only contiguous sub-channels within a given range
of frequencies to carry a transmitted signal. If that signal is subject
to electronic interference or there are many devices using that same
range of frequencies to communicate, many of the sub-channels intended to
carry the signal may be unsuitable for communication. Because a computing
device is restricted in which sub-channels can be used to carry a signal,
the resulting signal may not support communication at a desired data rate
and the computing devices may have to lower the data rate of
transmissions over a channel when spectrum conditions are not ideal. By
selecting sub-channels from any portion of the spectrum available for
communication between computing devices, contiguous or non-contiguous, to
construct a signal for use by the computing device, transmission may be
achieved at higher data rates regardless of spectrum conditions.

[0021] Sub-channels may be efficiently selected using a cognitive process.
By learning which sub-channels are suitable or unsuitable for use, the
time and processing cost of selection processes may be reduced. In some
embodiments, the cognitive process is used within a mobile computing
device operating from a battery or other limited power source. Reducing
processing cost results in a decreased power drain, which prolongs
operating time of the device until the batteries must be replaced or
recharged. The user's experience may thus be improved by providing
communication at faster data rates without an unacceptable power drain.

[0022] In view of the foregoing, one embodiment of the present invention
is directed to a cognitive process for choosing suitable sub-channels of
an FDM protocol. Such a process may be implemented on any of numerous
computer system configurations, which are not limited to any particular
type of configuration. FIG. 1 illustrates one example of a computer
system on which aspects of the invention can be implemented, although
others are possible.

[0023] The computer system of FIG. 1 includes communication network 100,
wireless access points 102 and 104, wireless computing devices 106, 108,
110, 112, 114, and 116, and wired computing devices 118 and 120.
Communication network 100 can be any suitable communication medium or
media for exchanging data between two or more computers (e.g., a server
and a client), including the Internet or an enterprise network. The
wireless computing devices can be any suitable computing devices with
wireless communication capabilities. Several exemplary wireless computing
devices are shown, including laptops 108 and 112, personal digital
assistant 110, and smart phone 114. In addition, typically stationary
devices can be enabled for wireless communication, such as server 106 and
computer terminal 116. Each of these mobile and stationary devices is in
a state of, or capable of being in a state of, wireless communication
with a wireless access points 102 or 104, each connected to communication
network 100. This wireless communication allows the computing devices to
exchange data with one another or, through communication network 100,
with wired devices such as computer terminal 118 and server 120. As each
wireless device transmits data to access point 102/104 or to another
device, it may use one or more sub-channels of the available spectrum.
Thus, the wireless devices may compete with one another for access to
"suitable" sub-channels. The suitability of a sub-channel may be
determined based on whether it is being subjected to too much
interference to permit effective communication. This interference may
comprise noise generated by another computing device transmitting data or
any other electric noise, such as may be generated by any electronic
device operating within range of the exemplary computing system shown in
FIG. 1.

[0024] The embodiments of the invention described herein are not limited
to being practiced with the exemplary system shown in FIG. 1, and can be
employed on systems employing any number of wireless access points and/or
computing devices. In addition, while FIG. 1 shows the computing devices
in wireless communication with wireless access points 102 and 104 in an
infrastructure network, it should be appreciated that embodiments of the
invention may operate in ad hoc or other networks in which the computing
devices communicate with one another directly and not through an access
point. Also, while FIG. 1 includes communication network 100 with wired
devices 114 and 116, embodiments of the invention may not include a wired
network.

[0025] In addition, it should be appreciated that the invention is not
limited to being performed in the exemplary wireless network shown in
FIG. 1. Embodiments of the invention may be implemented in any suitable
communication network--including wired networks--for exchanging data
between computing devices in which frequency division multiplexing is
implemented.

[0026] FIG. 2 schematically shows an illustrative computing device 200
that may be used in accordance with one or more embodiments of the
invention. Computing device 200 may be any of the computing devices shown
above, such as devices 106, 108, 110, 112, 114, and 116, or wireless
access points 102 and 104. It should be appreciated that FIG. 2 is
intended to be neither a depiction of necessary components for a
computing device to operate with embodiments of the invention nor a
comprehensive depiction.

[0027] Computing device 200 comprises a wireless interface, which may
serve as a wireless network interface. In the embodiment illustrated, the
wireless network interface may be implemented with radio hardware 202 to
communicate wirelessly, such as with a wireless access point or with
other devices. Device 200 also comprises a network adapter 204 to
communicate over a computer network using other (possibly non-wireless)
methods, a display adapter 206 to display information to a user of the
device, and an input adapter 208 to receive commands from the user. In
some embodiments of the invention, computing device 200 may also comprise
a battery 220.

[0028] Device 200 further comprises computer-readable media 212 for
storing data to be processed and/or instructions to be executed by a
processor 210. Processor 210 enables processing of data and execution of
instructions. The data and the instructions may be stored on the
computer-readable media 212 and, for example, may enable communication
between components of the computing device 200. The data and instructions
may comprise an operating system 216, which may in turn comprise control
software 214. Control software 214 may comprise computer-executable
instructions that control transmitting and receiving data wirelessly
using any suitable protocol including OFDM protocols. Computer-readable
media 212 may further have stored thereon computer-executable
instructions comprising applications 218 for execution on computing
device 200. Applications 218 may, for example, be used by a user of the
computing device to use components of the computing device to carry out
various functions and complete desired operations.

[0029] It should be appreciated that the invention is not limited to being
practiced with the type of computing device illustrated in FIG. 2, and
that embodiments of the invention can be practiced with any suitable
computing device. The radio hardware 202 and adapters 204, 206, and 208
may be implemented as any suitable hardware, software, or combination
thereof, and may be implemented as a single unit or multiple units.
Similarly, computer-readable media 212 may be implemented as any medium
or combination of media for storing data and instructions for access by a
processing device.

[0030] In some embodiments of the invention, multiple computing devices
such as computing device 200 may transmit data over a limited number of
sub-channels. Computing devices may, therefore, select sub-channels that
are suitable for communication. This selection may be done in any manner,
examples of which are discussed in further detail below. Once a computing
device has selected a sub-channel or sub-channels for transmission, the
device may "reserve" these sub-channels for its use in transmitting data,
to prevent other computing devices from transmitting data over the
sub-channel and thereby interfering with communication. In some
embodiments, the sub-channels may be reserved for the computing device
for a single, discrete data transfer, and thus the sub-channel selection
and reservation process may be repeated every time a data transfer is to
be made. In alternative embodiments, the sub-channels may be reserved by
the computing device for multiple discrete data transfers comprising a
communication session, and the sub-channel selection and reservation
process repeated at the start of every session. In some embodiments, the
selection process may also be executed during a data transfer or during a
communication session, for example, if a higher data rate is desired and
thus more sub-channels are needed or if one or more sub-channels become
unsuitable for communication during a data transfer or session. It should
be appreciated that the invention is not limited to performing the
selection process at a set time or under set conditions, as the selection
and reservation of sub-channels may be done in any suitable manner at any
suitable time in the communication process.

[0031] Once the computing device is finished communicating data over the
sub-channels, the selected sub-channels that had been previously reserved
for communication by the device may be released by the device so that
other devices may make use of them. This release may happen at the end of
a single data transfer, or at the end of a communication session. In some
embodiments, this release may also be executed during a data transfer or
communication session if the computing device desires a lower data rate.
A lower data rate may be desired, for example, if a receiving device
indicates that the data is being transmitted at too high a data rate for
the receiving device to process the data appropriately.

[0032]FIG. 3 illustrates this process with an overview of an exemplary
communication process with multiple computing devices on a timeline 300.
Details of the process are discussed below, as FIG. 3 is intended merely
to be an overview presented for ease of explanation.

[0033] In act 302, an application on a device A requests a connection at a
desired data rate. It is then determined that to transmit data at the
desired rate, two sub-channels are necessary, and the spectrum is
examined for two suitable sub-channels. In act 304, device A selects two
suitable sub-channels 1 and 2 from the spectrum and reserves them for its
use. It may also, in some embodiments, store an indication that these two
sub-channels were selected for use.

[0034] In act 306, an application on device B requests a connection at a
certain data rate, and it is again determined that two sub-channels are
necessary to achieve this desired rate. While device A begins
transmitting data in act 306, device B is examining the spectrum and
identifies sub-channels 4 and 5 as suitable for communication. In act 312
device B selects and reserves these sub-channels for communication. In
some embodiments of the invention, device B may have received a
notification message from device A indicating that sub-channels 1 and 2
had been reserved by device A for communication, and in some embodiments
device B may have detected device A's transmission on those sub-channels
and identified them as unsuitable because they were being used. In act
310, device A completes its transmission of data and releases the
sub-channels, making them suitable for communication by any devices in
the network, and in act 314, device B begins transmitting data over
sub-channels 4 and 5.

[0035] In act 316, an application on device A requests a connection be
established at a certain data rate, and it is again determined that
transmission of data at that rate requires two sub-channels. Device A
begins examining the spectrum for suitable sub-channels, determines that
sub-channels 1 and 3 are suitable, and in act 318 selects and reserves
sub-channels 1 and 3. In some embodiments of the invention, device A may
have examined sub-channels 1 and 2 prior to examining sub-channel 3
because it had previously selected these sub-channels as suitable for
transmission. Device A may have determined during its examination that
sub-channel 2 was no longer suitable for transmission because of
interference--from another computing device transmitting data over the
sub-channel or from any other electronic noise--and therefore examined
and selected sub-channel 3. In alternative embodiments, sub-channels 1
and 3 may have been randomly examined for suitability and subsequently
selected. It should be appreciated that embodiments of the invention are
not limited to selecting sub-channels according to any specific technique
or techniques, as sub-channel selection may be implemented in any
suitable manner.

[0036]FIG. 4 illustrates one exemplary sub-channel selection process
implemented by a computing device to select sub-channels for
communicating data wirelessly according to some embodiments of the
invention. The process of FIG. 4 could be implemented as
computer-executable instructions stored on at least one computer-readable
medium such as computer-readable media 212, or may be implemented in any
other suitable manner. It should also be appreciated that sub-channels
may be selected for transmission in any suitable manner, and that
embodiments of the invention are not limited to being performed with the
exemplary process shown in FIG. 4.

[0037] The process of FIG. 4 begins in act 400, wherein initialization
acts are performed. Initialization acts may include an application
executing on the computing device requesting a connection at a data rate
be established between the computing device and another computing device,
a determination of various options for the connection being made, and/or
a determination of what data is to be transmitted to the other computing
device being made. Once the initialization acts are performed, the
process continues to act 402, wherein a determination is made of a number
of sub-channels based on a desired rate.

[0038] Sub-channels may be selected in any suitable way. For example, in
the illustrative embodiment of FIG. 4, to select sub-channels the process
executes a loop beginning in act 404. The loop comprises examining
sub-channels in a spectrum available for use by the device for
communication to determine which sub-channels are suitable for
communication. Both the ordering of sub-channels for examination and the
examination may be done in any suitable manner, examples of which are
discussed below.

[0039] The loop of the illustrative process of FIG. 4 has two possible end
conditions. In the first possible end condition, the loop may examine all
sub-channels in the spectrum before finding a desired number of
sub-channels, at which point the process continues to act 416. If
processing reaches act 416, an error has occurred, which can be handled
by the application requesting the connection or in any other suitable
way. In some embodiments, processing at act 416 may include reporting to
the application a data rate that can be supported by suitable
sub-channels and the process of FIG. 4 may be re-initialized by the
application lowering the desired data rate to the highest rate allowed by
the suitable sub-channels. In other embodiments processing to select
sub-channels may wait a predetermined or random period of time before
re-examining the spectrum for suitable sub-channels. Alternatively, in
the second possible end condition, processing in act 406 determines that
a desired number of sub-channels has been selected, at which point the
process continues to act 418. Act 418 and subsequent acts are discussed
in greater detail below.

[0040] Until an end condition is met, the process of FIG. 4 loops through
the sub-channels of the spectrum. In act 408, a chosen sub-channel is
examined to collect information to aid in the determination made at acts
410 and 412. In act 410, the process determines whether the sub-channel
is being used by another device for communication and, in act 412,
determines whether the sub-channel is being subjected to too much
electronic interference to permit effective communication. In the
embodiment illustrated, a sub-channel is deemed unsuitable for use in
communicating a signal if the sub-channel is already in use by another
device or is otherwise too noisy. If in either of the acts the
sub-channel is determined to be unsuitable for communication, then the
loop continues with the next sub-channel. If it is determined to be
suitable for communication, however, then it is selected (in act 414) for
transmission and the loop is continued with the next sub-channel.

[0041] It should be appreciated that information may be obtained at act
408 in any suitable manner. In the illustrated process, information is
obtained by monitoring energy in the sub-channel over a predetermined
interval as one form of "listening" on the sub-channel. In some
embodiments, the computing device will tune its hardware to the
sub-channel being examined and use a receiver in the hardware to collect
data on the energy in that sub-channel for a predetermined period of
time. Data may be collected in any suitable form, including peak energy
levels, average energy levels, median energy levels, etc. In this
embodiment, listening may comprise detecting energy levels on the
sub-channel to provide as input to the acts of determination, or may
comprise receiving (or attempting to receive) data from the sub-channel.
In other embodiments, the computing device may sample the entire spectrum
at least once, and, through performing examination steps such as a
Fourier Transform on the sample, determine energy levels present in
multiple sub-channels. It should be appreciated, however, that these
techniques are merely exemplary, and any suitable technique for examining
a sub-channel or sub-channels may be used in accordance with embodiments
of the invention.

[0042] If a desired number of sub-channels is selected from the spectrum
(the second end condition discussed above), then the process branches
from act 406 to act 418, where an indication of the selected sub-channels
is stored on the computing device. The indication may be formatted as a
list or as any other suitable data structure. The list (for example)
could be stored in temporary storage on the computing device for use in
transmission, or could be stored in long-term storage for use in future
transmissions.

[0043] In act 420, the computing device transmits a notification message
comprising the list of sub-channels to one or more other computing
devices. In some embodiments of the invention, this notification message
may serve to reserve the selected sub-channels for use by the computing
device until the sub-channels are later released by the computing device.
The other computing devices may comprise another computing device acting
as another end point of the connection that is to receive the data to be
transmitted by the computing device, or could comprise all other
computing devices in range of the computing device. In some embodiments
of the invention, the transmission of act 420 will be done over a control
frequency listened to by all devices using a specified protocol. Beacon
signals may be transmitted using this control frequency, and in some
embodiments the transmission of act 420 will be done as part of a beacon
signal or other signal already in use. It should be appreciated, however,
that embodiments of the invention may transmit this information in any
suitable manner.

[0044] Once the list is stored and transmitted, the data is transmitted in
act 422 over the connection using the selected sub-channels. These
sub-channels, as discussed above, will not necessarily be contiguous, but
will be any suitable sub-channels found by the process in any part of the
spectrum, with a number of sub-channels being selected and transmitted on
to achieve transmission at a desired data rate. It should be appreciated
that the transmission over the sub-channels may be done in any suitable
way and according to any suitable protocol, since the invention is not
limited to being performed with any particular network implementation. In
act 424, the process terminates. In embodiments of the invention, act 424
may comprise transmitting a second notification message to one or more
other computing devices indicating that the computing device is no longer
communicating over the selected sub-channels. In this way, the
sub-channels that may have been reserved by the computing device may be
released and thus made suitable for use by other computing devices.

[0045] It should be appreciated that the process illustrated in the
flowchart of FIG. 4 is merely exemplary, and other processes or sequences
of acts are possible. For example, an alternative embodiment of the
invention may perform the loop beginning in act 404 prior to a connection
being requested by an application. In this embodiment, the spectrum may
be examined regularly by the computing device and indications of suitable
sub-channels may be stored, such that when an application requests a
connection, the desired number of sub-channels may be quickly assigned
and used based on previously-determined sub-channel suitability, rather
than making a determination when a connection is requested.

[0046] Embodiments of the invention may also operate in a low power mode,
wherein the eligibility of sub-channels for transmission is further
restricted to a subset of the full spectrum. Restricting the number of
sub-channels examined reduces the amount of power spent listening and
determining, as well as the power spent configuring the computing device
to transmit or receive at different frequencies (i.e., different
sub-channels). The low power mode may be entered in response to user
input or an operating state of the device such as operating on battery
power, or in any other suitable way.

[0047] In the example of FIG. 4, processing is performed on a device that
initiates a connection. Instead or in addition, a device intended to be
an endpoint of a connection being established by another computing device
may perform a process to select sub-channels. The computing device may
examine the spectrum and reserve a set of sub-channels for it to receive
data over, then send an announcement to all devices in range that it is
listening over the selected sub-channels. Thereafter, devices wishing to
transmit data to the computing device will transmit using those
sub-channels. Endpoints of a connection could use the same or different
sub-channels.

[0048] Embodiments of the invention may also execute fewer acts than are
shown in FIG. 4. For example, embodiments of the invention may not store
the list of selected sub-channels as done in act 418 or may not transmit
the list of selected sub-channels to other devices, as in act 420. In
some embodiments of the invention, acts 410 and 412 may be combined into
a single act instead of separate acts.

[0049] It should be further appreciated that embodiments of the invention
may execute more acts than are executed by the illustrative process of
FIG. 4. In some embodiments of the invention, in addition to storing
indications of sub-channels selected for transmission, the process may
store more information such as a time or usage element. The time or usage
element may comprise information regarding when a sub-channel may be
released by the computing device or may comprise information on the
conditions under which the sub-channel was selected.

[0050] In some embodiments of the invention, a list of sub-channels found
to be unsuitable for transmission may be maintained for future use in
selecting sub-channels for use in establishing a connection. In this way,
sub-channels found to be unsuitable for communication may be avoided in
the future. In an alternative embodiment of the invention, the list
stored at act 418 may be updated at any point that a sub-channel is
determined to be unsuitable. For example, if a sub-channel is in the list
as being previously-selected, but is determined to be unsuitable, the
sub-channel may be removed from the list or otherwise downgraded in the
list. Any suitable technique for downgrading a sub-channel in the list
may be used in accordance with embodiments of the invention, including
moving the sub-channel lower in the list or otherwise indicating it as
less suitable than other sub-channels.

[0051] It should also be appreciated that the sub-channels can be chosen
for examination for suitability for communication in any suitable order.
In some embodiments of the invention, order may be determined randomly,
while in other embodiments, sub-channels may be ordered sequentially from
one end of the spectrum to the other and sub-channels may be examined
according to this order.

[0052] However, since some protocols use Frequency Division Multiplexing
(FDM) across a very wide band of the spectrum, such as ultra wideband
(UWB) communications or Worldwide Interoperability for Microwave Access
(WiMAX), it may become costly in terms of time and processing to
determine which sub-channels of the spectrum are free.

[0053] Therefore, in some embodiments of the invention, the order in which
sub-channels are examined may be based on a cognitive process that makes
use of data previously determined. The data may be obtained from the same
computing device, other computing devices executing a similar process, or
any other suitable source. In this embodiment, the cognitive aspect of
the process refers to the act of "learning" from previously-determined
information to aid in making determinations more easily, quickly, and
efficiently.

[0054] An exemplary cognitive ordering process is illustrated in FIG. 5. A
cognitive process may be implemented as a separate process executed prior
to a selection process such as the one illustrated in FIG. 4 to
predetermine the order in which sub-channels are to be examined, or may
run jointly with a selection process to determine a sub-channel to
examine next after a sub-channel has been examined, or may be executed at
any suitable time and in any suitable manner.

[0055] In act 500, a list of previously-selected sub-channels (such as the
one stored in act 418 of FIG. 4) is retrieved from storage on the
computing device. This list of sub-channels may comprise sub-channels
selected by the most-recently-executed selection process or may comprise
information about sub-channels aggregated from more than one previous
selection process. As an example of aggregated information, the list may
be ordered by an index comprising the number of times a sub-channel has
been determined to be suitable for communication, but it should be
appreciated that embodiments of the invention may store any information
compiled from any number of selection processes.

[0056] In act 502 the ordering process begins examining sub-channels in
the list. The process may examine the sub-channels in the list
sequentially, or may examine them based on an index such as the one
described above. Once a sub-channel is selected from the list in act 504,
it is checked in act 508 against any list of sub-channels indicated as
currently selected by another computing device. The checking of act 508
may be enabled by an exchange of notification messages between computing
devices in a network, where the notification messages comprise sets of
sub-channels selected for communication. These sets of sub-channels may
be exchanged in any suitable manner, including processes discussed above
in conjunction with act 420 of FIG. 4.

[0057] If it is not indicated as selected by another computing device,
then in act 510 the sub-channel is marked as examined and examined as
discussed above in conjunction with FIG. 3 or in any other suitable
manner. If, however, the sub-channel was indicated as selected by another
device, then another sub-channel in the list may be selected in act 504
if it is determined in act 502 that more unexamined sub-channels exist in
the list. The list may also be updated, with sub-channels that are being
used by another device being removed from the list or otherwise
downgraded.

[0058] If, in the process of examining, all the sub-channels in the list
have been marked as examined in act 510 and a desired number of
sub-channels has not yet been selected, then the process may examine in
act 506 sub-channels not in the list. The order in which these
sub-channels is examined may be done in any suitable manner, including a
random ordering or a sequential ordering from the sub-channel with the
lowest frequency to the sub-channel with the highest frequency.
Sub-channels that have not yet been marked as examined by act 510 may be
examined as discussed above in conjunction with FIG. 4, or in any other
suitable manner, to determine if they are suitable for communication.

[0059] It should be appreciated that FIG. 5 is merely an illustrative
process, and that embodiments of the invention are not limited to
executing the process outlined in the figure. Embodiments of the
invention may execute different, more, or less acts than are shown in
FIG. 5. For example, some embodiments of the invention may also implement
an act of retrieving a list of sub-channels previously determined to be
unsuitable for communication. This list may be used, for example, in
choosing for examination sub-channels not in a list of
previously-selected sub-channels.

[0060] In some alternative embodiments, act 508 of FIG. 5 may not involve
comparing a sub-channel against a list of sub-channels received from
another computing device. For example, such a comparison may not be made
in embodiments in which computing devices do not reserve sub-channels by
exchanging lists of selected sub-channels as illustrated by act 420 of
FIG. 4. In these embodiments, processes may be implemented to handle
conflicts when a computing device selects for transmission a sub-channel
that has already been selected for transmission by another computing
device.

[0061]FIG. 6 shows an exemplary process for resolving conflicts that
arise when two computing devices select the same sub-channel for
transmission in terms of a timeline 618. In act 600, computing device A
selects exemplary sub-channel 1 for transmission, according to any
suitable method for selection, including techniques described above. In
act 602, computing device B does not detect that device A has selected
sub-channel 1 and also selects it for transmission. For example,
computing device B may not detect device A because it performed its
detection on sub-channel 1 during a time that device A was not
transmitting. However, the reason why device B did not detect device A is
not critical to the invention.

[0062] In act 604, device A detects interference on sub-channel 1, which,
in the scenario illustrated, is caused by both devices trying to transmit
on the sub-channel at the same time. In response, device A enters a
waiting period wherein it does not transmit on that sub-channel for a
random period of time. In act 606, device B also detects the interference
and waits a random period of time. These random time values can be in any
suitable range. In some embodiments of the invention, the wait times may
be on the order of milliseconds, while other embodiments of the invention
may implement wait times on the order of seconds. It should be
appreciated, however, that the invention is not limited to implementing
any specific range of time values for this random wait time.

[0063] Since these times are selected randomly, the waiting times will
differ and the device with the shorter wait time will try to use the
sub-channel again first. Because device B has the shorter waiting period,
it is the first to check the sub-channel for interference in act 608, and
in act 610 determines that the sub-channel is clear for transmission, at
which point it begins transmitting its data again. In act 612, device A
exits its waiting period and checks sub-channel 1 for interference,
determining in act 614, that sub-channel 1 is being used by device B and
is therefore unsuitable for transmission. Device A then proceeds to act
616, wherein it selects new sub-channels for communication. Such a
selection can be done in any suitable manner, including the techniques
discussed above.

[0064] It should be appreciated that the process illustrated in FIG. 6 is
merely exemplary, and that embodiments of the invention are not limited
to implementing such a process for resolving conflicts. Embodiments may
implement more acts, such as storing a record of the interference in
lists of previously-selected or previously-unsuitable sub-channels. It
should further be appreciated that FIG. 6 illustrates a conflict between
two devices for ease of explanation, but such a conflict may arise
between any two or more computing devices.

[0065] The above-described embodiments of the present invention can be
implemented in any of numerous ways. For example, the embodiments may be
implemented using hardware, software, or a combination thereof. When
implemented in software, the software code can be executed on any
suitable processor or collection of processors, whether provided in a
single computer or distributed among multiple computers.

[0066] Further, it should be appreciated that a computer or terminal may
be embodied in any of a number of forms, such as a rack-mounted computer,
a desktop computer, a laptop computer, or a tablet computer.
Additionally, a computer or terminal may be embedded in a device not
generally regarded as a computer but with suitable processing
capabilities, including a Personal Digital Assistant (PDA), a smart
phone, or any other suitable portable or fixed electronic device.

[0067] Also, a computer may have one or more input and output devices.
These devices can be used, among other things, to present a user
interface. Examples of output devices that can be used to provide a user
interface include printers or display screens for visual presentation of
output and speakers or other sound generating devices for audible
presentation of output. Examples of input devices that can be used for a
user interface including keyboards, and pointing devices, such as mice,
touch pads, and digitizing tables. As another example, a computer may
receive input information through speech recognition or in other audible
formats.

[0068] Such computers may be interconnected by one or more networks in any
suitable form, including as a local area network or a wide area network,
such as an enterprise network or the Internet. Such networks may be based
on any suitable technology and may operate according to any suitable
protocol and may include wireless networks, wired networks, or fiber
optic networks.

[0069] Also, the various methods or processes outlined herein may be coded
as software that is executable on one or more processors that employ any
one of a variety of operating systems or platforms. Additionally, such
software may be written using any of a number of suitable programming
languages and/or conventional programming or scripting tools, and also
may be compiled as executable machine language code or intermediate code
that is executed on a framework or virtual machine.

[0070] In this respect, the invention may be embodied as a
computer-readable medium (or multiple computer-readable media) (e.g., a
computer memory, one or more floppy discs, compact discs, optical discs,
magnetic tapes, flash memories, circuit configurations in Field
Programmable Gate Arrays or other semiconductor devices, etc.) encoded
with one or more programs that, when executed on one or more computers or
other processors, perform methods that implement the various embodiments
of the invention discussed above. The computer readable medium or media
can be transportable, such that the program or programs stored thereon
can be loaded onto one or more different computers or other processors to
implement various aspects of the present invention as discussed above.

[0071] The terms "program" or "software" are used herein in a generic
sense to refer to any type of computer code or set of computer-executable
instructions that can be employed to program a computer or other
processor to implement various aspects of the present invention as
discussed above. Additionally, it should be appreciated that according to
one aspect of this embodiment, one or more computer programs that when
executed perform methods of the present invention need not reside on a
single computer or processor, but may be distributed in a modular fashion
amongst a number of different computers or processors to implement
various aspects of the present invention.

[0072] Computer-executable instructions may be in many forms, such as
program modules, executed by one or more computers or other devices.
Generally, program modules include routines, programs, objects,
components, data structures, etc. that perform particular tasks or
implement particular abstract data types. Typically the functionality of
the program modules may be combined or distributed as desired in various
embodiments.

[0073] Various aspects of the present invention may be used alone, in
combination, or in a variety of arrangements not specifically discussed
in the embodiments described in the foregoing and is therefore not
limited in its application to the details and arrangement of components
set forth in the foregoing description or illustrated in the drawings.
For example, aspects described in one embodiment may be combined in any
manner with aspects described in other embodiments.

[0074] Use of ordinal terms such as "first," "second," "third," etc., in
the claims to modify a claim element does not by itself connote any
priority, precedence, or order of one claim element over another or the
temporal order in which acts of a method are performed, but are used
merely as labels to distinguish one claim element having a certain name
from another element having a same name (but for use of the ordinal term)
to distinguish the claim elements.

[0075] Also, the phraseology and terminology used herein is for the
purpose of description and should not be regarded as limiting. The use of
"including," "comprising," or "having," "containing," "involving," and
variations thereof herein, is meant to encompass the items listed
thereafter and equivalents thereof as well as additional items.

[0076] Having described several aspects of at least one embodiment of this
invention, it is to be appreciated that various alterations,
modifications, and improvements will readily occur to those skilled in
the art. Such alterations, modifications, and improvements are intended
to be part of this disclosure, and are intended to be within the spirit
and scope of the invention. Accordingly, the foregoing description and
drawings are by way of example only.