Next generation mobile devices implement a plurality of wireless technologies to access different networks such as WiMAX networks, WLAN networks, LTE networks, Wireless USB or Bluetooth (BT) networks, etc. Such devices are referred to herein as “combo” devices. While increased access to these technologies benefit users and operators alike, interference among different technologies, particularly onboard a single combo device, introduces difficulties during concurrent operation of these technologies. For example, and as illustrated in
In at least some embodiments, a communication device includes a host processor and a plurality of co-existing wireless technology transceivers coupled to the host processor. The plurality of co-existing wireless technology transceivers share a communication medium using time-multiplexing. A throughput for data transmissions by the plurality of co-existing wireless technology transceivers is based on an algorithm that determines a grouping option for data packets to be transmitted by one of the co-existing wireless technology transceivers, the grouping option providing a highest throughput for a predetermined baseband PHY rate without exceeding a predetermined maximum grouping delay.
In accordance with at least some embodiments, a transceiver includes receiving logic configured to receive data packets from a data source and re-grouping logic configured to re-group the received data packets for output to a data sink. The re-grouping logic determines a grouping option that provides a highest throughput for a predetermined baseband PHY rate without exceeding a predetermined latency threshold for the data sink.
In accordance with at least some embodiments, a method includes receiving, by a processor, data packets from a data source. The method also includes grouping, by the processor, the received data packets for output to a data sink. The grouping step includes determining a grouping option that provides a highest throughput for a predetermined baseband PHY rate without exceeding a predetermined latency threshold for the data sink.
For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. The term “system” refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices or a sub-system thereof. Further, the term “software” includes any executable code capable of running on a processor, regardless of the media used to store the software. Thus, code stored in non-volatile memory, and sometimes referred to as “embedded firmware,” is included within the definition of software.
Embodiments of the invention are directed to grouping or re-grouping data packets received from a data source for output to a data sink. The grouping or re-grouping operation determines which of a plurality of grouping options provides a highest throughput for a predetermined baseband PHY rate without exceeding a predetermined maximum grouping delay. In at least some embodiments, the predetermined maximum grouping delay depends, at least is part, on a maximum latency threshold for the data sink. The grouping or re-grouping operation is performed, for example, by a host processor or a transceiver of a communication device with co-existing wireless technologies that share a communication medium using time-multiplexing. For such communication devices, the grouping or re-grouping operation optimizes throughput for a given co-existing wireless technology and thereby enables at least one other co-existing wireless technology to receive a larger time window for its communications.
In at least some embodiments, the data grouping logic 204 determines a grouping option for received data packets in accordance with parameters such as a baseband PHY rate 206, a maximum latency threshold 208 and a Maximum Transmission Unit (MTU) size 207. Further, packet arrival characteristics 209 such as distribution of packet size and arrival interval may be used to determine the grouping option.
The baseband PHY rate 204, the maximum latency threshold 208, the MTU size 207 and the packet arrival characteristics 209 may vary for different applications. For example, the baseband PHY rate 204 may correspond to a particular wireless technology (e.g., Bluetooth®) and/or a desired data streaming performance. Similarly, the maximum latency threshold 208 may correspond to a particular data sink (e.g., speakers) and/or a desired data sink throughput. The MTU size 207 may vary for different host devices or radio transceivers. The packet arrival characteristics may vary for different data sources 202.
In at least some embodiments, the grouping logic 204 employs a grouping option algorithm 210 that determines a grouping option for data packets in transit to the data sink 212. The determined grouping option provides a highest throughput for the predetermined baseband PHY rate 206, the MTU size 207, and packet arrival characteristics 209 without exceeding the maximum latency threshold 208. If data packets are already grouped by the data source 202 for transmission to the data sink 212, the data grouping logic 204 enables a non-optimized grouping of data packets to be replaced with an optimized grouping of data packets for transmission to the data sink 212. Again, the optimization improves efficiency of data transmission while maintaining compatibility with a wireless communication protocol in an environment with a plurality of co-existing wireless technologies.
In embodiments where the data grouping logic 204 is part of a host processor, the host processor outputs optimized groupings of data packets in accordance with the grouping option algorithm 210. As an example, the optimized groupings of data packets may be provided to one of a plurality the co-existing wireless technology transceivers for transmission to the data sink 212. Alternatively, in embodiments where the data grouping logic 204 is part of a co-existing wireless technology transceiver, the co-existing wireless technology transceiver that executes the grouping option algorithm 210 is configured to receive non-optimized groupings of data packets from a host processor to re-group the data packets in accordance with the grouping option algorithm 210.
As re-grouping packets is often a costly process due to the disassembly, buffering and re-assembly overhead involved, such re-grouping should only be used if the re-grouping benefits outweigh the re-grouping overhead. So some measure is needed to determine when to implement the re-grouping process. For A2DP traffic, once a packet size is given, throughput can be determined for the current baseband PHY rate and MTU size. Accordingly, the received packet size may be used as the measure to determine whether re-grouping is necessary. As an example, if the received packet size is determined to be the same as the resulting packet size after the re-grouping algorithm is applied, then the re-grouping process is bypassed. Even if the received packet size and the resulting packet size are different, if the throughput gain is marginal, the re-grouping process may be bypassed to avoid the re-grouping overhead.
In at least some embodiments, the grouping option algorithm 210 causes the data grouping logic 204 to access a look-up-table (LUT). When SBC frames are grouped for A2DP traffic over Bluetooth, for example, an entry in LUT contains elements such as baseband PHY rate (1, 2 or 3 Mbps), MTU size, SBC frame size and maximum grouping latency. Another element in this entry will be the desired number of SBC frames to be grouped together. This information can be stored, for example, in a memory (e.g., flash memory, hard disk, etc.) of the host device of the radio transceiver. Alternatively, the grouping option algorithm 210 causes the data grouping logic 204 to perform a polynomial search to determine which of a plurality of grouping options for received data packets provides the highest throughput given the baseband PHY rate 206, the MTU size 207, the packet arrival characteristics 209 and the maximum latency threshold 208. In the polynomial search, all possible numbers for grouping are enumerated and the grouping option that yields the highest throughput is determined. The space of enumeration is often very limited as it has to be positive and it is bound by system limitations such as the MTU of the host device (or that of peer node) and the maximum grouping delay (latency) allowed.
In pseudo code, the polynomial search for A2DP traffic operates as follows:
Although other applications are possible, the data grouping logic 204 may be applied to A2DP traffic output by a host processor for transmission by one of a plurality of co-existing wireless technology transceivers. In such case, the grouping option algorithm 210 determines a maximum number of low complexity sub-band codec (SBC) frames to package into an L2CAP frame without exceeding the maximum latency threshold 208.
There are many opportunities to group packets more efficiently into BT baseband frames. As an example, A2DP traffic is composed of a sequence of SBC frames with is known from Bluetooth® standards. When two BT nodes set up a connection, a maximum L2CAP size for transmission of A2DP traffic is negotiated. The A2DP traffic is then prepared for transmission by grouping as many SBC frames into a L2CAP frame as possible. This L2CAP frame is then passed to the baseband layer and is segmented into pieces that a baseband frame can hold for delivery. Inefficiencies arise in the above example when the capacity of a baseband frame is underutilized (e.g., due to the capacity of baseband frames not being considered during the SBC grouping).
In accordance with preliminary research, A2DP traffic can be transmitted at 707 Bytes/16 ms with 6 SBC frames in a L2CAP frame. If the basic rate of BT is used, this amount of A2DP traffic results in 2 DH5 frame transmissions plus a DH3 frame transmission as shown in the current scheme of
On the other hand, for the proposed scheme, the capacity of each baseband frame is filled as much as possible by choosing a frame type that provides higher throughput. In the proposed scheme of
For the proposed scheme of
The proposed scheme of
The packet format layering 519 changes as streaming data proceeds through the audio streaming procedure of block diagram 500. More specifically, a media payload (PL) 520 is initially output from the encoding step 502. If the encryption step 504 is performed, a content protection (CP) header 522 is added to the media payload. At the AVDTP step 506, a media packet header 524 is added to the output of the optional encryption step 504. At the L2CAP step 508, an L2CAP header 526 is added to the output of the AVDTP step 506. The purpose of the grouping option algorithm step 510 is to group or re-group the packets from the audio source for efficiency in a communication device with a plurality of co-existent wireless technologies (e.g., BT/WLAN). The audio sink steps of the audio streaming procedure of block diagram 500, remove the headers 526, 524, 522 until the media payload is available for decoding at decoding step 518.
In the example of
In accordance with at least some embodiments, at least one of the STAs 710A-710D is a combo device that implements the disclosed grouping option algorithm. Such a combo device implements the disclosed grouping option algorithm to improve efficiency of BT communications (or another wireless protocol) and thereby increase the communication medium time allocation available for WLAN communications.
The grouping option algorithm described herein may be implemented on any general-purpose computer with sufficient processing power, memory resources, and network throughput capability to handle the necessary workload placed upon it.
As shown, the device 800 comprises at least one of any of a variety of radio frequency (RF) antennas 805 and any of a variety of wireless modems 810 that support wireless signals, wireless protocols and/or wireless communications (e.g., according to IEEE 802.11n). RF antenna 805 and wireless modem 810 are able to receive, demodulate and decode WLAN signals transmitted in a wireless network. Likewise, wireless modem 810 and RF antenna 805 are able to encode, modulate and transmit wireless signals from device 800 to other devices of a wireless network. Thus, RF antenna 805 and wireless modem 810 collectively implement the “physical layer” (PHY) for device 800. It should be appreciated that device 800 is communicatively coupled to at least one other device and/or network (e.g., a local area network (LAN), the Internet 750, or other devices). It should further be understood that illustrated antenna 805 represents one or more antennas and the illustrated wireless modem 810 represents one or more wireless modems.
The device 800 further comprises processor(s) 820. It should be appreciated that processor 820 may be at least one of a variety of processors such as, for example, a microprocessor, a microcontroller, a central processor unit (CPU), a main processing unit (MPU), a digital signal processor (DSP), an advanced reduced instruction set computing (RISC) machine, an (ARM) processor, etc. Processor 820 executes coded instructions 855 which may be present in a main memory of the processor 820 (e.g., within a random-access memory (RAM) 850) and/or within an on-board memory of the processor 820. Processor 820 communicates with memory (including RAM 850 and read-only memory (ROM) 860) via bus 845. RAM 850 may correspond to dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), and/or any other type of RAM device. ROM 860 may correspond to flash memory and/or any another type of non-volatile memory device.
Processor 820 implements medium access controller (MAC) 830, which provides MAC functionality and further implements, executes and/or carries out functionality to facilitate, direct and/or cooperate in implementing the grouping option algorithm disclosed herein. The MAC 830 is implemented by executing one or more of software, firmware, processing thread(s) and/or subroutine(s) with the example processor 820. Further, the MAC 830 may be, additionally or alternatively, implemented by hardware such as an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable logic device (FPLD), discrete logic, etc.
The device 800 also preferably comprises at least one input device 880 (e.g., keyboard, touchpad, buttons, keypad, switches, dials, mouse, track-ball, voice recognizer, card reader, paper tape reader, etc.) and at least one output device 885 (e.g., liquid crystal display (LCD), printer, video monitor, touch screen display, a light-emitting diode (LED), etc.)—each of which are communicatively connected to interface 870.
As shown, interface 870 also communicatively couples a wireless modem 810 with the processor 820. Interface 870 provides an interface to, for example and not by way of limitation, Ethernet cards, universal serial bus (USB), token ring cards, fiber distributed data interface (FDDI) cards, network interface cards, wireless local area network (WLAN) cards, or other devices that enable device 800 to communicate with other devices and/or to communicate via Internet 750 or intranet. With such a network connection, it is contemplated that processor(s) 820 would be able to receive information from at least one type of network technology and/or output information to at least one type of network technology in the course of performing the herein-described processes. It should be appreciated that interface 870 may implement at least one of a variety of interfaces, such as en external memory interface, serial port, communication internal to device 800, general purpose input/output (I/O), etc.
As shown in
In at least some embodiments, the re-grouping logic 910 stores or has access to a baseband PHY rate 912, a maximum latency threshold 914, an MTU size 913 and packet arrival characteristics 915. As previously discussed, the baseband PHY rate 912, the maximum latency threshold 914, the MTU size 913 and the packet arrival characteristics 915 may vary for different applications (e.g., different data streaming procedures). To perform the grouping operations described herein, the re-grouping logic 910 accesses LUT 916 or optionally executes polynomial search instructions 918. For example, if the LUT 916 does not enable selection of a grouping option, then the polynomial search instructions 918 may be executed to determine an optimal grouping option according to parameters such as the baseband PHY rate 912, the maximum latency threshold 914, the MTU size 913 and/or packet arrival characteristics 915.
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions, and the associated drawings. For example, the Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
This application claims priority to provisional application No. 61/256,536 filed Oct. 30, 2009 and entitled “Using Optimum Packet Grouping For Bluetooth In Coexisting Wireless Networks”. This priority document is hereby incorporated herein by reference as if reproduced in its entirety.
Number | Date | Country | |
---|---|---|---|
61256536 | Oct 2009 | US |