Microsoft Research Software Radio (Sora)

Established: December 8, 2008

sora-logo-tagline-crop2Software radio (or software-defined radio, SDR) is an engineering pursue in wireless communication technology field that one day all wireless signal processing functions, which are typically implemented in hardware today, will be done completely in software. Over the years, researchers and engineers have made remarkable progress and have been constantly pushing the hardware-software boundary. The Microsoft Research Software Radio (Sora) is one such recent success in advancing the state of the art in software radio technology.

Principle and Architecture

The goal of Sora is to develop the most advanced software radio that is capable of implementing the state-of-the-art wireless communication technology easily and efficiently. In late 2000s and early 2010s, the state-of-the-art is Wi-Fi and LTE. The implementation platform must then be able to handle OFDM, 64QAM, MIMO, CSMA, 40MHz channel width, and tens to hundreds Mbps data rate. This is a significant challenge for any software radio.

There are many ways of building high-performance software radios. We choose commodity PC as the underlying platform. PC does have the advantage of a familiar environment with rich programming tools and ecosystem supports, but meeting the astronomical demands of signal processing in PC software and in real-time seems quite “mission impossible” to many people.

  • About Software Radio

    In conventional wireless communication systems, the critical lower layer processing, that is, the physical layer (PHY) and medium access control (MAC), is typically implemented in hardware (ASIC chips), due to the high-computational and real-time requirements. Designing ASIC is costly, both economically and time-wise. It is also fixed, and therefore, once it is delivered, it cannot be changed or upgraded. The lack of flexibility and programmability makes experimental research in wireless communication become very difficult, especially for research groups in academics.

    Software Radio (or Software Defined Radio, SDR) holds the promise of fully programmable wireless communication systems, effectively supplanting current technologies that have the lowest communication layers implemented primarily in fixed, custom hardware circuits. It is an engineering dream that one day, all wireless functions will be implemented completely in software. Indeed, researchers and engineers have been making progress in this direction and has been constantly pushing the hardware-software boundary in wireless communications.

    Platform Dilemma (c. 2005 – c. 2010)

    Today, software radio developers are facing a platform dilemma. Many current SDR platforms are based on either programmable hardware, such as field programmable gate arrays (FPGAs), or embedded digital signal processors (DSPs). 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. Hardware platforms can also be expensive.

    In contrast, SDR platforms based on general-purpose processor (GPP) architectures, such as commodity PCs, have the opposite set of tradeoffs. Developers program to a familiar architecture and environment using sophisticated tools, and radio front-end boards for interfacing with a PC are relatively inexpensive. However, since PC hardware and software have not been designed for wireless signal processing, existing GPP-based SDR platforms can achieve only limited performance. For example, the popular GNU Radio/USRP platform achieves only a few hundred Kbps throughput on an 8MHz channel, whereas modern high-speed wireless protocols like 802.11 support multiple Mbps data rates on a much wider 20MHz channel. These constraints prevent developers from using such platforms to achieve the full fidelity of state-of-the-art wireless protocols while using standard operating systems and applications in a real environment.

    The Sora Approach

    Microsoft Research has provided a solution to this platform dilemma by developing Microsoft Research Software Radio (Sora), a fully programmable software radio platform that provides the benefits of both SDR approaches. It is based on software running on a low-cost, commodity PC with a general purpose OS (like Windows).

    We take a multi-core PC, plug in a PCIe radio control board we developed, and hook up a third-party radio front-end with antenna — that becomes a powerful software radio platform. The PC interface board takes the I/Q signals from the RF front-end and puts them into the PC memory as fast as possible (via DMA). It also takes the software-generated waveforms (outgoing I/Q signals) from PC memory and pushes them through the RF front-end at the right timing. No baseband signal processing takes place in hardware. All is left to the software running in the PC.

    The PC runs a normal operating system (Microsoft Windows) with the Sora drivers and SDK installed. The Sora software stack manages all aspects of the radio hardware and provides an environment for the programmers to manipulate the I/Q signals in main memory directly. The programmers can write any baseband signal processing software freely, usually in C language. The Sora software stack manages the system resources and enforces the real-time requirements. Additional software development tools and common signal processing libraries are also included in the Sora software package.

    This provides a convenient way for experimenting with novel wireless technologies. With Sora, developers can implement and experiment with high-speed wireless protocol stacks (e.g., IEEE 802.11) by using commodity general-purpose PCs. Developers program in familiar programming environments with powerful tools on standard operating systems. Software radios implemented on Sora appear like any other network device, and users can run unmodified applications on their software radios with the same performance as commodity hardware wireless devices.

    Technical Details (c. 2009)

    To develop such a high-speed wireless platform on general-purpose PC architectures is very challenging:

    • Transferring high-fidelity digital waveform samples into PC memory for processing requires very high bus throughput. Existing GPP platforms like GNU Radio (USRP) use USB 2.0 or Gigabit Ethernet, which cannot satisfy this requirement for high-speed wireless protocols.
    • Physical layer (PHY) signal processing has very high computational requirements for generating information bits from waveforms, and vice versa, particularly at high modulation rates; indeed, back-of-the-envelope calculations for processing requirements on GPPs have instead motivated specialized hardware approaches in the past.
    • Wireless PHY and media access control (MAC) protocols have low-latency real-time deadlines that must be met for correct operation. For example, the 802.11 MAC protocol requires precise timing control and ACK response latency on the order of tens of microseconds. Existing software architectures in the PC cannot consistently meet this timing requirement.

    Sora uses both hardware and software techniques to address the challenges of using PC architecture for high-speed SDR:

    • We have developed a new, inexpensive radio control board (RCB) with a radio frontend for transmission and reception. The RCB bridges an RF front-end with PC memory over the high-speed and low-latency PCIe bus. With this bus standard, the RCB can support 16.7Gbps (x8 mode) throughput with sub-microsecond latency, which together satisfies the throughput and timing requirements of modern wireless protocols while performing all digital signal processing on the host CPU and memory.Radio control boardRadio control board provides a high-speed PCIe interface to host PC.
    • To meet PHY processing requirements, Sora makes full use of various features of widely adopted multi-core architecture in existing GPPs. The Sora software architecture also explicitly supports streamlined processing that enables components of the signal processing pipeline to efficiently span multiple cores
    • We change the conventional implementation of PHY components to extensively take advantage of lookup tables (LUTs), trading off computation for memory. These LUTs substantially reduce the computational requirements of PHY processing, while at the same time taking advantage of the large, low-latency caches on modern GPPs.
    • Sora uses the SIMD (Single Instruction Multiple Data) extensions in existing processors to further accelerate PHY processing. With these optimizations, Sora can fully support the complete digital processing of 802.11b modulation rates on just one core (2GHz Intel x86), and 802.11a/g on two cores.
    • To meet the real-time requirements of high-speed wireless protocols, Sora provides a new kernel service, core dedication, which allocates processor cores exclusively for real-time SDR tasks. We demonstrate that it is a simple yet crucial abstraction that guarantees the computational resources and precise timing control necessary for SDR on a GPP.

    The Microsoft Research Asia team has developed a demonstration radio system, SoftWiFi, based on the Sora platform. SoftWiFi currently supports the full suite of 802.11a/b/g modulation rates, seamlessly interoperates with commercial 802.11 NICs, and achieves equivalent performance as commercial NICs at each modulation. Sora is the first SDR platform that enables users to develop high-speed wireless implementations, such as the IEEE 802.11a/b/g PHY and MAC, entirely in software on a standard PC architecture.

Capabilities

Sora has been used to implement and run the-state-the-art wireless standards including Wi-Fi and LTE. For Wi-Fi, Sora is able to do 802.11 a/b/g/n in full data-rate (up to 40MHz channel, up to 64QAM, up to 4×4 MIMO). The actual data rate is limited by the speed of the PC, but we have accomplished 802.11 data-rate up to 300Mbps. Spectrum-wise, Sora supports a wide range of radio front-end options, from standard Wi-Fi (ISM bands) to TV Whitespace (TVWS), in both single antenna setting and in 4×4 MIMO setting (8×8 also possible).

In Sora, you write your entire baseband in C language. A highly optimized implementation of 802.11 a/b/g/n PHY is available in source code (so you can learn about Wi-Fi implementation or learn how to program in Sora). The SDK also comes with a rich set of common signal processing library (from FFT to Viterbi decoding, etc.) so you can reuse. The program model in Sora currently includes a vector computation library called Vector1 and a modular data-flow composition system called brick, both of which can help programmers to write high-performance baseband programs. Further, the SDK includes various tools, like helping users debug their signal processing programs, visualizing Wi-Fi decoding, etc.

Research Scenarios and Showcases

With Sora’s ability to run high-speed wireless systems in software, it becomes a powerful yet convenient tool for research and development in the wireless communication technology field. Here is a few examples that showcase Sora’s achievements.

  • The PHY and MAC have been an active research areas for many years. New improvements have been frequently proposed on new PHY and MAC algorithms. However, experimental studies are extremely difficult to do at the bottom layers of wireless network. Without open software radio, these layers are all but hidden in the commerical hardware and totally out of reach for ordinary researchers.

    Sora is capable of running Wi-Fi at hundreds of Mbps in software and in real-time. The entire Wi-Fi PHY implementation is written in C and is open-source. Researchers can now modify the source code to implement their ideas and validate them in real over-the-air experiments.

  • Sora-enabled Research

    Research Publications

    The following publications in the top wireless networking conferences and journals include research that were conducted on Sora platforms:

  • Whitespace Research

    sora-b99-far-crop3

    TVWS basestation

    TV Whitespace (TVWS) and dynamic spectrum access (DSA) is a hot research topic in wireless networking. To cover TVWS bands and extend outdoor range, we have built a 40MHz front-end option that operates in the 500MHz-700MHz band with a 1-4W configurable amplifier. It supports both single antenna and 4×4 MIMO setting, making Sora a very useful TVWS research platform. For example, we have rolled out a cellular-type TVWS research network to cover the Microsoft Redmond campus, and each basestation is just a PC plus 4 roof-top TVWS sector antennas. Everything else is software based on Sora.

    sora_bigstation-12ant_sm

    12×12 MIMO with Sora

    MIMO (opens in new tab) (Multi-Input Multi-Output) is an important new wireless technology to significantly increase data throughput in the wireless channel by adding multiple antennas. In theory, more antennas will lead to higher throughput gain, but in practice we seldom see more than 4 antennas in consumer products or in commercial uses. In fact, there hasn’t been many reported studies or trials to build MIMO system with more than 10 antennas.

    One reason is the complexity of signal processing in large MIMO system. It will be tremendously difficult to build custom hardware or write FPGA code. However, software radio may have the advantage of being scalable and easy to program. Indeed, we put together 3 Sora 4×4 MIMO kits and a dozen server PCs to build a big software radio with 12x antennas — to achieve close to 7 times throughput gain!

  • Sora Research Showcase: Massive MIMO

    How many antennas do you need?

    MIMO (opens in new tab) (Multi-Input Multi-Output) and MU-MIMO (opens in new tab) (Multi-User Multi-Input Multi-Output) are advanced wireless technologies that hold the promise of increasing the wireless channel capacity in a communication system. In theory, the capacity is proportional to the number of antennas in the system.

    The current state-of-the-art is limited to only a handful of antennas. 802.11n has up to 4 antennas specified in the IEEE standard, but we only see 2 or 3 antennas being productized. 802.11ac has up to 8 antennas in the standard, yet only 4-antenna is implemented. LTE standard is also up to 4 antennas. There has been little known system building and field-test study on MIMO or MU-MIMO with more than 10 antennas.

    One difficulty in implementing high-order MIMO is to deal with the tremendous computation and throughput requirement. A simple back-of-the-envelop calculation will show that the algorithmic complexity for spatial demultiplexing and precoding is proportion to the total number of sending antennas times the total number of receiving antennas times the number of subcarriers. This will rapidly grow beyond any single system can handle as the number of antennas goes up.

    Scalable MIMO architecture

    To build a MIMO system that can support as many antenna as possible, we have to come up with a software radio system that is scalable in both computation and signal throughputs. It cannot be done with a single PC. Instead, we have used a cluster of PC servers and a fast Ethernet network.

    We also need to parallelize MIMO signal processing algorithms and distribute them across these PC servers. We have to do it in a special way that take into account the number of subcarriers, the number of antennas, as well as the detail configuration of the PC cluster. Below is the parallelized MU-MIMO algorithms:

    And of course the software has to do this in real-time.

    What we have got so far

    We have come up with a scalable MU-MIMO implementation system called “BigStation”, which is designed to scale to tens of antennas and hundreds of subcarriers. Our over-the-air experiment was conducted on a moderate size system with 12 MIMO antennas, 52 subcarriers over a 20Mhz channel, 9 mobile nodes and 9 independent data streams. The system uses 3 Sora 4×4 MIMO PCs, 15 low-end quad-core servers, and one 1/10GbE switch.

    We have achieved 6.8x capacity gain, with the mean end-to-end processing delay measured at 870us:

    For more details, please see publication:

The Sora Academic Kit

When Microsoft Research first demonstrated the capability of Sora technology in 2009, there was lot of excitement in the research community about its potentials. Microsoft Research then decided to share this discovery and the technology with academics, aiming to encourage the use of software radio to advance wireless networking research. An academic program was created and a team formed in Beijing, China to build and maintain the Sora Academic Kit (opens in new tab). Today, Sora has more than 50 institution users and it has driven many wireless research projects around the world.

  • Microsoft Research Software Radio Platform for Academic Use

    This page contains information on how you can build a powerful software radio research platform based on Microsoft Research Software Radio technology and the Academic Kit.

    First, please understand that this is not a Microsoft product. It comes with no warranties and we disclaim all liabilities. If this ever causes any one any harm, you will indemnify Microsoft. (In another word, you do it at your own risk! Don’t touch it if you don’t know what you are doing.) Further, no intellectual property is granted; all IPs belong to Microsoft or their respective owners. It can only be used for non-commercial academic research and education purpose.

    If you are okay with this, please read the Microsoft Research Software Radio Academic Kit License Agreement (opens in new tab) carefully. We require signature from someone who has the authority on behalf of your institution. (We won’t accept forms signed by a student, post-doc, or in some case, junior faculty.) Once you return the form, we will connect you to a local make-to-order vendor company, who can supply you with the hardware, either component-by-component or as an integrated system (“turn-key” solution). Please note that we (Microsoft) do not make or sell Sora hardware. The vendor company makes hardware according to Sora spec, and charges you a fee to cover the components and assembling (plus S&H).

    You may need to acquire the following items:

    1. A Multi-core PC

    A Shuttle XPC with RCB and RF plugged in.

    We recommend you use a high-end PC (workstation-class or server-class) with a performance desktop or server CPU (at least quad-core). We suggest the latest Intel Core i7 or Xeon (“Nehalem (opens in new tab)” or later). Some quad-core Core i5 may work, but we haven’t tested it extensively. Here is the list of CPU (and motherboard chipset) models that we know will work: Intel core i7-9xx (X58), i7-2600 (H61/H67), i7-3770 (H61/H67/Z77), and Xeon E5-16xx/26xx (C602). Older Intel “Nehalem (opens in new tab)” or “Core 2 (opens in new tab)” quad-core CPU should also work. We haven’t tested any AMD processor.

    The PC should have at least one free full-size PCIe x8 or x16 slot. (Note that some low-budget PCs have only PCIe x1 slots or video-card-only slots. Those won’t work.)

    The amount of memory and disk space is less important and will depend on what you plan to do. We recommend at least 2G RAM for single-radio and 8G RAM for MIMO.

    2. RCB (Radio Control Board)

    Original RCB (internal PCIe card)

    RCB is the most important component in Sora hardware. We now have two types of RCB. The original RCB is a full-length full-height PCIe card designed to be plugged in a PCIe slot inside the PC. Due to the space limitation, it is almost always used in a single-radio setting (like in the Shuttle XPC picture above).

    The ballpark estimate for the original RCB is RMB¥10,000 (US$1.7K). The actual amount will be set by the vendor and will be affected by component market price and also currency exchange rate.

    Sora MIMO Kit (PCIe external enclosure)

    The MIMO RCB comes as a PCIe external enclosure box. The 1U, half-depth, and rack-mountable enclosure houses the MIMO RCB, 4-way RAB, and up to 4 RF daughter-boards. It connects to the PC with one or two external PCIe extension cables.

    3. Driver and SDK

    We can download the software from codeplex (opens in new tab). It runs on 64-bit Windows 7 or 8.

    Starting from SDK 2.0, Sora now supports MIMO. The SDK also includes the Brick source code of a  working implementation of 802.11n.

    SDK v1.8 upgrade includes a rewritten 802.11a/b/g baseband using Brick. The baseband source code is now highly modular, very easily to understand and modify.

    SDK v1.7 upgrade supports 64-bit Windows 7 and 64-bit Windows 8. (All previous versions required Windows XP.)

    Wi-Fi visual decoding with DbgPlot

    SDK v1.6 upgrades the UMX API and supports a new Reflection mechanism to integrate user-mode SDR modem into Windows network stack. It also includes a new modular programming library, called Brick, for high-performance DSP programs, and two new powerful tools: DbgPlot for real-time monitoring and debugging and UMXSDRab as an interactive 802.11a/b modem application based on UMX Reflection.

    SDK v1.5 is a major facelift from previous v1.0 and v1.1. It fixes almost all bugs known to us (like the bluescreens) and substantially changes the implementation to provide a more flexible, robust, and friendly developing environment. In particular, we have a new ethread scheduler, a full-fledged user-mode extension, and a set of new tools for testing hardware and tuning RF parameters (gains, I/O imbalance, central frequency), etc.

    The PDF version of the Sora Manual is here (opens in new tab).

    You must have RCB hardware installed before you can load and run the driver and SDK.

    4. Radio Front-ends

    If you want to conduct wireless experiments over-the-air, you will need to connect the Academic Kit with a Radio Front-end (RF daughter-board). (Of course you must follow your local laws and regulations about radio frequency use and obtain license if necessary.)

    Sora Kit (single-radio RCB-RAB-RF combo)

    The RF daughter-board connects to the RCB through a well-defined Fast Radio Link interface. In principle, you can obtain any third-party RF daughter-boards and play mix-and-match. But unless you want to experiment with the hardware, we recommend you get one of the supported RCB-RAB-RF combos when you buy the RCB. Many RF daughter-boards require a RAB (RF Adapter Board) to work with RCB, and we have worked with our RCB vendor to provide several types of RAB for some common RF daughter-boards.

    For MIMO, you should almost always obtain the whole Sora MIMO Kit (integrated RCB, RAB, and 2-4 RF daughter-boards in one enclosure box). It is extremely challenging to get MIMO hardware right.

    The following is a list of third-party Radio Front-ends that are known to work with the Academic Kit. We will update the list when more become available and have been tested. Again, we (Microsoft) do not make or sell any Radio Front-end, nor do we endorse any particular brands or makers.

    Radio Front-end  Frequency band  Availability and Where to Buy
    V3 SDR (opens in new tab) (SISO or MIMO)

    2.4GHz and 5GHz

    TV whitespace

    Radio:  v3best (opens in new tab)

    Adapter: v3best (opens in new tab)

    WARP radio board (opens in new tab) 1 2.4GHz and 5GHz

    Radio: mango communications (opens in new tab)

    Adapter: v3best (opens in new tab)

    USRP daughterboard (opens in new tab)1

    (e.g., XCVR2450)

    2.4GHz and/or 5GHz

    Radio: Ettus Research (opens in new tab)

    Adapter: v3best (opens in new tab)

    Note 1. Single channel setting only. Not compatible with Sora MIMO Kit.

    If you have or know of a Radio Front-end that is proven to work with our Academic Kit, please let us know (opens in new tab).

    5. Tools, samples, applications

  • The Microsoft Research Software Radio (Sora) project started as a “blue-sky” research project in the Wireless and Networking Group (opens in new tab) at Microsoft Research Asia (opens in new tab) (Beijing, China) around 2007. The goal was to advance the state-of-the-art in software radio and build a platform that can achieve wireless performance orders of magnitude better than existing systems.

    In 2009, it surprised the world when it first demonstrated the ability to run a full-rate 802.11 entirely in PC software, which was never thought possible before. In 2010, Microsoft Research created an academic program and release the Sora Academic Kit to share this technology with the research community. Today, Sora has facilitated many wireless R&D around the world.

    • 2007 Project started.
    • 2008 First internal demo of 802.11b.
    • 2009 First public demo of 802.11a/b/g, NSDI best paper.
    • 2010 Sora Academic Program started.
    • 2011 Sora Academic Kit v1 released.
    • 2013 Sora Academic Kit v2 (MIMO) released.
  • Publications

    Demos

    What’s New!

    Quick Links

    Related Links

    Discussion

    Cost Estimation

    For budgetary purpose only. Actual cost will vary.

    • Multi-core PC: $1K to $2K
    • Single-radio Sora Kit: $3K (includes RCB, RAB, and 2.4/5G RF)
    • 4×4 MIMO Kit: $7K (includes MIMO RCB, 4-channel RAB, 4x 2.4/5G RF, and enclosure)

    Current Academic Users

    (Not a complete list)

    • Beihang University (CN)
    • Beijing Jiaotong University (CN)
    • Beijing University of Posts and Telecommunications (CN)
    • Carnegie-Mellon University (US)
    • China University of Geosciences (CN)
    • Chinese Academy of Science (CN)
    • Chongqing University of Posts and Telecommunications (CN)
    • Communication University of China (CN)
    • Duke University (US)
    • ETH Zurich (CH)
    • Florida State University (US)
    • Fudan University (CN)
    • Georgia Southern University (US)
    • Harbin Institute of Technology (CN)
    • Hong Kong Polytechnic University (CN/HK)
    • Hong Kong University of Science & Technology (CN/HK)
    • Huazhong University of Science & Technology (CN)
    • Humboldt University Berlin (GR)
    • International Institute of Information Technology Bangalore (IN)
    • Jiangnan University (CN)
    • Keio University (JP)
    • Korea University (KR)
    • Nanchang University (CN)
    • National Taipei University of Technology (TW)
    • National University of Defense Technology (CN)
    • North Carolina State University (US)
    • North Eastern University (CN)
    • Peking University (CN)
    • POSTECH (KR)
    • Seoul National University (KR)
    • Shanghai Jiaotong University (CN)
    • Stanford University (US)
    • Stevens Institute of Technology (US)
    • Tennessee Tech University (US)
    • Tongji University (CN)
    • Tsinghua University (CN)
    • University of California, Davis (US)
    • University of California, Los Angeles (US)
    • University of California, San Diego (US)
    • University of Cambridge (UK)
    • University College London (UK)
    • University of Illinois at Urbana–Champaign (US)
    • University of Michigan (US)
    • University of Rochester (US)
    • University of Siena (IT)
    • University of Texas at Austin (US)
    • University of Washington (US)
    • University of Wisconsin-Madison (US)
    • Xian Jiaotong University (CN)
    • Xidian University (CN)
    • Yonsei University (KR)
    • Zhejiang University (CN)
    • Zhengzhou University (CN)