Sora - 无线电系统


BSD
嵌入式
C/C++

软件简介

Sora (Microsoft Research Software Radio)

通常在无线通信系统中,关键的底层处理,例如物理层(PHY)和媒体访问控制(MAC),都是由专用硬件实现的(ASIC)。而设计和实现专用硬件
芯片成本高,而且很不灵活——芯片一旦流片后就无法修改和升级。因此,对于研究人员而言,使用这种硬件来开发新的实验原型系统是非常困难的。软件无线电则
不同,它利用软件来实现通信系统中的底层操作,从而可以快捷的开发、调试、以及进行后期的更新维护。然而,软件无线电的挑战在于,其性能能否赶上专用硬件 平台。

面对这一挑战,微软研究员们开发了Sora。

Sora 是一个完全可编程的,高性能的软件无线电系统,可以用于实现当前最前沿的无线通信技术(Wi-Fi,LTE,以及MIMO等)。Sora
运行于低成本的商用多核个人电脑上,并使用通用的Windows操作系统。一个多核商用个人电脑,一块定制的射频控制接口板(RCB),再加上第三方的射
频模块,就组成了一个强大的无线通信系统。射频控制接口板负责在个人电脑主存和射频模块之间传递高速的无线采样信号(I/Q
samples),而所有的底层信号处理全部运行在软件上。

Sora 的系统架构

Sora的软硬件平台的创新使得它可以在PC上完成高性能的无线信号处理。首先,我们设计了一款新的射频控制接口板,利用高速PCIE总线传输宽带
无线信号采样。其次,Sora充分利用了现代多核CPU的多种特性来平行加速无线信号处理(例如,SIMD指令及利用Cache构建查找表等)。Sora
的软件架构可以将处理流水线有效地分配到多个核上,从而实现流水线并行计算。最后,Sora中实现了一个新的内核服务,称为专属线程。专属线程可以被现实
指定在特定核上,用于保障处理的实时性。

Sora系统自2009年首次发表以来,已经在学术界获得多项最佳论文和演示大奖。2011年,我们首次向学术界开放了Sora
API
(应用程序编程接口), 包含在Sora
SDK
(软件开发工具包)中。此后,Sora得到了不断发展,从最初的单天线系统,到对大规模多天线的支持;从单一的ISM频道射频,到支持多种射频模式。Sora系统被用于TV白频谱,大规模MIMO,以及分布式MIMO系统的研究和实现中。

截至目前,已有50多家大学和科研机构在科研和教学中使用Sora。随着Sora被广泛的采用,为了满足研究者们日益迫切的各种研究需求,我们决定完全开放Sora平台。完全开源的Sora系统提供了大量特性,其中包括:

  • 支持定制的射频前端

  • 支持定制的RCB (包括可定制的时间控制和同步机制,新的加速器等)

  • 支持新的通信模式,例如全双工无线通信等