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