無限的“天空”:軟件無線電時代的來臨
“哦,什么標準?”
“什么標準也不是,” 我說,“我在做自己的無線物理層。”
“哦,你現(xiàn)在改行搞硬件了?”朋友很驚奇的問。
“沒有,沒有,我不懂硬件。我純粹在寫軟件,用軟件做。”我試圖解釋。
“聽起來很酷。但,這,可能嗎?……”
在過去的兩年里,類似的對話在我身邊經(jīng)常發(fā)生。每次當我向別人說我在通用PC上,用軟件的方法實現(xiàn)所有無線底層功能(即軟件無線電)時,大多數(shù)人都這樣表示懷疑。我完全理解,這樣的疑惑是很有道理的,因為如果在兩年前,我也會有同樣的懷疑。在人們的常識里,通用CPU并非設計用來進行數(shù)字信號處理工作的。因此,無線底層通訊中需要的高速信號處理應該是硬件電路和專用DSP處理器的專利。在我剛剛開始軟件無線電研究時,最好的軟件無線電系統(tǒng)才實現(xiàn)了幾百Kbps的窄帶數(shù)據(jù)通信;而我們的目標是高速寬帶的無線通訊系統(tǒng),例如WiFi,在20MHz寬帶上達到54Mbps的數(shù)據(jù)率。這完全是兩個數(shù)量級以上的差別!
兩年之后的今天,我所在的微軟亞洲研究院無線與網(wǎng)絡組成功開發(fā)了一種名為“Sora”的軟件無線電系統(tǒng)。利用普通商用的PC平臺和通用的無線前端,我們在Sora上成功實現(xiàn)了IEEE802.11a/b/g全部物理層和媒體訪問層協(xié)議,并可以和商用硬件網(wǎng)卡進行無縫的通訊,并達到類似的性能。這項研究成果獲得了網(wǎng)絡界的頂尖會議NSDI 2009的最佳論文獎。2009年秋天,我們進一步在Sora平臺上實現(xiàn)了第四代無線通訊標準3GPP LTE的上行部分。這進一步說明了利用現(xiàn)有的多核CPU,我們不僅可以實現(xiàn)現(xiàn)有的無線標準,而且也可以用來實現(xiàn)未來的標準。
圖1 Sora徽標。用中國篆體書寫的SORA英文字母
因此,當上述的對話進行到這里時,我微笑了一下,回答說,“是的,這太可能了。要知道,軟件無線電的時代到了。”
告訴你一個新名詞:軟件無線電
在傳統(tǒng)的無線通訊系統(tǒng)中,關鍵的底層操作,例如物理層的信號處理,和媒體訪問層控制,都基本上是用專用的硬件芯片來實現(xiàn)的。但是,專用的硬件芯片一旦設計生產(chǎn),就無法修改了。而且,設計一款硬件芯片的成本非常高,因此僅有幾家大型的通訊公司有能力自行設計和制作通訊芯片。這極大地制約了無線技術的研究和發(fā)展,使得無線技術的升級換代需要十年,甚至更長的周期。而軟件無線電的思想則是在通用的計算平臺上(例如CPU),利用軟件程序完成大部分的無線底層功能。因為是軟件實現(xiàn)的,因此可以很方便的修改和升級。并且,通用處理器的發(fā)展速度遠遠超過專用硬件和處理器。這是因為通用處理器的背后有很廣大的市場驅動力,因此摩爾定律總是在通用處理器市場上發(fā)揮著主要的力量。
但是,通用處理器能夠完成高速的無線信號處理嗎?畢竟CPU不是為信號處理應用設計的。事實上,在Sora出現(xiàn)以前,人們普遍的看法是CPU的速度不夠,因此必須依賴專門的硬件設備。但Sora改變了人們對軟件無線電的看法。
Sora揭秘
如前所述,在通用處理器上實現(xiàn)高速的無線信號處理面臨著非常大的挑戰(zhàn)。首先,高速寬帶的無線信號需要很高的采樣率,因此需要高速的輸入輸出帶寬。現(xiàn)在大家常用的高速串行接口USB2.0可以支持400Mbps的速度,而為了實現(xiàn)WiFi,我們需要至少1.4Gbps的速度;而為了支持新的802.11n,我們需要5G~10Gbps的速率。其次,如何在通用CPU架構上實現(xiàn)高速數(shù)字信號處理算法也是一個開放課題。過去的一些簡單的計算表明實現(xiàn)802.11a需要的計算量已經(jīng)超過了現(xiàn)有最新CPU的能力。這也正是許多人對軟件無線電表示懷疑的原因。最后,無線系統(tǒng)是一個實時系統(tǒng),因此要求軟件無線電也能夠精確的控制響應時間。這個實時要求的精確度在微秒級。而現(xiàn)在的操作系統(tǒng)能到達的實時性僅僅在毫秒級(有三個數(shù)量級的差距!)
Sora系統(tǒng)同時采用硬件和軟件技術來解決這些挑戰(zhàn)。首先,我們重新開發(fā)了一塊新的PC輸入輸出板卡,稱為無線控制板。無線控制板采用了最新的PCIe標準,可以實現(xiàn)10Gbps以上的傳輸速率,因此,可以滿足大部分無線技術的需要。無線控制板連接的無線收發(fā)天線和PC,并在它們之間高速地傳輸數(shù)據(jù)。
圖2 Sora基于PCIe接口的無線控制板
其次,我們考慮了無線信號處理算法的實現(xiàn)策略,采用了和硬件實現(xiàn)完全不同的方式。例如,在CPU架構上,我們大量的利用查找表的方式來加速算法;而這在硬件實現(xiàn)是不可想象的,因為在傳統(tǒng)硬件無線系統(tǒng)中,存儲器是一個稀有資源。Sora充分利用的現(xiàn)代CPU的多項特性,例如高速緩存和SIMD指令,并且同時可以利用多個CPU核并行加速算法的執(zhí)行。這些軟件優(yōu)化技術大大提高了信號處理算法在CPU上的執(zhí)行速度,從而可以滿足實時通訊的要求。
最后,Sora采用了一項非常簡單但有效的方式來實現(xiàn)對實時性的支持。Sora可以將多核系統(tǒng)的幾個核從操作系統(tǒng)中分割出來。這些CPU核僅用來進行軟件無線電的操作,而操作系統(tǒng)無法再對這些核進行調度,因此軟件無線電的實時性得到了保障。
圖3 Sora軟件無線電系統(tǒng)。完全基于一臺商用PC
Sora正名:勇敢的先驅
2008年9月,在我們已經(jīng)基本完成了軟件無線電系統(tǒng)的時候,項目組的成員們激動地聚在一起各抒己見,想給系統(tǒng)起個好名字。在此之前,我們都是用Microsoft Research Software Radio這個描述性的名字。大家討論了好久,都沒有什么好的主意。正在這個時候,由于我們使用多核的CPU,因此有人提議用Cora,但過去已經(jīng)有太多的研究項目叫Cora了。這時,突然有一名同事緊跟著建議道:“為什么不干脆叫Sora(SOftware Radio的前兩個字母組合)算了。”這一下倒醍醐灌頂了所有的人,大家都夸口稱贊:一個好名字的誕生往往就來自最簡單的靈感。
回到家里,我在因特網(wǎng)上搜索了一下,發(fā)現(xiàn)Sora是日文中“天空”的意思。同時,Sora也是迪斯尼動畫游戲“王國之心”的男主角。在故事中,這個十六歲的勇敢男孩,手持“鑰匙刀”,成為拯救世界的先驅。這些也正暗喻了我們對Sora軟件無線電系統(tǒng)的期望,希望它能啟發(fā)更多的靈感,開辟另一個天空,從而為推動整個無線系統(tǒng)研究作出貢獻。
圖4 為了慶祝Sora獲得最佳論文獎,我們用所得的獎金制作的紀念文化衫。圖為文化衫背面圖案。上面寫著:你是Sora,想象力才是你的極限。
作者: 微軟亞洲研究院 譚焜