by composing modular precompiled components into
processing graphs using Python scripts. The default GNU
Radio platform is the Universal Software Radio Peripheral
(USRP), a configurable FPGA radio board that connects to
the host. As with Sora, GNU Radio performs much of the SDR
processing on the host itself. Current USRP supports USB2.0
and a new version USRP 2.0 upgrades to Gigabit Ethernet.
Such interfaces, though, are not sufficient for high-speed
wireless protocols in wide bandwidth channels. Existing
USRP/GNU Radio platforms can only sustain low-speed
wireless communication due to both the hardware constraints as well as software processing. 18 As a consequence,
users must sacrifice radio performance for its flexibility.
The WARP hardware platform provides a high-performance SDR platform. 8 Based on Xilinx FPGAs and
PowerPC cores, WARP allows full control over the PHY and
MAC layers and supports customized modulations up to
36Mbps. A variety of projects have used WARP to experiment with new PHY and MAC features, demonstrating the
impact a high-performance SDR platform can provide.
KUAR is another SDR development platform. 15 Similar to
WARP, KUAR mainly uses Xilinx FPGAs and PowerPC cores
for signal processing. But it also contains an embedded PC
as the control processor host (CPH), enabling some communication systems to be implemented completely in software
on the CPH. Sora provides the same flexibility and performance as hardware-based platforms, like WARP, but it also
provides a familiar and powerful programming environment with software portability at a lower cost.
The SODA architecture represents another point in the
SDR design space. 14 SODA is an application domain-specific
multiprocessor for SDR. It is fully programmable and targets
a range of radio platforms—four such processors can meet
the computational requirements of 802.11a and W-CDMA.
Compared to WARP and Sora, as a single-chip implementation it is more appropriate for embedded scenarios. As with
WARP, developers must program to a custom architecture to
implement SDR functionality.
This paper presented Sora, a fully programmable software radio platform on commodity PC architectures. Sora
combines the performance and fidelity of hardware SDR
platforms with the programmability of GPP-based SDR platforms. Using the Sora platform, we also present the design
and implementation of SoftWiFi, a software implementation of the 802.11a/b/g protocols, and SoftLTE, a software
implementation of the LTE uplink PHY.
The flexibility provided by Sora makes it a convenient
platform for experimenting with novel wireless protocols. In our research group, we have extensively used Sora
to implement and evaluate various ideas in our wireless
research projects. For example, we have built a spatial multiplexing system with 802.11b. 19 In this work, we implemented not only a complex PHY algorithm with successive
interference cancellation, but also a sophisticated carrier-counting multi-access (CCMA) MAC—implementations
would not have been possible with previous PC-based software radio platforms.
Sora is now available for academic use as the MSR
Software Radio Kit. 4 The Sora hardware can be ordered
from a vender company in Beijing and all software can be
downloaded for free from Microsoft Research website. Our
hope is that Sora can substantially contribute to the adoption of SDR for wireless networking experimentation and
The authors would like to thank Xiongfei Cai, Ningyi Xu,
and Zenlin Xia in the Hardware Computing group at MSRA
for their essential assistance in the hardware design of
the RCB. We also thank Fan Yang and Chunyi Peng in the
Wireless Networking (WN) Group at MSRA; in particular
we have learned much from their early study on accelerating 802.11a using GPUs. We would also like to thank
all members in the WN Group and Zheng Zhang for their
support and feedback. The authors also want to thank
Songwu Lu, Frans Kaashoek, and MSR colleagues (Victor
Bahl, Ranveer Chandra, etc.) for their comments on earlier
drafts of this paper.
1. GNU Radio. http://www.gnu.org/
2. HostAP. http://hostap.epitest.fi/.
3. Mad Wifi. http://sourceforge.net/
4. Microsoft Research Software Radio
5. Rt2x00. http://rt2x00.serialmonkey.
6. Small Form Factor SDR Development
7. Universal Software Radio Peripheral.
8. WARP: Wireless Open Access
Research Platform. http://warp.rice.
9. Boyd-Wickizer, S., Chen, H., Chen, R.,
Mao, Y., Kaashoek, F., Morris, R.,
Pesterev, A., Stein, L., Wu, M., Dai, Y.,
Zhang, Y., Zhang Z. Corey: an operating
system for many cores. In OSDI 2008.
10. Cummings, M., Haruyama, S. FPGA in
the Software Radio. IEEE Commun.
11. de Vegte, J.V. Fundamental of
Digital Signal Processing. Cambridge
University Press, 2005.
12. Glossner, J., Hokenek, E., Moudgill, M.
The Sandbridge Sandblaster
Communications Processor. In 3rd
Workshop on Application Specific
13. Li, Y., Fang, J., Tan, K., Zhang, J.,
Cui, Q., Tao, X. Soft-LTE: a software
radio implementation of 3GPP
long term evolution based on Sora
platform. In ACM Moicom 2009
(Demonstration) (Beijing, 2009).
Kun Tan ( firstname.lastname@example.org),
Microsoft Research Asia, Beijing, China.
he Liu ( email@example.com), University
of California, San Diego, La Jolla, CA.
Jiansong Zhang (kuntan@microsoft.
com), Microsoft Research Asia, Beijing,
Yongguang Zhang ( firstname.lastname@example.org),
Microsoft Research Asia, Beijing, China.
Ji Fang ( email@example.com),
Microsoft Research Asia and Beijing
Jiaotong University, Beijing, China.
Geoffrey M. Voelker (firstname.lastname@example.org.
edu), University of California, San Diego,
La Jolla, CA.