This paper presents Sora, a fully programmable software radio
platform on commodity PC architectures. Sora combines the
performance and fidelity of hardware software-defined radio
(SDR) platforms with the programmability and flexibility of
general-purpose processor (GPP) SDR platforms. Sora uses
both hardware and software techniques to address the challenges of using PC architectures for high-speed SDR. The Sora
hardware components consist of a radio front-end for reception and transmission, and a radio control board for high-throughput, low-latency data transfer between radio and host
memories. Sora makes extensive use of features of contemporary processor architectures to accelerate wireless protocol
processing and satisfy protocol timing requirements, including using dedicated CPU cores, large low-latency caches
to store lookup tables, and SIMD processor extensions for
highly efficient physical layer processing on GPPs. Using the
Sora platform, we have developed a few demonstration wireless systems, including Soft WiFi, an 802.11a/b/g implementation that seamlessly interoperates with commercial 802.11
NICs at all modulation rates, and SoftLTE, a 3GPP LTE uplink
PHY implementation that supports up to 43.8Mbps data rate.

1. intRoDuction

Software-defined radio (SDR) holds the promise of fully programmable wireless communication systems, effectively
supplanting current technologies which have the lowest
communication layers implemented primarily in fixed, custom hardware circuits. Realizing the promise of SDR in practice, however, has presented developers with a dilemma.

Many current SDR platforms are based on either programmable hardware such as field programmable gate
arrays (FPGAs) 8, 10 or embedded digital signal processors
(DSPs). 6, 12 Such hardware platforms can meet the processing and timing requirements of modern high-speed wireless
protocols, but programming FPGAs and specialized DSPs
are difficult tasks. Developers have to learn how to program
to each particular embedded architecture, often without
the support of a rich development environment of programming and debugging tools. Such hardware platforms can
also be expensive.

In contrast, SDR platforms based on general-purposeprocessor (GPP) architectures, such as commodity PCs,have the opposite set of trade-offs. Developers program to afamiliar architecture and environment using sophisticatedtools, and radio front-end boards for interfacing with a PCare relatively inexpensive. However, since PC hardware andsoftware have not been designed for wireless signal process-ing, existing GPP-based SDR platforms can achieve only lim-ited performance. 1, 7 For example, the popular USRP/GNURadio platform is reported to achieve only 100kbps through-put on an 8-MHz channel, 18 whereas modern high-speedwireless protocols like 802.11 support multiple Mbps datarates on a much wider 20-MHz channel. These constraintsprevent developers from using such platforms to achievethe full fidelity of state-of-the-art wireless protocols whileusing standard operating systems and applications in a realenvironment.