I. Field
The present disclosure relates generally to communication, and more specifically to techniques for controlling use of resources at a wireless device.
II. Background
Wireless communication networks are widely deployed to provide various communication services such as voice, data, video, broadcast, messaging, and so on. These networks may be multiple-access networks capable of supporting communication for multiple users by sharing the available network resources. Examples of such multiple-access networks include Code Division Multiple Access (CDMA) networks, Time Division Multiple Access (TDMA) networks, Frequency Division Multiple Access (FDMA) networks, and Orthogonal Frequency Division Multiple Access (OFDMA) networks.
A wireless device (e.g., a cellular phone) may establish a data session with a first wireless network to obtain data service. The wireless device may be roaming and may enter the coverage of a second wireless network. The wireless device may attempt to hand off the data session from the first wireless network to the second wireless network, e.g., if the second wireless network has better data capability and is more preferred than the first wireless network. The handoff process may fail for various reasons. If the handoff fails, then the pending data session may be lost, and the wireless device may need to establish a new data session, which may be highly undesirable.
Techniques for arbitrating between multiple applications sharing common resources are described herein. These techniques may be able to avoid failures resulting from unavailability of resources. Whenever an application (e.g., a data application) desires to perform an operation (e.g., PPP resynchronization) that requires the use of a shared resource (e.g., an RF receiver), a determination is made as to whether that resource is available. The operation may be delayed while the resource is unavailable. The application may be assigned the resource if it is available or becomes available and may then perform the operation. The resource is locked while the operation is pending to avoid assignment to another application. This resource arbitration allows applications to complete their operations without encountering failures due to other applications taking over the resources.
Various aspects and embodiments of the invention are described in further detail below.
The features and nature of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or designs.
The resource arbitration techniques described herein may be used for various wireless communication networks. For example, these techniques may be used for CDMA networks, TDMA networks, FDMA networks, OFDMA networks, wireless local area networks (WLANs), and so on. A CDMA network may implement a radio technology such as cdma2000, Wideband-CDMA (W-CDMA), and so on. cdma2000 covers IS-2000, IS-95, and IS-856 standards. A Universal Mobile Telecommunication System (UMTS) network is a multiple-access network that implements W-CDMA. A TDMA network may implement a radio technology such as Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), and so on. These various radio technologies and standards are known in the art.
For clarity, the resource arbitration techniques are specifically described below for cdma2000. The cdma2000 family of standards is described in publicly available documents from an organization named “3rd Generation Partnership Project 2” (3GPP2). IS-2000 Releases 0 and A are commonly referred to as CDMA2000 1X (or simply, 1X), and IS-856 is commonly referred to as CDMA2000 1xEV-DO (or simply, 1xEV-DO).
Base station 120 couples to a Base Station Controller (BSC) 122 that provides coordination and control for base station 120 and other base stations coupled to BSC 122. BSC 122 further couples to (1) a Packet Control Function (PCF) 124 that supports data services and (2) a Mobile Switching Center (MSC) 126 that supports voice services. MSC 126 provides routing for circuit-switched calls and performs mobility management for wireless devices located within the area served by the MSC.
Access point 130 couples to a BSC 132 that provides coordination and control for access point 130 and other access points coupled to BSC 132. BSC 132 further couples to a PCF 134 that supports data services. PCFs 124 and 134 also couple to a Packet Data Serving Node (PDSN) 136 and control the transmission of packet data between BSCs 122 and 132, respectively, and PDSN 136. The area served by each PCF is called a packet zone and is identified by a unique packet zone identifier (PZID). PDSN 136 supports data services for wireless devices in the 1X and 1xEV-DO networks. For example, PDSN 136 may be responsible for the establishment, maintenance, and termination of Point-to-Point Protocol (PPP) sessions for the wireless devices and may also assign dynamic Internet Protocol (IP) addresses to these wireless devices. PDSN 136 may couple to other public and/or private data networks, e.g., the Internet.
A hybrid/multi-mode wireless device 110 may be located anywhere within the coverage of 1X network 102 and 1xEV-DO network 104. In general, a wireless device may be fixed or mobile and may communicate with zero, one, or multiple base stations/access points at any given moment, depending on whether the wireless device is active and whether the wireless device is in handoff. A wireless device may also be referred to as a mobile station (1X terminology), an access terminal (1xEV-DO terminology), a user equipment (UMTS terminology), a subscriber station, or some other terminology. A wireless device may be a cellular phone, a personal digital assistant (PDA), a modem card, a handheld device, or some other wireless communication unit or device.
1X network 102 may provide voice and data services, which have different characteristics. For example, voice services typically require a common grade of service (GoS) for all users as well as relatively stringent delays. In contrast, data services may be able to tolerate different GoS for different users and variable delays. To support both voice and data services, 1X network 102 may first allocate network resources to voice users and then allocate any remaining network resources to data users who are able to tolerate longer delays. 1xEV-DO network 104 is optimized for data services, which are typically characterized by long periods of silence punctuated by bursts of traffic. 1xEV-DO 104 network allocates most or all of the network resources to one user at any given moment, thereby greatly increasing the peak data rate for the user being served.
A service provider may deploy overlapping 1× and 1xEV-DO networks to provide enhanced services for its subscribers. For example, 1X network 102 may be deployed over a large geographic area to provide voice and data services, and 1xEV-DO 104 network may be deployed in areas where data usage is expected to be high.
Hybrid/multi-mode wireless device 110 may be capable of communicating with both 1X network 102 and 1xEV-DO network 104. Wireless device 110 is typically able to receive service from one network at any given moment depending on the location of the wireless device and the desired service. Wireless device 110 may also be able to receive signals from satellites 140, which may be part of the Global Positioning System (GPS), the European Galileo system, or the Russian Glonass system. Wireless device 110 may receive signals from base stations in 1X network 102, signals from access points in 1xEV-DO network 104, and/or signals from satellites. Wireless device 110 may then obtain pseudo-range measurements for the base stations, access points, and/or satellites based on the received signals. The pseudo-range measurements may be used to derive a position estimate for wireless device 110.
Wireless device 110 may establish a data session with 1X network 102 to receive data service. For data session establishment, wireless device 110 may exchange signaling with various entities to set up protocols in a protocol stack used for data exchanges. The protocol stack may include, e.g., Transmission Control Protocol (TCP) and/or User Datagram Protocol (UDP) at a transport layer, IP at a network layer, PPP and Radio Link Protocol (RLP) at a link layer, and 1X air-link interface at a physical layer. Each protocol is terminated at a particular entity, and wireless device 110 may exchange signaling with that entity to set up the protocol. For example, wireless device 110 may exchange signaling with PDSN 136 to establish a PPP session and perform mobile IP registration, if applicable. Wireless device 110 and PDSN 136 may thereafter exchange packet data via serving BSC 122 and serving PCF 124. PDSN 136 maintains the data session for wireless device 110 for up to a predetermined lifetime, which is typically long (e.g., hours or days). Serving PCF 124 and PDSN 136 each store pertinent state information for the data session so that packet data may be exchanged between wireless device 110 and PDSN 136 during the data session. The state information may include, e.g., information for an A10 connection between PCF 124 and PDSN 136 for wireless device 110.
Wireless device 110 may thereafter move into the coverage of 1xEV-DO network 104. Wireless device 110 may be configured such that 1xEV-DO network 104 is a preferred network for data services. In this case, wireless device 110 may initiate a hand-up from 1X network 102 to 1xEV-DO network 104. As part of the hand-up process, wireless device 110 attempts to resynchronize the PPP session with PDSN 136 so that the new serving PCF 134 has pertinent state information for the data session and the A10 connection is between PDSN 136 and PCF 134. The PPP resynchronization allows packet data to be exchanged between wireless device 110 and PDSN 136 via the new serving PCF 134.
When wireless device 110 attempts to hand-up the data session from 1X network 102 to 1xEV-DO network 104, the PPP session may fail due to contention for resources at wireless device 110. Such resources may include a radio frequency (RF) receiver and/or other hardware. If the resources required for PPP resynchronization are used by another application, then the PPP session may time out and fail, which may then cause undesirable behavior (e.g., closed connection) for an active data application.
For example, wireless device 110 may have a single RF receiver that may be used to receive 1X, 1xEV-DO or GPS. A GPS application may take command of the RF receiver during a GPS session and may tune the RF receiver to a different frequency for an extended period of time in order to make measurements for GPS satellites. If a data application desires to resynchronize PPP for 1xEV-DO network 104, and if the GPS application holds the RF receiver during this period, then the PPP resynchronization may fail, e.g., due to a timeout. The failure in the PPP session may cause the entire protocol stack to be torn down and the connection to be reset. This may have detrimental impact on a data application, e.g., if wireless device 110 has already set up a secure connection or is in the middle of a download operation.
In an aspect, resources that are shared by multiple applications are arbitrated to avoid failures resulting from unavailable resources. As used herein, an application may be a software program, a firmware program, a software, firmware and/or hardware module (e.g., for a protocol in a protocol stack), or any other entity that uses a resource that is shared with other applications. Whenever an application desires to perform an operation (e.g., PPP resynchronization) that requires the use of a shared resource, a determination is made as to whether that resource is available. The operation may be delayed while the resource is unavailable. The application may be assigned the resource if it is available or becomes available and may then perform the operation. The resource is locked while the operation is pending to avoid assignment to another application. This resource arbitration allows applications to complete their operations without encountering failures due to other applications taking over the resources.
In general, a request for an operation may be initiated by an application running at wireless device 110, a wireless network, a remote entity, or some other entity. For example, a PPP resync may be initiated by PDSN 136, a TCP close request may come from a remote TCP server, and so on. Each external request may be handled by a designated application running at wireless device 110. This application may then submit the request for the operation.
A determination is then made whether the data operation needs a resource that is shared with other applications (block 214). The shared resource may be an RF receiver, processing hardware, an input/output (I/O) interface, and so on. If the data operation does not need a resource that is shared, then the data operation can proceed (block 216), and the process thereafter terminates. However, if the data operation needs a resource that is shared, as determined in block 214, then a determination is made whether that resource is available (block 218). If the resource is not available, then the data operation is delayed until the resource becomes available (block 220). The data operation may be such that it is better to delay the operation than to attempt the operation and risk failure and its adverse consequences. If the resource is available (as determined in block 218) or becomes available (after block 220), then the resource is assigned to the application for the data operation (block 222) and is locked to prevent its use by another application (block 224). The data operation (e.g., PPP resynchronization or termination) is then performed using the resource (block 226). Upon completing the data operation, the resource is unlocked to allow other applications to use the resource (block 228). Another application that is waiting for the resource may be notified when the resource becomes available, e.g., so that the application can try to acquire the resource.
A determination is then made whether the non-data operation needs a resource that is shared with other applications (block 254). The shared resource may be an RF receiver, processing hardware, an I/O interface, and so on. If the non-data operation does not need a resource that is shared, then the non-data operation can proceed (block 256), and the process thereafter terminates. However, if the non-data operation needs a resource that is shared, then a determination is made whether that resource is available (block 258). If the resource is not available, then the non-data operation is delayed until the resource becomes available (block 260). If the resource is available or becomes available, then the resource is assigned to the application for the non-data operation (block 262) and is locked to prevent its use by another application (block 264). The non-data operation is then performed (e.g., a GPS session is initiated) using the resource (block 266). Upon completing the non-data operation, the resource is unlocked to allow other applications to use the resource (block 268).
In the embodiments shown in
The techniques described herein may be used to arbitrate any type of resource that may be shared. For example, the shared resources may be an RF receiver/transmitter, a hardware processing unit, a memory device, an I/O interface, an I/O device, and so on. Furthermore, the techniques may be used to arbitrate among any types of applications that may share resources. For example, these applications may be data applications, GPS applications, I/O applications, circuit switched applications (e.g., voice, fax-data, short message service (SMS)/short data burst (SDB), etc.), security protocols (e.g., DSP access for computationally intensive tasks), and so on.
Table 450 may include a row for each application that uses a shared resource. For each application, each resource used by that application may be marked (e.g., with an “X”) in a corresponding field of the column for that resource. In the example shown in
In the embodiments described above, the applications sharing common resources at wireless device 110 have equal priority. In these embodiments, the first application to request a given resource is assigned that resource, and all other applications wait until the first application completes its operation and the resource becomes available, as described above in
In other embodiments, the applications may have different priorities, and the resources may be assigned based on their availability as well as the priorities of the applications. For example, an application with a higher priority may be able to bump another application with a lower priority from a resource needed by the higher priority application. This avoids a scenario in which the higher priority application needs to wait an indefinite amount of time until the lower priority application completes its operation. The priority of each application may be static, e.g., determined by the user, the service provider, and so on. The priority of each application may also be dynamically set, e.g., based on the operation to be performed, the state of the application, and so on. For example, PPP resynchronization may be given higher priority if the data session is active (e.g., downloading) and may be given lower priority if the data session is dormant. The applications waiting for a given resource may be ranked based on their priorities. The resource may be automatically assigned to the waiting application with the highest priority when the resource becomes available. A given resource may also be assigned in other manners.
ASIC 510 includes various processing units that support communication with one or more wireless networks. In the embodiment shown in
Controller/processor 520 directs the operation of various processing units at wireless device 110. Controller/processor 520 may implement or direct processes 200, 250, 300 and/or 350 in
In general, wireless device 110 may include any number of integrated circuits, and each integrated circuit may include any number and any type of processing units. The number of processing units and the types of processing units at wireless device 110 are typically dependent on various factors such as the communication networks, applications, and functions supported by wireless device 110.
The resource arbitration techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. For a hardware implementation, the processing units used for resource arbitration may be implemented within one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
For a firmware and/or software implementation, the resource arbitration techniques may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The firmware and/or software codes may be stored in a memory (e.g., memory 516 or 530 in
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application claims priority to provisional U.S. Application Ser. No. 60/678,149, entitled “THROTTLING ALGORITHM FOR DATA SESSION WITH RESOURCE CONTENTION,” filed May 4, 2005, assigned to the assignee hereof and incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5506863 | Meidan et al. | Apr 1996 | A |
5629981 | Nerlikar | May 1997 | A |
6421538 | Byrne | Jul 2002 | B1 |
6738373 | Turner | May 2004 | B2 |
6813673 | Kotlowski et al. | Nov 2004 | B2 |
6826405 | Doviak et al. | Nov 2004 | B2 |
6886163 | Peacock et al. | Apr 2005 | B1 |
6907243 | Patel | Jun 2005 | B1 |
6954800 | Mallory | Oct 2005 | B2 |
7207041 | Elson et al. | Apr 2007 | B2 |
7215648 | Sullivan | May 2007 | B2 |
7289514 | Robotham et al. | Oct 2007 | B2 |
7406324 | McConnell | Jul 2008 | B1 |
7606938 | Roese et al. | Oct 2009 | B2 |
20020025832 | Durian et al. | Feb 2002 | A1 |
20020058499 | Ortiz | May 2002 | A1 |
20020067707 | Morales et al. | Jun 2002 | A1 |
20020087716 | Mustafa | Jul 2002 | A1 |
20020115407 | Thompson et al. | Aug 2002 | A1 |
20030014521 | Elson et al. | Jan 2003 | A1 |
20030039268 | Chong et al. | Feb 2003 | A1 |
20030055975 | Nelson et al. | Mar 2003 | A1 |
20030103524 | Hasegawa | Jun 2003 | A1 |
20030110202 | Shitahaku | Jun 2003 | A1 |
20030189951 | Bi et al. | Oct 2003 | A1 |
20040002974 | Kravitz et al. | Jan 2004 | A1 |
20040008660 | Lee | Jan 2004 | A1 |
20040039504 | Coffee et al. | Feb 2004 | A1 |
20040059821 | Tang et al. | Mar 2004 | A1 |
20040077356 | Krenik et al. | Apr 2004 | A1 |
20040078374 | Hamilton | Apr 2004 | A1 |
20040131125 | Sanderford et al. | Jul 2004 | A1 |
20040215773 | Strait et al. | Oct 2004 | A1 |
20040246891 | Kay et al. | Dec 2004 | A1 |
20040249571 | Blesener et al. | Dec 2004 | A1 |
20050002354 | Kelly et al. | Jan 2005 | A1 |
20050015493 | Anschutz et al. | Jan 2005 | A1 |
20050021713 | Dugan et al. | Jan 2005 | A1 |
20050044205 | Sankaranarayan et al. | Feb 2005 | A1 |
20050213555 | Eyuboglu et al. | Sep 2005 | A1 |
20060120397 | Kreiner et al. | Jun 2006 | A1 |
Number | Date | Country |
---|---|---|
2001069570 | Mar 2001 | JP |
2002064576 | Feb 2002 | JP |
2002310692 | Oct 2002 | JP |
2003078941 | Mar 2003 | JP |
2003526294 | Sep 2003 | JP |
2005109899 | Apr 2005 | JP |
WO2004008693 | Jan 2004 | WO |
WO 2004008693 | Jan 2004 | WO |
WO2005004354 | Jan 2005 | WO |
WO 2005004354 | Jan 2005 | WO |
Entry |
---|
Golla et al., “QoS mechanism for prioritized flow-control for network elements handling high-speed traffic”, 2003. |
Lin et al., “Reliability and Stability Survey on CAN-based Avionics Network for Small Aircraft”, 2005. |
International Search Report and Written Opinion—PCT/US2006/017298, International Search Authority—European Patent Office—Mar. 30, 2007. |
Tanenbaum A S : “Operating Systems : Design and Implementation, Passage” 1987, Operating Systems. Design and Implementation, Englewood Cliffs, Prentice Hall, US, pp. 116-123 , XP002258861 pp. 122,123. |
Tanenbaum A S: “Operating Systems: Design and Implementation” 1987, Operating Systems. Design and Implementation, Englewood Cliffs, Prentice Hall, US, pp. 51-76 , XP002023005 pp. 53-67. |
Number | Date | Country | |
---|---|---|---|
20070099640 A1 | May 2007 | US |
Number | Date | Country | |
---|---|---|---|
60678149 | May 2005 | US |