This disclosure relates generally to software defined radios, and more particularly to a method and apparatus for enabling efficient RF hardware sharing in multi-radio devices.
In software defined radios (SDR), the Radio Frequency (RF) hardware (HW) is typically used as a radio transceiver for variable radio standards or systems, such as GSM (global system for mobile communication), WCDMA (wideband code division multiple access), WLAN (wireless local area network), BT (Bluetooth), DVB-H (digital video broadcast for handheld devices), WiMax (wireless broadband), GPS (global positioning system), and Galileo. This raises a need for general-purpose, configurable RF hardware blocks that are capable of operating with the widely distinct requirements of different radio standards. This need for a wide range of configurability and tunability options increases the number of different configuration options which have to be modified when configuration settings are changed. This means a greater number of configuration settings that are required to reconfigure the shared RF HW blocks for the different radio modes.
On the other hand, some devices use multiple radios capable of simultaneous operation. To cost-effectively implement this kind of ‘multiradio’ device, the RF HW has to be shared between simultaneously active radios whenever possible. To make this sharing feasible, fast RF HW configuration switch times from one radio mode to another radio mode (i.e. radio context switch time) is required. However, the radio context switch time typically increases with an increasing number of configuration settings in the SDR device.
However,
In practice, radio context switching is accomplished by writing new configuration values to the RF HW control registers. Unfortunately, with general purpose RF HW blocks appearing in SDR devices, the amount of control data is large and can typically involve modifying up to several hundred configuration settings. This can be a time consuming process and can make writing to the configuration register the critical factor in the radio context switch time. To make matters worse, future designs are incorporating RF hardware that use Complementary Metal-Oxide Semiconductor (CMOS) devices and because RF hardware typically requires more calibration and tuning when going to deep submicron CMOS, this increases the already large number of configurations that have to be modified. This is because the calibration settings, which differ from one wireless radio system/protocol to another, are a part of the configuration parameters that are written to the control registers. Unfortunately, a consequence of this increasing amount of configuration data is that the spare time between activity periods of two different radios may be too short to switch between different RF HW configurations.
Traditionally, SDR's have included dedicated RFHW for each simultaneously active radio. As such, configuration parameters are written once before the radio connection is activated and thus, configuration time is not critical because the RF HW is not shared between the two active radios (i.e. no need for time-critical radio context switch). Unfortunately however, this traditional solution will not be feasible in future consumer multiradio devices, where there may be many more simultaneously active connections than currently available. As an example, consider the situation where GPS for navigation, Bluetooth for local connection, DVB-H for streaming video and GSM/WCDMA for active phone call are all simultaneously active in multiradio device. If RF HW sharing and radio context switching are not used, than each simultaneously active radio should be allocated its own dedicated RF HW. This tends to increase the device cost making it less competitive compared to devices that share RF HW. In this case, with RF HW sharing and fast switching, three physical receiver chains would typically be needed to implement these four simultaneous receiver chains. Some examples of other possible use cases gaining fast switching are WLAN+BT, GSM+BT, DHB−H+WLAN/BT.
Additionally, while some multiradio devices may have their configuration hard wired for simultaneously used radio modes, making switching from one radio to another fast, this type of HW is typically limited to those predefined radio modes and does not usually scale to configurability requirements needed in SDR systems. To adapt this approach to more than two radios entails separate HW for the whole of each radio, which would tend to increase expense and bulk of the resulting device.
In accordance with one embodiment is provided a method that includes, providing a device that includes a first radio adapted to operate according to a first wireless radio system and at least a second radio adapted to operate according to a second wireless radio system, the first radio and second radio each including shared hardware. While the first radio is inactive, first hardware configuration data for the first radio is written to a first configuration register set. While the second radio is inactive, second hardware configuration data for the second radio is written to a second configuration register set. The first radio is switched to active by selecting the first configuration register, configuring at least the shared hardware according to the first hardware configuration data of the first configuration register set, and communicating via the first radio according to the first wireless radio system. The second radio is switched to active and the first radio is switched to inactive by selecting the second configuration register set, configuring at least the shared hardware according to the second hardware configuration data of the second configuration register set, and communicating via the second radio according to the second wireless radio system.
In accordance with another embodiment is provided an apparatus. The apparatus includes a first radio and at least a second radio that share hardware components. The first radio is adapted to operate according to a first wireless radio system and the second radio is adapted to operate according to a second wireless radio system. The apparatus further includes a processor and a memory coupled to the processor. The memory includes at least a first configuration register set for storing a first group of parameters and a second configuration register set for storing a second group of parameters. The apparatus further includes configuration selection logic, coupled to the processor and to the first and second configuration register sets. The configuration selection logic is adapted to switch between the first radio being active and the second radio being active by configuring at least the shared hardware according to the group of parameters of the selected first and second configuration register sets.
In accordance with another embodiment is provided a computer program product that includes program instructions embodied on a tangible computer-readable medium for switching between a first and a second radio that shares hardware with one another. Execution of the program instructions result in operations that include writing first hardware configuration data for a first radio to a first configuration register set, while the first radio is inactive. The first radio is adapted to operate according to a first wireless radio system. While a second radio adapted to operate according to a second wireless radio system is inactive, the actions include writing second hardware configuration data for the second radio to a second configuration register set. The first radio is switched to active by selecting the first configuration register, configuring at least the shared hardware according to the first hardware configuration data of the first configuration register set, and communicating via the first radio according to the first wireless radio system. The second radio is switched to active and the first radio is switched to inactive by selecting the second configuration register set, configuring at least the shared hardware according to the second hardware configuration data of the second configuration register set, and communicating via the second radio according to the second wireless radio system.
In accordance with another embodiment is provided a device that includes: a memory that has a first configuration register set and a second configuration register set; shared hardware that is selectively configurable for a first wireless radio radio system and for at least a second wireless radio radio system; a controller that is configured to write first hardware configuration data to the first configuration register set and to write second hardware configuration data to the second configuration register set; and a configuration selection switch that is adapted to selectively couple the first and the second configuration register sets to the shared hardware and thereby configure the shared hardware with the first hardware configuration data for communication according to the first wireless radio system, and with the second hardware configuration data for communication according to the second wireless radio system.
In accordance with another embodiment is provided an apparatus that includes first radio means and at least second radio means that share hardware components with one another. The first radio means is adapted to operate according to a first wireless radio system and the second radio means is adapted to operate according to a second wireless radio system. The apparatus also includes processing means and memory means coupled to the processing means. The memory means includes at least a first register means for storing a first group of parameters and a second register means for storing a second group of parameters. Also, the apparatus includes selection means, coupled to the processing means and to the first and second register means, where the selection means is adapted to switch between the first radio means being active and the second radio means being active by configuring at least the shared hardware components according to the group of parameters of the selected first and second register means. In a particular embodiment, the apparatus described immediately above is characterized in that the first radio means is a first radio; the second radio means is a second radio; the processing means is a digital data processor; the memory means is a computer readable memory; the first register means is a first configuration register set; the second register means is a second configuration register set; and the selection means is a switch.
The foregoing and other features and advantages of the present invention should be more fully understood from the following detailed description of illustrative embodiments taken in conjunction with the accompanying Figures in which like elements are numbered alike in the several Figures:
It should be appreciated that in GSM/WCDMA, where one system must periodically scan for base stations of the other system, there exist idle frames during which there is enough time to switch between systems, thus negating the necessity for fast context switching. Some proposed digital Field Programmable Gate Array (FPGA) architectures use similar schemes (for example: Xilinx Virtex) to enable partial reconfiguration, where configuration data is loaded into part of the logics chip, and new configuration data is switched on by changing the active configuration memory. The present invention differs from existing work in FPGA in that the context switching is used in the RF HW domain by dynamically changing the configuration between two (or more) simultaneously active radio modes. Moreover, in addition to routing the data used in FPGA (i.e. signal path routing and logic configuration), radio modes typically have radio-specific information associated with them (such as, RF block calibration data, transmitter gain setting, etc.) which may be stored and restored during context switching.
In accordance with an embodiment of the invention, in a multiradio device capable of sharing configurable RF HW with a plurality of simultaneously active radios, an apparatus 100 for dynamically configuring the RF HW is provided. Referring to
The apparatus 100 further includes configuration selection logic 106 and an RF control unit 108 wherein the configuration selection logic 106 can quickly activate a new RF HW 104 configuration when the radio context switching occurs and the RF control unit 108 can configure the RF HW 104 by writing the configuration register settings. Additionally, the RF control unit 108 may be configured to switch RF HW 104 from one mode to another mode at a predetermined time. It should be appreciated that the RF HW 104 of
Consider the schematic diagram of a multi-radio apparatus 200 shown in
Dedicated HW for the different radios includes a framing block 210 for a TDMA (time division multiple access) radio and a spreading block 212 for a bursty radio. It is understood that some radio systems (e.g., GSM) may use both framing and spreading (in which case the spreading block 212 would be a shared HW block), but
Now a first radio of
To complete the description of the multi-radio apparatus 200, there is also a data source 214 and data sink 216 which may be a transducer (microphone/speaker) in the case of voice communications, generally not considered part of the wireless radio functions. Also included is a processor (DP) 220, a memory (MEM) 222 that stores a program (PROG) 224, and a suitable radio frequency (RF) transceiver 10D forbidirectional wireless communications with a node B/base station, an access point (WLAN), another wireless device (e.g., Bluetooth, WLAN), etc. In the MEM 222 are (at least) two separate and independent configuration register sets, each storing parameters for one of the radio systems followed by one of the respective radios when that radio is active. It is convenient to refer to these as register sets as opposed to simply a register since traditionally each parameter or grouping of closely related parameters is considered to be stored in a single register. As above, at least those parameters relevant to the shared HW is stored in the associated configuration register set though all parameters may be stored.
Assume a simple implementation wherein a first configuration register set is dedicated to the first radio that operates using wireless radio system X (e.g., TDMA) and a second configuration register set is dedicated to the second radio that operates with wireless radio system Y (e.g., CDMA). At some point the apparatus 200 writes the parameter set for system X to the first configuration register set (such as by the RF control block 108, which may be a part of the DP 220 or a processor of a system-on-a-chip SoC separate from the main DP 220). At this point there is no change to the shared HW, only parameters are stored in the MEM 222. Sometime thereafter the apparatus 200 uses the first radio by configuring it from the parameters stored in the first configuration register set and the first radio becomes active. The second radio is inactive, since both radios require use of the shared HW which can only be configured for one wireless radio system/one radio at a time. However, unlike the prior art there is nothing to prevent the apparatus 200 from writing (using the RF control 108/DP 220 as above) parameters for the second radio/second wireless radio system to the second configuration register set while the first radio is active. Unlike the prior art, writing to a configuration register set is not linked to a context switch from one radio to another; writing to a configuration register set other than the one currently associated with an active radio is independent of a context switch of active radios.
Now assume that all parameters for the second radio are written into the second configuration register set. At some time the apparatus 200 switches from the first radio to the second radio (e.g., moving from an area with only one network type to an area with only the other network type). In the prior art SDRs the new parameter set was written to the configuration register set, delaying the time at which the second radio could become active. In this example of the invention a single write command from the DP 220/RF Control 108 causes the already-populated second configuration register set to reconfigure the shared HW with those parameters, minimizing the time it takes to change over that shared HW from the first radio system to the second radio system.
Configuration settings for system Y have to be completed before switching the second radio on (e.g. before start of the frame/time slot). Because configuration setting can be prepared to a (inactive) configuration register set while some other radio system X uses the shared RF HW, timing constraints for configuration data writing are relaxed as compared to the situation when all changes have to be done during a shorter period after X has stopped transmission/reception and before Y needs to start it's transmission/monitoring. The configuration selection 106 (e.g., a switch) activates configuration settings for system Y before the second radio is “turned on” for transmission/monitoring (e.g. before start of its first frame/slot). The configuration selection module 106 is controlled by the RF control 108, and context selection using two configuration register sets avoids the tighter scheduling constraint of the prior art (e.g. write new parameters only when neither first nor second radio uses the RF HW), and uses only a single write action for context switching, compared to the possibly huge amount of data written to configuration registers. The active configurafion register set defines the state of the RF HW, the inactive configuration register set does not have any influence to the RF HW. The multiplexer MUX 110 of
For only two radios, there may be a configuration register set dedicated to each. For more than two radios, at any given instant one configuration register set might be associated with whichever radio is active at the moment, and the other configuration register set may be associated with any other radio, preferably that radio deemed most likely to be switched to next. In both instances each of the configuration register sets is associated with an active radio, just at different times and for different radios. In the latter implementation a single configuration register set may be associated with more than one of the radios over a period of time, but understanding that at any instant it will be associated with only one radio. This is seen further at
In general, the exemplary embodiments of this invention may be implemented by computer software (PROG 224) executable by the DP 220/RF controller 108 of the apparatus 100/200, or by hardware, or by a combination of software and/or firmware and hardware.
In general, the various embodiments of the apparatus 100/200 can include, but are not limited to, cellular telephones, personal digital assistants (PDAs) having wireless communication capabilities, portable computers having wireless communication capabilities, image capture devices such as digital cameras having wireless communication capabilities, gaming devices having wireless communication capabilities, music storage and playback appliances having wireless communication capabilities, Internet appliances permitting wireless Internet access and browsing, as well as portable units or terminals that incorporate combinations of such functions.
The MEM 222 maybe of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The DP 220/RF Controller 108 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs), processors based on a multi-core processor architecture, and processor of a SoC under control of a main processor running an operating system, as non-limiting examples.
In accordance with the present invention, a method for dynamically configuring the RF HW is provided and includes controlling the RF HW to rapidly change the RF HW configuration from one radio mode to another during runtime. As discussed hereinabove, this may be accomplished by introducing a plurality (i.e. two or more) of independent configuration register sets for each RF HW, wherein one register set is typically present for each simultaneously active radio. This allows configuration settings related to each active radio connection to be stored in a separate register set and the radio context switching to be performed with a single configuration write action by selecting the active register set. Thus, the writing of configuration data is no longer a time critical action because each parallel configuration can be prepared to its own register set at any time, as long as it is ready before the radio connection is needed and the time it takes does not affect the radio context switch time.
Thus, as shown in
Referring to
Specifically, at a first interval 502 radio 1 is active using parameters from register set #1, and the apparatus 100/200 is free to update/populate the inactive register #2 with the parameters necessary to configure radio 2. At a context switch between the first interval 502 and a subsequent second interval 504, radio 2 is switched to active using the parameters of register set #2 and radio 1 is made inactive. This means that register set #1 is now not associated with an active radio, and it is prepared for configuring radio 3. At the transition to a third interval 506, radio 3 becomes active using the parameters now in the register set #1, radio 2 is inactive and parameters for radio 1 can be written into inactive register #2. Radio 1 is again made active in a fourth interval 508 using the parameters now in register #1, and so forth for fifth interval 510 and sixth interval 512. As can be seen, radio 1 is active in the first 502 and fourth 508 intervals but using different register sets, so the register sets are not dedicated to a particular radio. The teachings of
Referring to
Now the apparatus switches 608 to radio 1; the configuration selector selects 610 the first configuration register set and the RF HW including the shared HW is configured to the mode 612 of radio 1. Radio 1 remains active 614 for the period indicated, during which time parameters in the second register set can be updated 616 as necessary. A decision is made to switch to radio 2 at 618. The configuration selector selects 620 the second register set, the RF HW is configured to the mode 622 of radio 2, and radio 2 remains active 624 for the indicated period during which any updates 626 may be made to the parameters for radio 1 in the first register set. The apparatus switches back 608′ to radio 1; the configuration selector again selects 610′ the first configuration register set and the RF HW including the shared HW is configured back to the mode 612′ of radio 1. Radio 1 remains active 614′ for the period indicated, during which time parameters in the second register set can be again updated 616′ as necessary.
It should be appreciated that if there is a need to make a modification to the configuration setting (e.g. a change in the gain setting or calibration values), the changes can be performed while the configuration register set is not selected. Thus, modifications are not time critical any longer and can be performed whenever the radio is inactive. For example, consider the situation where the RF HW has 50 16-bit wide configuration registers connected with an RF control device via a serial bus having a clock frequency of 19.2 MHz. Furthermore, assume that the wireless radio system overhead of the serial bus is 14 bits per each 16-bit register write, thus the total number of bits to be transferred for each configuration register write is 30. As can be seen, with the fast context switching scheme of the present invention, one configuration register write operation takes 1.56 microseconds (30*(1/19.2 MHz)), as opposed to the traditional method of context switching which typically takes over 78 microseconds. Thus, when the GSM slot time is about 577 microseconds, the context switch overhead is approximately 13.5% compared to the time the RF HW is actually needed. While with the fast context switching scheme of the present invention, only one register write is needed so the context switch overhead is less than 0.3% compared to the time the RF HW is actually needed.
As seen in
It should be appreciated that the present invention allows for a low-cost multiradio RF HW platform by making the radio context switch time fast in order to allow RF HW sharing. Additionally, the present invention allows for power saving by reducing the amount of configuration information written through the bus. Furthermore, the present invention allows for a reduced RF control processor load and control bus traffic. This releases more capacity for other applications or enables a lower performance processor to be used. The reduced processor load also means potential to lower power, because performance can be traded for lower power (for example by utilizing dynamic voltage and frequency scaling). Additionally, the present invention allows for a low power communication link between the RF control device and the RF HW.
In general, the embodiments of this invention may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the invention is not limited thereto. While various aspects of the invention may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
Moreover, embodiments of the invention may be practiced in various components such as integrated circuit modules. The design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
Programs, such as those provided by Synopsys, Inc. of Mountain View, Calif. and Cadence Design, of San Jose, Calif. automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre-stored design modules. Once the design for a semiconductor circuit has been completed, the resultant design, in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or “fab” for fabrication.
Various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. However, any and all modifications of the teachings of this invention will still fall within the scope of the embodiments of this invention.
Furthermore, some of the features of the various embodiments of this invention may be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles, teachings and exemplary embodiments of this invention, and not in limitation thereof.