“哦,什么標準?”
“什么標準也不是,” 我說,“我在做自己的無線物理層。”
“哦,你現在改行搞硬件了?”朋友很驚奇的問。
“沒有,沒有,我不懂硬件。我純粹在寫軟件,用軟件做。”我試圖解釋。
“聽起來很酷。但,這,可能嗎?……”
在過去的兩年里,類似的對話在我身邊經常發生。每次當我向別人說我在通用PC上,用軟件的方法實現所有無線底層功能(即軟件無線電)時,大多數人都這樣表示懷疑。我完全理解,這樣的疑惑是很有道理的,因為如果在兩年前,我也會有同樣的懷疑。在人們的常識里,通用CPU并非設計用來進行數字信號處理工作的。因此,無線底層通訊中需要的高速信號處理應該是硬件電路和專用DSP處理器的專利。在我剛剛開始軟件無線電研究時,最好的軟件無線電系統才實現了幾百Kbps的窄帶數據通信;而我們的目標是高速寬帶的無線通訊系統,例如WiFi,在20MHz寬帶上達到54Mbps的數據率。這完全是兩個數量級以上的差別!
兩年之后的今天,我所在的微軟亞洲研究院無線與網絡組成功開發了一種名為“Sora”的軟件無線電系統。利用普通商用的PC平臺和通用的無線前端,我們在Sora上成功實現了IEEE802.11a/b/g全部物理層和媒體訪問層協議,并可以和商用硬件網卡進行無縫的通訊,并達到類似的性能。這項研究成果獲得了網絡界的頂尖會議NSDI 2009的最佳論文獎。2009年秋天,我們進一步在Sora平臺上實現了第四代無線通訊標準3GPP LTE的上行部分。這進一步說明了利用現有的多核CPU,我們不僅可以實現現有的無線標準,而且也可以用來實現未來的標準。
圖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,并在它們之間高速地傳輸數據。
圖2 Sora基于PCIe接口的無線控制板
其次,我們考慮了無線信號處理算法的實現策略,采用了和硬件實現完全不同的方式。例如,在CPU架構上,我們大量的利用查找表的方式來加速算法;而這在硬件實現是不可想象的,因為在傳統硬件無線系統中,存儲器是一個稀有資源。Sora充分利用的現代CPU的多項特性,例如高速緩存和SIMD指令,并且同時可以利用多個CPU核并行加速算法的執行。這些軟件優化技術大大提高了信號處理算法在CPU上的執行速度,從而可以滿足實時通訊的要求。
最后,Sora采用了一項非常簡單但有效的方式來實現對實時性的支持。Sora可以將多核系統的幾個核從操作系統中分割出來。這些CPU核僅用來進行軟件無線電的操作,而操作系統無法再對這些核進行調度,因此軟件無線電的實時性得到了保障。
圖3 Sora軟件無線電系統。完全基于一臺商用PC
Sora正名:勇敢的先驅
2008年9月,在我們已經基本完成了軟件無線電系統的時候,項目組的成員們激動地聚在一起各抒己見,想給系統起個好名字。在此之前,我們都是用Microsoft Research Software Radio這個描述性的名字。大家討論了好久,都沒有什么好的主意。正在這個時候,由于我們使用多核的CPU,因此有人提議用Cora,但過去已經有太多的研究項目叫Cora了。這時,突然有一名同事緊跟著建議道:“為什么不干脆叫Sora(SOftware Radio的前兩個字母組合)算了。”這一下倒醍醐灌頂了所有的人,大家都夸口稱贊:一個好名字的誕生往往就來自最簡單的靈感。
回到家里,我在因特網上搜索了一下,發現Sora是日文中“天空”的意思。同時,Sora也是迪斯尼動畫游戲“王國之心”的男主角。在故事中,這個十六歲的勇敢男孩,手持“鑰匙刀”,成為拯救世界的先驅。這些也正暗喻了我們對Sora軟件無線電系統的期望,希望它能啟發更多的靈感,開辟另一個天空,從而為推動整個無線系統研究作出貢獻。
圖4 為了慶祝Sora獲得最佳論文獎,我們用所得的獎金制作的紀念文化衫。圖為文化衫背面圖案。上面寫著:你是Sora,想象力才是你的極限。
作者: 微軟亞洲研究院 譚焜