U.S. patent application number 12/901322 was filed with the patent office on 2011-05-19 for method and system for dynamically selecting and configuring virtual modems (vms) based on performance metrics in a multi-sim multi-standby communication device.
Invention is credited to Yaxin Cao, Zhijun Gong, Yuan Liu, Xiaoxin Qiu, Stephen Richards, Yongqian Wang.
Application Number | 20110117909 12/901322 |
Document ID | / |
Family ID | 44011672 |
Filed Date | 2011-05-19 |
United States Patent
Application |
20110117909 |
Kind Code |
A1 |
Cao; Yaxin ; et al. |
May 19, 2011 |
METHOD AND SYSTEM FOR DYNAMICALLY SELECTING AND CONFIGURING VIRTUAL
MODEMS (VMS) BASED ON PERFORMANCE METRICS IN A MULTI-SIM
MULTI-STANDBY COMMUNICATION DEVICE
Abstract
A multiple-subscriber identity module (multi-SIM) multi-standby
communication device comprises a single radio resource unit shared
by a plurality of virtual modems (VMs), each uniquely associated
with a single one of a plurality of SIM cards. The access to radio
resources in the single radio resource unit is controlled via a
virtual modem controller (VMC). The VMC collects performance
metrics such as requested service type and signal quality
associated with each of the VMs. A VM is selected based on the
collected performance metrics to perform a requested service. A
serving VM is switched among the VMs based on the collected
performance metrics. VM capabilities are dynamically configured
based on the collected performance metrics. According to the
collected performance metrics such as associated navigation
information and requested service type, one or more VMs may be
turned on or off, and certain VM capabilities may be enabled or
disabled to save resources.
Inventors: |
Cao; Yaxin; (Lauence Harbor,
NJ) ; Liu; Yuan; (Holmdel, NJ) ; Gong;
Zhijun; (Holmdel, NJ) ; Wang; Yongqian; (East
Brunswick, NJ) ; Qiu; Xiaoxin; (Basking Ridge,
NJ) ; Richards; Stephen; (Maidenhead, GB) |
Family ID: |
44011672 |
Appl. No.: |
12/901322 |
Filed: |
October 8, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61261922 |
Nov 17, 2009 |
|
|
|
Current U.S.
Class: |
455/423 |
Current CPC
Class: |
H04W 88/06 20130101;
H04W 8/183 20130101; H04W 48/18 20130101 |
Class at
Publication: |
455/423 |
International
Class: |
H04W 24/00 20090101
H04W024/00 |
Claims
1. A method for communication, the method comprising: in a
multiple-subscriber identity module (multi-SIM) multi-standby
communication device comprising a single radio resource unit that
is shared by a plurality of virtual modems: collecting performance
metrics associated with each of said plurality of virtual modems;
and selecting a virtual modem from said plurality of virtual modems
based on said collected performance metrics to perform a requested
service.
2. The method according to claim 1, wherein said collected
performance metrics comprises requested service type, network
availability, quality of service (QoS), signal strength and/or
navigation information.
3. The method according to claim 2, comprising switching to another
one of said plurality of virtual modems based on said collected
performance metrics to perform said requested service.
4. The method according to claim 2, comprising configuring
corresponding capabilities of said plurality of virtual modems
based on said collected performance metrics.
5. The method according to claim 4, comprising enabling or
disabling at least a portion of said corresponding capabilities of
said plurality of virtual modems based on said collected
performance metrics.
6. The method according to claim 5, comprising enabling or
disabling said at least portion of said corresponding capabilities
of said plurality of virtual modems based on navigation information
associated with said multi-SIM multi-standby communication
device.
7. The method according to claim 5, comprising enabling or
disabling said at least portion of said corresponding capabilities
of said plurality of virtual modems based on service type for said
requested service.
8. The method according to claim 4, comprising turning on or off
one or more of said plurality of virtual modems based on said
collected performance metrics.
9. The method according to claim 8, comprising turning on or off
said one or more of said plurality of virtual modems based on
navigation information associated with said multi-SIM multi-standby
communication device.
10. The method according to claim 8, comprising turning on or off
said one or more of said plurality of virtual modems based on
service type for said requested service.
11. A system for communication, the system comprising: one or more
processors and/or circuits for use in a multiple-subscriber
identity module (multi-SIM) multi-standby communication device
comprising a single radio resource unit that is shared by a
plurality of virtual modems, said one or more processors and/or
circuits being operable to: collect performance metrics associated
with each of said plurality of virtual modems; and select a virtual
modem from said plurality of virtual modems based on said collected
performance metrics to perform a requested service.
12. The system according to claim 11, wherein said collected
performance metrics comprises requested service type, network
availability, quality of service (QoS), signal strength and/or
navigation information.
13. The system according to claim 12, wherein said one or more
processors and/or circuits being operable to switch to another one
of said plurality of virtual modems based on said collected
performance metrics to perform said requested service.
14. The system according to claim 12, wherein said one or more
processors and/or circuits being operable to configure
corresponding capabilities of said plurality of virtual modems
based on said collected performance metrics.
15. The system according to claim 14, wherein said one or more
processors and/or circuits being operable to enable or disable at
least a portion of said corresponding capabilities of said
plurality of virtual modems based on said collected performance
metrics.
16. The system according to claim 15, wherein said one or more
processors and/or circuits being operable to enable or disable said
at least portion of said corresponding capabilities of said
plurality of virtual modems based on navigation information
associated with said multi-SIM multi-standby communication
device.
17. The system according to claim 15, wherein said one or more
processors and/or circuits being operable to enable or disable said
at least portion of said corresponding capabilities of said
plurality of virtual modems based on service type for said
requested service.
18. The system according to claim 14, wherein said one or more
processors and/or circuits being operable to turn on or off one or
more of said plurality of virtual modems based on said collected
performance metrics.
19. The system according to claim 18, wherein said one or more
processors and/or circuits being operable to turn on or off said
one or more of said plurality of virtual modems based on navigation
information associated with said multi-SIM multi-standby
communication device.
20. The system according to claim 18, wherein said one or more
processors and/or circuits being operable to turn on or off said
one or more of said plurality of virtual modems based on service
type for said requested service.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY
REFERENCE
[0001] This patent application makes reference to, claims priority
to and claims the benefit from U.S. Provisional Patent Application
Ser. No. 61/261,922 filed on Nov. 17, 2009.
[0002] This application also makes reference to: [0003] U.S.
application Ser. No. 12/816,782 filed on Jun. 16, 2010, [0004] U.S.
application Ser. No. 12/816,835 filed on Jun. 16, 2010, [0005] U.S.
application Ser. No. 12/821,673 filed on Jun. 23, 2010, [0006] U.S.
application Ser. No. 12/819,014 filed on Jun. 18, 2010, and [0007]
U.S. application Ser. No. 12/819,039 filed on Jun. 18, 2010.
[0008] Each of the above stated applications is hereby incorporated
herein by reference in its entirety.
FIELD OF THE INVENTION
[0009] Certain embodiments of the invention relate to communication
systems. More specifically, certain embodiments of the invention
relate to a method and system for task-level access arbitration
between virtual modems in a multi-SIM multi-standby communication
device.
BACKGROUND OF THE INVENTION
[0010] With the development of mobile communication systems, mobile
devices may utilize various mobile communication techniques such
as, for example, global system for mobile communications (GSM),
Universal Mobile Telecommunications System (UMTS), Long Term
Evolution (LTE) network and wireless local area network (WLAN) to
receive desired services. In instances where a mobile device
subscribes to a communication network, subscriber information may
be required to identify the mobile device to the network for
various network services such as authentication, accounting,
billing and security services. The subscriber information may be
stored in a subscriber identity module (SIM) card inserted in the
mobile device. A SIM card is a card or a chip installed in the
mobile device providing information to identify the subscriber
carrying the mobile device to networks.
[0011] Further limitations and disadvantages of conventional and
traditional approaches will become apparent to one of skill in the
art, through comparison of such systems with some aspects of the
present invention as set forth in the remainder of the present
application with reference to the drawings.
BRIEF SUMMARY OF THE INVENTION
[0012] A method and/or system for dynamically selecting and
configuring virtual modems (VMs) based on performance metrics in a
multi-SIM multi-standby communication device, substantially as
shown in and/or described in connection with at least one of the
figures, as set forth more completely in the claims.
[0013] These and other advantages, aspects and novel features of
the present invention, as well as details of an illustrated
embodiment thereof, will be more fully understood from the
following description and drawings.
BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS
[0014] FIG. 1 is a diagram illustrating an exemplary communication
system that is operable to dynamically select and configure virtual
modems (VMs) based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention.
[0015] FIG. 2 is a block diagram illustrating an exemplary
multi-SIM multi-standby communication device that is operable to
dynamically select and configure virtual modems (VMs) based on
performance metrics, in accordance with an embodiment of the
invention.
[0016] FIG. 3 is a block diagram illustrating an exemplary
multi-instance virtual modem approach to concurrently handle
multi-instance tasks on a multi-SIM multi-standby communication
device, in accordance with an embodiment of the invention.
[0017] FIG. 4 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to select a virtual modem
(VM) based on performance metrics to perform a requested service in
a multi-SIM multi-standby communication device, in accordance with
an embodiment of the invention.
[0018] FIG. 5 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to switch a serving
virtual modem (VM) based on performance metrics to perform a
requested service in a multi-SIM multi-standby communication
device, in accordance with an embodiment of the invention.
[0019] FIG. 6 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to configure virtual
modem (VM) capabilities based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention.
[0020] FIG. 7 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to turn on/off a virtual
modem (VM) based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0021] Certain embodiments of the invention may be found in a
method and system for dynamically selecting and configuring virtual
modems (VMs) based on performance metrics in a multi-SIM
multi-standby communication device. In various embodiments of the
invention, a multiple-subscriber identity module (multi-SIM)
multi-standby communication device comprises a single radio
resource unit providing layer 1, namely, physical layer (PHY), and
RF, for example, functionalities. A virtual modem architecture
(VMA) is deployed on the single radio resource unit to handle
operations in a multi-standby mode. The VMA comprises a plurality
of virtual modems (VMs), a virtual modem framework (VMF) and a
virtual modem controller (VMC). Each of the plurality of VMs is
uniquely associated with a single one of a plurality of SIM cards
that are coupled to the multi-SIM multi-standby communication
device. The VMC may be operable to manage and/or control the usage
of available radio resources in the single radio resource unit for
each of the plurality of VMs. For example, the VMC may collect
performance metrics associated with each of the plurality of VMs to
dynamically select a VM to perform a requested service. The
collected performance metrics may comprise, for example, requested
service type, network availability, quality of service (QoS),
signal strength and/or navigation related information such as
location, velocity and/or time. The VMC may switch a serving VM to
another one of the plurality of VMs based on the collected
performance metrics to continue the requested service. VM
capabilities such as 2 G/3 G service support may be dynamically
configured based on the collected performance metrics. The VMC may
be operable to enable or disable at least a portion of VM
capabilities based on the collected performance metrics. For
example, certain VM capabilities such as short messaging service
(SMS) and/or cell broadcasting service support may be enabled or
disabled based on requested service type and/or navigation
information associated with the multi-SIM multi-standby
communication device. The VMC may turn on or off one or more VMs
based on the collected performance metrics such as requested
service type and/or navigation information associated with the
multi-SIM multi-standby communication device.
[0022] FIG. 1 is a diagram illustrating an exemplary communication
system that is operable to dynamically select and configure virtual
modems (VMs) based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention. Referring to FIG. 1, there is shown a
communication system 100. The communication system 100 comprises a
plurality of mobile devices 110, of which multi-SIM multi-standby
communication devices 112-116 are illustrated, a UMTS network 130,
a Long Term Evolution (LTE) network 140, and a GSM network 150.
[0023] A multi-SIM multi-standby communication device such as the
multi-SIM multi-standby communication device 112 may comprise
suitable logic, circuitry, interfaces and/or code that are operable
to communicate various network services such as authentication,
billing and/or security with a plurality of communication access
networks such as, for example, the UMTS network 130, the LTE
network 140, and the GSM network 150. Multiple SIM cards such as
SIM cards 112a may be inserted in the multi-SIM multi-standby
communication device 112 whenever needed. The inserted SIM cards
112a may be coupled or connected with the multi-SIM multi-standby
communication device 112 through one or more SIM card sockets or
connections. The multi-SIM multi-standby communication device 112
may read or retrieve SIM identification information from the SIM
cards 112a via the one or more SIM card sockets or connections. The
retrieved SIM identification information may be stored within the
multi-SIM multi-standby communication device 112 to support various
network services such as authentication, billing and security
whenever needed. In this regard, the multi-SIM multi-standby
communication device 112 may be configured to activate the
retrieved SIM identification information either on one SIM card at
a time or on multiple SIM cards at the same time depending on
implementation and/or device configuration. In instances where the
retrieved SIM identification information is activated on one SIM
card at a time, the multi-SIM multi-standby communication device
112 may operate in a single-standby mode. In instances where the
retrieved SIM identification information is activated on two or
more SIM cards at the same time, the multi-SIM multi-standby
communication device 112 may operate in a multi-standby mode. In
this regard, the multi-SIM multi-standby communication device 112
in a multi-standby mode may be operable to support multiple
subscriptions at the same time.
[0024] A user of the multi-SIM multi-standby communication device
112 may be allowed to utilize multiple numbers, multiple different
service plans and/or network carriers at the same time whenever the
multi-SIM multi-standby communication device 112 is in a
multi-standby mode. Each of the multi-SIM multi-standby
communication devices 112-116 may utilize a single radio resource
unit for Layer 1, namely, physical layer (PHY), DSP and RF
functionalities. For example, the single radio resource units
112c-116c may comprise suitable logic, circuitry, interfaces and/or
code that may be integrated into the multi-SIM multi-standby
communication devices 112-116, respectively, to provide PHY, DSP
and RF functionalities for desired services.
[0025] U.S. application Ser. No. 12/816,782, which is filed on Jun.
16, 2010, provides detailed description of a Virtual Modem
Architecture (VMA) may be adopted over a single baseband and DSP
chipset to support a multi-standby mode on a multi-SIM
multi-standby communication device, and is hereby incorporated
herein by reference in its entirety.
[0026] The multi-SIM multi-standby communication device 112 may
deploy a VMA 112b over the single radio resource unit 112c to
support operations in a multi-standby mode. The VMA 112b may be
configured to concurrently handle multiple tasks or instances over
the single radio resource unit 112c. Each of tasks or instances is
associated with one of the multiple SIM cards 112a. A task may also
be called an instance of a process. An air interface protocol stack
and/or a Common Application Programming Interface (CAPI) module may
comprise multiple tasks. A collection of air interface protocol
stack tasks and/or CAPI tasks associated with a single SIM card
together with appropriate physical layer (PHY), DSP
functionalities, and/or RF functionalities supported by the single
radio resource unit 112c is referred to as a Virtual Modem (VM).
Each VM in the VMA may be assigned to handle instances related to
one of the multiple SIM cards 112a. A VM may be placed or may
operate in one of a plurality of VM states, comprising, for
example, an active state, an idle state or a suspended state. In an
active state, radio resources are assigned to the VM and a valid or
active connection between a VM and an associated cell is
established for data and/or voice communication. The VM may be
allowed to utilize radio resources available in the single radio
resource unit 112c to communicate or support services related to a
specific SIM card. In an idle state, no valid or active connection
between the VM and an associated cell is established; however,
associated registration information is retained in the associated
cell/network. In the idle state, the VM may be allowed to utilize
limited radio resources available in the single radio resource unit
112c to monitor paging events and to perform normal idle mode
activities such as cell selection/reselection. In a suspended
state, a VM may be totally suspended from using radio resources
available in the single radio resource unit 112c. Before entering
the suspended state, the VM may need to suspend or abort procedures
such as, for example, data transfer, operating band change and/or
manual public land mobile network (PLMN) search, which are
currently being executed on the VM.
[0027] In an exemplary embodiment of the invention, the VMA 112b
may be operable to collect performance metrics from a plurality of
associated VMs. The VMA 112b may select a VM based on the collected
performance metrics in order to perform a requested service.
Depending on system configuration, the collected performance
metrics may comprise, for example, user service request type,
network availability, serving cell/network condition, quality of
service (QoS), signal strength and/or navigation information
associated with the multi-SIM multi-standby communication device
112. For a given time instant, different VMs in the multi-SIM
multi-standby communication device 112 may camp on different cells
or networks. In instances where the user of the multi-SIM
multi-standby communication device 112 makes an emergency call, a
VM associated with the best or most optimal quality serving cell or
network may be selected to perform the emergency call. A serving
cell or network for a service is the cell or network that is
utilized to perform the service.
[0028] In an exemplary embodiment of the invention, the VMA 112b
may be operable to switch a serving VM for a requested service
based on the collected performance metrics. A VM that is utilized
to perform a specific service is referred to as a serving VM for
the specific service. For example, in instances where a serving VM
for a file download service is experiencing a high block error rate
(BLER), the VMA 112b may switch to another VM with a lower BLER to
continue the file download service. In other words, the VMA 112b
may utilize the VM with a lower BLER as a new serving VM to perform
the file download service.
[0029] In various exemplary embodiments of the invention, the VMA
112b may be operable to dynamically configure VM capabilities based
on the collected performance metrics. VM capabilities may comprise
supported services and/or technologies such as 2 G, 3 G and 2 G/3 G
utilized for multi-SIM multi-standby operation. For example, the
VMA 112b may configure or set a VM to start with a 2 G only mode to
support multi-SIM multi-standby operation at power up. In some
instances, high data rate services may be requested during
multi-SIM multi-standby operation. In this regard, the VMA 112b may
configure the VM to operate in a 2 G/3 G dual mode to support the
requested high data rate services. The VM may be configured to
return to the 2 G only mode if the requested high data rate
services are complete and/or no 3 G activities occur within a
certain time period. In addition, one or more VMs may be
dynamically turned on or off based on the collected performance
metrics such as navigation information and/or signal strength. For
example, the multi-SIM multi-standby communication device 112 may
be configured to automatically turn off a VM for a work phone and
turn on a VM for a personal phone whenever the user of multi-SIM
multi-standby communication device 112 is near the home. The
multi-SIM multi-standby communication device 112 may be configured
to turn on or off a VM when signal strength of an associated
network is above or below a threshold value.
[0030] The UMTS network 130 may comprise suitable devices,
circuitry, interfaces and/or code that are operable to provide data
and/or voice services to various UMTS capable communication devices
such as the multi-SIM multi-standby communication device 112 using
UMTS technology. In this regard, the UMTS network 130 may be
operable to authenticate users such as the multi-SIM multi-standby
communication devices 112-116 for UMTS access utilizing SIM cards.
A SIM card for UMTS is also known as universal subscribe identity
module (USIM). Only authorized users may access the UMTS network
130. The UMTS network 130 may be operable to check the validity of
USIM identification information on one or more USIM cards coupled
to, for example, the multi-SIM multi-standby communication device
112. The UMTS network 130 may determine whether the multi-standby
communication device 112 is allowed to access the UMTS network 130
for various network services such as, for example, authentication,
accounting and/or billing services.
[0031] The LTE network 140 may comprise suitable devices,
circuitry, interfaces and/or code that are operable to provide data
and/or voice services to various LTE capable communication devices
such as the multi-SIM multi-standby communication device 112 using
LTE technology. In this regard, the LTE network 140 may be operable
to authenticate users such as the multi-SIM multi-standby
communication devices 112-116 for LTE access utilizing SIM cards. A
SIM card for LTE is also known as Universal Integrated Circuit Card
(UICC). Only authorized users may access the LTE network 140. The
LTE network 140 may be operable to check the validity of UICC
identification information on one or more UICCs coupled to, for
example, the multi-SIM multi-standby communication device 112. The
LTE network 140 may determine whether the multi-SIM multi-standby
communication device 112 is allowed to access the LTE network 140
for various network services such as, for example, authentication,
accounting and/or billing services.
[0032] The GSM network 150 may comprise suitable devices,
circuitry, interfaces and/or code that are operable to provide data
and/or voice services to various GSM capable communication devices
such as the multi-SIM multi-standby communication device 112 using
GSM technology. In this regard, the GSM network 150 may be operable
to authenticate users such as the multi-SIM multi-standby
communication devices 112-116 for GSM access utilizing SIM cards.
Only authorized users may access the GSM network 150. The GSM
network 150 may be operable to check the validity of SIM
identification information on one or more SIM cards coupled to, for
example, the multi-SIM multi-standby communication device 112. The
GSM network 150 may determine whether the multi-SIM multi-standby
communication device 112 is allowed to access the GSM network 150
for various network services such as, for example, authentication,
accounting and/or billing services.
[0033] Although dynamically selecting and configuring one or more
modems based on corresponding performance metrics to perform a
requested service is illustrated in FIG. 1 for a VMA deployed on a
single radio resource unit to handle multi-standby operations in a
multi-SIM multi-standby communication device, the invention may not
be so limited. Accordingly, dynamically selecting and configuring
one or more modems based on corresponding performance metrics to
perform a requested service may also be applied to various non-VMAs
handling multi-standby operations in a multi-SIM multi-standby
communication device without departing from the spirit and scope of
various embodiments of the invention.
[0034] In an exemplary operation, a multi-SIM multi-standby
communication device such as the multi-SIM multi-standby
communication device 112 may be connected or coupled with multiple
SIM cards such as the SIM cards 112a through one or more SIM card
sockets or connections. SIM identification information on the
multiple SIM cards may be utilized on one SIM card at a time and/or
on multiple SIM cards at the same time depending on implementation.
SIM identification information on each of the multiple SIM cards
112a may be communicated to the multi-SIM multi-standby
communication device 112 through the one or more SIM card sockets.
The multi-SIM multi-standby communication device 112 may operate in
a single-standby mode or a multi-standby mode depending on device
configuration and/or user preferences. A user of the multi-SIM
multi-standby communication device 112 in a multi-standby mode may
be allowed to utilize SIM identification information associated
with each of the multiple SIM cards 112a to receive corresponding
services at the same time. In this regard, the multi-SIM
multi-standby communication device 112 may be operable to deploy
the VMA 112b over the single radio resource unit 112c to support a
multi-standby mode. The VMA 112b may be operable to receive,
through a VMF, services associated with the multiple SIM cards 112a
at the same time. Each of the VMs in the VMA 112b is assigned to
serve one of the multiple SIM cards 112a.
[0035] In some instances, different VMs in the multi-SIM
multi-standby communication device 112 may simultaneously camp on
different cells or networks. In this regard, the multi-SIM
multi-standby communication device 112 may track or collect
performance metrics associated with the different VMs. A VM may be
selected based on the collected performance metrics to perform a
requested service. For example, a VM with the lowest measured BLER
or highest signal level may be selected to perform a service such
as file transfer protocol (FTP) or download service. In addition, a
serving VM for the requested service may be dynamically switched
among the different VMs based on the collected performance metrics
such as QoS. For example, in instances where a voice call is
performed utilizing a VM (current serving VM) associated with a
higher time delay, the VMA 112b may switch to another VM (new
serving VM) associated with a lower time delay to continue the
voice call. Furthermore, VM capabilities may be dynamically
configured based on the collected performance metrics. For example,
certain functionalities such as 2 G or 3 G functionalities of a VM
may be enabled or disabled based on a requested service type such
as voice, video and multimedia, and/or navigation information
associated with the multi-SIM multi-standby communication device
112. In some instances, a particular VM is selected and utilized to
perform a requested service such as a streaming video service. The
VMA 112b may turn off one or more other VMs to avoid radio resource
contention and/or to reduce interferences so as to ensure the QoS
of the streaming video service.
[0036] FIG. 2 is a block diagram illustrating an exemplary
multi-SIM multi-standby communication device that is operable to
dynamically select and configure virtual modems (VMs) based on
performance metrics, in accordance with an embodiment of the
invention. Referring to FIG. 2, there is shown a multi-SIM
multi-standby communication device 200. The multi-SIM multi-standby
communication device 200 comprises a wireless radio unit 202, a
user interface unit 204, a processor unit 206, a SIM card
controller 208 comprising SIM card sockets 208a-208c, a plurality
of SIM cards, of which SIM cards 212-222 are illustrated, and a
memory 220. The SIM cards 212-222 are coupled to the multi-SIM
multi-standby communication device through the SIM card sockets
208a-208c. The memory 220 comprises a SIM database 220a.
[0037] The wireless radio unit 202 may comprise suitable logic,
circuitry, interfaces and/or code that may be operable to
communicate radio frequency signals with various communication
networks such as, for example, the LTE network 140 and the GSM
network 150. SIM identification information that is retrieved from
one or more of the SIM cards 222-228 may be communicated via the
wireless radio unit 202 to identify the multi-SIM multi-standby
communication device 200 to network for desired network services
such as accounting/billing services.
[0038] The user interface unit 204 may comprise suitable logic,
circuitry, interfaces and/or code that may enable a user to
interact with the multi-SIM multi-standby communication device 200.
For example, the user interface unit 204 may be operable to present
the user with information on SIM cards available to the multi-SIM
multi-standby communication device 200. The user interface unit 204
may allow the user to enter a preferred SIM card selection and/or a
desired application selection.
[0039] The processor unit 206 may comprise suitable logic,
circuitry, interfaces and/or code that may be operable to manage
and/or control operations of device components such as, for
example, the wireless radio unit 202, the user interface unit 204,
the SIM database 220a, and/or the SIM card controller 208. For
example, the processor unit 206 may be operable to coordinate
and/or control operations of the SIM card controller 208 in
response to a SIM card selection from the user interface unit 204.
The processor unit 206 may also be operable to run a specific
application via the application processor based on an application
selection from the user interface unit 204.
[0040] The processor unit 206 may be operable to select one or more
SIM cards based on user preferences and/or device configuration.
The processor unit 206 may communicate the SIM card selection
information to the SIM card controller 208 so that the selected one
or more SIM cards may be connected to the SIM card sockets
208a-208c, which are directly coupled with the processor unit 206.
The selected SIM cards may be actively connected to the SIM card
controller 208 to enable downloading of corresponding SIM
identification information into the SIM database 220a of the
multi-SIM multi-standby communication device 200. Notwithstanding,
in accordance with various embodiments of the invention, after SIM
identification information is downloaded from each of the selected
SIM cards such as the SIM cards 212-222 into the SIM database 220a
of the multi-SIM multi-standby communication device 200, the SIM
identification information corresponding to one or more of the
plurality of SIM cards may be in an active state or in a standby
state in the SIM database 220a. More specifically, at a given time
instant, SIM identification information actually being utilized or
applied to access corresponding services by the multi-SIM
multi-standby communication device 200 is in an active state,
otherwise, in a standby state.
[0041] In instances where the multi-SIM multi-standby communication
device 200 is configured to operate in a single-standby mode, the
processor unit 206 may communicate with the SIM database 220a to
activate the stored SIM identification information related to one
SIM card at a time. In other words, the multi-SIM multi-standby
communication device 200, in a single-standby mode, may be operable
to utilize SIM identification information activated for a single
SIM card at a time. In instances where the multi-SIM multi-standby
communication device 200 is configured to operate in a
multi-standby mode, the processor unit 206 may be operable to
communicate with the SIM database 220a to activate the stored SIM
identification information corresponding to multiple SIM cards such
as the SIM cards 212-222 at the same time. Specifically, the
multi-SIM multi-standby communication device 200, in a
multi-standby mode, may be operable to utilize SIM identification
information activated for multiple SIM cards at the same time. In
this regard, the processor unit 206 may be operable to allow a user
of the multi-SIM multi-standby communication device 200 to utilize
SIM identification information associated with each of the SIM
cards 212-222 to receive corresponding services at the same time.
For example, the user may therefore be allowed to utilize multiple
numbers, multiple different service plans and/or network carriers
associated with each of the multiple SIM cards 212-222 at the same
time on the multi-SIM multi-standby communication device 200. The
processor unit 206 comprises a communication processor 206a and an
application processor 206b.
[0042] The communication processor 206a may comprise suitable
logic, circuitry, interfaces and/or code that may be operable to
utilize a Virtual Modem Architecture (VMA) 206c over a single radio
resource unit such as the single radio resource unit 112c
associated with the wireless radio unit 202 to support a
multi-standby mode. The VMA 206c is a multi-SIM multi-standby
platform and comprises a virtual modem controller (VMC), a Virtual
Model Framework (VMF) and a plurality of VMs. Each VM in the VMA
206c is assigned or related to one of the multiple SIM cards
212-222. For a given time instant, a VM may operate in one of a
plurality of VM states, namely, an active state, an idle state or a
suspended state. To avoid radio resource conflicts, at most one of
the VMs in the VMA 206c may be in an active state to transmit
and/or receive traffic related to a corresponding SIM card. One or
more VMs may be in an idle state at the same time depending on
radio resources available in the single radio resource unit 112c
for sharing. One or more VMs may be in a suspended state at the
same time. Radio resources available in the single radio resource
unit 112c may be shared among the VMs.
[0043] In various exemplary embodiments of the invention, the VMA
206c may be operable to select a VM based on performance metrics
such as BLER and time delay for a requested service. The VMA 206c
may utilize the selected VM as a serving VM to perform the
requested service. In this regard, the VMA 206c may track or
collect performance metrics associated with the serving VM. The VMA
206c may switch the serving VM for the requested service among
associated VMs based on the collected performance metrics. For
example, in some instances, an increasing interference level is
identified on the serving VM for the requested service. The VMA
206c may switch to another VM (new serving VM) with lower
interference level to perform the requested service. One or more VM
functions and/or VMs may be turned on or off based on the collected
performance metrics to save resources such as power and bandwidth.
For example, a VM may be turned on or off if the signal strength of
an associated network is above or below certain levels,
respectively. The VMA 206c may communicate traffic handled by the
serving VM with the application processor 206b to support desired
applications.
[0044] The application processor 206b may comprise suitable logic,
circuitry, interfaces and/or code that may be operable to run or
execute various applications such as video and/or audio multimedia
applications based on traffic received by the communication
processor 206a. The application processor 206b may present
applications to users through the user interface unit 204.
[0045] The SIM card controller 208 may comprise suitable logic,
circuitry, interfaces and/or code that may be operable to manage
and/or control connections from multiple SIM cards such as the SIM
cards 212-222 to the SIM card sockets 208a-208c, which are directly
coupled with the processor unit 206. In this regard, the SIM card
controller 208 may be operable to establish connections between the
SIM cards 212-222 and the processor unit 206. The SIM card
controller 208 may be configured to switch SIM card connection from
one to another as needed without re-booting the multi-SIM
multi-standby communication device 200.
[0046] A SIM card such as the SIM card 214 may comprise suitable
logic, circuitry, interfaces and/or code that may be operable to
store subscriber personal identification information such as, for
example, operator network, phone number, activated services,
billing, and credit information. The SIM card 214 may also store
the user's identity for gaining access to the network and receiving
calls, and user's personal information such as phone directory and
received SMS messages. The SIM card 214 may be implemented as a
small printed circuit board. The SIM card 214 may be inserted in a
mobile device such as the multi-SIM multi-standby communication
device 200 in order for the multi-SIM multi-standby communication
device 200 to properly access a corresponding network. The SIM card
214 may be connected to the multi-SIM multi-standby communication
device 200 via the SIM card controller 208.
[0047] The memory 220 may comprise suitable logic, circuitry,
interfaces and/or code that may be operable to store information
such as executable instructions and data that may be utilized by
the processor unit 206 and/or other device components such as, for
example, the SIM database 208a. The SIM database 208a may comprise
suitable logic, circuitry, interfaces and/or code that may be
operable to record and/or store SIM identification information
retrieved from one or more SIM cards such as the SIM cards 212-222.
The stored SIM identification information may be in an active state
or in a standby state within the SIM database 220a. For a given
time instant, only SIM identification information in an active
state may be actually utilized or applied by the multi-SIM
multi-standby communication device 200 to support desired network
services such as accounting/billing services. Depending on device
configuration, for a given time instant, SIM identification
information in an active state may correspond to one or more SIM
cards. The memory 220 may comprise RAM, ROM, low latency
nonvolatile memory such as flash memory and/or other suitable
electronic data storage.
[0048] In an exemplary operation, a multi-SIM multi-standby
communication device such as the multi-SIM multi-standby
communication device 200 may be connected or coupled to multiple
SIM cards such as the SIM cards 212-222 through the SIM card
controller 208. The processor unit 206 may be operable to retrieve
SIM identification information from the SIM cards 212-222. The
retrieved SIM identification information may be stored in the SIM
database 220a. In instances where the multi-SIM multi-standby
communication device 200 is configured to operate in a
multi-standby mode, the communication processor 206a may
communicate with the SIM database 220a to activate the stored SIM
identification information corresponding to multiple SIM cards such
as the SIM cards 212-222 at the same time. More specifically, the
multi-SIM multi-standby communication device 200, in a
multi-standby mode, may utilize SIM identification information
activated for the SIM cards 212-222 at the same time. A user of the
multi-SIM multi-standby communication device 200 may therefore be
allowed to receive services related to the SIM cards 212-222 at the
same time. The communication processor 206a may run the VMA 206c
over the single radio resource unit 112c to handle traffic through
the wireless radio unit 202.
[0049] Radio resources available in the single radio resource unit
112c may be shared among the VMs in the VMA 206c. The shared radio
resources in the single radio resource unit 112c may allow the VMs
in the multi-SIM multi-standby communication device 200 may camp on
different cells or networks. The VMA 206c may monitor and collect
performance metrics associated with the different VMs. Upon the
receipt of a service request, the VMA 206c may be operable to
select a VM from the different VMs based on the collected
performance metrics such as service request type and/or QoS. The
selected VM may be utilized, as a serving VM, to perform a
requested service. The VMA 206c may track and collect performance
metrics associated with the serving VM. The serving VM may be
dynamically switched for the requested service based on the
collected performance metrics such as time delay and/or signal
strength. VM capabilities such as 2 G or 3 G service support may be
configured based on the collected performance metrics such as a
requested service type, signal strength and/or navigation
information. One or more VM functions and/or VMs may turned on or
off based on the collected performance metrics such as associated
navigation information to save power and/or bandwidth. Traffic
associated with the requested service may be communicated with the
application processor 206b. The application processor 206b may run
or execute various applications such as video and/or audio
multimedia applications according to the communicated traffic and
present it to users via the user interface unit 204.
[0050] FIG. 3 is a block diagram illustrating an exemplary
multi-instance virtual modem approach to concurrently handle
multi-instance tasks on a multi-SIM multi-standby communication
device, in accordance with an embodiment of the invention.
Referring to FIG. 3, there is shown virtual modem architecture 300
utilized on the multi-SIM multi-standby communication device 200,
for example. The virtual modem architecture 300 comprises
man-machine interface (MMI) module 310, a SIMIO module 320, a
virtual modem framework (VMF) 330, a virtual modem controller (VMC)
360, and a single radio resource unit 370.
[0051] The MMI module 310 may comprise suitable logic, interfaces
and/or code that may be operable to provide interaction between a
user of the multi-SIM multi-standby communication device 200 and
one or more applications that are executed on the multi-SIM
multi-standby communication device 200.
[0052] The SIMIO module 320 may comprise suitable logic, interfaces
and/or code that may be operable to manage access to SIM cards such
as the SIM cards 212-222.
[0053] The VMF 330 may comprise suitable logic, interfaces and/or
code that may be operable to provide an enhancement to the Real
Time Operating System. The VMF 330 may be deployed or implemented
on the communications processor 206a.
[0054] A VM such as the VM 340 refers to an instance of an air
interface protocol stack and/or its interface to the user, namely,
a Common Application Programming Interface (CAPI), together with a
single set of radio resources such as radio resources available in
the single radio resource unit 370. A VM such as the VM 340 may
comprise suitable logic, interfaces and/or code that may be
operable to handle instances, namely, CAPI tasks and/or air
interface protocol stack instances, associated with one of the SIM
cards 212-222. Different VMs such as the VM 340 and the VM 350 may
be configured to handle instances corresponding to two different
SIM cards. For example, the VM 340 may handle instances related to
the SIM card 212, while the VM 350 may be assigned to handle
instances related to the SIM card 214. The plurality of VMs such as
VMs 340-350 may be configured to share the same set of radio
resources, namely, available radio resources in the single radio
resource unit 370. In this regard, multiple copies of global and
static data may be maintained to be utilized by the VMs 340-350,
respectively. A VM such as the VM 340 may operate independently
from other VMs and may be in one of the plurality of VM states,
namely, an active state, an idle state and a suspended state. The
VM 340 may comprise a CAPI task unit 342, a VCC 344, an air
interface protocol stack 346 together with the single radio
resource unit 370. CAPI and/or stack operations within the VM 340
may be managed via the VCC 344.
[0055] The CAPI task unit 342 may comprise suitable logic,
interfaces and/or code that may be operable to process MMI or user
requests. The CAPI task unit 342 comprises CAPI tasks related to a
specific SIM card such as the SIM card 212.
[0056] A VCC such as the VCC 344 may comprise suitable logic,
interfaces and/or code that may be operable to perform admission
control with the VMC 360 for the CAPI module 315 at the primitive
levels. The VCC 344 is a dual-instance module for managing its own
task or instance, and queuing messages. The VCC 344 may be operable
to interact with the VMC 360 for radio resource requests associated
with CAPI tasks in the CAPI task unit 342. The VCC 344 may
communicate with the air interface protocol stack 346 to coordinate
stack operations corresponding to the CAPI tasks in the CAPI task
unit 342.
[0057] An air interface protocol stack such as the air interface
protocol stack 346 may comprise suitable logic, interfaces and/or
code that may be operable to provide air interface protocols to
support various signaling operations. For example, in 3GPP
standard, the stack 346 may comprise Non-Access-Stratum (NAS)
protocols and Access-Stratum (AS) protocols to handle bearer level
signaling and Radio Resource Control (RRC) signaling,
respectively.
[0058] The VMC 360 may comprise suitable logic, interfaces and/or
code that may be operable to coordinate requests for the usage of
radio resources available in the single radio resource unit 370
among multiple associated VMs such as the VM 340 and the VM 350. In
this regard, the VMC 360 may be operable to resolve contention for
radio resources by transitioning the VM 340 and the VM 350 between
the three VM states. For example, the VMC 360 may be operable to
ensure that at most one of the VM 340 and the VM 350 is in the
active state for a given time instant. In this regard, the VMC 360
may suspend, for example, the VM 350 from using or sharing radio
resources available in the single radio resource unit 370 in order
to allow an uninterrupted radio resource usage by the VM 340. The
suspended VM 350 may be resumed whenever radio resources in the
single radio resource unit 370 become available for sharing by the
VM 350 to continue idle mode activities on the VM 350.
[0059] The VMC 360 may be operable to coordinate the usage of the
radio resources to support concurrent procedures initiated by the
VM 340 and the VM 350. For example, the VM 340 and the VM 350 each
may be granted by the VMC 360 a portion of radio resources
available in the single radio resource unit 370 to concurrently
monitor paging events and/or to concurrently perform idle mode
procedures or activities such as, for example, cell
selection/reselection by sharing the single radio resource unit
370. In this regard, the VMC 360 may be operable to perform access
arbitration at the task level in order to control concurrent access
to the shared radio resources from multiple VM tasks of the VM 340
and/or the VM 350. For example, for each of intended VM tasks, the
VMC 360 may be operable to tabulate activities associated with an
intended VM task and on-going activities associated with one or
more of plurality of VMs for a conflict check.
[0060] In instances where one or more perceived or actual conflicts
occur, the VMC 360 may be operable to perform access arbitration on
the intended VM task based on VM task priority information,
activity status of one or more of plurality of VMs and/or radio
resources available in the single radio resource unit 370. The
access for the intended VM task may be immediately accepted,
accepted with a delay or rejected. In instances where the access
for the intended VM task is delayed, the VMC 360 may be operable to
determine what time instants the access for the intended VM task
may be accepted or granted. A VM associated with the VM task may
re-send an admission request to the VMC 360 for the same VM task at
the determined one or more time instants. After the access for the
VM task is accepted, the VMC 360 may be operable to assign radio
resources to the VM task to proceed with associated activities such
as receiving traffic related to a corresponding SIM card such as
the SIM card 212.
[0061] The single radio resource unit 370 may comprise suitable
logic, interfaces and/or code that may be operable to provide PHY
and RF support.
[0062] In an exemplary operation, the MMI module 310 may interact
between a user of the multi-SIM multi-standby communication device
200 and applications that are related to the SIM card 212 and the
SIM card 214, for example, inserted into the SIM card controller
208. Tasks or instances related to the SIM card 212 and the SIM
card 214 may be handled by the VM 340 and the VM 350, respectively.
The VMC 360 may coordinate the usage of radio resources available
in the single radio resource unit 370 for sharing by the VM 340 and
the VM 350. In this regard, the VMC 360 may be operable to control
the access to radio resources available in the single radio
resource unit 370 by performing access arbitration at each VM task.
More specifically, the VMC 360 may manage or control the concurrent
accesses to the shared radio resources from multiple VM tasks of
the VM 340 and/or the VM 350. For an intended VM task, the VMC 360
may be operable to compare activities associated with the intended
VM task with on-going activities associated with one or more of the
plurality of VMs for a conflict check. In instances where one or
more conflicts occur, the VMC 360 may arbitrate the access for the
intended VM task based on VM task priority information, activity
status of other VMs and radio resources available in the single
radio resource unit 370. The intended VM task may be immediately
accepted, accepted with a delay or rejected. With a delayed access
for the intended VM task, the VMC 360 may be operable to provide
information on when the intended VM task should be accepted to a
corresponding VM such as the VM 340. The VM 340 may repeat the
admission request for the same VM task at corresponding time
instants. After the access for the intended VM task is accepted,
the VMC 360 may be operable to assign radio resources to the
intended VM task to proceed with associated activities such as
receiving traffic related to a corresponding SIM card such as the
SIM card 212.
[0063] FIG. 4 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to select a virtual modem
(VM) based on performance metrics to perform a requested service in
a multi-SIM multi-standby communication device, in accordance with
an embodiment of the invention. Referring to FIG. 4, the exemplary
steps may start with step 402. In step 402, multiple SIM cards such
as the SIM cards 212-222 may be inserted into the SIM card
controller 208 to support multi-SIM multi-standby operation. In
step 404, the VMC 360 may collect performance metrics for each of
the VMs associated with the inserted SIM cards 212-222. In step
406, it may be determined whether a service request is received. In
instances where a service request is received, then in step 408,
the VMC 360 may be operable to select a VM based on the collected
performance metrics. In this regard, the selected VM may correspond
to the best or most optimal performance metrics. In step 410, the
selected VM may be utilized to perform the requested service.
[0064] In step 406, in instances where a service request is not
received, then control passes to step 404.
[0065] FIG. 5 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to switch a serving
virtual modem (VM) based on performance metrics to perform a
requested service in a multi-SIM multi-standby communication
device, in accordance with an embodiment of the invention.
Referring to FIG. 5, the exemplary steps may start with step 502.
In step 502, multiple SIM cards such as the SIM cards 212-222 may
be inserted into the SIM card controller 208 to support multi-SIM
multi-standby operation. In step 504, the VMC 360 may select one of
VMs associated with the inserted SIM cards 212-222, as a serving
VM, for the requested service. In step 506, the selected serving VM
may be utilized to perform the requested service. In step 508, the
VMC 360 may track and collect performance metrics associated with
the serving VM and other VMs. In step 510, it may be determined
whether there are one or more VMs associated with better
performance metrics. In instances where there are one or more VMs
associated with better performance metrics, then in step 512, the
VMC 360 may be operable to select a VM corresponding to the best or
most optimal performance metrics as a new serving VM to serve the
requested service. The exemplary steps may return to step 506.
[0066] In step 510, in instances where there are no other VMs
associated with better performance metrics, then control passes to
step 506.
[0067] FIG. 6 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to configure virtual
modem (VM) capabilities based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention. Referring to FIG. 6, the exemplary
steps may start with step 602. In step 602, multiple SIM cards such
as the SIM cards 212-222 may be inserted into the SIM card
controller 208 to support multi-SIM multi-standby operation. In
step 604, the VMC 360 may track and collect performance metrics for
VMs associated with the inserted SIM cards 212-222. In step 606,
the VMC 360 may configure VM capabilities of the VMs based on the
collected performance metrics.
[0068] FIG. 7 is a flow chart illustrating exemplary steps that may
be utilized by a virtual modem controller to turn on/off a virtual
modem (VM) based on performance metrics in a multi-SIM
multi-standby communication device, in accordance with an
embodiment of the invention. Referring to FIG. 7, the exemplary
steps may start with step 702. In step 702, multiple SIM cards such
as the SIM cards 212-222 may be inserted into the SIM card
controller 208 to support multi-SIM multi-standby operation. In
step 704, the VMC 360 may track and collect performance metrics for
VMs associated with the inserted SIM cards 212-222. In step 706,
the VMC 360 may turn on or off one or more of the VMs and/or
certain VM functionalities based on the collected performance
metrics.
[0069] In various exemplary aspects of the method and system for
dynamically selecting and configuring virtual modems (VMs) based on
performance metrics in a multi-SIM multi-standby communication
device, a multi-SIM and multi-standby communication device such as
the multi-SIM multi-standby communication device 200 comprises a
single radio resource unit such as the single radio resource unit
370. The single radio resource unit 370 is shared by a plurality of
VMs such as the VM 340 and the VM 350 in the VMF 330. Each of the
VMs is uniquely associated with a single one of a plurality of SIM
cards such as the SIM cards 212-222 that are coupled to the
multi-SIM multi-standby communication device 200 through the SIM
card controller 208. Operations of the VMs in the VMA 330 may be
managed or coordinated by the VMC 360. The VMC 360 may also be
operable to control the access, for each VM, to radio resources
available in the single radio resource unit 370.
[0070] The VMC 360 may track and collect performance metrics
associated with each of the plurality of VMs. The VMC 360 may
select a VM such as the VM 340 based on the collected performance
metrics to perform a requested service. The collected performance
metrics may comprise, for example, a requested service type,
network availability, quality of service (QoS), signal strength
and/or navigation information. The VMC 360 may switch a serving VM
among the plurality of VMs based on the collected performance
metrics to perform the requested service. VM capabilities may be
dynamically configured based on the collected performance metrics.
The VMC 360 may be operable to enable or disable at least a portion
of VM capabilities based on the collected performance metrics. For
example, the VMC 360 may enable or disable VM capabilities such as
short messaging service (SMS) and/or cell broadcasting service
support based on navigation information such as, for example,
location, velocity and/or time, associated with the multi-SIM
multi-standby communication device 200. In another example, the VMC
360 may enable or disable VM capabilities such as 3 G support based
on a requested service type. In addition, the VMC 360 may be
operable to turn on or off one or more VMs based on the collected
performance metrics such as a requested service type. The VMC 360
may turn on or off certain VMs based on navigation information such
as location associated with the multi-SIM multi-standby
communication device 200. For example, assume that the VM 340 may
be utilized to serve a home phone and the VM 350 may be utilized to
serve a work phone. The VMC 360 may turn on the VM 340 and turn off
the VM 350 whenever the user is near home. The VMC 360 may set the
multi-SIM multi-standby communication device 200 to turn off the VM
340 and turn on the VM 350 whenever the user is near the office,
and to turn on the VM 340 and turn off the VM 350 whenever the user
is near home.
[0071] Other embodiments of the invention may provide a
non-transitory computer readable medium and/or storage medium,
and/or a non-transitory machine readable medium and/or storage
medium, having stored thereon, a machine code and/or a computer
program having at least one code section executable by a machine
and/or a computer, thereby causing the machine and/or computer to
perform the steps as described herein for dynamically selecting and
configuring virtual modems (VMs) based on performance metrics in a
multi-SIM multi-standby communication device.
[0072] Accordingly, the present invention may be realized in
hardware, software, or a combination of hardware and software. The
present invention may be realized in a centralized fashion in at
least one computer system, or in a distributed fashion where
different elements are spread across several interconnected
computer systems. Any kind of computer system or other apparatus
adapted for carrying out the methods described herein is suited. A
typical combination of hardware and software may be a
general-purpose computer system with a computer program that, when
being loaded and executed, controls the computer system such that
it carries out the methods described herein.
[0073] The present invention may also be embedded in a computer
program product, which comprises all the features enabling the
implementation of the methods described herein, and which when
loaded in a computer system is able to carry out these methods.
Computer program in the present context means any expression, in
any language, code or notation, of a set of instructions intended
to cause a system having an information processing capability to
perform a particular function either directly or after either or
both of the following: a) conversion to another language, code or
notation; b) reproduction in a different material form.
[0074] While the present invention has been described with
reference to certain embodiments, it will be understood by those
skilled in the art that various changes may be made and equivalents
may be substituted without departing from the scope of the present
invention. In addition, many modifications may be made to adapt a
particular situation or material to the teachings of the present
invention without departing from its scope. Therefore, it is
intended that the present invention not be limited to the
particular embodiment disclosed, but that the present invention
will include all embodiments falling within the scope of the
appended claims.
* * * * *