aisexinsexnet 2010-1-27 09:44
无限的“天空”:软件无线电时代的来临[4P]
不久前,我参加了一个同学的聚会。朋友们都是学计算机的,于是聊起来我现在在做什么。我说:“我在做无线研究。”
“哦,什么标准?”
“什么标准也不是,” 我说,“我在做自己的无线物理层。”
“哦,你现在改行搞硬件了?”朋友很惊奇的问。
“没有,没有,我不懂硬件。我纯粹在写软件,用软件做。”我试图解释。
“听起来很酷。但,这,可能吗?……”
在过去的两年里,类似的对话在我身边经常发生。每次当我向别人说我在通用PC上,用软件的方法实现所有无线底层功能(即软件无线电)时,大多数人都这样表示怀疑。我完全理解,这样的疑惑是很有道理的,因为如果在两年前,我也会有同样的怀疑。在人们的常识里,通用CPU并非设计用来进行数字信号处理工作的。因此,无线底层通讯中需要的高速信号处理应该是硬件电路和专用DSP处理器的专利。在我刚刚开始软件无线电研究时,最好的软件无线电系统才实现了几百Kbps的窄带数据通信;而我们的目标是高速宽带的无线通讯系统,例如WiFi,在20MHz宽带上达到54Mbps的数据率。这完全是两个数量级以上的差别!
两年之后的今天,我所在的微软亚洲研究院无线与网络组成功开发了一种名为“Sora”的软件无线电系统。利用普通商用的PC平台和通用的无线前端,我们在Sora上成功实现了IEEE802.11a/b/g全部物理层和媒体访问层协议,并可以和商用硬件网卡进行无缝的通讯,并达到类似的性能。这项研究成果获得了网络界的顶尖会议NSDI 2009的最佳论文奖。2009年秋天,我们进一步在Sora平台上实现了第四代无线通讯标准3GPP LTE的上行部分。这进一步说明了利用现有的多核CPU,我们不仅可以实现现有的无线标准,而且也可以用来实现未来的标准。
[img]http://xilinx.eefocus.com/include/picture/500/400/data/10-01/15758711020158/1263177137_ca905e3.jpg[/img]
图1 Sora徽标。用中国篆体书写的SORA英文字母
因此,当上述的对话进行到这里时,我微笑了一下,回答说,“是的,这太可能了。要知道,软件无线电的时代到了。”
告诉你一个新名词:软件无线电
在传统的无线通讯系统中,关键的底层操作,例如物理层的信号处理,和媒体访问层控制,都基本上是用专用的硬件芯片来实现的。但是,专用的硬件芯片一旦设计生产,就无法修改了。而且,设计一款硬件芯片的成本非常高,因此仅有几家大型的通讯公司有能力自行设计和制作通讯芯片。这极大地制约了无线技术的研究和发展,使得无线技术的升级换代需要十年,甚至更长的周期。而软件无线电的思想则是在通用的计算平台上(例如CPU),利用软件程序完成大部分的无线底层功能。因为是软件实现的,因此可以很方便的修改和升级。并且,通用处理器的发展速度远远超过专用硬件和处理器。这是因为通用处理器的背后有很广大的市场驱动力,因此摩尔定律总是在通用处理器市场上发挥着主要的力量。
但是,通用处理器能够完成高速的无线信号处理吗?毕竟CPU不是为信号处理应用设计的。事实上,在Sora出现以前,人们普遍的看法是CPU的速度不够,因此必须依赖专门的硬件设备。但Sora改变了人们对软件无线电的看法。
Sora揭秘
如前所述,在通用处理器上实现高速的无线信号处理面临着非常大的挑战。首先,高速宽带的无线信号需要很高的采样率,因此需要高速的输入输出带宽。现在大家常用的高速串行接口USB2.0可以支持400Mbps的速度,而为了实现WiFi,我们需要至少1.4Gbps的速度;而为了支持新的802.11n,我们需要5G~10Gbps的速率。其次,如何在通用CPU架构上实现高速数字信号处理算法也是一个开放课题。过去的一些简单的计算表明实现802.11a需要的计算量已经超过了现有最新CPU的能力。这也正是许多人对软件无线电表示怀疑的原因。最后,无线系统是一个实时系统,因此要求软件无线电也能够精确的控制响应时间。这个实时要求的精确度在微秒级。而现在的操作系统能到达的实时性仅仅在毫秒级(有三个数量级的差距!)
Sora系统同时采用硬件和软件技术来解决这些挑战。首先,我们重新开发了一块新的PC输入输出板卡,称为无线控制板。无线控制板采用了最新的PCIe标准,可以实现10Gbps以上的传输速率,因此,可以满足大部分无线技术的需要。无线控制板连接的无线收发天线和PC,并在它们之间高速地传输数据。
[img]http://xilinx.eefocus.com/include/picture/500/400/data/10-01/15758711020158/1263177209_9b5fe639.jpg[/img]
图2 Sora基于PCIe接口的无线控制板
其次,我们考虑了无线信号处理算法的实现策略,采用了和硬件实现完全不同的方式。例如,在CPU架构上,我们大量的利用查找表的方式来加速算法;而这在硬件实现是不可想象的,因为在传统硬件无线系统中,存储器是一个稀有资源。Sora充分利用的现代CPU的多项特性,例如高速缓存和SIMD指令,并且同时可以利用多个CPU核并行加速算法的执行。这些软件优化技术大大提高了信号处理算法在CPU上的执行速度,从而可以满足实时通讯的要求。
最后,Sora采用了一项非常简单但有效的方式来实现对实时性的支持。Sora可以将多核系统的几个核从操作系统中分割出来。这些CPU核仅用来进行软件无线电的操作,而操作系统无法再对这些核进行调度,因此软件无线电的实时性得到了保障。
[img]http://xilinx.eefocus.com/include/picture/500/400/data/10-01/15758711020158/1263177308_bf87f389.jpg[/img]
图3 Sora软件无线电系统。完全基于一台商用PC
Sora正名:勇敢的先驱
2008年9月,在我们已经基本完成了软件无线电系统的时候,项目组的成员们激动地聚在一起各抒己见,想给系统起个好名字。在此之前,我们都是用Microsoft Research Software Radio这个描述性的名字。大家讨论了好久,都没有什么好的主意。正在这个时候,由于我们使用多核的CPU,因此有人提议用Cora,但过去已经有太多的研究项目叫Cora了。这时,突然有一名同事紧跟着建议道:“为什么不干脆叫Sora(SOftware Radio的前两个字母组合)算了。”这一下倒醍醐灌顶了所有的人,大家都夸口称赞:一个好名字的诞生往往就来自最简单的灵感。
回到家里,我在因特网上搜索了一下,发现Sora是日文中“天空”的意思。同时,Sora也是迪斯尼动画游戏“王国之心”的男主角。在故事中,这个十六岁的勇敢男孩,手持“钥匙刀”,成为拯救世界的先驱。这些也正暗喻了我们对Sora软件无线电系统的期望,希望它能启发更多的灵感,开辟另一个天空,从而为推动整个无线系统研究作出贡献。
[img]http://xilinx.eefocus.com/include/picture/500/400/data/10-01/15758711020158/1263177383_e7c48033.jpg[/img]
图4 为了庆祝Sora获得最佳论文奖,我们用所得的奖金制作的纪念文化衫。图为文化衫背面图案。上面写着:你是Sora,想象力才是你的极限。
[[i] 本帖最后由 aisexinsexnet 于 2010-1-27 10:08 编辑 [/i]]
lcb6848 2010-1-27 10:10
没完全看懂 是不是只用软件来处理信号
感觉还不如连硬件一起改了好
虽然只改软件的话 兼容性会好很多
f_dog 2010-1-27 10:26
不太可行的,DSP也就是所谓数字信号处理器是哈佛结构的,而一般的通用处理器是冯诺依曼结构。
两者面对对象不同的,DSP开发是专门用来处理大宽带,高速度,但计算要求精度低数据。
从体系结构上面对的就不同。
尤其现在的DSP更加专业化,高速化,比如802.11N,用通用处理器,最新的六核心,也会占满运算量。
这个耗电量比专用DSP高多了。
除非有一天人们满足于无线速度,同时通用CPU速度又比现在提高很多倍,才有可能这样。
而且在便携设备里也不太可能,因为便携设备要求低功耗,小体积。
而且这个“基于PCIe接口的无线控制板”必须携带基本控制系统,因为要求响应时间高,相当于一个微型操作系统了。
这样等于利用通用CPU做专门硬件,等于绕了一圈又回到钻用数字信号处理器结构上了,只是换成低效率的冯诺依曼结构。
费力不讨好啊。
aisexinsexnet 2010-1-28 09:36
f dog
同感!
ARM9虽然是哈佛结构,但是之前的版本(例如ARM7)也还是冯·诺依曼结构。早期的X86能迅速占有市场,一条很重要的原因,正是靠了冯·诺依曼这种实现简单,成本低的总线结构。现在的处理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经 类似 改进型哈佛结构的了。至于优缺点,哈佛结构就是复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。所以早期通用CPU难以采用这种结构。而单片机,由于内部集成了所需的存储器,所以采用哈佛结构也未尝不可。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。
wangyu7878 2010-2-8 23:49
*** 作者被禁止或删除 内容自动屏蔽 ***
zwzr 2010-2-26 13:59
老实说我不懂!不过目前有线比无限速度快的多!加油之
ddl0823 2010-2-26 16:01
我还是期待谷歌的“云计算” 普通的终端用户将有可能像使用电和水那样轻松地消费“计算”资源!
lxylxylxy 2010-2-26 20:44
脑子净水了,呵呵,说的看不懂,回复一个支持一下