The present Application for Patent is related to the following co-pending U.S. Patent Applications:
Attorney Docket No. 060042, entitled, “RESOURCE ALLOCATION DURING TUNE-AWAY”, filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein; Attorney Docket No. 060044, entitled, “TUNE-AWAY AND CROSS PAGING SYSTEMS AND METHODS”, filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein; Attorney Docket No. 060047, entitled, “TUNE-AWAY PROTOCOLS FOR WIRELESS SYSTEMS”, filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein; and Attorney Docket No. 060081, entitled, “MOBILE WIRELESS ACCESS SYSTEM,” filed concurrently herewith, assigned to the assignee hereof, and expressly incorporated by reference herein.
I. Field
The following description relates generally to wireless communications, and, amongst other things, to seamless inter-frequency handoff in wireless communication networks.
II. Background
Wireless networking systems have become a prevalent means by which a large number of people worldwide communicate. Wireless communication devices have become smaller and more powerful to meet consumer needs, which include improved portability and convenience. Users have found many uses for wireless communication devices, such as cellular telephones, personal digital assistants (PDAs) and the like, and demand reliable service and expanded coverage areas.
To effectuate continued coverage for mobile stations, access points (base stations, access networks, etc.) associated with cellular networks are geographically positioned so as users change location they do not lose services. Thus, mobile stations can be “handed off” from a first base station to a second base station. In other words, a mobile station will be serviced by a first base station while in a geographic region associated with such base station. When the mobile station is transported to a region associated with a second base station, the mobile station will be handed off from the first base station to the second base station. Ideally, the handoff occurs without data loss, loss of service, and the like.
Conventionally, this handoff occurred through a significant amount of messaging between mobile stations and base stations. For instance, as a mobile station was transported toward a base station, various messages were delivered between the mobile station and the base station, as well as between the base station and a base station currently servicing the mobile station. This messaging enables assignment of forward link and reverse link channels to be made between the mobile station and the base stations. To enable a handoff to occur quickly and without loss of a substantial amount of data, a set of base stations can be prepared to provide services to the mobile station.
This set of base stations can be updated as the geographic region associated with the mobile station is altered. In more detail, the mobile station can be adapted to monitor for communications or receive communications over a first frequency from a first base station. A second base station can communicate with the mobile station over the same frequency, and the second base station can be added to the set of base stations if particular performance parameters are met. Once the base station is added to the set, it is prepared to service the mobile station once it enters a particular geographic range of such base station. The handoff between base stations occurs expediently as well as without loss of any significant amount of data.
Transferring or handing off to another sector operating at the same frequency is common and can be performed utilizing existing techniques. However, handing off frequencies between sectors, or inter-frequency is typically achieved using a hard handoff in which probability of loss of data and loss of connection is higher. Inter-frequency handoff includes handing off between systems of the same technology but over different frequencies. A network deployment needs inter-frequency handoff for various business reasons, such as availability of spectrum and frequency reuse factor. In such a deployment, there is a need for a seamless inter-frequency handoff. Therefore, to address the aforementioned, there is a need for techniques to facilitate seamless inter-frequency handoffs to improve communication and efficiency in wireless network systems.
The following presents a simplified summary of one or more embodiments in order to provide a basic understanding of some aspects of such embodiments. This summary is not an extensive overview of the one or more embodiments, and is intended to neither identify key or critical elements of the embodiments nor delineate the scope of such embodiments. Its sole purpose is to present some concepts of the described embodiments in a simplified form as a prelude to the more detailed description that is presented later.
In accordance with one or more embodiments and corresponding disclosure thereof, various aspects are described in connection with seamless inter-frequency handoff in a wireless network. According to an embodiment, a method includes reporting to an access network a sector pilot strength information for at least one frequency member in a message specified in an active set management protocol. Information regarding at least another frequency member is received in a message specified in the active set management protocol. The method further includes ascertaining whether to handoff from one frequency member to another frequency member. Both frequency members are included in an active set. The method can also include seamlessly handing off to the other frequency member.
According to another embodiment is wireless communication device that includes a processor and a memory coupled with the processor. The processor can be configured to select a frequency member to handoff a user device based in part on a radio channel condition with the current service sector and the strength of the Pilot for other frequency sectors. In other embodiments, the processor can be coupled with a frequency optimizer that optimizes a communication based on a determination of when to facilitate an inter-frequency handoff.
According to yet another embodiment is an apparatus for seamless inter-frequency handoff in a wireless communication environment. The apparatus can include means for providing location information of a mobile device and means for reporting a channel quality indicator to at least one sector. Also included can be means for reporting other frequency sector pilot strengths in a PilotReport message and means for seamlessly performing an inter-frequency handoff, between at least two sectors included in an active set.
According to another embodiment is a computer-readable medium having stored thereon computer-executable instructions. The instructions can include receiving a SystemParameter message from a first access network having a first frequency pilot and calculating a time for measuring a second frequency pilot of a second access network. The instructions can further include sending an AttributeUpdateRequest message, receiving an AttributeUpdateAccept message. A tune-away is enabled and a determination is made whether to initiate a measurement of the second frequency pilot. Further, the instructions can include measuring the second frequency pilot and sending a PilotReport message for the second frequency pilot.
According to a further embodiment is a processor that executes instructions for seamless inter-frequency hand off in a wireless communication environment. The instructions can include reporting a channel quality indicator to at least one sector. The instructions can include reporting a channel quality indicator to at least one sector and reporting other frequency sector pilot strength in a PilotReport message. The instructions can further provide seamlessly performing an inter-frequency handoff.
According to another embodiment is a method for seamless inter-frequency handoff. The method includes receiving a request for a tune-away period from an access terminal and sending a permission message to the access terminal to tune-away. The method further includes receiving from an access terminal a sector pilot strength information for at least one frequency member in a message specified in an active set management protocol; and sending information about at least another frequency member in a message specified in the active set management protocol. Further including in the method is allowing the access terminal to seamlessly handing off to the at least another frequency member.
According to a further embodiment is an access network that provides inter-frequency handoff in a wireless communication system. The network includes a receiver that receives a tune-away request from a mobile device and a transmitter that sends an ActiveSetAssignment message that notifies the mobile device that at least two access networks are included in an active set. The transmitter can transmitter can further request at least a second access network to respond with resources the second access network has available for the mobile device. The receiver can further receive resource information from at least a second access network.
To the accomplishment of the foregoing and related ends, one or more embodiments comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative aspects of the one or more embodiments. These aspects are indicative, however, of but a few of the various ways in which the principles of various embodiments may be employed and the described embodiments are intended to include all such aspects and their equivalents.
Various embodiments are now described with reference to the drawings. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more embodiments. It may be evident, however, that such embodiment(s) may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing these embodiments.
As used in this application, the terms “component,” “system,” and the like are intended to refer to a computer-related entity, either hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computing device and the computing device can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer-readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
Furthermore, various embodiments are described herein in connection with a user device. A user device can also be called a system, a subscriber unit, subscriber station, mobile station, mobile device, remote station, access point, base station, remote terminal, access terminal, user terminal, terminal, user agent, or user equipment. A user device can be a cellular telephone, a cordless telephone, a Session Initiation Protocol (SIP) phone, a wireless local loop (WLL) station, a PDA, a handheld device having wireless connection capability, or other processing device(s) connected to a wireless modem.
Moreover, various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ).
Referring now to the drawings,
Each access point 102 can comprise a transmitter chain and a receiver chain, each of which can in turn comprise a plurality of components associated with signal transmission and reception (e.g., processors, modulators, multiplexers, demodulators, demultiplexers, antennas, . . . ). Mobile devices 104 can be, for example, cellular phones, smart phones, laptops, handheld communication devices, handheld computing devices, satellite radios, global positioning systems, PDAs, and/or other suitable devices for communicating over wireless system 100. In wireless system 100, the periodic transmission of small data packets (commonly referred to as beacons) from access point 102 can make known the presence of wireless system 100 and transmit system 100 information. Mobile devices 104 can sense the beacons and attempt to establish a wireless connection to access points 102 and/or to other mobile devices 104.
System 100 facilitates seamless transition through various networks and/or protocols that operate in different sectors and/or on different frequencies to provide a user using mobile device 104 the ability to take advantage of the available networks and protocols. System 100 also automatically affords the user the opportunity to utilize the best access point or sector either internal or external to the network that operate on the same or a different frequency given the current location of the user, and/or a reported sector pilot strength. The user can take advantage of the various sectors regardless if mobile device 104 is in idle mode (idle session) or connected mode (active session).
Idle mode refers to the time(s) when there is no user service but the mobile device 104 is monitoring paging channels and t overhead channels. During idle mode, the receiver (mobile device) is available for downlink measurements. There can also be unscheduled reselection of new access networks and/or new technology during idle mode. Prior to entering idle mode (e.g., at power up) mobile device 104 should perform System Selection to determine the best or optimal system available for service. While in idle mode, mobile device should continuously examine neighbor access networks. Upon determination of a “better” access network, mobile device 104 can transition over the new access network. Connected mode refers to active user service (e.g., a call, active data connection). During this mode, it can be possible to handoff the device to new technologies and/or frequencies. There may be limited receiver availability for measurements during this time because the user service takes priority.
A component in the mobile device 104 can monitor and/or detect one or more channel conditions operating on one or more frequencies. Provided a channel condition remains at or above a predetermined threshold or channel quality the mobile device 104 does not switch channels. However, if the channel quality (e.g., signal to noise ratio) falls below the predetermined threshold level, there is a switch off to a different channel.
In some embodiments, a component located in mobile device 104 can operate in conjunction with one or more access point 102 to facilitate ascertaining a location of mobile device 104 in each network and can be facilitated though various location techniques. The location information can be utilized to predict which user is best suited to have a transparent handoff to a secondary network that is operating on the same or a different frequency than that currently utilized by mobile device 104. For example, a user can be quickly moving through a city in a car, for example. Various access points with which the mobile device 104 could communicate can operate on different frequencies. Mobile device 104 can seamlessly switch from one frequency to another, etc. as the user approaches a specific access point. The network to which the mobile device is switched can be a function of the location of the user and/or detected frequency strength. The handoff can be an intra-frequency handoff and/or an inter-frequency handoff. However, it is to be understood that utilizing the location of the mobile device 104 to determine a handoff is optional and does not have to be utilized in accordance with various techniques disclosed herein.
An optional locator 202 can be configured to provide information regarding the location of a mobile device. Location information can be provided by, for example, Global Positioning System (GPS) or other location determination mechanisms, such as a default active set management protocol. The active set management protocol can provide procedures and messages that are utilized by an access terminal and an access point to monitor or track the access terminal's approximate location.
The Active Set can also be utilized to maintain a radio link as the access terminal moves between the coverage areas of different sectors. Active set is defined as a set of pilots of sectors with allocated MACID for an access terminal. Active set is a set of sectors that has knowledge about a mobile device and locates certain resources to provide its service. Active set members can be synchronous or asynchronous with respect to each other. The access terminal can switch its serving sector at any time among these active set member sectors. A synchronous subset of an active set consists of sectors that are synchronous with each other. Moreover, the subset is a maximal subset, e.g., all sectors that are synchronous with the sectors in this subset are contained in the subset. The different synchronous subsets ASSYNCH can be construed using the last instance of an ActiveSetAssignment message. Transmission from the access terminal to two different synchronous subsets of the active set is independent from each other. For example, CQI notifier 204 can be configured to notify or report a CQI to a synchronous subset of sectors independent of any other synchronous subsets.
In order to facilitate seamless inter-frequency handoff, the active set concept is extended to include members from two or more frequencies. Thus, the active set can include members from these two or more frequencies, thereby, minimizing the amount of time necessary to handoff between these two or more frequencies. The sector from the different frequencies may be synchronous or asynchronous with respect to each other. To facilitate adding another frequency sector into the active set, frequency reporter 206 can be configured to report other frequency sector pilot strength in a message specified in the active set management protocol. Frequency reporter 206 can further be configured to measure the other frequency sector pilot strength.
There are various ways that pilot strength can be reported. While in idle mode, a receiver is available for frequency measurements (assuming slotted operation in idle mode). To report the pilot strength in connected mode, either dual receivers 208 or a temporary tune-away mechanism 210 is utilized. Tune-away is a mechanism to measure other system frequencies by taking time away from a service. In some embodiments, two or more receiving means are available. One receiving means can be utilized to continue or establish a communication on a radio link while the other receiving means performs various functions to establish and perform the inter-frequency handoff. Yet, in other embodiments, dual receivers are not available, thus tune-away mechanism 208 is provided which will be discussed below with reference to
Inter-frequency handoff mechanism 212 can be configured to facilitate seamless handoffs that do not interrupt a radio link. Various parameters can be monitored to ensure that a particular handoff will not disrupt a radio link. These parameters can include but are not limited to the location of a user device and/or the location of one or more access networks to which the mobile device may handoff. If it is anticipated that a particular handoff will disrupt the radio link, the inter-frequency handoff should not be allowed, thus maintaining system 200 integrity.
In the following detailed description, various aspects and embodiments may be described in the context of time division duplexing (TDD) systems or frequency division duplexing (FDD) systems. While these inventive aspects may be well suited for use with the disclosed embodiments, those skilled in the art will readily appreciate that these inventive aspects are likewise applicable for use in various other systems. Accordingly, any reference to TDD and/or FDD is intended only to illustrate the inventive aspects, with the understanding that such inventive aspects have a wide range of applications.
Schedule 300, assumes that the first tune-away occurred during the SuperFrame defined by SuperFrameNumber, illustrated as 306, provided in the TuneAwayScheduleN. Furthermore, more refined time of first tune-away is StartSuperFrameOffset 308, which is defined in microseconds (μs) from the beginning of the SuperFrame identified before. The TuneAwayDuration 310 is the length, in microseconds, that the access terminal 304 tunes away. The TuneAwayPeriodicity 312 determines the time between the start of successive tune away in units of microseconds. Access terminal 304 can negotiate one or more tune away schedules. It is to be understood that more than one schedule may be need to monitor pages of one system, for example, and to tune-away for inter-frequency handoff.
If a tune-away period causes the access terminal 304 to miss the Systemlnfo block, the access terminal should maintain tune-away for the entire validity period of the SystemInfo block. The validity period is about two Superframes. If tune-away begins at some point other than the beginning of the particular frame (e.g., close to the beginning, middle, near the end, or any place there between), as indicated at 314, both the access network and the access terminal interpret this as beginning at the beginning of PHY frame, such as the beginning of frame 316, for example. In a similar manner, if tune-away ends at any point within the frame, the tune-away ends at the end of that frame. It should be noted that each sector can have a notion of Mobile Broadband Wireless Access (MBWA) time beginning with a first transmitted Superframe. Based upon this notion, a schedule can be created by the access terminal and a frame boundary that occurs just prior to the tune-away can be location (e.g., a position in time that corresponds to the frame boundary.
A StartSuperFrameNumber 406 is utilized to compute the tune-away cycles. A basic assumption is made that the first tune-away occurred during the StartSuperFrameNumber 406. A StartSuperFrameOffset field 408 is measured in units of microseconds. To compute the tune-away cycles, it should be assumed that the first tune-away begins at the StartSuperFrameOffset 408 time, after the beginning of Superframe number StartSuperFrameNumber 406.
The duration of a tune-away in units of microseconds is determined by field TuneAwayDuration 410. To determine the time between the start of successive tune-aways in units of microseconds, a TuneAwayPeriodicity field 412 is utilized. If a duration falls in a forward-link physical frame 0, both access network 402 and access terminal 404 will expire reverse-link assignment earlier. As illustrated, reverse-link PHY frame 0 should start earlier than forward-link PHY frame 0.
Methodologies relating to inter-frequency handoff are illustrated. While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance with the claimed subject matter, occur in different orders and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be utilized to implement a methodology in accordance with one or more embodiments.
The tune-away can include discontinuing monitoring forward link control channels associated with an access point and/or discontinuing communications to an access point over a reverse-link. In some embodiments, reporting the sector pilot strength information utilizes dual-receiver functionality. One receiver can be used for communication purposes and a second receiver can be used to measure the sector pilot strength.
The method continues, at 604, where a determination is made whether to initiate the measurements. If the determination, at 604, is “no,” the method 600 continues at 606 where monitoring of potential access networks to which to handoff to is continuously or periodically performed. If the determination at 604 is “yes,” the method 600 continues at 608. The mobile device tunes to at least a second access network having the same or a different frequency and a measurement is taken of the pilots in the neighbor list for the second access network, during tune-away. After taking the measurement, the mobile device can re-tune to the first access network and, at 610, a PilotReport message can be sent to the first access network. Sending the PilotReport message happens optionally if the threshold is reached for a measured pilot.
The method continues at 612 where an active set assignment message is sent. This message can be sent if the access network decides the pilot need to be added and/or removed from the active set. Once the pilot is in active set, the access terminal can switch among any active set pilots, at 614. Hand-off can now take place and the access terminal can switch between pilots provided the pilot is a member of the active set. The access terminal might handoff if the pilot strength of current serving sector falls below a certain threshold and/or pilot strength of other frequency sector goes above a certain threshold. Various mechanisms can be utilized to report the pilot strength information. For example, the mobile device can have dual receivers (or more than two receivers). One receiver can be utilized to continue communicating information over a radio link while the other receiver is utilized to report the pilot strength information.
In other embodiments, a mobile device may only have one receiver and a tune-away protocol is utilized. The tune-away protocol provides that the mobile device does not send or receive communication during a specific time having a predetermined length. During this tune-away period, the receiver can measure the pilot strength information and then return to a communication mode without interruption of such communication or radio link. This temporary tuning-away can be performed at substantially the same time as the mobile device is in a connected or active mode.
During time “a,” a SystemParameter message 710 is sent from AN(F1) 704 to access terminal 702. SystemParameter message 710 can include other frequency neighbor list. At time “b,” access terminal 702 calculates the time necessary for measuring the other frequency pilot. Access terminal 702 sends to AN(Fl) 704 an AttributeUpdate Request 712 that can include a TuneAway Attribute, during time “c”. Provided the AttributeUpdateRequest is accepted, during time “d” an AttributeUpdateAccept message 714 is transmitted. Access terminal 702 decides whether to initiate measurements during time period “e.” If the measurements are to be initiated, during time “f,” a TuneAwayRequest message 716 is transmitted to AN(F1) 704. AN(F1) 704 sends a TuneAwayResponse message to access terminal 702.
The beginning of the next tune-away period occurs at time “g.” At this time, the forward-link/reverse-link assignments expire. During the next time period “h”, access terminal 702 tunes to AN(F2), at 718, and measures its pilots. During the next time period “i” access terminal 702 re-tunes to AN(F1) 704 and resumes use of serving sector. If the measured Pilots cross a threshold, a PilotReport message 720 is sent during time “j” that may include other frequency pilots. At 722, AN(F1) 704 and AN(F2) communicate to request and/or respond regarding resources available for access terminal 702. If access network decides to add the other frequency sector AN(F2) 706 to the active set based on pilot report, it then sends in step, “k,” active set assignment message 724 to the access terminal 702 that includes the pilot for AN(F2) 706. AN(F2) 706 is added to active set. At this point the access network of AN(F2) 706 is part of the active set for access terminal 702. Initially, at time “a,” AN(FL) 704 was the only network included in the active set, thus after time “k” there are now two access networks on the active set. Access terminal 702 can now switch between AN(F1) 704 and AN(F2) 706, and any other networks included in the active set. Access terminal might decide to switch based on a pilot measure or other measurements that indicate a different network would provide optimal channel conditions.
With AN(F2) 706 is in the active set, access terminal 702 may decide to perform an inter-frequency handoff to AN(F2) 706. If access terminal 702 decides to perform the handoff, at 726, it contacts AN(F2) 706 with a short access to acquire timing information of AN(F2) 706. This occurs during time “m.” During time “n” access terminal 702 and AN(F2) 706 communicate and access terminal 702 receives services from AN(F2) 706, until another inter-frequency handoff occurs with an access network included in the active set. Other access networks are added to the active set and mobile device 702 can handoff to those networks in a substantially similar manner as that described above.
Processor 806 can be a processor dedicated to analyzing information received by receiver 802 and/or generating information for transmission by a transmitter 814. Processor 806 can be a processor that controls one or more components of user device 800, and/or a processor that analyzes information received by receiver 802, generates information for transmission by a transmitter 814, and controls one or more components of user device 800. User device 800 can include a frequency optimizer 808 that coordinates inter-frequency handoff and assignments. Frequency optimizer 808 may be incorporated into the processor 806. It is to be appreciated that frequency optimizer 808 can include optimization code that performs utility based analysis in connection with assigning user devices to different frequency sectors. The optimization code can utilize artificial intelligence based methods in connection with performing inference and/or probabilistic determinations and/or statistical-based determinations in connection with optimizing user device inter-frequency handoffs.
User device 800 can additionally comprise memory 810 that is operatively coupled to processor 806 and that stores information related to frequency and/or sector pilot strength information, lookup tables comprising information related thereto, and other suitable information related to inter-frequency handoff as described herein. Memory 810 can additionally store protocols associated with generating lookup tables, etc., such that user device 800 can employ stored protocols and/or algorithms to increase system capacity. It will be appreciated that the data store (e.g., memories) components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of illustration, and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The memory 810 of the subject systems and methods is intended to comprise, without being limited to, these and other suitable types of memory. The processor 806 is connected to a symbol modulator 812 and transmitter 814 that transmits the modulated signal.
Base station 902 further comprises an assigner 922, which can be a processor distinct from or integral to processor 914, and which can evaluate a pool of all user devices in a sector served by base station 904 and can assign user devices to particular frequency sectors based at least in part upon the location of the individual user devices, frequency transfer scheme, or the like.
As shown in
It is to be understood that the embodiments described herein may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. For a hardware implementation, the processing units within an access point or an access terminal may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
When the embodiments are implemented in software, firmware, middleware or microcode, program code or code segments, they may be stored in a machine-readable medium, such as a storage component. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, etc.
For a software implementation, the techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in memory units and executed by processors. The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor through various means as is known in the art.
What has been described above includes examples of one or more embodiments to enable a person skilled in the art to make or use the features, functions, operations, and embodiments disclosed herein. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the aforementioned embodiments, but one of ordinary skill in the art may recognize that many further combinations and permutations of various embodiments are possible. Accordingly, the described embodiments are intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.