專利名稱:用于軟件定義無線電平臺(tái)的無線電控制板的制作方法
用于軟件定義無線電平臺(tái)的無線電控制板背景軟件定義無線電(SDR)遵守完全可編程無線通信系統(tǒng)的承諾,有效地代替常規(guī)的 無線電技術(shù),常規(guī)的無線電技術(shù)通常具有主要在固定的、自定義硬件電路中實(shí)現(xiàn)的最低通 信層。然而,在實(shí)踐中實(shí)現(xiàn)SDR的承諾給開發(fā)人員帶來了難題。許多當(dāng)前的SDR平臺(tái)基于 諸如現(xiàn)場(chǎng)可編程門陣列(FPGA)或者嵌入式數(shù)字信號(hào)處理器(DSP)之類的可編程硬件。這 樣的硬件平臺(tái)可以滿足現(xiàn)代高速無線協(xié)議的處理和計(jì)時(shí)要求,但是,編程FPGA和專用DSP 是一項(xiàng)艱難的任務(wù)。例如,開發(fā)人員必須了解如何對(duì)每一特定的嵌入式體系結(jié)構(gòu)編程,常常 沒有編程和調(diào)試工具的豐富的開發(fā)環(huán)境的支持。另外,這樣的專用硬件平臺(tái)也可能是昂貴 的,例如,是基于諸如通用個(gè)人計(jì)算機(jī)(PC)之類的通用處理器(GPP)體系結(jié)構(gòu)的SDR平臺(tái) 的成本的至少幾倍。另一方面,使用通用PC的SDR平臺(tái)使開發(fā)人員能使用有很多完善的編程和調(diào)試工 具可用的熟悉的體系結(jié)構(gòu)和環(huán)境。此外,當(dāng)與使用專用的硬件的SDR平臺(tái)相比時(shí),使用通用 PC作為SDR平臺(tái)的基礎(chǔ)相對(duì)來說比較便宜。然而,使用通用PC的SDR平臺(tái)相對(duì)于上文所討 論的專用體系結(jié)構(gòu)通常具有一些相反的缺點(diǎn)。例如,由于PC硬件和軟件沒有被專門設(shè)計(jì)用 于無線信號(hào)處理,因此,常規(guī)的基于PC的SDR平臺(tái)只能實(shí)現(xiàn)有限的性能。例如,某些常規(guī)的 基于PC的SDR平臺(tái)通常在8MHz通道上只實(shí)現(xiàn)幾個(gè)Kbps的吞吐量,而諸如802. 11之類的 現(xiàn)代的高速無線協(xié)議卻能在寬得多的20MHz通道上支持多個(gè)Mbps數(shù)據(jù)速率。如此,當(dāng)在現(xiàn) 實(shí)世界的環(huán)境中使用標(biāo)準(zhǔn)操作系統(tǒng)和應(yīng)用程序時(shí),這些性能約束妨礙了開發(fā)人員使用基于 PC的SDR平臺(tái)來實(shí)現(xiàn)最先進(jìn)的無線協(xié)議的完全保真度。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下的具體實(shí)施方式
中進(jìn)一步描述的 一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征;也不旨 在用于確定或限制所要求保護(hù)的主題的范圍。此處的某些實(shí)現(xiàn)提供了能夠耦合到通用計(jì)算設(shè)備的系統(tǒng)總線的無線電控制板 (RCB)。RCB還可以包括允許使用消息交換協(xié)議以便在RCB和射頻(RF)前端之間交換數(shù)據(jù) 的接口。
參考附圖闡述具體實(shí)施方式
。在附圖中,附圖標(biāo)記中最左邊的數(shù)字標(biāo)識(shí)該附圖標(biāo) 記首次出現(xiàn)的附圖。在不同附圖中使用同一附圖標(biāo)記指示相似或相同的項(xiàng)或特征。圖1示出了根據(jù)此處所公開的某些實(shí)現(xiàn)的示例性體系結(jié)構(gòu)。圖2示出了根據(jù)某些實(shí)現(xiàn)的計(jì)算設(shè)備的示例性硬件和邏輯配置。圖3示出了根據(jù)某些實(shí)現(xiàn)的示例性無線電控制板和RF前端的表示。圖4示出了根據(jù)某些實(shí)現(xiàn)的示例性DMA存儲(chǔ)器訪問。圖5示出了根據(jù)某些實(shí)現(xiàn)的示例性邏輯配置。
圖6A示出了根據(jù)某些實(shí)現(xiàn)的算法優(yōu)化表。圖6B示出了根據(jù)某些實(shí)現(xiàn)的優(yōu)化的PHY塊。圖6C示出了根據(jù)某些實(shí)現(xiàn)的優(yōu)化的PHY塊。圖7A示出了根據(jù)某些實(shí)現(xiàn)的用于SMD(單指令多數(shù)據(jù))處理的示例性存儲(chǔ)器布局。圖7B示出了根據(jù)某些實(shí)現(xiàn)的用于SMD處理的示例性過程的流程圖。圖7C示出了根據(jù)某些實(shí)現(xiàn)的示出了使用查找表的處理的示例性圖。圖7D示出了根據(jù)某些實(shí)現(xiàn)的使用查找表的示例性過程的流程圖。圖8A示出了根據(jù)某些實(shí)現(xiàn)的示例性同步先進(jìn)先出(FIFO)緩沖器。圖8B示出了根據(jù)某些實(shí)現(xiàn)的生產(chǎn)者的示例性過程的流程圖。圖8C示出了根據(jù)某些實(shí)現(xiàn)的消費(fèi)者的示例性過程的流程圖。圖9A示出了根據(jù)某些實(shí)現(xiàn)的SDR的示例。圖9B示出了用于排他地在一個(gè)或多個(gè)核上執(zhí)行SDR處理的示例性過程。圖10示出了根據(jù)某些實(shí)現(xiàn)的示例性MAC處理。圖11示出了根據(jù)某些實(shí)現(xiàn)的示例性軟件頻譜分析儀。圖12示出了根據(jù)某些實(shí)現(xiàn)的示例性RCB接口。圖13示出了根據(jù)某些實(shí)現(xiàn)的示例性連接器。圖14示出了根據(jù)某些實(shí)現(xiàn)的示例性數(shù)據(jù)消息。圖15示出了根據(jù)某些實(shí)現(xiàn)的示例性控制消息。圖16示出了根據(jù)某些實(shí)現(xiàn)的示例性接口和協(xié)議。圖17示出了根據(jù)某些實(shí)現(xiàn)的示例性LVDS連接器布局。圖18示出了根據(jù)某些實(shí)現(xiàn)的另一示例性LVDS連接器布局。
具體實(shí)施例方式概覽此處所公開的各實(shí)現(xiàn)呈現(xiàn)了能夠在通用計(jì)算設(shè)備(包括個(gè)人計(jì)算機(jī)(PC)體系結(jié) 構(gòu))上實(shí)現(xiàn)的完全可編程軟件定義無線電(SDR)平臺(tái)和系統(tǒng)。此處的SDR的各實(shí)現(xiàn)組合了 基于專用硬件的SDR平臺(tái)的性能和保真度與通用處理器(GPP)SDR平臺(tái)的可編程性和靈活 性。此處的SDR的各實(shí)現(xiàn)使用硬件和軟件技術(shù)兩者來解決為高速SDR平臺(tái)使用通用計(jì)算設(shè) 備體系結(jié)構(gòu)所面臨的挑戰(zhàn)。在此處的SDR的一些實(shí)現(xiàn)中,硬件組件包括用于射頻(RF)接收 和發(fā)射的無線電前端,用于在無線電前端和計(jì)算設(shè)備上的存儲(chǔ)器和處理器之間的高吞吐量 且低延遲數(shù)據(jù)傳輸?shù)臒o線電控制板(RCB)。此外,此處的SDR的各實(shí)現(xiàn)還使用硬件和軟件技術(shù)兩者來解決為實(shí)現(xiàn)高速SDR而 使用通用計(jì)算設(shè)備體系結(jié)構(gòu)所面臨的挑戰(zhàn)。各實(shí)現(xiàn)還涉及與用于發(fā)射和接收的射頻(RF) 前端耦合的便宜的無線電控制板(RCB)。RCB通過高速且低延遲PCIe (外圍組件互連快捷) 系統(tǒng)總線來橋接RF前端與計(jì)算設(shè)備的存儲(chǔ)器。通過使用PCIe總線,RCB的某些實(shí)現(xiàn)可以 支持帶有亞微秒延遲的16. 7Gbps吞吐量(例如,在PCIe x8模式下),一起滿足了現(xiàn)代無線 協(xié)議的吞吐量和計(jì)時(shí)要求,而同時(shí)使用通用計(jì)算設(shè)備的處理器和存儲(chǔ)器來執(zhí)行數(shù)字信號(hào)處 理。此外,盡管此處的示例使用了 PCIe協(xié)議,但是,也可以可另選地使用其他高帶寬協(xié)議,諸如,例如,HyperTransportTM 協(xié)議。RCB的體系結(jié)構(gòu)可包括用于將RCB連接到RF前端的高速度接口,來實(shí)現(xiàn)RCB和RF 前端之間對(duì)應(yīng)于RF信號(hào)的數(shù)據(jù)的通信。各實(shí)現(xiàn)提供了有效的消息傳遞協(xié)議,該協(xié)議可包括 使用用于分別在RCB和RF前端之間傳遞編碼數(shù)據(jù)消息和控制消息/ACK的單獨(dú)的專用數(shù)據(jù) 和控制通道。各實(shí)現(xiàn)還提供了用于在RCB和RF前端之間傳遞相應(yīng)的狀態(tài)和時(shí)鐘信號(hào)的單 獨(dú)的專用狀態(tài)和時(shí)鐘通道。在一些實(shí)現(xiàn)中,RCB和RF前端之間的接口是用于提供高速數(shù)據(jù) 傳遞的LVDS (低壓差分信號(hào))接口。此外,可以使用訓(xùn)練或調(diào)節(jié)模式來優(yōu)化RCB和RF前端 之間的接口和協(xié)議定時(shí),以便根據(jù)時(shí)鐘信號(hào)的相位來調(diào)整定時(shí)數(shù)據(jù)訪問。另外,此處的SDR的各實(shí)現(xiàn)利用多核處理器體系結(jié)構(gòu)的特征來加速無線協(xié)議處理 并滿足協(xié)議計(jì)時(shí)要求。例如,此處的各實(shí)現(xiàn)可以使用專用的CPU核,存儲(chǔ)在大型低延遲高速 緩存中的查找表,以及SMD(單指令多數(shù)據(jù))處理器擴(kuò)展來在通用多核處理器上實(shí)現(xiàn)高效 物理層處理。此處所描述的某些示例性實(shí)現(xiàn)包括SDR,該SDR無縫地與商用802. lla/b/g網(wǎng) 絡(luò)接口控制器(NIC)進(jìn)行互操作,并在多個(gè)不同的調(diào)制中實(shí)現(xiàn)相當(dāng)于商業(yè)的NIC的性能。此外,某些實(shí)現(xiàn)還涉及完全可編程的軟件無線電平臺(tái)和系統(tǒng),該平臺(tái)和系統(tǒng)在通 用計(jì)算設(shè)備上提供專用SDR體系結(jié)構(gòu)的高性能,從而為開發(fā)人員解決了 SDR平臺(tái)難題。通 過使用此處的SDR的各實(shí)現(xiàn),開發(fā)人員可以使用通用計(jì)算設(shè)備,來實(shí)現(xiàn)并試驗(yàn)高速無線協(xié) 議堆棧,例如,IEEE 802. lla/b/g/n。例如,通過使用此處的各實(shí)現(xiàn),開發(fā)人員能夠在標(biāo)準(zhǔn)操 作系統(tǒng)上利用強(qiáng)大的編程和調(diào)試工具,在熟悉的編程環(huán)境中進(jìn)行編程。此處在SDR上實(shí)現(xiàn) 的軟件無線電可以像任何其他網(wǎng)絡(luò)設(shè)備顯現(xiàn),用戶能夠在此處的軟件無線電上運(yùn)行未經(jīng)修 改的應(yīng)用程序而同時(shí)實(shí)現(xiàn)類似于商品硬件無線電裝置的性能。另外,為符合物理層(PHY)處理要求,此處的SDR的各實(shí)現(xiàn)利用常見的可用通用處 理器中的多核體系結(jié)構(gòu)的各種特征。此處的SDR的各實(shí)現(xiàn)還包括顯式地支持流線型處理來 使得信號(hào)處理管道的組件能高效地橫跨多個(gè)核的軟件布局。例如,此處的各實(shí)現(xiàn)改變PHY 組件的常規(guī)實(shí)現(xiàn),以廣泛地利用查找表(LUT),從而以存儲(chǔ)器代替計(jì)算,從而導(dǎo)致處理時(shí)間 縮短,性能提高。例如,此處的各實(shí)現(xiàn)通過利用在常規(guī)GPP上可用的大型、低延遲高速緩存 來存儲(chǔ)以前計(jì)算出的LUT,大大地降低了 PHY處理的計(jì)算要求。另外,此處的SDR的各實(shí) 現(xiàn)還使用現(xiàn)有處理器中的SMD (單指令多數(shù)據(jù))擴(kuò)展來進(jìn)一步加速PHY處理。此外,為滿 足高速無線協(xié)議的實(shí)時(shí)要求,此處的SDR的各實(shí)現(xiàn)還提供新的內(nèi)核服務(wù)——核專用(core dedication),該服務(wù)排他地為實(shí)時(shí)SDR任務(wù)分配處理器核。核專用可以被用來保證通用計(jì) 算設(shè)備上的SDR所需的計(jì)算資源和準(zhǔn)確的時(shí)間控制。如此,此處的SDR的各實(shí)現(xiàn)能夠在使 用通用計(jì)算設(shè)備時(shí)完全支持對(duì)諸如802. lla/b/g/n、CDMA、GSM、WiMax之類的高速無線電協(xié) 議以及各種其他無線電協(xié)議的完整的數(shù)字處理。此外,應(yīng)該注意,盡管各種無線電協(xié)議是在 此處的示例中討論的,但是,此處的各實(shí)現(xiàn)不僅限于任何特定的無線電協(xié)議。體系結(jié)構(gòu)實(shí)現(xiàn)圖1示出了根據(jù)此處的某些實(shí)現(xiàn)的SDR平臺(tái)和系統(tǒng)100的示例性體系結(jié)構(gòu)。SDR 平臺(tái)和系統(tǒng)100包括具有多個(gè)核104的一個(gè)或多個(gè)多核處理器102。在所示出的實(shí)現(xiàn)中,多 核處理器102具有八個(gè)核104-1、…、104-8,但是,此處的其他實(shí)現(xiàn)不限于任何特定核數(shù)。 每一個(gè)核104都包括在處理過程中分別被相對(duì)應(yīng)的核104-1、…104-8所使用的一個(gè)或多 個(gè)相對(duì)應(yīng)的板載本地高速緩存106-1、…、106-8。另外,多核處理器102也可以包括一個(gè)或多個(gè)共享的高速緩存108和總線接口 110。合適的多核處理器的示例包括位于美國(guó)加利福 尼亞州圣克拉拉市的Intel公司推出的乂甜01^處理器,以及位于美國(guó)加利福尼亞州桑尼維 *,_Advanced Micro 06¥化68公司推出的^^ (^111處理器,雖然此處的各實(shí)現(xiàn)不僅限于 任何特定的多核處理器。在所示出的示例中,核中的兩個(gè),即核104-5和104-6執(zhí)行SDR的 處理,而其余的核104-1到104-4以及104-7到104-8執(zhí)行其他應(yīng)用程序、操作系統(tǒng)等等的 處理,如下文另外描述的。此外,在ー些實(shí)現(xiàn)中,可以提供兩個(gè)或更多個(gè)多核處理器102,并 且,跨兩個(gè)或更多個(gè)多核處理器的核104可以用于308處理。多核處理器102通過總線接ロ 110與高吞吐量、低延遲總線112進(jìn)行通信,并由此 與系統(tǒng)存儲(chǔ)器114進(jìn)行通信。如上文所提及的,總線112可以是?《6總線或具有高數(shù)據(jù)吞 吐量以及低延遲的其他合適的總線。此外,總線112還與無線電控制板(此8)116進(jìn)行通信。 如下面進(jìn)ー步地討論的,無線電控制板116可以耦合到可互換的無線電前端》ド前端)118。 RF前端118是通過天線(圖1中未示出)接收和/或發(fā)射無線電信號(hào)的硬件模塊。在此處 的308體系結(jié)構(gòu)的ー些實(shí)現(xiàn)中ぶド前端118表示數(shù)字和模擬域之間的明確定義的接ロ。例 如,在ー些實(shí)現(xiàn)中ぶド前端118可以包含模擬-數(shù)字(A/W和數(shù)字-模擬(D/A)轉(zhuǎn)換器,以 及用于射頻傳輸?shù)谋匦璧碾娐?,如下面進(jìn)ー步地討論的。在接收過程中,RF前端118從天線獲取模擬RF波形120,可能將波形下轉(zhuǎn)換為較 低頻率,然后,將模擬波形數(shù)字化為離散的數(shù)字樣本122,然后再將數(shù)字樣本122傳輸?shù)絉CB 116。在發(fā)射過程中,RF前端118從軟件無線電堆棧1 (即,如下面所討論的,生成數(shù)字樣 本的軟件)接受軟件生成的數(shù)字樣本122的同步流,以及合成相對(duì)應(yīng)的模擬波形120,然后 再通過天線發(fā)射波形120。由于所有信號(hào)處理都是在多核處理器102上用軟件完成的,因 此,對(duì)RF前端118的設(shè)計(jì)可以是相當(dāng)ー般化。例如ぶド前端118可以利用對(duì)RCB 116的標(biāo) 準(zhǔn)接ロ在自包含的模塊中實(shí)現(xiàn)。在相同頻帶上定義的多個(gè)無線技術(shù)可以使用相同的8ド前 端硬件118。此外,設(shè)計(jì)用于不同的頻帶的各種不同的8ド前端118還可以耦合到無線電控 制板116,以便在各種不同的頻帶上實(shí)現(xiàn)無線電通信。因此,此處的實(shí)現(xiàn)不限于任何特定頻 率或無線技術(shù)。根據(jù)此處的某些實(shí)現(xiàn),RCB 116是被優(yōu)化用于建立用于在RF前端118和存儲(chǔ)器 114之間傳輸高保真數(shù)字信號(hào)的高吞吐量、低延遲路徑的?〔接ロ板。無線電前端118和多 核處理器102之間的接ロ以及連接必須實(shí)現(xiàn)足夠高的吞吐量以傳輸高保真數(shù)字波形。例 如,為了支持802. 11協(xié)議的20MHz通道,接ロ應(yīng)該維持至少1. ^ 3Ps。作為比較,常規(guī)接 □ JnUSB 2. 0 ( ^ 480Mbps)或千兆以太網(wǎng)(彡lGbps)不能符合此要求。因此,為實(shí)現(xiàn)所 需的系統(tǒng)吞吐量,此8 116的某些實(shí)現(xiàn)使用高速、低延遲總線112,如PCIe。利用6^bps的 最大吞吐量(例如』《6 x32)和亞微秒延遲,?《6能夠輕松地支持多個(gè)吉比特?cái)?shù)據(jù)速率, 用于通過非常寬的頻帶或通過許多肌1 )通道發(fā)送和接收無線信號(hào)。此外,?じ“接ロ在許 多常規(guī)通用計(jì)算設(shè)備中通常是常見的。RCB 116的作用是充當(dāng)8ド前端118上的同步數(shù)據(jù)傳輸和處理器102上的異步處理 之間的橋梁。此8 116與大型板載存儲(chǔ)器ー起實(shí)現(xiàn)各種緩沖器和隊(duì)列,以便在同步和異步流 之間轉(zhuǎn)換,并使此8 116和系統(tǒng)存儲(chǔ)器114之間的爆發(fā)性傳輸平滑。大型板載存儲(chǔ)器還允 許高速緩存預(yù)先計(jì)算出的波形,以便如當(dāng)確認(rèn)接收到傳輸時(shí)快速傳輸波形,從而為軟件無 線電處理增加額外的靈活性。
最后,RCB 116為軟件提供低延遲控制路徑,以控制RF前端硬件118,并確保RF前 端118正確地與處理器102同步。例如,無線協(xié)議具有多個(gè)需要滿足的實(shí)時(shí)期限。因此,不 僅處理吞吐量是關(guān)鍵要求,而且處理延遲也應(yīng)該符合某些響應(yīng)期限。例如,某些媒體訪問控 制(MAC)協(xié)議也需要微秒的粒度級(jí)別的準(zhǔn)確的時(shí)間控制,以確保某些動(dòng)作在正好預(yù)先預(yù)定 的時(shí)間點(diǎn)發(fā)生。此處的各實(shí)現(xiàn)的RCB 116還提供這樣的低延遲控制。下面進(jìn)一步描述RCB 116的各實(shí)現(xiàn)的附加細(xì)節(jié)。示例性計(jì)算設(shè)備實(shí)現(xiàn)圖2示出了可以被用來實(shí)現(xiàn)此處所描述的SDR實(shí)現(xiàn)(諸如上文參考圖1所描述的 SDR平臺(tái)和系統(tǒng)100)的計(jì)算設(shè)備200的示例性描繪。計(jì)算設(shè)備200包括一個(gè)或多個(gè)多核處 理器202、存儲(chǔ)器204、一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備或介質(zhì)206、通信接口 208以及顯示器及 通過系統(tǒng)總線212進(jìn)行通信的其他輸入/輸出(I/O)設(shè)備210。存儲(chǔ)器204和大容量存儲(chǔ) 介質(zhì)206是能夠存儲(chǔ)當(dāng)被處理器202執(zhí)行的時(shí)導(dǎo)致計(jì)算設(shè)備200執(zhí)行此處所描述的各種功 能的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例。例如,存儲(chǔ)器204 —般可以包括易失性存儲(chǔ)器和 非易失性存儲(chǔ)器兩者(例如RAM、ROM等)。此外,大容量存儲(chǔ)介質(zhì)206 —般可包括硬盤驅(qū) 動(dòng)器,固態(tài)驅(qū)動(dòng)器,包括外置和可移動(dòng)驅(qū)動(dòng)器、存儲(chǔ)卡、閃存在內(nèi)的可移動(dòng)介質(zhì)等等。如上所 述,服務(wù)器計(jì)算設(shè)備200還可包括用于諸如經(jīng)由網(wǎng)絡(luò)、直接連接等來與其他設(shè)備交換數(shù)據(jù) 的一個(gè)或多個(gè)通信接口 208。顯示器及其他輸入/輸出設(shè)備210可包括用于顯示信息的特 定輸出設(shè)備,如顯示器,以及接收來自用戶的各種輸入并向用戶提供各種輸出的各種其他 設(shè)備,并可包括,例如,鍵盤、鼠標(biāo)、音頻輸入/輸出設(shè)備、打印機(jī)等等。計(jì)算設(shè)備200還包括用于實(shí)現(xiàn)此處的SDR的無線電控制板214和RF前端216。例 如,系統(tǒng)總線212可以是PCIe兼容的總線,或其他合適的高吞吐量、低延遲總線。無線電控 制板214和RF前端216可以對(duì)應(yīng)于上文參考圖1所描述的,以及還如下面參考圖3所描述 的無線電控制板116和RF前端118。此外,RCB控制模塊218還可以被存儲(chǔ)在存儲(chǔ)器204或 其他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,用于控制RCB 214上的操作,如下面另外描述的。此處所描述 的計(jì)算設(shè)備200只是計(jì)算環(huán)境的一個(gè)示例,而非旨在對(duì)可以實(shí)現(xiàn)此處的SDR的計(jì)算機(jī)體系 結(jié)構(gòu)的使用范圍或功能提出任何限制。計(jì)算設(shè)備200也不應(yīng)被解釋成對(duì)于在計(jì)算設(shè)備200 中所示出的任一組件或其組合有任何依賴或要求。此外,上文所描述的SDR平臺(tái)和系統(tǒng)100的各實(shí)現(xiàn)還可以用于除圖2中所示出的 計(jì)算設(shè)備200的示例之外的用于實(shí)現(xiàn)軟件定義無線電的許多不同的計(jì)算環(huán)境以及設(shè)備中。 一般而言,此處參考圖形所描述的許多功能都可使用軟件、硬件(例如,固定邏輯電路)、手 動(dòng)處理或這些實(shí)現(xiàn)的組合來實(shí)現(xiàn)。如此處所使用的術(shù)語“邏輯”、“模塊”、或“功能” 一般代 表可以被配置為實(shí)現(xiàn)規(guī)定功能的軟件、硬件或軟件和硬件的組合。例如,在軟件實(shí)現(xiàn)的情況 下,術(shù)語“邏輯”、“模塊”、或“功能”可表示當(dāng)在一個(gè)或多個(gè)處理設(shè)備(例如,CPU或處理器) 上執(zhí)行時(shí)執(zhí)行指定任務(wù)的程序代碼(和/或聲明型指令)。程序代碼可以被存儲(chǔ)在一個(gè)或 多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備中,如存儲(chǔ)器204和/或大容量存儲(chǔ)介質(zhì)206,或其他計(jì)算機(jī)可 讀存儲(chǔ)介質(zhì)中。因此,此處所描述的方法和模塊可由計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn)。該計(jì)算機(jī)程 序產(chǎn)品可包括其上包含計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀介質(zhì)。該計(jì)算機(jī)可讀程序代碼可 適于由一個(gè)或多個(gè)處理器來執(zhí)行,以實(shí)現(xiàn)此處所描述的各實(shí)現(xiàn)的方法和/或模塊。術(shù)語“計(jì) 算機(jī)可讀存儲(chǔ)介質(zhì)”、“處理器可訪問的存儲(chǔ)介質(zhì)”等等是指用于保留信息的任何類型的機(jī)器存儲(chǔ)介質(zhì),包括上文所討論的各種類型的存儲(chǔ)器和存儲(chǔ)設(shè)備。無線電控制板圖3示出了可以對(duì)應(yīng)于上文所描述的RCB 116、214和RF前端118、216的無線電 控制板(RCB) 302和RF前端304的示例性實(shí)現(xiàn)。在所示出的示例中,RCB 302包括用于控 制RF前端304和諸如上文所討論的總線112、212之類的系統(tǒng)總線306之間的數(shù)據(jù)傳輸?shù)?功能。在所示出的實(shí)現(xiàn)中,功能是現(xiàn)場(chǎng)可編程門陣列(FPGA)308,F(xiàn)PGA可以是位于美國(guó)加利 福尼亞州圣何塞市的Xilinx公司推出的Virtex-5FPGA、一個(gè)或多個(gè)其他合適的FPGA或被 配置成實(shí)現(xiàn)此處所描述的功能的其他等效電路。RCB 302包括直接存儲(chǔ)器訪問(DMA)控制 器310、總線控制器312、寄存器314、SDRAM控制器316以及RF控制器318。RCB 302還包 括第一 FIFO緩沖器320,用于充當(dāng)用于臨時(shí)存儲(chǔ)從RF前端304接收到的數(shù)字樣本的第一 FIFO,以及用于臨時(shí)存儲(chǔ)要被傳輸?shù)絉F前端304的數(shù)字樣本的第二 FIFO緩沖器322。DMA 控制器310通過總線控制器312來控制接收到的數(shù)字樣本到系統(tǒng)總線306的傳輸。SDRAM 控制器316控制諸如數(shù)字樣本、預(yù)先生成的波形等等之類的數(shù)據(jù)在板載存儲(chǔ)器324中的存 儲(chǔ)。只作為示例,存儲(chǔ)器324可以包括256MB的DDR2SDRAM。RCB 302可以連接到各種不同的RF前端304。這樣的前端304的一個(gè)合適示例 是位于美國(guó)德克薩斯州休斯頓市的賴斯大學(xué)推出的,被稱為無線公開訪問研究平臺(tái)(WARP) 前端。WARP前端能夠在2. 4GHz或5GHz發(fā)送和接收20MHz通道。在一些實(shí)現(xiàn)中,RF前端 304包括被配置為用于從天線328接收無線電波形并用于通過天線328發(fā)射無線電波形的 的RF收發(fā)器的RF電路326。RF前端304還可包括模擬-數(shù)字轉(zhuǎn)換器330和數(shù)字-模擬轉(zhuǎn) 換器332。如上文所討論的,模擬_數(shù)字轉(zhuǎn)換器330將接收到的無線電波形轉(zhuǎn)換為數(shù)字樣本 供進(jìn)行處理,而數(shù)字_模擬轉(zhuǎn)換器332將由處理器所生成的數(shù)字樣本轉(zhuǎn)換為無線電波形,供 RF電路326進(jìn)行發(fā)射。此外,還應(yīng)該注意,此處的各實(shí)現(xiàn)不僅限于任何特定前端304,并且, 在一些實(shí)現(xiàn)中,整個(gè)前端304可以被合并到RCB302中??闪磉x地,在其他實(shí)現(xiàn)中,模擬-數(shù) 字轉(zhuǎn)換器330和數(shù)字-模擬轉(zhuǎn)換器332可以被合并到RCB 302中,RF前端304可以只有RF 電路326和天線328。鑒于本發(fā)明,其他變型也將顯而易見。在圖3中所示出的實(shí)現(xiàn)中,DMA控制器310和總線控制器312與計(jì)算設(shè)備上的存 儲(chǔ)器和處理器(圖3中的未示出)連接,并在RCB 302和諸如上文所討論的存儲(chǔ)器114、204 之類的計(jì)算設(shè)備上的系統(tǒng)存儲(chǔ)器之間傳輸數(shù)字樣本。上文參考圖2所討論的RCB軟件控制 模塊218通過RCB寄存器314來發(fā)送命令并讀取RCB狀態(tài)。RCB 302還使用板載存儲(chǔ)器324 以及FPGA 308上的小型FIFO緩沖器320、322來在計(jì)算設(shè)備上的處理器和RF前端304之 間橋接數(shù)據(jù)流。當(dāng)接收到無線電波形時(shí),數(shù)字信號(hào)樣本被緩沖在芯片內(nèi)的FIFO緩沖器320 中,當(dāng)數(shù)字樣本適應(yīng)DMA爆發(fā)(例如,128字節(jié))時(shí),被遞送到計(jì)算設(shè)備上的系統(tǒng)存儲(chǔ)器中。 當(dāng)發(fā)射無線電波形時(shí),大型RCB存儲(chǔ)器324使RCB管理器模塊218 (例如,圖2)的各實(shí)現(xiàn)能 首先將所生成的樣本寫入到RCB存儲(chǔ)器324上,然后,利用到RCB的另一命令觸發(fā)發(fā)射。此 功能對(duì)SDR管理器模塊218的各實(shí)現(xiàn)提供了在實(shí)際發(fā)射波形之前預(yù)先計(jì)算和存儲(chǔ)對(duì)應(yīng)于多 種波形的數(shù)字樣本同時(shí)又允許準(zhǔn)確控制波形發(fā)射的時(shí)間的靈活性。應(yīng)該注意,在此處的SDR的一些實(shí)現(xiàn)中,在由DMA控制器310實(shí)現(xiàn)的操作和處理器 高速緩存系統(tǒng)上的操作之間的交互中可能會(huì)遇到一致性問題。例如,當(dāng)DMA操作修改已經(jīng) 被高速緩存在處理器高速緩存(例如,L2或L3高速緩存)中的存儲(chǔ)器位置時(shí),DMA操作不會(huì)使相對(duì)應(yīng)的高速緩存條目失效。因此,當(dāng)處理器讀取該位置時(shí),處理器可能從高速緩存中 讀取不正確的值。一個(gè)樸素的解決方案是禁止對(duì)用于DMA的存儲(chǔ)器區(qū)域的高速緩存的訪 問,但是,這樣做將導(dǎo)致存儲(chǔ)器訪問吞吐量的顯著退化。如圖4所示,此處的各實(shí)現(xiàn)通過使用智能取回策略來解決此問題,從而使SDR的各 實(shí)現(xiàn)能維護(hù)與DMA存儲(chǔ)器的高速緩存一致性,而不會(huì)劇烈地犧牲吞吐量。圖4示出了可以對(duì) 應(yīng)于上文所討論的系統(tǒng)存儲(chǔ)器114、204的存儲(chǔ)器402,其包括作為可以被RCB 302上的DMA 控制器310直接訪問以便將數(shù)字樣本存儲(chǔ)為數(shù)據(jù)的DMA存儲(chǔ)器404而預(yù)留的一部分。在一 些實(shí)現(xiàn)中,SDR將DMA存儲(chǔ)器404組織為其大小是高速緩存行的大小的倍數(shù)的小槽406。每 一個(gè)槽406都從包含標(biāo)記410或其他指示符以表示數(shù)據(jù)是否已經(jīng)被處理完的描述符408開 始。在DMA控制器310將滿槽的數(shù)據(jù)寫入到DMA存儲(chǔ)器404之后,RCB 302設(shè)置標(biāo)記410。 在處理器處理完高速緩存412 (可以對(duì)應(yīng)于上文所描述的高速緩存106和/或108)中的相 對(duì)應(yīng)的槽中的所有數(shù)據(jù)之后,標(biāo)記410被清除。當(dāng)處理器移動(dòng)到對(duì)應(yīng)于新槽406的高速緩 存位置時(shí),處理器首先讀取槽406的描述符,導(dǎo)致整個(gè)高速緩存行被填充。如果標(biāo)記410被 置位(例如,值“1”),則剛剛?cè)』氐臄?shù)據(jù)是有效的,處理器可以繼續(xù)處理數(shù)據(jù)。否則,如果 標(biāo)記沒有被置位(例如,值“0”),則RCB上的DMA控制器沒有用新的數(shù)據(jù)來更新此槽406, 而處理器顯式地刷新高速緩存行,并重復(fù)讀取同一個(gè)位置。下一個(gè)讀取重新填充高速緩存 行,加載來自DMA存儲(chǔ)器404的最近數(shù)據(jù)。因此,前述的過程確保處理器不會(huì)從高速緩存 412中讀取不正確的值。此外,盡管示出和描述了示例性RCB 302,但是,鑒于本發(fā)明對(duì)于本 領(lǐng)域的技術(shù)人員顯而易見的是,RCB 302的各種其他實(shí)現(xiàn)也在此處本發(fā)明的范圍內(nèi)。SDR軟件實(shí)現(xiàn)圖5示出了此處的SDR的軟件和邏輯體系結(jié)構(gòu)的示例性實(shí)現(xiàn),示出了 SDR的若干 個(gè)軟件組件和邏輯布局。SDR堆棧502包括無線MAC層模塊504、無線物理層(PHY)模塊 506、以及RCB管理器模塊508,RCB管理器模塊508包括DMA存儲(chǔ)器管理器510,并可以對(duì) 應(yīng)于上文所討論的RCB管理器218。這些組件提供了系統(tǒng)支持,包括驅(qū)動(dòng)程序框架、存儲(chǔ)器 管理、流線型處理等等。PHY模塊506的作用是將信息比特轉(zhuǎn)換為無線電波形,或反之。MAC 層模塊504的作用是協(xié)調(diào)無線網(wǎng)絡(luò)中的發(fā)射以避免沖突。還包括了 SDR支持庫512,該支持 庫512包括SDR物理層(PHY)庫514、流線型處理支持516以及實(shí)時(shí)支持518 (例如,如下面 另外討論的,用于確保核專用)。SDR堆棧軟件組件可以在各種時(shí)間在系統(tǒng)存儲(chǔ)器、高速緩 存和/或大容量存儲(chǔ)器或其他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存在,如在本領(lǐng)域內(nèi)已知的。此處的SDR的各實(shí)現(xiàn)中的軟件組件提供用于在諸如Windows XP、 Windows Vista 、Windows 7>Linux ,Mac OS X之類的通用操作系統(tǒng)或其他合適的操 作系統(tǒng)中實(shí)現(xiàn)各種無線PHY和MAC協(xié)議的必需的系統(tǒng)服務(wù)和編程支持。除便于與RCB的交 互之外,SDR堆棧502的各實(shí)現(xiàn)提供了大大地改善通用處理器上的PHY和MAC處理的性能 的一組技術(shù)。為滿足處理和實(shí)時(shí)要求,這些技術(shù)充分利用多核處理器體系結(jié)構(gòu)中的各種特 征,包括查找表(LUT)的廣泛應(yīng)用、與處理器SMD擴(kuò)展的大量的數(shù)據(jù)并行性、流線型處理在 多個(gè)核上的高效分區(qū),以及核對(duì)于軟件無線電任務(wù)的排它性專用??梢砸匀魏魏线m的編程語言來編寫SDR軟件的各實(shí)現(xiàn)。例如,在一些實(shí)現(xiàn)中,可以 以C來編寫軟件,另外,還可使用用于性能關(guān)鍵處理的某些匯編語言。此外,SDR堆棧502的 某些實(shí)現(xiàn)可以被實(shí)現(xiàn)為通用操作系統(tǒng)上的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序。如此,RCB管理器模塊508作為操作系統(tǒng)中用于操作和管理RCB的驅(qū)動(dòng)程序來起作用,并可包括用于使PCIe系統(tǒng)總線能 被使用的PCIe驅(qū)動(dòng)程序。SDR堆棧502向內(nèi)核側(cè)的上TCP/IP層522展示虛擬以太網(wǎng)接ロ 520,從而使SDR能顯現(xiàn)并作為網(wǎng)絡(luò)設(shè)備來起作用。由于此處在SDR上實(shí)現(xiàn)的任何軟件無線 電都可以表現(xiàn)為正常的網(wǎng)絡(luò)設(shè)備,因此,用戶所使用的所有的現(xiàn)有網(wǎng)絡(luò)應(yīng)用程序5M都能 夠以未經(jīng)修改的形式執(zhí)行并與SDR進(jìn)行交互。此外,在另一端,SDR堆棧在邏輯上通過系統(tǒng) 總線5M與RCB固件522進(jìn)行交互,如上文所討論的,系統(tǒng)總線5M可以是PCIe系統(tǒng)總線。在此處的SDR的一些實(shí)現(xiàn)中,SDRPHY處理庫514廣泛地利用查找表(LUT)和SIMD 指令來優(yōu)化PHY算法的性能。例如,PHY算法的一大半可以被替換為L(zhǎng)UT。某些LUT是簡(jiǎn) 單的預(yù)先計(jì)算;其它的要求更復(fù)雜的實(shí)現(xiàn),以使得LUT的大小較小。例如,在下面所討論的 軟-解映射示例中,通過利用算法的対稱性,LUT大小(例如,對(duì)于802. lla/g 54Mbps調(diào)制 為1.5KB)可以大大地縮小。此外,在下面所描述的示例性WiFi實(shí)現(xiàn)中,802. lla/g中所使 用的LUT的總大小約為200KB,而在802.Ilb中,大約為310KB,均能適宜地匹配在常規(guī)的多 核處理器的L2高速緩存內(nèi)。此外,如上文所討論的,某些實(shí)現(xiàn)還使用SIMD(單指令多數(shù)據(jù))指令,如設(shè)計(jì)用于 Intel CPU的SSE2(SMID流技術(shù)擴(kuò)展2)指令集,用于諸如當(dāng)處理數(shù)字樣本時(shí)加速對(duì)大量的 數(shù)據(jù)點(diǎn)的并行處理。由于SSE寄存器是128比特寬,而大多數(shù)PHY算法只要求8比特或16 比特定點(diǎn)運(yùn)算,因此,ー個(gè)SSE指令可以執(zhí)行8或16個(gè)同時(shí)計(jì)算。SSE2還具有對(duì)于靈活數(shù) 據(jù)排列的豐富的指令支持,而大多數(shù)PHY算法,例如,快速傅里葉變換(FFT)、有限脈沖響應(yīng) (FIR)過濾器和維特比解碼器算法,可以自然地適應(yīng)此SIMD模型。例如,根據(jù)此處的SDR的 維特比解碼器的各實(shí)現(xiàn)只使用40個(gè)周期來計(jì)算分支度量,并為每ー個(gè)輸入選定最短路徑。 結(jié)果,維特比實(shí)現(xiàn)可以只使用多核處理器中的ー個(gè)2. 66GHz CPU核來以54Mbps調(diào)制,處理 802. lla/g,而常規(guī)設(shè)計(jì)必須依賴于專用的硬件實(shí)現(xiàn)。另外,還應(yīng)該注意,其他品牌的處理器體系結(jié)構(gòu),如AMD推出的處理器,以及位于 美國(guó)加利福尼亞州的庫珀蒂諾市的Apple公司推出的p0werpc 處理器,具有可以類似地 使用的非常類似的SIMD模型和指令集。例如,AMD的Enhanced 3DNow! 處理器包括SSE 指令集加一組DSP (數(shù)字信號(hào)處理器)擴(kuò)展。此處所描述的優(yōu)化技術(shù)也可以直接應(yīng)用于這 些及其他GPP體系結(jié)構(gòu)。下面進(jìn)ー步地討論了使用SIMD指令優(yōu)化的功能塊的示例。圖6A示出了算法優(yōu)化表600,該表600概述了在此處的SDR中實(shí)現(xiàn)的某些PHY處理 算法,以及適合于改善處理速度的LUT和SIMD優(yōu)化技木。算法表600包括算法標(biāo)識(shí)列602、 配置列604、以及I/O大小列606、優(yōu)化方法列608、常規(guī)實(shí)現(xiàn)所需的計(jì)算數(shù)量列610、SDR實(shí) 現(xiàn)612所需的計(jì)算612以及通過優(yōu)化所獲得的加快的量614。例如,對(duì)于IEEE 802.Ilb標(biāo) 準(zhǔn),可以使用根據(jù)此處的SDR的LUT來優(yōu)化的算法包括擾碼算法620、解擾碼算法622、映射 和散布算法624以及CCK(補(bǔ)碼鍵控)調(diào)制器算法626,而可以使用SIMD擴(kuò)展來優(yōu)化的算法 包括HR過濾器628以及抽選算法630。另外,對(duì)于IEEE802.Ila標(biāo)準(zhǔn),可以使用SIMD擴(kuò)展 來優(yōu)化的算法包括FFT/IFFT (快速傅里葉變換/快速傅里葉逆變換)算法632,可以使用 根據(jù)此處的SDR的LUT來優(yōu)化的算法包括卷積編碼器算法634、維特比算法636、軟解映射 算法638以及擾碼和解擾算法640。此外,也可以使用SIMD擴(kuò)展來進(jìn)ー步優(yōu)化維特比算法 636。圖6B示出了對(duì)于IEEE802.Ilb以2Mbps的PHY操作的示例,進(jìn)ー步示出了如上文參考圖6ム所討論的根據(jù)這里的某些實(shí)現(xiàn)來優(yōu)化的功能塊的示例。?附層的作用是將信息 比特轉(zhuǎn)換為無線電波形或反之。如圖6B所示,在發(fā)射器一側(cè)處,無線PHY組件首先將消息 (即數(shù)據(jù)包或嫩〔幀)調(diào)制為基帶信號(hào)的時(shí)間序列。然后,將基帶信號(hào)傳遞到無線電前端, 在此,它們被乘以高頻載波,并被發(fā)送到無線通道。在所示示例中,來自嫩〔的數(shù)據(jù)進(jìn)入擾 碼塊650、DQPSK調(diào)制器塊652、直接序列擴(kuò)展頻譜塊654、碼元波形整形塊656,然后被傳遞 到RF前端。在接收器ー側(cè)處ぶド前端檢測(cè)通道中的信號(hào),并通過去除高頻載波來提取基帶 信號(hào)。然后,所提取的基帶信號(hào)被饋送給接收器的?附層,以被解調(diào)為原始消息。在所示示 例中,來自8ド前端的信號(hào)被傳遞到抽選塊658、解擴(kuò)塊660、00 5に解調(diào)器塊662、解擾碼塊 664,然后到霞層。因此,高級(jí)通信系統(tǒng)(例如,臓802. lla/b/g)在它們的PHY組件中 包含多個(gè)功能塊。這些功能塊彼此被流水化。數(shù)據(jù)通過這些塊按順序流送,但是,帶有不同 的數(shù)據(jù)類型和大小。例如,如圖68所示,不同的塊可以按照小數(shù)據(jù)塊排列以不同速率消費(fèi) 或產(chǎn)生不同類型的數(shù)據(jù)。例如,在802. 1讓中,如圖68所示,擾碼器塊650可以消費(fèi)和產(chǎn)生 ー個(gè)比特,而00 5に調(diào)制塊652將每?jī)杀忍財(cái)?shù)據(jù)塊映射到復(fù)碼元,該復(fù)碼元使用兩個(gè)16比 特?cái)?shù)字來表示同相和正交(I/Q)分量。每一?附塊都對(duì)每個(gè)發(fā)送或接收到的比特執(zhí)行固定量的計(jì)算。當(dāng)數(shù)據(jù)速率高時(shí), 例如,對(duì)于802. llb*llMbps,M〒802. 113/^為討胞?8沖附處理塊消費(fèi)大量的計(jì)算能力。 據(jù)估計(jì),802. Ilb的直接實(shí)現(xiàn)可能要求10 ^、而802. 11£^^要求至少40 ^8。這些要求對(duì) 于GPP中的軟件處理是非??量痰摹T诎l(fā)射器一側(cè)調(diào)制之后以及在接收器一側(cè)解調(diào)之前,PHY處理塊直接對(duì)數(shù)字波形 進(jìn)行操作。因此,需要高吞吐量接口,以便連接這些處理塊以及連接?附與無線電前端。所 需的吞吐量隨著基帶信號(hào)的帶寬而線性地伸縮。例如,在802.11も通道帶寬是201^2。這 要求每秒鐘至少2000萬復(fù)式樣本的數(shù)據(jù)速率來表示波形。這些復(fù)式樣本對(duì)于I和Q分量 兩者通常要求16比特量化,以提供足夠的保真度,每個(gè)樣本轉(zhuǎn)換成32個(gè)比特,或者對(duì)于整 個(gè)20MHz通道為640Mbps。過采樣是一種廣泛地用于取得更好的性能的技術(shù),它使要求加倍 到1. 28Gbps,以便在一個(gè)802. Ila通道的RF前端和PHY塊之間移動(dòng)數(shù)據(jù)。如上文參考圖6A所討論的,為了加快對(duì)某些塊的處理,此處的各實(shí)現(xiàn)通過使用上 文所討論的LUT和SIMD優(yōu)化技術(shù)來優(yōu)化某些功能塊。在圖6B的所示示例中,如粗體所示, 擾碼塊650、解擾碼塊664以及DQPSK調(diào)制器和DQPSK解調(diào)器塊6 使用存儲(chǔ)在處理器上 的高速緩存中的LUT來優(yōu)化,對(duì)應(yīng)于上文參考圖6A所討論的擾碼算法620、解擾碼算法622 以及映射和散布算法624。此外,抽選塊658使用SIMD處理器擴(kuò)展而優(yōu)化,對(duì)應(yīng)于上文參考 圖6A所討論的抽選算法630。類似地,圖6C示出了在2Mbps時(shí)對(duì)于IEEE 802. Ilb的PHY操作的示例,以粗體示 出了哪些功能塊是根據(jù)這里的某些實(shí)現(xiàn)來優(yōu)化的,如上文參考圖6ム所討論的。在發(fā)射器一 側(cè),從MAC層接收到的數(shù)據(jù)被傳遞到擾碼塊670、卷積編碼器塊672、交錯(cuò)塊674、QAM調(diào)制器 塊676、IFFT塊670、GI添加塊680、碼元波形整形塊682,然后被傳遞到RF前端。在接收器 一側(cè),來自RF前端的信號(hào)被傳遞到抽選塊684、抽選塊684、去除GI塊686、FFT塊688、解 調(diào)和交錯(cuò)塊690、維特比解碼塊692、解擾碼塊694,然后到MAC處理。為了加快對(duì)某些塊的 處理,此處的各實(shí)現(xiàn)通過使用上文參考圖6A所討論的LUT和SIMD優(yōu)化技術(shù)來優(yōu)化某些功 能塊。在圖6C的所示示例中,擾碼塊670和解擾碼塊694使用存儲(chǔ)在處理器上的高速緩存中的LUT而優(yōu)化,對(duì)應(yīng)于上文所討論的擾碼和解擾碼算法640 ;FFT塊688和IFFT塊670使 用SMD處理器擴(kuò)展而優(yōu)化,對(duì)應(yīng)于上文所討論的FFT/IFFT算法632 ;卷積編碼器塊672使 用LUT而優(yōu)化,對(duì)應(yīng)于上文所討論的卷積編碼器算法634 ;而維特比解碼塊692使用LUT和 SIMD處理器擴(kuò)展兩者而優(yōu)化,對(duì)應(yīng)于上文所討論的維特比算法636。此外,除此示例中所示 出的優(yōu)化之外,其他優(yōu)化機(jī)會(huì)鑒于本發(fā)明對(duì)本領(lǐng)域的技術(shù)人員是顯而易見的。某于FIR討濾器的S頂D示例下面提供了此處的SDR的各實(shí)現(xiàn)中的如何使用SSE指令來優(yōu)化FIR(有限脈沖響 應(yīng))過濾器的實(shí)現(xiàn)的示例,對(duì)應(yīng)于上文參考圖6A所討論的FIR過濾器算法628,可以理解, 也可以類似地實(shí)現(xiàn)諸如抽選630之類的其他算法的優(yōu)化。FIR過濾器廣泛地用于各種PHY 層中。n抽頭FIR過濾器被定義為如下r|l; +...E;:丨:I * x[l — If],其中,x[.]是輸入樣本,y[.]是輸出樣本,而ck是過濾系數(shù)。利用SMD指令,有 可能同時(shí)處理多個(gè)樣本。例如,Intel SSE支持128位打包的向量,每一 FIR樣本都獲取16 比特。因此,有可能同時(shí)執(zhí)行m = 8個(gè)計(jì)算。為促進(jìn)SSE處理,存儲(chǔ)器中的數(shù)據(jù)布局應(yīng)仔細(xì) 設(shè)計(jì)。圖7A示出了根據(jù)此處的各實(shí)現(xiàn)的FIR系數(shù)的存儲(chǔ)器布局700。每一行702_1、…、 702-(n+m-l)構(gòu)成包含SMD操作的m分量的打包的向量。FIR過濾器的系數(shù)向量以之字 形布局在每一列704-1、 704-m中復(fù)制。如此,行的總數(shù)是(n+m-1)。還有n個(gè)臨時(shí)變量 706,包含為每一樣本對(duì)每一 FIR抽頭的累積的總和。圖7B示出了用于執(zhí)行由SDR堆棧的PHY層在多核處理器的核上執(zhí)行的FIR過濾 器的SIMD操作的示例性過程的流程圖。過程接收輸入樣本陣列和系數(shù)陣列,并在輸出樣本 緩沖器中輸出經(jīng)過濾的樣本。在框712,過程接收輸入樣本陣列和系數(shù)陣列。輸入樣本包含兩個(gè)單獨(dú)的樣本流, 偶數(shù)和奇數(shù)索引樣本分別表示I和Q樣本。系數(shù)陣列類似于圖7A的布局排列,但是,分別 帶有I和Q樣本的兩組FIR系數(shù)。在框714,對(duì)于每一個(gè)迭代,四個(gè)I和四個(gè)Q樣本被加載到SSE寄存器中。在框716,過程將每一行中的數(shù)據(jù)相乘,并將結(jié)果與相對(duì)應(yīng)的時(shí)間上累積的總和變 量相加。在框718,過程確定是否已經(jīng)處理完輸入樣本的陣列中的所有樣本以計(jì)算所有抽 頭。如果否,則過程返回到框714,以將其它I和Q樣本加載到SSE寄存器中。在框720,當(dāng)為輸入樣本計(jì)算了所有抽頭時(shí),為輸入樣本輸出結(jié)果。當(dāng)輸入樣本流 比較長(zhǎng)時(shí),在流水線中有nm個(gè)樣本,在每一迭代中生成了 m個(gè)輸出。注意到,輸出樣本的次 序可以不與輸入樣本相同。例如,某些算法不總是要求輸出與輸入具有完全相同的順序。因此,在框722,輸出結(jié)果可以被重新排序?yàn)樵柬樞颉H绻枰脑?,這可以通過 使用幾個(gè)洗牌指令來將輸出樣本置于原始順序來實(shí)現(xiàn)。然后,過程返回到框714,以繼續(xù)從 框712接收輸入樣本的流,直到處理完所有樣本。如此,盡管前述的內(nèi)容提供了用于加速對(duì) 此處的SDR中的數(shù)字樣本的處理的SMD處理的具體示例,但是,鑒于本發(fā)明對(duì)于本領(lǐng)域的 技術(shù)人員顯而易見的是,根據(jù)此處的各實(shí)現(xiàn),如上文參考圖6A-6C所討論的示例,可以應(yīng)用 此過程,以在多核處理器的一個(gè)或多個(gè)核上優(yōu)化其他SDR算法。
高件能SDR處理此處的SDR的各實(shí)現(xiàn)使用包括高效的物理層處理、多核流線型處理和實(shí)時(shí)支持的軟件技術(shù)(下面將另外對(duì)它們進(jìn)行描述),實(shí)現(xiàn)了高性能的SDR處理。有效的PHY處理在存儲(chǔ)器換計(jì)算的折衷中,此處的SDR的各實(shí)現(xiàn)依賴多核處理器中的大容量、高速緩沖存儲(chǔ)器,以使用存儲(chǔ)在PHY庫中的預(yù)先計(jì)算出的LUT來加速PHY處理。諸如IntelCore 2之類的現(xiàn)代處理器體系結(jié)構(gòu),通常具有至少若干個(gè)兆字節(jié)、帶有低(例如,10 20周期)訪問延遲的板載高速緩存。如果為大部分的PHY算法預(yù)先計(jì)算了 LUT并將其存儲(chǔ)在相對(duì)應(yīng)的核的板載高速緩存中,則這可以大大地降低對(duì)于在線處理的計(jì)算要求,并加快總的處理時(shí)間。例如,用于IEEE 802. Ila標(biāo)準(zhǔn)中的解調(diào)中的軟解映射算法638需要計(jì)算傳入碼元中所包含的每一比特的置信水平。此任務(wù)涉及與調(diào)制密度成比例的相當(dāng)復(fù)雜的計(jì)算。更確切地說,軟解映射算法638對(duì)星座圖中的所有調(diào)制點(diǎn)執(zhí)行大量的搜索,并計(jì)算到表示I的所有點(diǎn)的歐幾里德距離中的最小值和到表示0的所有點(diǎn)的距離的最小值之間的比率。在此處的SDR的各實(shí)現(xiàn)中,基于其I和Q值,預(yù)先計(jì)算所有可能的傳入碼元的置信水平,并構(gòu)建LUT,以將輸入碼元直接映射到置信水平。這樣的LUT不必很大。例如,在帶有54Mbps調(diào)制速率(64QAM)的802. lla/g中,軟解映射638的LUT的大小大約是I. 5KB。圖7C-7D示出了根據(jù)此處的某些實(shí)現(xiàn)的使用LUT的SDR處理的示例。圖7C示出了如何通過使用預(yù)先計(jì)算出的LUT代替使用處理算法來對(duì)比特執(zhí)行實(shí)際處理來加快對(duì)功能塊的處理。例如,當(dāng)有輸入比特和相對(duì)應(yīng)的輸出數(shù)據(jù)的有限的組合時(shí),可以預(yù)先計(jì)算出LUT以便用來快速地將輸入與相對(duì)應(yīng)的輸出進(jìn)行匹配。在圖7C中,數(shù)字樣本的輸入比特的陣列被作為比特流接收,供進(jìn)行處理,諸如在上文參考圖6A-6C所描述的功能處理塊中的能夠使用LUT來加速處理的一個(gè)(例如,卷積編碼器算法)中。卷積編碼器通常按下列方式工作。卷積編碼器算法維護(hù)構(gòu)成編碼器的狀態(tài)的七個(gè)移位寄存器734。對(duì)于每一個(gè)傳入的比特,算法736選定移位寄存器734中的多個(gè)比特,并對(duì)它們執(zhí)行異或(XOR)運(yùn)算,然后生成兩個(gè)編碼的輸出比特,作為輸出數(shù)據(jù)A 738和輸出數(shù)據(jù)B 740。然后,移位寄存器734向右移位,輸入比特被置于最左邊的寄存器中。通常,為處理一個(gè)比特,需要花費(fèi)八個(gè)運(yùn)算來計(jì)算輸出(即,從I比特輸入產(chǎn)生2比特輸出)。然而,如上文所討論的,處理可以通過使用LUT 742來避免對(duì)算法736的實(shí)際處理。如此,代替一次處理一個(gè)比特,可以將8比特?cái)?shù)據(jù)當(dāng)作單個(gè)輸入,以便使用LUT進(jìn)行處理。可以組合8比特輸入和當(dāng)前狀態(tài)的7比特狀態(tài),以生成15比特的索引744。然后,在LUT 742中定位15比特索引,根據(jù)LUT 742來確定相對(duì)應(yīng)的預(yù)先計(jì)算出的新7比特狀態(tài)746和16比特輸出748,代替通過處理算法736,分別地處理每一比特。如此,顯然,如果所有可能的15比特索引以及其相對(duì)應(yīng)的輸出7比特狀態(tài)746和16比特輸出748被預(yù)先計(jì)算并存儲(chǔ)在LUT 742中,則可以大大地加速SDR樣本流的實(shí)際處理時(shí)間(即,可以使用單個(gè)查找操作來執(zhí)行對(duì)八個(gè)比特的編碼)。圖7D示出了可以通過使用LUT代替使用常規(guī)算法(如卷積編碼器算法)處理比特流來由SDR堆棧的PHY層在多核處理器的核上執(zhí)行的示例性過程750。如上文參考圖6A-6C所討論的,可以通過使用預(yù)先計(jì)算出的LUT來類似地加速SDR流水線中的其他算法。
在框752,接收輸入樣本比特的陣列,供作為比特流進(jìn)行處理。
在框754,過程加載第一字節(jié)(8比特),并利用當(dāng)前編碼器狀態(tài)(7比特狀態(tài))生成索引。在框756,過程使用所生成的索引來訪問預(yù)先計(jì)算出LUT,并定位兩個(gè)值兩個(gè)輸出字節(jié)(即,16比特輸出)和7比特新狀態(tài)。在框758,兩個(gè)輸出字節(jié)被作為輸出傳遞到SDR處理流中的下一個(gè)處理塊,例如,如圖6B或6C所示,并且,7比特新狀態(tài)用于處理樣本比特流中的下一個(gè)字節(jié)。在框760,增大首部指示符,以涵蓋接下來的八個(gè)比特。在框762,過程確定是否已經(jīng)到達(dá)比特陣列的末尾。如果否,則過程返回到框754,以處理下一個(gè)字節(jié);如果是,則過程進(jìn)入框752以接收輸入比特的下一個(gè)陣列。如上文參考圖6A-6C所討論的,IEEE 802. 11標(biāo)準(zhǔn)的常見的PHY算法的一大半可以利用LUT代替,從而導(dǎo)致大致I. 5x到50x的處理時(shí)間加速614 (例如,參見圖6A)。由于每一 LUT的大小足夠小,因此,處理路徑中的所有LUT的總和可以輕松地容納在典型的多核處理器核的L2高速緩存中。因此,當(dāng)與核專用相結(jié)合時(shí),如下面所討論的,高速緩存沖突的可能性非常小。結(jié)果,此處的各實(shí)現(xiàn)的LUT在PHY處理過程中幾乎總是位于板載高速緩存中。另外,盡管在圖7C-7D中示出了示例性實(shí)現(xiàn)以描述LUT如何可以被用來加速SDR處理,但是,應(yīng)該理解,上文所討論的能夠利用LUT來加速的其他算法也可以使用預(yù)先計(jì)算出的LUT類似地處理。此外,為了利用數(shù)據(jù)級(jí)別的并行性來加速PHY處理,此處的SDR的各實(shí)現(xiàn)還使用上文所討論的SMD處理器擴(kuò)展,如在常規(guī)多核處理器中所提供的SSE、SEE2、3DNow! 、以及AltiVec 。雖然這些擴(kuò)展最初被設(shè)計(jì)用于多媒體和圖形應(yīng)用程序,但是這些擴(kuò)展也很好地 匹配無線信號(hào)處理的需求,因?yàn)樵S多PHY算法具有可以輕松地映射到大矢量運(yùn)算的固定的計(jì)算結(jié)構(gòu)。測(cè)量值示出了,在此處的SDR的各實(shí)現(xiàn)中,這樣的SMD擴(kuò)展會(huì)大大地加快PHY處理。多核流線型處理即使有上面的優(yōu)化,單個(gè)CPU核可能沒有足夠的處理能力來滿足高速無線通信技術(shù)的處理要求。結(jié)果,此處的SDR的各實(shí)現(xiàn)能夠使用多核處理器中的一個(gè)以上的核來進(jìn)行PHY處理。在一些實(shí)現(xiàn)中,多核技術(shù)還可縮放,以提供與隨著無線技術(shù)的發(fā)展而變得越來越復(fù)雜的信號(hào)處理算法的兼容性。如上文所討論的,如參考圖6B和6C,物理層處理通常包含流水線中的若干個(gè)功能塊或不同的階段。這些塊在處理速度和輸入/輸出數(shù)據(jù)速率和單元方面不同。塊只有當(dāng)該塊從前面的塊接收到足夠的輸入數(shù)據(jù)時(shí)才準(zhǔn)備執(zhí)行。因此,一個(gè)關(guān)鍵問題是當(dāng)塊已準(zhǔn)備好進(jìn)行處理時(shí)如何在多個(gè)核上調(diào)度功能塊。圖8A示出了用于在多核處理器802 (可以對(duì)應(yīng)于上文所討論的多核處理器102、202)中的不同的核上處理數(shù)據(jù)的示例性實(shí)現(xiàn)。例如,第一核804和第二核806可以被用來處理上文參考圖6A-6C所討論的功能塊。第一核804可以與第二核806位于同一個(gè)多核處理器中,或者核804、806可以位于單獨(dú)的處理器中。在圖8A,第一核804和第二核806使用靜態(tài)調(diào)度方案來處理多個(gè)功能塊808。此實(shí)現(xiàn)基于PHY處理流水線中的每一個(gè)塊的調(diào)度實(shí)際上都是靜態(tài)的觀察,即,以前的塊的處理模式可以確定隨后的塊是否已準(zhǔn)備好。此處的SDR的各實(shí)現(xiàn)如此可以將整個(gè)PHY處理流水線分區(qū)為多個(gè)子流水線810,并靜態(tài)地將子流水線810分配給不同的核804、806。在一個(gè)子流水線810內(nèi),當(dāng)?shù)谝粔K808為下一個(gè)塊累積了足夠的數(shù)據(jù)以便準(zhǔn)備好時(shí),第一塊顯式地調(diào)度下一個(gè)塊。來自不同的塊的相鄰的子流水線與管理數(shù)據(jù)在子流水線810之間的傳輸?shù)耐降腇IFO 812連接在一起。例如,可以在上文參考圖I所討論的高速緩存106、108中的一個(gè)中建立同步的FIFO 812。如此,此處的各實(shí)現(xiàn)允許不同的PHY處理塊808跨多個(gè)核804、806而流線化,同時(shí)通過一個(gè)或多個(gè)共享存儲(chǔ)器同步的FIFO隊(duì)列彼此進(jìn)行通信。例如,如果兩個(gè)塊808 (例如,圖8A的塊2和塊3)在不同的核804、806上運(yùn)行,則它們對(duì)共享FIFO812的訪問必須被同步。在被稱為基于計(jì)數(shù)器的FIFO(CBFIFO)中,同步的FIFO的傳統(tǒng)的實(shí)現(xiàn)使用計(jì)數(shù)器來同步寫入器(生產(chǎn)者)和讀取器(消費(fèi)者)。然而,此計(jì)數(shù)器由兩個(gè)處理器核共享,由一個(gè)核對(duì)變量的每個(gè)寫入都將導(dǎo)致另一 個(gè)核上的高速緩存未中。由于生產(chǎn)者和消費(fèi)者兩者都修改此變量,因此,對(duì)于每一個(gè)數(shù)據(jù),兩個(gè)高速緩存未中是不可避免的。在PHY具有非常細(xì)微的數(shù)據(jù)粒度也是非常常見的(例如,如在上文所討論的圖6中概述的4-16字節(jié))。因此,當(dāng)對(duì)于這樣的小塊的數(shù)據(jù)必須非常頻繁地(例如,每個(gè)微秒一次)執(zhí)行同步時(shí),這樣的高速緩存未中將導(dǎo)致大量的開銷。在此處的SDR的各實(shí)現(xiàn)中,實(shí)現(xiàn)了不使用共享的同步變量的核間同步循環(huán)FIFO緩沖器812。代替具有共享變量,此處的各實(shí)現(xiàn)利用表示槽是空還是滿的(即,“E”或“F”)的首部來增強(qiáng)同步的FIFO緩沖器812中的每一數(shù)據(jù)槽814。此外,每一數(shù)據(jù)槽814還被填充到等于高速緩存行大小的倍數(shù)的大小。如此,消費(fèi)者始終在環(huán)形緩沖器812中追趕生產(chǎn)者,以獲得填滿的槽,如下面的偽代碼中所概述的
//生產(chǎn)者
voidwritefifo ( D AT AT YPE data) { while (q[w_tail].flag>0); // 自旋等待 q[w—tail] .data = data; q[w—tail].flag = I; //占用 w—tail = (w—tail+1) % q—size;
}
//消費(fèi)者
voidreadfifo (D AT AT YPE * pdata) { while (q[r_head].flag==0); Il 自旋 *data = q[r—head] .data; q[r—head].flag = 0; //釋放 r—head = (r—head + I) % q_size;
}此追逐指針FIFO (CPFIFO)通過生產(chǎn)者指針816和消費(fèi)者指針818的實(shí)現(xiàn),甚至對(duì)于非常細(xì)微的同步,也大大減輕了開銷。例如,如果生產(chǎn)者(例如,第一核804上塊2)和消費(fèi)者(例如,第二核806上的塊)的速度相同,并且兩個(gè)指針分隔了特定偏移(例如,Intel體系結(jié)構(gòu)中的兩個(gè)高速緩存行),則在同步的流傳送期間將不會(huì)發(fā)生高速緩存未中,因?yàn)樵趯?shí)際訪問之前本地高速緩存將預(yù)取之后的槽。如果生產(chǎn)者和消費(fèi)者具有不同的處理速度,例如,消費(fèi)者(讀取器)比生產(chǎn)者(寫入器)快,那么,最終消費(fèi)者將等待生產(chǎn)者釋放一個(gè)槽。在此情況下,每當(dāng)生產(chǎn)者向槽寫入時(shí),寫入將導(dǎo)致消費(fèi)者處的高速緩存未中。然而,生產(chǎn)者將不會(huì)遭受未中,因?yàn)橄乱粋€(gè)空閑槽將被預(yù)取到其本地緩存中。此外,由消費(fèi)者經(jīng)歷的高速緩存未中將不會(huì)對(duì)流線型處理的總性能造成嚴(yán)重的影響,因?yàn)橄M(fèi)者不是瓶頸元素。另夕卜,盡管FIFO緩沖器812被示為是循環(huán)的,但是,可以理解,在當(dāng)前技術(shù)中,這只用于說明目的,緩沖器實(shí)際是高速緩沖存儲(chǔ)器中的邏輯位置,緩沖器812中的空的和滿的數(shù)據(jù)槽的位置實(shí)際是通過指針816、818的相對(duì)位置來維護(hù)的。
圖8B示出了由生產(chǎn)者(例如,第一核804)執(zhí)行的用于使用同步的FIFO緩沖器812處理數(shù)字樣本的示例性過程820的流程圖。過程由SDR堆棧的PHY模塊使用多核處理器802的多個(gè)核來執(zhí)行。在框822,生產(chǎn)者生成數(shù)據(jù)。例如,第一核804處理功能塊808 (例如,塊I和塊2)中的數(shù)據(jù),以生成數(shù)據(jù)。在框822,生產(chǎn)者通過引用生產(chǎn)者指針816當(dāng)前正指向的數(shù)據(jù)槽并檢查該數(shù)據(jù)槽的首部來確定FIFO緩沖器812中是否有開放的可用的數(shù)據(jù)槽。在框826,如果首部表示當(dāng)前的槽是空的,則生產(chǎn)者將所生成的數(shù)據(jù)存儲(chǔ)在空的數(shù)據(jù)槽中,并使生產(chǎn)者指針816遞增一個(gè)數(shù)據(jù)槽。在框828,如果首部表示生產(chǎn)者指針當(dāng)前正指向的數(shù)據(jù)槽是滿的,則生產(chǎn)者等待空數(shù)據(jù)槽變得可用。當(dāng)需要停止過程時(shí),終止條件也可以由用戶設(shè)置。圖SC示出了由消費(fèi)者(例如,第二核806)執(zhí)行的用于使用同步的FIFO緩沖器812處理數(shù)字樣本的示例性過程830的流程圖。過程由SDR堆棧的PHY模塊使用多核處理器802的多個(gè)核來執(zhí)行。在框832,消費(fèi)者準(zhǔn)備接收和處理數(shù)據(jù)。例如,在第二核806中的塊3和塊4的管道中,數(shù)據(jù)可能已經(jīng)被從塊3傳遞到塊4,而塊3現(xiàn)已準(zhǔn)備好接納更多數(shù)據(jù)。在框834,消費(fèi)者通過檢查首部以確定首部是表示槽是滿的還是空的,來檢查消費(fèi)者指針818當(dāng)前正指向的數(shù)據(jù)槽,以確定該槽是否包含可用的數(shù)據(jù)。在框836,當(dāng)槽包含數(shù)據(jù)時(shí),消費(fèi)者從數(shù)據(jù)槽獲取數(shù)據(jù),從而打開該數(shù)據(jù)槽并改變?cè)摂?shù)據(jù)槽的首部,以表示該數(shù)據(jù)槽現(xiàn)在是空的。消費(fèi)者也將消費(fèi)者指針遞增到下一個(gè)數(shù)據(jù)槽。在框838,如果在當(dāng)前數(shù)據(jù)槽中無數(shù)據(jù)可用,則消費(fèi)者繼續(xù)檢查數(shù)據(jù)槽,并等到數(shù)據(jù)槽充滿數(shù)據(jù)。實(shí)時(shí)支持SDR處理是要求計(jì)算資源的嚴(yán)格的保證和嚴(yán)苛的實(shí)時(shí)期限的時(shí)間關(guān)鍵的任務(wù)。例如,在802. 11協(xié)議中,無線通道是由在相同頻譜上操作的所有收發(fā)器共享的資源。如此,由于同時(shí)發(fā)射的近鄰可能彼此干擾,因此已經(jīng)開發(fā)了各種MAC協(xié)議以協(xié)調(diào)無線網(wǎng)絡(luò)中的發(fā)射來避免沖突。
此外,大多數(shù)現(xiàn)代的MAC協(xié)議,如802. 11,要求對(duì)關(guān)鍵事件的及時(shí)響應(yīng)。例如,802. 11使用CSMA (載波偵聽多路訪問)MAC協(xié)議來協(xié)調(diào)發(fā)射。在啟動(dòng)它們的發(fā)射之前,發(fā)射器需要偵聽通道,通道訪問只有在沒有偵聽到能量時(shí),即通道是空閑的,才被允許。偵聽和訪問之間的延遲應(yīng)該盡可能地小。否則,偵聽結(jié)果可能是過時(shí)的并且是不準(zhǔn)確,導(dǎo)致沖突。另一示例是無線協(xié)議中的鏈路層重新傳輸機(jī)制,這可能要求在有限的時(shí)間窗口內(nèi)返回即時(shí)確認(rèn)(ACK)。諸如IEEE 802. 11之類的商品標(biāo)準(zhǔn)要求響應(yīng)延遲在數(shù)十微秒內(nèi),這對(duì)在運(yùn)行通用OS的通用處理器上以軟件實(shí)現(xiàn)而言是一項(xiàng)挑戰(zhàn)。如此,作為依賴于實(shí)時(shí)操作系統(tǒng)的完全的通用性的替代方案,此處的各實(shí)現(xiàn)通過將一個(gè)或多個(gè)處理器核專用于多核處理系統(tǒng)中的SDR處理來獲得實(shí)時(shí)保證。如此,由于一個(gè)或多個(gè)核被專用于SDR,因此,此處的各實(shí)現(xiàn)保證足夠的計(jì)算資源,而不會(huì)受到系統(tǒng)中的其他并發(fā)任務(wù)的影響。
例如,無線通信常常要求PHY不斷地監(jiān)測(cè)通道是否有傳入信號(hào)。因此,PHY處理可能需要在每時(shí)每刻都是活動(dòng)的。期望調(diào)度此監(jiān)視任務(wù)以在同一個(gè)核上連續(xù)地操作,以便最小化開銷,如高速緩存未中或TLB刷新。此外,與對(duì)稱調(diào)度相比,將應(yīng)用程序隔離到不同的核會(huì)得到更好的性能,因?yàn)閷?duì)高速緩存資源的有效使用和鎖定的減少會(huì)使專用核有利(outweight)。此外,核專用機(jī)制比實(shí)時(shí)調(diào)度器容易實(shí)現(xiàn)得多,有時(shí)甚至無需修改OS內(nèi)核。用于實(shí)現(xiàn)根據(jù)此處的SDR的各實(shí)現(xiàn)的核專用的方法的一個(gè)示例是提高內(nèi)核線程的優(yōu)先級(jí),以便內(nèi)核線程被釘在特定核中,并排他地在該核上運(yùn)行,直到終止。此處的SDR的各實(shí)現(xiàn)使用排它性線程(S卩,“ethread”)來使核專用于實(shí)時(shí)SDR任務(wù)。ethread可以在不對(duì)內(nèi)核代碼進(jìn)行任何修改的情況下實(shí)現(xiàn)。例如,ethread可被實(shí)現(xiàn)為內(nèi)核模式線程,并由此利用通常在常規(guī)操作系統(tǒng)中得到支持的處理器聯(lián)署來提供關(guān)于內(nèi)核模式線程在哪個(gè)核上運(yùn)行的控制。一旦OS在指定的物理核上調(diào)度了 ethread,OS就將線程上的優(yōu)先級(jí)和/或IRQL(中斷請(qǐng)求級(jí)別)提高到與內(nèi)核調(diào)度器一樣高的級(jí)別,例如,Windows 中的分派級(jí)別。如此,ethread通過提高中斷請(qǐng)求級(jí)別來取得對(duì)核的控制,并防止它本身被其他線程搶先。然而,在這樣的IRQL運(yùn)行不會(huì)阻止核對(duì)硬件中斷作出響應(yīng)。因此,附著于主機(jī)的所有設(shè)備的中斷關(guān)系也受到約束。例如,如果ethread在特定核上運(yùn)行,則安裝的設(shè)備的所有中斷處理程序都從核中去除,如此防止核被硬件中斷。此外,為確保計(jì)算設(shè)備和操作系統(tǒng)的正確操作,此處的SDR的各實(shí)現(xiàn)始終確保核0能夠?qū)λ杏布袛嘧鞒鲰憫?yīng)。因此,此處的SDR的各實(shí)現(xiàn)只允許ethread在其ID大于零的核上運(yùn)行。示例件實(shí)現(xiàn)此處的SDR的示例性實(shí)現(xiàn)包括作為示例性WiFi實(shí)現(xiàn)的SDR平臺(tái)上的全功能WiFi收發(fā)器。示例性WiFi實(shí)現(xiàn)SDR堆棧支持所有IEEE 802. lla/b/g調(diào)制,并可以無縫地與商用WiFi網(wǎng)卡進(jìn)行通信。例如,通用計(jì)算設(shè)備體系結(jié)構(gòu)上的高速無線協(xié)議的各實(shí)現(xiàn)必須克服源于現(xiàn)有硬件接口和軟件體系結(jié)構(gòu)的多個(gè)挑戰(zhàn)。首先,將高保真數(shù)字波形樣本傳輸?shù)较到y(tǒng)存儲(chǔ)器來進(jìn)行處理要求非常高的總線吞吐量。常規(guī)軟件無線電平臺(tái)使用USB 2.0或Gigabit以太網(wǎng),這不能滿足維持高速無線協(xié)議的此要求。其次,物理層(PHY)信號(hào)處理對(duì)于從波形生成信息比特或反之具有非常高的計(jì)算要求,特別是在高調(diào)制速率時(shí)。最后,無線PHY和媒體訪問控制(MAC)協(xié)議具有必須被滿足以便正確操作的低延遲實(shí)時(shí)期限。例如,802. IlMAC協(xié)議要求準(zhǔn)確的時(shí)間控制和大約數(shù)十微秒的ACK響應(yīng)延遲。通用計(jì)算設(shè)備上的現(xiàn)有的軟件體系結(jié)構(gòu)不能一貫地滿足此計(jì)時(shí)要求。圖9A示出了在具有如上文參考圖I和2所描述的多核處理器的,并耦合到對(duì)應(yīng)于RCB 116,214和/或302的RCB 904的諸如計(jì)算設(shè)備902之類的硬件上實(shí)現(xiàn)的此處的SDR的示例性WiFi實(shí)現(xiàn)900。在所示出的實(shí)現(xiàn)中,通過提高內(nèi)核線程的優(yōu)先級(jí),MAC狀態(tài)機(jī)(SM)被實(shí)現(xiàn)為ethread 906,以便內(nèi)核線程被釘在特定核中,并排他在該核上運(yùn)行,直到終止。由于根據(jù)802. 11標(biāo)準(zhǔn)的無線電是半雙工無線電,因此,PHY的解調(diào)組件可以直接在MAC SM線程內(nèi)運(yùn)行。此外,如果單個(gè)核不足以用于所有PHY處理(例如,如802. lla/g的情況),則PHY處理可以跨包括MAC_SM線程906和PHY_Thread 908的兩個(gè)ethread分區(qū)。如上文參考圖8A-8C所討論的,這兩個(gè)ethread 906,908使用同步CPFIF0910而流線化。另外的線程,即Snd_thread 912,在后臺(tái)將傳出的幀調(diào)制為波形樣本。如上文所討論的,這些經(jīng)調(diào)制的波形可以被預(yù)先存儲(chǔ)在RCB的存儲(chǔ)器中,以便于快速傳輸。此外,Completion_thread 914監(jiān)測(cè)接收緩沖器、Rcv_buf916,并將任何正確地接收到的巾貞通知給上軟件層。Completion_thread914還在Rcv_buf 916和發(fā)送緩沖器即Snd_buf 918被使用之后對(duì)它們進(jìn)行清空。 由于 Completion_thread 914 和 Snd_thread 912 的功能不要求 PHY ethread 906、908 白勺相同高性能和低延遲,因此這些其他線程不被實(shí)現(xiàn)為ethread,并可以在任何可用的核上運(yùn)行。在所示示例中,DMA存儲(chǔ)器920包括發(fā)射器緩沖器TX_buf 922和接收器緩沖器RX_buf 924,用于分別將用于發(fā)射和接收的數(shù)字樣本存儲(chǔ)在RF前端930上的發(fā)射器硬件926和接收器硬件928上,如上文諸如參考圖4所討論的。此外,RCB 904還包括控制模塊932,諸如上文參考圖4所描述的DMA控制器、總線控制器、存儲(chǔ)器控制器以及RF控制器,它們共同地表示為Ctrl 924,它們與MAC_SM_Thread 906交換命令,以便確保RCB 904和計(jì)算設(shè)備902之間的適當(dāng)?shù)慕换?。在流線型處理過程中,MAC_SM線程906和PHY線程908訪問PHY庫934,用于訪問LUT和SMD指令,以便執(zhí)行優(yōu)化的PHY處理,如上文參考圖6A-6C和7A-7B所討論的。經(jīng)處理的數(shù)字樣本被傳遞到接收緩沖器916,然后,通過Completion_thread914呈現(xiàn)到虛擬以太網(wǎng)接口 936,從而,到TCP/IP層938,如此,呈現(xiàn)到也在計(jì)算設(shè)備902的一個(gè)或多個(gè)核上運(yùn)行的一個(gè)或多個(gè)應(yīng)用程序940。圖9B示出了可以使用多核處理器的一個(gè)或多個(gè)核執(zhí)行以便在一個(gè)或多個(gè)核上排他地執(zhí)行SDR處理的示例性過程950。在框952,數(shù)字樣本從RCB傳遞到計(jì)算設(shè)備中的存儲(chǔ)器。數(shù)字樣本由RCB從RF前端接收,然后,可以使用直接存儲(chǔ)器訪問(DMA)等傳遞到計(jì)算設(shè)備中的存儲(chǔ)器。數(shù)字樣本到計(jì)算設(shè)備中的存儲(chǔ)器的傳遞可以由RCB上的DMA控制器來控制,而DMA也可以將數(shù)字樣本臨時(shí)存儲(chǔ)在RCB上的緩沖器或板載存儲(chǔ)器中。在框954,線程可以在多核處理器的一個(gè)或多個(gè)核上啟動(dòng),以便執(zhí)行諸如PHY和MAC處理之類的SDR處理。在框956,可以提高一個(gè)或多個(gè)核的中斷請(qǐng)求級(jí)別,以確保線程不被中斷,使得核能夠排他地執(zhí)行數(shù)字樣本的SDR處理。此外,也可以移除一個(gè)或多個(gè)核的中斷處理程序,以防止硬件中斷。在框958,當(dāng)多個(gè)線程在不同的核上操作時(shí),核之間的處理可以使用核之間的同步FIFO來被流線化,如上文所討論的。在框960,SMID和LUT可以在適用于加速對(duì)數(shù)字樣本的SDR處理時(shí)使用。在框962,經(jīng)處理的數(shù)字樣本被輸出,供諸如由計(jì)算設(shè)備上的應(yīng)用程序使用。此外,前述的過程示出了對(duì)從RF前端接收到的數(shù)字樣本的排它性核處理,但可見,類似地處理由計(jì)算設(shè)備所生成的用于由RF前端發(fā)射的數(shù)字樣本。例如,在要發(fā)射數(shù)字樣本的情況下,步驟954-960是相同的,輸入是由計(jì)算設(shè)備所生成的或(諸如從應(yīng)用程序)接收到的比特流,而輸出是準(zhǔn)備好轉(zhuǎn)換為模擬并由RF前端發(fā)射的經(jīng)處理的數(shù)字樣本。此外,示例性WiFi實(shí)現(xiàn)900還能夠?qū)崿F(xiàn)802. 11標(biāo)準(zhǔn)的基本訪問模式。圖10示出 了 MAC狀態(tài)機(jī)的示例性細(xì)節(jié)。通常,SM處于幀檢測(cè)(FD)狀態(tài)1002。在幀檢測(cè)狀態(tài)1002,RCB 904不斷地將樣本寫入到Rx_buf 924。SM( S卩,MAC_SM_Thread 906)連續(xù)地測(cè)量平均能量,以確定通道是否是干凈的或者是否有傳入的幀。幀的發(fā)射遵循載波偵聽多路訪問(CSMA)機(jī)制。當(dāng)有要發(fā)射的待處理的幀,SM首先檢查通道上的能量是否為低(即,當(dāng)前沒有接收到幀)。如果通道忙,則發(fā)射被推遲,并啟動(dòng)倒數(shù)計(jì)時(shí)器1004。每當(dāng)通道變得空閑時(shí),SM都檢查是否有任何倒數(shù)時(shí)間剩余。如果計(jì)時(shí)器變?yōu)榱悖瑒tSM在框發(fā)射1006發(fā)射待處理的幀。此外,當(dāng)示例性WiFi實(shí)現(xiàn)開始接收到幀時(shí),它檢測(cè)幀檢測(cè)狀態(tài)1002中的高能量。在802. 11中,SM使用PHY層中的三個(gè)步驟來在框接收1008接收幀。首先,PHY層需要同步到幀,即,發(fā)現(xiàn)幀的起始點(diǎn)(時(shí)間同步)和樣本流的頻率偏移和相位(載波同步)。同步通常是通過將傳入的樣本與預(yù)先定義的前同步碼相關(guān)來執(zhí)行的。隨后,PHY層需要解調(diào)PLCP(物理層收斂協(xié)議)首部,該首部始終是使用固定的低速率調(diào)制模式來傳輸?shù)?。PLCP首部包含幀的長(zhǎng)度以及調(diào)制模式,可能還包含隨后的幀數(shù)據(jù)的較高速率。如此,只有在成功地接收PLCP首部之后,PHY層才能知道如何解調(diào)幀的其余部分。當(dāng)在接收1008成功地接收幀之后,802. IlMAC標(biāo)準(zhǔn)要求接收站如在框ACK發(fā)射1010所示出地以及時(shí)的方式發(fā)射ACK幀。例如,802. Ilb要求以不超過10 u s的延遲發(fā)送ACK幀,以確認(rèn)收到接收到的幀。然而,此短的ACK要求對(duì)于SDR實(shí)現(xiàn)在通用計(jì)算設(shè)備上以軟件實(shí)現(xiàn)而言是十分困難的。跨系統(tǒng)總線生成和傳輸波形兩者都可以導(dǎo)致幾微秒的延遲,并且所需的總時(shí)間通常大于由標(biāo)準(zhǔn)要求的最大量。幸運(yùn)的是,ACK幀一般具有固定模式。例如,在802. 11中,除相對(duì)應(yīng)的數(shù)據(jù)幀的發(fā)送器地址之外,ACK幀中的所有數(shù)據(jù)都是固定的。如此,在示例性WiFi實(shí)現(xiàn)900中,有可能預(yù)先計(jì)算ACK幀的大部分(19字節(jié)),并只更新地址(10字節(jié))。此外,這可以在處理的初期,緊隨在解調(diào)MAC首部之后進(jìn)行,而無需等待幀的結(jié)束。然后,波形被預(yù)先存儲(chǔ)到RCB的存儲(chǔ)器中。如此,ACK生成和傳輸?shù)臅r(shí)間可以與對(duì)正在被接收的數(shù)據(jù)幀的解調(diào)重疊。在MAC SM解調(diào)整個(gè)幀并驗(yàn)證CRC32校驗(yàn)和之后,MAC SM指示RCB發(fā)射已經(jīng)被存儲(chǔ)在RCB上的ACK。如此,對(duì)于ACK發(fā)射的延遲是非常小的,因?yàn)锳CK已經(jīng)存儲(chǔ)在RCB中,并可以立即發(fā)射,而無需被生成或沿著系統(tǒng)總線發(fā)送。偶爾,當(dāng)傳入的數(shù)據(jù)幀相當(dāng)小(例如,幀只包含MAC首部和零有效負(fù)載)時(shí),示例性WiFi實(shí)現(xiàn)則不能將ACK生成和DMA傳輸與解調(diào)全部重疊以完全隱藏延遲。在此情況下,示例性WiFi實(shí)現(xiàn)可能不能及時(shí)發(fā)送ACK。此問題通過在RCB中維護(hù)以前的ACK的高速緩存來解決。對(duì)于802. 11,來自一個(gè)節(jié)點(diǎn)的所有數(shù)據(jù)幀都將具有完全相同的ACK幀。如此,RCB中的預(yù)先分配的存儲(chǔ)器槽可以被用來存儲(chǔ)不同的發(fā)送器的ACK波形(在一些實(shí)現(xiàn)中,分配了 64個(gè)不同的槽)。因此,當(dāng)解調(diào)幀時(shí),如果ACK幀已經(jīng)在RCB高速緩存中,則MAC SM簡(jiǎn)單地指示RCB發(fā)射預(yù)先高速緩存的ACK。利用此方案,示例性WiFi實(shí)現(xiàn)可能對(duì)來自發(fā)送器的第一小的幀遲到,從發(fā)送器的觀點(diǎn)來看,實(shí)際上丟棄了數(shù)據(jù)包。但是,重新發(fā)射以及所有隨后的發(fā)射將發(fā)現(xiàn)已經(jīng)在RCB高速緩存中存儲(chǔ)了適當(dāng)?shù)腁CK波形。示例性WiFi實(shí)現(xiàn)900是作為全802. lla/g/b收發(fā)器實(shí)現(xiàn)和測(cè)試的,該收發(fā)器支持DSSS (直接序列擴(kuò)散在Ilb中為I和2Mbps)、CCK(補(bǔ)碼鍵控:在Ilb中為5. 5和IlMbps)以及0FDM(正交頻分多路復(fù)用在802. lla/g中為6、9以及直到54Mbps)。因此,已經(jīng)發(fā)現(xiàn)此處的SDR的實(shí)現(xiàn)無縫地與商用基于硬件的802. 11設(shè)備進(jìn)行交互操作,而同時(shí)支持全套的802. lla/b/g調(diào)制速率,并在每一調(diào)制中實(shí)現(xiàn)基本上與基于硬件的設(shè)備的相當(dāng)?shù)男阅堋=Y(jié)果,可見,此處的SDR的實(shí)現(xiàn)可以足夠快地處理信號(hào)以實(shí)現(xiàn)全信道使用率,利用通用計(jì)算設(shè)備上的軟件實(shí)現(xiàn),SDR可以滿足802. 11標(biāo)準(zhǔn)的所有計(jì)時(shí)要求。軟件頻譜分析儀圖11示出了根據(jù)此處的某些實(shí)現(xiàn)的軟件實(shí)現(xiàn)的頻譜分析儀1100,它可以作為用于分析此處的SDR的性能的應(yīng)用程序來在通用計(jì)算設(shè)備上實(shí)現(xiàn)。例如,此處的SDR的實(shí)現(xiàn)易于向在計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序展示所有PHY層信息。軟件頻譜分析儀1100是可以利用此信息的這樣的應(yīng)用程序。例如,當(dāng)SDR處于操作中時(shí),頻譜分析儀1100可以在通用計(jì)算設(shè)備的處理器的一個(gè)或多個(gè)核上運(yùn)行,并可以用圖形方式在一個(gè)或多個(gè)星座圖中顯示無線電通信的波形和調(diào)制點(diǎn),以及解調(diào)的結(jié)果。在圖11中所示出的實(shí)現(xiàn)中,原始數(shù)據(jù)、下采樣數(shù)據(jù)以及巴克數(shù)據(jù)被顯示在星座圖1102和波形圖1104兩者中。還顯示了經(jīng)解碼的信息、解擾碼信息、調(diào)試信息、幀內(nèi)容、MAC信息、概述信息首部信息以及對(duì)文件信息的簡(jiǎn)要描述。此外,盡管市場(chǎng)上銷售的頻譜分析儀可能具有類似的功能和較寬的偵聽頻譜帶,但是,它們也較貴。對(duì)無線電協(xié)議的擴(kuò)展此處的SDR的各實(shí)現(xiàn)的靈活性允許開發(fā)和測(cè)試對(duì)諸如802. 11之類的當(dāng)前無線電協(xié)議的擴(kuò)展。MM當(dāng)信道條件好時(shí),使用較大的幀來發(fā)射數(shù)據(jù)可以降低MAC/PHY首部、前同步碼和每個(gè)幀ACK的開銷。然而,802. 11的最大幀大小被固定在2304字節(jié)。利用簡(jiǎn)單的修改(PHY算法中的幾行的變化),示例性WiFi實(shí)現(xiàn)可以發(fā)射和接收最多32KB的巨幀。例如,當(dāng)此處的SDR的兩個(gè)實(shí)現(xiàn)使用上文所描述的示例性WiFi實(shí)現(xiàn)并帶有巨幀優(yōu)化時(shí),數(shù)據(jù)的吞吐量可以增加。例如,當(dāng)幀大小從IKB增大到6KB時(shí),端對(duì)端吞吐量從5. 9Mbps到8. 2Mbps增大了39%。然而,當(dāng)幀大小進(jìn)一步增大到7KB時(shí),吞吐量下降,因?yàn)閹铄e(cuò)率也隨著大小而增大。如此,在某一時(shí)刻,增大的差錯(cuò)將抵消降低開銷的好處。然而,值得注意的是,默認(rèn)的商用基于硬件的NIC拒收大于2304字節(jié)的幀,即使那些幀可以被成功地解調(diào)。另外,還應(yīng)指出,雖然發(fā)射巨幀的能力只是一個(gè)可能的優(yōu)化,但是該能力表明由此處的SDR的實(shí)現(xiàn)所提供的完全可編程性使研究人員能使用便宜的通用計(jì)算設(shè)備SDR平臺(tái)來探索這樣的“假設(shè)”問題。TDMA MAC為評(píng)估此處的SDR的各實(shí)現(xiàn)準(zhǔn)確地控制幀的發(fā)射時(shí)間的能力,實(shí)現(xiàn)了以預(yù)定義的時(shí)間間隔調(diào)度幀發(fā)射的簡(jiǎn)單的時(shí)分多址(TDMA)MAC算法。MAC狀態(tài)機(jī)(SM)在如上文參考圖9所討論的ethread中運(yùn)行,MAC SM連續(xù)地查詢計(jì)時(shí)器以檢查預(yù)定義的時(shí)間量是否已經(jīng)過去。如果是,則MAC SM指示RCB發(fā)出幀。修改是簡(jiǎn)便易行的,向MAC算法添加了大約20行的附加代碼。由于RCB可以向示例性WiFi實(shí)現(xiàn)指出何時(shí)發(fā)射完成,并且?guī)臏?zhǔn)確的大小是已知的,因此,當(dāng)幀發(fā)射時(shí),有可能計(jì)算準(zhǔn)確的時(shí)間。在重負(fù)載下利用各種調(diào)度時(shí)間間隔進(jìn)行了測(cè)試,在此期間,復(fù)制了本地磁盤上的文件,從附近的服務(wù)器下載了文件,同時(shí)回放HD視頻,以用于確定平均錯(cuò)誤和錯(cuò)誤的標(biāo)準(zhǔn)偏差。發(fā)現(xiàn)平均錯(cuò)誤小于I U s,這對(duì)于大多數(shù)無線協(xié)議是足夠的。此外,被定義為與預(yù)先定義的調(diào)度晚了 2 y s發(fā)生的數(shù)據(jù)包發(fā)射的離群值在少于0.5%的時(shí)間中會(huì)出現(xiàn)。無線電控制板接口和消息傳遞協(xié)議 圖12示出了用于使無線電控制板(RCB) 1202能與各種不同的RF前端1204中的任何一種連接的無線電控制板接口 1200的示例性實(shí)現(xiàn)。在所示出的示例中,RCB 1202可以對(duì)應(yīng)于上文所討論的RCB 116、214、302、904中的任何一個(gè),并包括用于控制RF前端1204和計(jì)算設(shè)備的系統(tǒng)總線(諸如上文所討論的(已示出)計(jì)算設(shè)備200的系統(tǒng)總線212、系統(tǒng)總線112)之間的數(shù)據(jù)傳輸?shù)墓δ堋T谒境龅膶?shí)現(xiàn)中RCB 1202包括控制器1206,該控制器1206可以對(duì)應(yīng)于FPGA 308或能夠執(zhí)行上文所討論的RCB的功能的其他電路。RCB1202還包括板載存儲(chǔ)器1208,該板載存儲(chǔ)器1208可以對(duì)應(yīng)于上文所討論的板載存儲(chǔ)器324,諸如用于數(shù)據(jù)緩沖和信號(hào)緩存的。RCB 1202還包括使RCB 1202能連接到計(jì)算設(shè)備200的系統(tǒng)總線212的總線接口 1210。如上文所討論的,系統(tǒng)總線212可以是PCIe總線或其他高速類型的總線,而總線接口 1210是使RCB 1202能作為即插即用設(shè)備連接到計(jì)算設(shè)備的PCIe插槽的PCIe接口或PCI Express卡接口。RF前端1204包括控制器1212、模擬-數(shù)字和數(shù)字-模擬轉(zhuǎn)換器1214、RF電路1216、一個(gè)或多個(gè)天線1218以及板載存儲(chǔ)器1220。RF前端1204可以對(duì)應(yīng)于上文所討論的RF前端118、216、304、930中的任何一個(gè),或其他RF前端。用于可操作地連接RF前端1204與RCB 1202的接口 1200可包括位于RCB1202上的一個(gè)或多個(gè)LVDS (低電壓差分信號(hào))接口或連接器1222,以及位于RF前端1204上的一個(gè)或多個(gè)LVDS接口或連接器1224。在所示出的實(shí)現(xiàn)中,RCB 1202包括四個(gè)LVDS連接器1222,其中兩個(gè)用于連接RF前端1204上的兩個(gè)LVDS連接器1224。在所示示例中,兩個(gè)LVDS連接器1222、1224被用來支持兩個(gè)無線電或兩個(gè)不同的通道,諸如對(duì)于多個(gè)輸入和多個(gè)輸出(MMO)應(yīng)用程序等等。在其他實(shí)現(xiàn)中,RF前端1204可以只要求用于可操作地與RCB1202連接的單個(gè)LVDS連接器1222,或者RF前端可以與RCB1202上的四個(gè)或更多LVDS連接器1222進(jìn)行連接,用于各種多個(gè)通道或多個(gè)連接實(shí)現(xiàn)。此外,盡管此處作為示例性接口描述了 LVDS接口 1200,但是,其他接口也可以和SDR平臺(tái)一起使用?,F(xiàn)在將描述可以與LVDS接口 1200 —起使用的消息交換協(xié)議的各實(shí)現(xiàn)。此處所描述的消息交換協(xié)議能實(shí)現(xiàn)RCB 1202和RF前端1204之間的數(shù)據(jù)、控制消息、狀態(tài)消息、時(shí)鐘信息及其他類型的消息或信號(hào)的交換。消息交換協(xié)議的各實(shí)現(xiàn)包括兩層物理層和鏈路層。物理層包括時(shí)鐘控制、串行化、低級(jí)別的編碼以及訓(xùn)練。例如,可以使用雙倍數(shù)據(jù)速率(DDR)模式來通過LVDS接口傳輸數(shù)據(jù)。在一些實(shí)現(xiàn)中,時(shí)鐘信號(hào)是在專用LVDS引腳對(duì)(即,如下文所描述的,構(gòu)成LVDS通道的正負(fù)的引腳對(duì))上發(fā)射的??梢栽跁r(shí)鐘信號(hào)的上升和下降緣,即,在DDR模式下,傳輸和采樣數(shù)據(jù)。在一些實(shí)現(xiàn)中,時(shí)鐘速率可以比較高,例如,400MHz或更多。此外,可以在接口上提供用于在每一方向上傳遞時(shí)鐘信號(hào)的專用線路或通道,即,clock_in通道和clock_out通道,各自使用專用的LVDS引腳對(duì),如下面進(jìn)一步描述的。物理層還可以包括用于促進(jìn)LVDS功能的串行器和解串行器。例如,LVDS接口是使輸入數(shù)據(jù)寬度能比LVDS接口的可用線路或通道的實(shí)際數(shù)量寬的串行化的接口。另外,物理層還可包括對(duì)通過接口傳輸?shù)臄?shù)據(jù)的標(biāo)準(zhǔn)8b/10b編碼,用于實(shí)現(xiàn)DC(直流電)平衡和有限的差異。例如,8b/10b編碼是線編碼技術(shù),該編碼技術(shù)將8比特碼元映射到10比特碼元,以實(shí)現(xiàn)DC平衡和有限的差異,同時(shí)仍實(shí)現(xiàn)足夠的狀態(tài)改變以允許時(shí)鐘恢復(fù)。根據(jù)8b/10b編碼,至少20個(gè)比特的串中的I和0的計(jì)數(shù)之間的差不超過2,而連 續(xù)的I或0的最大數(shù)量被限于合理的數(shù)量。如此,通過遵守接收到的序列中的變換,可以恢復(fù)時(shí)鐘周期,而同時(shí)具有最大允許的運(yùn)行長(zhǎng)度能保證這樣的時(shí)鐘恢復(fù)。物理層還可以包括訓(xùn)練和自適應(yīng)調(diào)整(即,調(diào)節(jié))特征。例如,LVDS發(fā)送器和LVDS接收器可以自適應(yīng)地調(diào)整采樣階段,以調(diào)節(jié)LVDS接口來實(shí)現(xiàn)改善的性能。為促進(jìn)自適應(yīng)調(diào)整,LVDS發(fā)送器通過數(shù)據(jù)線發(fā)送訓(xùn)練模式,而LVDS接收器調(diào)節(jié)時(shí)鐘信號(hào)的相位,并嘗試確定對(duì)數(shù)據(jù)進(jìn)行采樣的最佳時(shí)間。另外,物理層還可以包括使用狀態(tài)LVDS引腳對(duì)(即,下面所描述的status_in或status_out引腳對(duì))的專用的狀態(tài)通道。狀態(tài)信號(hào)指出通過數(shù)據(jù)線傳遞的數(shù)據(jù)是正常的工作數(shù)據(jù)(即,對(duì)應(yīng)于RF信號(hào)的數(shù)字樣本)還是用于調(diào)節(jié)接口 1200的訓(xùn)練數(shù)據(jù)。例如,在訓(xùn)練期間,狀態(tài)信號(hào)將指出“目的地未準(zhǔn)備好”,直到訓(xùn)練階段完成。消息傳遞協(xié)議的鏈路層定義通過LVDS接口 1200交換的消息格式。例如,如上文所提及的,狀態(tài)消息在專用的狀態(tài)通道(即,專用status_in通道和專用status_out通道)上在每一方向傳輸,用于指不LVDS接收器的狀態(tài)。在一些實(shí)現(xiàn)中,有三種可能的狀況狀態(tài)“復(fù)位”、“目的地未準(zhǔn)備好”和“目的地已準(zhǔn)備好”?!皬?fù)位”狀態(tài)表示,LVDS接口的LVDS接收器處于復(fù)位狀態(tài),在復(fù)位完成以前不能接收數(shù)據(jù)。“目的地未準(zhǔn)備好”狀態(tài)表示,LVDS接口的接收器當(dāng)前不能接收數(shù)據(jù),因?yàn)榻邮掌饕刺幱谟?xùn)練階段,要么接收器的FIFO緩沖器已滿。在一些實(shí)現(xiàn)中,當(dāng)LVDS接收器的狀態(tài)是“接收器未準(zhǔn)備好”時(shí),LVDS發(fā)送器發(fā)送訓(xùn)練模式以使得LVDS接收器能夠自適應(yīng)地調(diào)整時(shí)鐘信號(hào)的相位?!澳康牡匾褱?zhǔn)備好”狀態(tài)是表示LVDS發(fā)送器被允許向LVDS接收器發(fā)送工作數(shù)據(jù)的正常狀態(tài)。在示例性實(shí)現(xiàn)中,狀態(tài)可以使用下面的比特模式來編碼復(fù)位01010101 ;目的地未準(zhǔn)備好0000111 ;目的地已準(zhǔn)備好00110011。作為一個(gè)示例,狀態(tài)信號(hào)的比特率是相對(duì)應(yīng)的時(shí)鐘信號(hào)的1/5,例如,status_out信號(hào)的比特率等于cl0ck_0Ut信號(hào)的比特率除以5。鏈路層還包括對(duì)用于在RCB和RF前端之間傳輸數(shù)據(jù)的數(shù)據(jù)消息的編碼。如上文所描述的,通過接口 1200傳遞的數(shù)據(jù)可包括從由RF前端接收到的并從RF前端傳遞到RCB的RF信號(hào)導(dǎo)出的數(shù)字樣本(即,data_in),或由RCB從計(jì)算設(shè)備接收到的,并從RCB傳遞到RF前端以便作為RF信號(hào)發(fā)射的數(shù)字樣本(即,data_out)。此外,通過LVDS接口 1200傳遞的數(shù)據(jù)可以被封裝到數(shù)據(jù)幀或編碼的消息中,然后,數(shù)據(jù)在LVDS引腳對(duì)上傳輸,每一數(shù)據(jù)幀都包含預(yù)定數(shù)量的字節(jié)的數(shù)據(jù)。下面將參考圖14另外描述數(shù)據(jù)消息的幀的示例性格式。在一些實(shí)現(xiàn)中,數(shù)據(jù)通過LVDS接口在每一方向在四個(gè)專用通道(即,四個(gè)data_in通道和四個(gè)data_out通道)上傳輸。如此,可以提供四個(gè)相應(yīng)的數(shù)據(jù)專用的LVDS引腳對(duì)(即,每一引腳對(duì)都包括正引腳和負(fù)引腳,以構(gòu)成用于傳輸消息的通道,如下面另外描述的),用于在每一方向傳輸數(shù)據(jù)。此外,例如,數(shù)據(jù)流還被以循環(huán)的方式分發(fā)到專用于傳遞數(shù)據(jù)的四個(gè)LVDS引腳對(duì)。如此,如果在數(shù)據(jù)隊(duì)列中有四個(gè)數(shù)據(jù)消息或幀,則每一 LVDS引腳對(duì)都可以接收四個(gè)數(shù)據(jù)消息的相應(yīng)的一個(gè)數(shù)據(jù)消息。鏈路層還使用專用于控制消息的LVDS引腳對(duì)在每一方向的專用控制通道上傳輸控制和確認(rèn)(ACK)消息。如下面參考圖15所描述的,可以使用固定長(zhǎng)度幀來編碼和傳輸控制消息。為確??刂葡⒌目煽總鬏?,還使用控制通道,響應(yīng)于正確地接收到的控制消息,返回ACK。作為示例,ACK消息可以是固定的一字節(jié)幀,例如,帶有值0x5F。否定確認(rèn)(NACK)也可以被定義為固定一字節(jié)幀,例如,帶有值OxAF。圖13示出了對(duì)應(yīng)于上文所討論的LVDS連接器1222、1224的,并且被配置成與上文所討論的協(xié)議一起使用的LVDS連接器1302的示例性實(shí)現(xiàn)。LVDS連接器1302包括用于提供14個(gè)不同的通道的編號(hào)為1-28的14對(duì)引腳。這些引腳對(duì)中的七對(duì)充當(dāng)接收或“in”通道1304(即,RCB接收由RF前端作為RF信號(hào)接收到的數(shù)據(jù)),另外七對(duì)引腳充當(dāng)發(fā)射或 “out”通道1306 (即,RCB將數(shù)據(jù)從計(jì)算設(shè)備傳遞到RF前端,以便作為RF信號(hào)傳輸)。每一LVDS通道都包括一對(duì)引腳,S卩,正(P)引腳和負(fù)(N)引腳,以支持LVDS通信。在所示示例中,在接收端,使用 Status_in_Ppositive 引腳 1310 和 Status_in_Nnegative 引腳 1312 作為構(gòu)成專用status_in線路或通道的LVDS引腳對(duì),來傳遞status_in信息。使用Control_in&ACK_in_Ppositive 引腳 1314 和 Control_in & ACK_in_Nnegative 引腳 1316 作為專用的control_in通道的LVDS引腳對(duì),來傳遞Control_in和ACK_in消息。使用相對(duì)應(yīng)的正和負(fù)LVDS引腳對(duì)1318-1332上的四個(gè)數(shù)據(jù)通道DataOjn到Data3_in來傳遞接收到的數(shù)據(jù)。接收端時(shí)鐘信號(hào),clock_in在相應(yīng)的正和負(fù)LVDS引腳1334、1336上傳遞。在發(fā)射端,status_out信號(hào)在相應(yīng)的正和負(fù)引腳1340、1342上傳遞;Control_out & ACK_out信號(hào)在引腳1344、1346上傳遞;數(shù)據(jù)在相應(yīng)的引腳1348-1362上的四個(gè)數(shù)據(jù)通道Data0_out到Data3_out上傳遞;而發(fā)射端時(shí)鐘信號(hào),clock_out,在相應(yīng)的正和負(fù)LVDS引腳1364、1366上傳遞。如此,可見,此處的協(xié)議和LVDS接口為狀態(tài)信號(hào)、控制消息和時(shí)鐘信號(hào)建立了與用于數(shù)據(jù)消息的LVDS通道分開的單獨(dú)的LVDS通道。圖14示出了根據(jù)此處所描述的消息傳遞協(xié)議的用于編碼數(shù)據(jù)消息1400的示例性幀格式。數(shù)據(jù)消息1400通過上文所討論的LVDS接口 1200從RCB傳遞到RF前端或從RF前端傳遞到RCB。在所示出的示例數(shù)據(jù)消息1400中,根據(jù)此處的協(xié)議,數(shù)據(jù)幀格式包括一字節(jié)起始幀定界符(SFD)字段1402。SFD1402信令消息的開始,并可以具有例如值0xF5。SFD字段1402后面是一字節(jié)長(zhǎng)度的字段1404,該字段1404指定消息1400的數(shù)據(jù)有效負(fù)載部分1406的長(zhǎng)度,接下來是數(shù)據(jù)有效負(fù)載1406。例如,數(shù)據(jù)有效負(fù)載1406的最大長(zhǎng)度可以限于特定預(yù)定的大小,如256個(gè)字節(jié)。數(shù)據(jù)有效負(fù)載1406包括在RCB 1202和RF前端1204之間交換的實(shí)際工作數(shù)據(jù)。此外,盡管此處示出和描述了數(shù)據(jù)消息1400的示例性幀格式,但是,也可以使用用于在RCB和RF前端之間傳遞數(shù)據(jù)的其他格式。圖15示出了根據(jù)此處的協(xié)議的用于編碼控制消息1500的示例性幀格式??刂葡?500通常包含命令或參數(shù),并通過上文所討論的LVDS接口 1200,使用專用的control_out和control_in引腳對(duì)作為專用的LVDS線路或通道,從RCB傳遞到RF前端或從RF前端傳遞到RCB。根據(jù)此處的協(xié)議的控制消息1500的所示出的格式包括一字節(jié)起始幀定界符(SFD) 1502,接下來是提供控制消息1500的命令或參數(shù)的六字節(jié)命令和參數(shù)字段1504。一字節(jié)CRC 1506(循環(huán)冗余校驗(yàn))、校驗(yàn)和等等被包括在控制消息的末尾處,用于確保消息被正確地接收。作為示例,當(dāng)使用CRC-8時(shí),使用下面多項(xiàng)式來計(jì)算CRC x~8+x~7+x~6+x~4+x~2+l。此外,盡管此處示出和描述了數(shù)據(jù)消息1500的示例性格式,但是,也可以使用用于在RCB和RF前端之間傳遞控制消息的其他格式。圖16示出了在RCB 1202和RF前端1204之間實(shí)現(xiàn)消息傳遞協(xié)議的接口 1200的示例性圖。如上文所討論的,消息傳遞協(xié)議包括物理層1600、RCB鏈路層1602和RF前端鏈路層1604。在一些實(shí)現(xiàn)中,參考圖16所描述的協(xié)議和接口 1200的各種編碼器、解碼器及其他模塊可以通過RCB 1202上的相應(yīng)的控制器1206以及RF前端1204上的控制器1212,分別通過存儲(chǔ)在諸如板載存儲(chǔ)器1208、1220之類的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的執(zhí)行指令來實(shí)現(xiàn)。在其他實(shí)現(xiàn)中可以在RCB 1202和/或RF前端1204上提供用于實(shí)現(xiàn)相同功能的專用電路和/或處理器。如上文所討論的,RCB 1202的狀態(tài)和RF前端1204的狀態(tài)可以是三種狀態(tài)中的一個(gè),即,復(fù)位、目的地已準(zhǔn)備好、或目的地未準(zhǔn)備好。根據(jù)當(dāng)前狀態(tài),RCB生成狀態(tài)信號(hào)1606,該狀態(tài)信號(hào)1606表示通過數(shù)據(jù)線正在向RF前端發(fā)送的數(shù)據(jù)的類型,S卩,是訓(xùn)練數(shù)據(jù)還是工作數(shù)據(jù)(例如,對(duì)應(yīng)于RF信號(hào)的數(shù)字樣本)。例如,在訓(xùn)練狀態(tài),RCB向RF前端發(fā)送訓(xùn)練數(shù)據(jù),或反之,用于執(zhí)行對(duì)LVDS接口的調(diào)節(jié)。另一方面,在正常工作狀態(tài),RCB向RF前端發(fā)送數(shù)字樣本及其他信息,或反之。在框1606,狀態(tài)信號(hào)被傳遞到物理層1600中的狀態(tài)編碼器1608。狀態(tài)編碼器1608編碼RCB的當(dāng)前狀態(tài)信號(hào),以便傳輸?shù)絉F前端。作為一個(gè)示例,狀態(tài)信號(hào)的比特率是相對(duì)應(yīng)的時(shí)鐘信號(hào)的比特率的1/5,例如,status_out信號(hào)的比特率等于clock_out信號(hào)的比特率除以5。狀態(tài)編碼器1608在專用的status_0ut LVDS引腳對(duì)(例如,上文所討論的引腳1340、1342)上將status_out信號(hào)傳遞到RF前端1204上的狀態(tài)解碼器1610。狀態(tài)解碼器1610解碼status_out信號(hào),以確定數(shù)據(jù)的當(dāng)前狀態(tài),然后,在框1612,將狀態(tài)傳遞到RF前端上的其他模塊。此外,在進(jìn)行訓(xùn)練的情況下,當(dāng)完成訓(xùn)練時(shí),“訓(xùn)練完成”信號(hào)1614被提供到狀態(tài)編碼器1608,并傳遞到狀態(tài)解碼器1610,狀態(tài)解碼器1610輸出訓(xùn)練完成信號(hào)1616,如下文另外描述的。另一方面,RF前端生成其自己的當(dāng)前狀態(tài)的狀態(tài)信號(hào)1618 (status_in),并將其傳遞到狀態(tài)編碼器1620。狀態(tài)編碼器1620將狀態(tài)信號(hào)編碼為status_in信號(hào),并在專用的status_in LVDS引腳對(duì)(例如,上文所討論的引腳1310、1312)上將status_in信號(hào)傳遞到RCB 1202上的狀態(tài)解碼器1622。狀態(tài)解碼器1622解碼從RF前端接收到的狀態(tài)信號(hào),并在框1624,將狀態(tài)傳遞到RCB上的其他模塊。此外,在進(jìn)行訓(xùn)練的情況下,當(dāng)完成訓(xùn)練時(shí),訓(xùn)練完成信號(hào)1626被提供到狀態(tài)編碼器1620,并傳遞到狀態(tài)解碼器1622,狀態(tài)解碼器1622輸出訓(xùn)練完成信號(hào)1628,如下文另外描述的。另外,如上文所討論的,RCB 1202從計(jì)算設(shè)備接收要被傳遞到RF前端1204以便作 為無線電信號(hào)發(fā)射的數(shù)據(jù)(例如,數(shù)字樣本)。在將數(shù)據(jù)傳遞到RF前端1204之前,數(shù)據(jù)可以被臨時(shí)存儲(chǔ)在RCB 1202上的數(shù)據(jù)FIFO傳輸緩沖器1630(數(shù)據(jù)FIF0_TX)中。用于發(fā)射的數(shù)據(jù)從FIF0_TX緩沖器1630遞送到RCB鏈路層1602中的數(shù)據(jù)幀編碼器1632。數(shù)據(jù)幀編碼器1632使用上文參考圖14所討論的幀格式,將數(shù)據(jù)編碼為數(shù)據(jù)消息1400。然后,經(jīng)格式化的數(shù)據(jù)消息1400被傳遞到物理層1600中的LVDS發(fā)送器1634,以便在四個(gè)專用的data_out通道引腳對(duì)(例如,上文所討論的引腳1348-1362)中的一個(gè)上傳遞到RF前端1204上的LVDS接收器1636。在一些實(shí)現(xiàn)中,數(shù)據(jù)消息以循環(huán)的方式被串行化并分配給四個(gè)數(shù)據(jù)通道引腳對(duì)中的一對(duì),雖然也可以使用其他調(diào)度技術(shù)。LVDS發(fā)送器1634可以以雙倍數(shù)據(jù)速率傳輸,即,在時(shí)鐘信號(hào)的上升和下降緣,還使用8b/10b編碼來傳遞數(shù)據(jù)消息。在非訓(xùn)練數(shù)據(jù)的傳遞期間,RF前端上的LVDS接收器1636接收已編碼的數(shù)據(jù)消息,并將數(shù)據(jù)消息傳遞到RF前端鏈路層1604中的數(shù)據(jù)幀解碼器1638。數(shù)據(jù)幀解碼器1630解碼數(shù)據(jù)消息,并將來自經(jīng)解碼的消息的數(shù)據(jù)傳遞到數(shù)據(jù)FIFO緩沖器1640中。然后,數(shù)據(jù)從數(shù)據(jù)FIFO 1640傳遞到數(shù)字-模擬轉(zhuǎn)換器1642,該轉(zhuǎn)換器1642將數(shù)據(jù)的數(shù)字樣本轉(zhuǎn)換為模擬波形,以便由RF前端1204上的RF電路作為RF信號(hào)來發(fā)射。類似地,另一方面,在框1644,由RF前端1204接收到的無線電信號(hào)被模擬-數(shù)字轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)。數(shù)據(jù)可以被臨時(shí)存儲(chǔ)在數(shù)據(jù)FIFO緩沖器1646中,然后,傳遞到 RF前端鏈路層1604中的數(shù)據(jù)幀編碼器1648中。如上文參考圖14所描述的,數(shù)據(jù)幀編碼器1648將數(shù)據(jù)編碼為數(shù)據(jù)消息格式,并將數(shù)據(jù)消息1400傳遞到LVDS發(fā)送器1650,該LVDS發(fā)送器1650執(zhí)行類似于上文所描述的LVDS發(fā)送器1634的功能。LVDS發(fā)送器1650通過四個(gè)專用的LVDS data_in通道引腳對(duì)(例如,上文所描述的引腳1318-1332)中的一對(duì),將數(shù)據(jù)消息傳遞到RCB 1202上的LVDS接收器1652,該LVDS接收器1652類似于上文所描述的LVDS接收器1636。LVDS接收器1652接收數(shù)據(jù)消息,并將數(shù)據(jù)消息傳遞到數(shù)據(jù)幀解碼器1654。數(shù)據(jù)幀解碼器1654解碼數(shù)據(jù)消息,并將數(shù)據(jù)消息傳遞到數(shù)據(jù)FIFO接收緩沖器1656 (數(shù)據(jù)FIF0_RX),用于最終從RCB傳遞到計(jì)算設(shè)備。此外,在訓(xùn)練狀態(tài),當(dāng)LVDS接收器的狀態(tài)是“目的地未準(zhǔn)備好”時(shí),LVDS發(fā)送器1634、1650可以分別向LVDS接收器1636、1652發(fā)送包括訓(xùn)練模式的訓(xùn)練信息。LVDS接收器可以使用此訓(xùn)練模式來利用時(shí)鐘信號(hào)優(yōu)化采樣相位。例如,可以通過每一專用數(shù)據(jù)LVDS引腳對(duì)(S卩,分別是引腳1318-1332和1348-1362)來遞送訓(xùn)練模式。在一些實(shí)現(xiàn)中,訓(xùn)練模式滿足下面的條件(I)模式不符合有效的8b/10b數(shù)據(jù)碼,以便區(qū)分訓(xùn)練數(shù)據(jù)與有效的工作數(shù)據(jù);(2) “0”的數(shù)量和“I”的數(shù)量大致相等,以便實(shí)現(xiàn)DC平衡;以及⑶訓(xùn)練模式包括1、2、3、4和5個(gè)連續(xù)的相等比特,即,訓(xùn)練模式包括所有五個(gè)模式“0”、“1”、“00”、“11”、“ 000 ”、“111 ”、“ 0000 ”、“ 1111 ”、“ 00000 ”、以及“ 11111”,以便促進(jìn)接收到的時(shí)鐘信號(hào)和數(shù)據(jù)之間的相位調(diào)整,這是訓(xùn)練的主要目的。當(dāng)訓(xùn)練完成時(shí),LVDS接收器遞送訓(xùn)練完成信號(hào)1614、1620,如上文所討論的,這些信號(hào)1614、1620被分別作為訓(xùn)練完成信號(hào)1616、1628傳遞到LVDS發(fā)送器。另外,如上文所討論的,控制消息和ACK在RCB 1202和RF前端1204之間在與數(shù)據(jù)線分開的控制線上傳遞。RCB 1202可以首先將控制命令或參數(shù)放在控制FIFO傳輸緩沖器1660 (Crtl FIF0_TX)中。然后,控制命令或參數(shù)被傳遞到RCB鏈路層1602中的控制消息和ACK編碼器1662。控制消息和ACK編碼器作為控制消息來編碼命令或參數(shù),諸如以上文參考圖15所描述的控制消息1500的幀格式。然后,控制消息被傳遞到LVDS發(fā)送器,該發(fā)送器在由LVDS引腳對(duì)(即,上文所討論的引腳1344、1346)構(gòu)成的專用的control out通道上將控制消息傳遞到RF前端1204上的LVDS接收器1636。LVDS接收器將控制消息傳遞到控制和ACK解碼器1664,該解碼器1664解碼控制消息,以提取命令或參數(shù)。命令或參數(shù)被傳遞到無線電寄存器表1670,并可以是,例如,寄存器寫入命令1666或寄存器讀取命令1668。無線電寄存器表1670被無線電控制器1212訪問,而控制命令或參數(shù)從而實(shí)現(xiàn)對(duì)RF前端1204的控制。另一方面,寄存器讀回1674或無線電接收到的信號(hào)強(qiáng)度指示(RSSI) 1676可以作為控制參數(shù)從RF前端1204傳遞到RCB 1202。參數(shù)被傳遞到控制和ACK編碼器1678,該編碼器1678將參數(shù)編碼為控制消息1500,如上文參考圖15所討論的。經(jīng)編碼的控制消息被傳遞到LVDS發(fā)送器1650,并在由LVDS引腳對(duì)(例如,上文所討論的引腳1314、1316)構(gòu)成的專用的control_in通道上傳輸?shù)絉CB 1202上的LVDS接收器1652。LVDS接收器1652將接收到的控制消息傳遞到控制和ACK解碼器1680,該解碼器1680解碼接收到的控制消息,并將參數(shù)傳遞到控制FIFO接收緩沖器1682,然后,參數(shù)從該控制FIFO接收緩沖器1682傳遞到RCB控制器上。此外,RCB 1202上的LVDS發(fā)送器1634還通過使用LVDS引腳對(duì)(例如,上文所討 論的引腳1334、1336)來在專用的clock_out通道上傳遞信號(hào),將clock_out信號(hào)傳遞到RF前端1204上的LVDS接收器1636。類似地,RF前端1204上的LVDS發(fā)送器1650通過使用LVDS引腳對(duì)(例如,上文所討論的引腳1364、1366),在另一專用時(shí)鐘通道上傳遞clock_in信號(hào),來將clock_in信號(hào)傳遞到RCB 1202上的LVDS接收器1652。如上文所討論的,當(dāng)在物理層1600執(zhí)行訓(xùn)練時(shí),LVDS接收器1636、1652中的一個(gè)或兩者調(diào)節(jié)時(shí)鐘信號(hào)的相位,來確定對(duì)數(shù)據(jù)進(jìn)行采樣的最佳時(shí)間。響應(yīng)于通過控制通道接收到的控制消息,置位ACK (確認(rèn)消息)。當(dāng)控制與ACK解碼器1670、1680成功地接收到控制消息時(shí),ACK接收到的信號(hào)1684、1686,分別被發(fā)送到相對(duì)應(yīng)的控制與ACK編碼器1678、1662??刂婆cACK編碼器1678、1662生成ACK消息,并分別將ACK消息傳遞到LVDS發(fā)送器1650、1634,再分別由LVDS發(fā)送器1650、1634將ACK消息分別發(fā)送到相對(duì)應(yīng)的LVDS接收器1652、1636,再由LVDS接收器1652、1636將ACK消息傳遞到相應(yīng)的LVDS發(fā)送器1634、1650。圖17示出了 RCB 1202上的接口 1200的LVDS連接器1222的另一示例性布局。在圖17的實(shí)現(xiàn)中,八個(gè)28針LVDS連接器1222位于RCB上,當(dāng)在平面圖中查看時(shí),呈現(xiàn)網(wǎng)格圖案,具有四個(gè)連接器1222的兩行,以及兩個(gè)連接器1222的四列。如從縱向中心線1702起計(jì)算,連接器1222被間隔了預(yù)定的橫向距離1704。在一種實(shí)現(xiàn)中,橫向距離1704在17. 78和20. OOmm之間;然而,也可以使用其他預(yù)定的橫向距離1704。此外,連接器1222被間隔預(yù)定的縱向距離,如從連接器的一個(gè)短端到同一列中的相鄰的連接器的相對(duì)應(yīng)的短端計(jì)算。在一種實(shí)現(xiàn)中,預(yù)定的縱向距離1706在45. 085和48. OOmm之間;然而,也可以使用其他預(yù)定的縱向距離1706。圖18示出了 RCB 1202上的接口 1200的LVDS連接器1222的另一示例性布局。在圖18的實(shí)現(xiàn)中,四個(gè)28針連接器1222位于RCB的一側(cè),當(dāng)在平面圖中查看時(shí),呈現(xiàn)第一網(wǎng)格圖案,具有兩個(gè)連接器1222的兩行,以及兩個(gè)連接器1222的兩列。另外,四個(gè)28針連接器1222被排列在RCB 1202的另一側(cè),當(dāng)在平面圖中查看時(shí),呈現(xiàn)第二網(wǎng)格圖案,具有兩個(gè)連接器1222的兩行,以及兩個(gè)連接器1222的兩列,第二網(wǎng)格圖案偏離第一網(wǎng)格圖案。如從縱向中心線1802、1804、1806、1808起計(jì)算,連接器1222被間隔了預(yù)定的橫向距離。在所示出的實(shí)施例中,中心線1802和1804之間的以及中心線1806和1808之間的橫向距離1810在15. 24和18. OOmm之間,而中心線1804和1806之間的橫向距離1704在17. 78和20. OOmm之間;然而,也可以使用其他預(yù)定的橫向距離1704、1810。此外,連接器1222被間隔預(yù)定的縱向距離,如從連接器的一個(gè)短端到同一列中的相鄰的連接器的相對(duì)應(yīng)的短端計(jì)算。在一種實(shí)現(xiàn)中,預(yù)定的縱向距離1706在45. 085和48. OOmm之間;然而,也可以使用其他預(yù)定的縱向距離1706。從前述的內(nèi)容可以看出,RCB 1202的體系結(jié)構(gòu)和用于連接RCB 1202與RF前端1204的接口 1200實(shí)現(xiàn)了計(jì)算設(shè)備、RCB 1202和RF前端1204之間的對(duì)應(yīng)于RF信號(hào)的數(shù)據(jù)的傳遞。各實(shí)現(xiàn)還與專用數(shù)據(jù)通道和專用控制通道一起提供消息傳遞協(xié)議,分別用于傳遞 已編碼的數(shù)據(jù)消息和控制消息。各實(shí)現(xiàn)還提供了用于傳遞相應(yīng)的狀態(tài)和時(shí)鐘信號(hào)的單獨(dú)的專用狀態(tài)通道和時(shí)鐘通道。在一些實(shí)現(xiàn)中,接口 1200是用于提供高速數(shù)據(jù)傳遞的LVDS接口。此外,還可以進(jìn)入用于根據(jù)時(shí)鐘信號(hào)的相位來調(diào)節(jié)接口的訓(xùn)練模式。額外的實(shí)現(xiàn)此處的SDR的各實(shí)現(xiàn)在通用計(jì)算設(shè)備體系結(jié)構(gòu)上提供完全可編程的軟件定義的無線電平臺(tái)。此處的SDR的各實(shí)現(xiàn)組合了基于硬件的SDR平臺(tái)的性能和保真度與基于GPP的SDR平臺(tái)的編程靈活性。此處的SDR平臺(tái)的各實(shí)現(xiàn)在某些示例中是在實(shí)現(xiàn)使用802. Ila/b/g協(xié)議進(jìn)行操作的軟件無線電的上下文中描述的。然而,也可以使用此處的SDR平臺(tái),實(shí)現(xiàn)額外的類型的軟件無線電,如3GPP LTE(長(zhǎng)期演進(jìn))、W-CDMA, GSM 802. lln、WiMax和各種其他無線電協(xié)議和標(biāo)準(zhǔn)。由此處的SDR的各實(shí)現(xiàn)所提供的靈活性使得它成為試驗(yàn)諸如ANC(模擬網(wǎng)絡(luò)編碼)或PPR(部分?jǐn)?shù)據(jù)包恢復(fù))之類的新穎的無線協(xié)議的方便的平臺(tái)。此夕卜,通過能夠使用多個(gè)核,此處的SDR的各實(shí)現(xiàn)可以被擴(kuò)展以支持甚至更加復(fù)雜的PHY算法,如MIMO (多個(gè)輸入多個(gè)輸出)或SIC (連續(xù)的干擾抵消)。另外,此處的實(shí)現(xiàn)也不一定僅限于任何特定編程語言。應(yīng)該理解,可以使用各種編程語言來實(shí)現(xiàn)此處所描述的原理。此外,還應(yīng)該注意,圖1、2、3、4、5、8和9中所示出的系統(tǒng)配置純粹是其中可以提供各實(shí)現(xiàn)的系統(tǒng)的示例性系統(tǒng),并且,各實(shí)現(xiàn)不僅限于所示出的特定硬件配置。顯然,此詳細(xì)描述提供了各種示例性實(shí)現(xiàn),如附圖所描述和所示出的。本發(fā)明不限于此處所描述并示出的實(shí)現(xiàn),而可擴(kuò)展到其他實(shí)現(xiàn),如本領(lǐng)域技術(shù)人員已知或?qū)⒆兊靡阎?。說明書中對(duì)“一個(gè)實(shí)現(xiàn)”、“該實(shí)現(xiàn)”、“這些實(shí)現(xiàn)”或“某些實(shí)現(xiàn)”的引用意味著結(jié)合這些實(shí)現(xiàn)所描述的特定特征、結(jié)構(gòu)或特性被包括在至少一個(gè)實(shí)現(xiàn)中,并且這些短語在說明書各處的出現(xiàn)不一定都指代同一實(shí)現(xiàn)。另外,在說明書中,闡明了眾多具體細(xì)節(jié)以提供全面的公開。然而,本領(lǐng)域的普通技術(shù)人員可以明白,這些具體細(xì)節(jié)并不是在所有實(shí)現(xiàn)中都是必需的。在其它環(huán)境中,未詳細(xì)描述和/或以框圖形式示出公知的結(jié)構(gòu)、材料、電路、進(jìn)程和接口以免不必要地使公開內(nèi)容變得晦澀難懂。Mrt此處所描述的實(shí)現(xiàn)提供了 SDR平臺(tái)和高性能的PHY處理庫。此處的SDR的各實(shí)現(xiàn)使用硬件和軟件技術(shù)兩者在通用計(jì)算設(shè)備體系結(jié)構(gòu)上取得高吞吐量和低延遲以用于實(shí)現(xiàn)高速SDR。實(shí)現(xiàn)包括用于使用消息傳遞協(xié)議來在RCB和RF前端之間交換數(shù)據(jù)的LVDS接口。此外,訓(xùn)練狀態(tài)可以用于根據(jù)時(shí)鐘信號(hào)的相位來調(diào)節(jié)RCB和RF前端之間的接口,以優(yōu)化數(shù)據(jù)訪問。另外,實(shí)現(xiàn)還包括SDR平臺(tái),該平臺(tái)可使用戶能夠完全以軟件在通用計(jì)算設(shè)備體系結(jié)構(gòu)上開發(fā)高速無線電實(shí)現(xiàn),如IEEE 802. lla/b/g PHY和MAC。例如,時(shí)間緊迫的任務(wù)、MAC和PHY處理可以根據(jù)需要被改變和重新編程,以便實(shí)現(xiàn)各種目的。此外,還描述了 SDR的特定示例,包括可以使用802. lla/b/g標(biāo)準(zhǔn)與商用無線NIC進(jìn)行交互操作的示例性WiFi無線電系統(tǒng)。盡管用對(duì)結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解所附權(quán)利要求書中定義的主題不限于上述具體特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。另外,本領(lǐng)域技術(shù)人員可以理解,用于實(shí)現(xiàn)相同用途的任何方案都可以代替此處所公開的特定實(shí)現(xiàn)。本發(fā)明旨在覆蓋所公開的實(shí)現(xiàn)的任一和所有改編或變型,并且可以理解后面的權(quán)利要求中所使用的術(shù)語不應(yīng)被解釋為將本專利限于說明書中所公開的具體實(shí)現(xiàn)。相反,本專利的范圍完全由所附權(quán)利要求書以及這些權(quán)利要求所授權(quán)的等效技術(shù)方案的完整范圍來確定。權(quán)利要求
1.一種無線電控制板(RCB),包括 控制器; 用于可操作地連接所述RCB以便與計(jì)算設(shè)備進(jìn)行通信的總線接口 ;以及 用于可操作地連接所述RCB與RF前端以便在所述RCB和所述RF前端之間交換數(shù)據(jù)的低電壓差分信號(hào)(LVDS )接口。
2.根據(jù)權(quán)利要求I所述的無線電控制板,其特征在于,所述LVDS接口包括至少一個(gè)LVDS連接器,提供用于傳輸數(shù)據(jù)消息的至少一個(gè)LVDS數(shù)據(jù)通道和用于在所述RCB和所述RF前端之間傳輸控制消息的單獨(dú)的LVDS控制通道。
3.根據(jù)權(quán)利要求2所述的無線電控制板,其特征在于,所述LVDS接口還包括用于遞送表示LVDS接收器是否能夠接收數(shù)據(jù)的狀態(tài)信號(hào)的LVDS狀態(tài)通道,其中所述LVDS狀態(tài)通道是與所述至少一個(gè)LVDS數(shù)據(jù)通道和所述LVDS控制通道分開的。
4.根據(jù)權(quán)利要求3所述的無線電控制板,其特征在于,所述LVDS接口還包括用于遞送時(shí)鐘信號(hào)的LVDS時(shí)鐘通道,其中所述LVDS時(shí)鐘通道是與所述LVDS狀態(tài)通道、所述LVDS控制通道和所述至少一個(gè)LVDS數(shù)據(jù)通道分開的。
5.根據(jù)權(quán)利要求I所述的無線電控制板,其特征在于,所述LVDS接口包括至少一個(gè)LVDS發(fā)送器和至少一個(gè)LVDS接收器,其中所述至少一個(gè)LVDS發(fā)送器被配置成向所述LVDS接收器發(fā)送訓(xùn)練模式,用于調(diào)節(jié)所述LVDS接口的時(shí)鐘相位。
6.根據(jù)權(quán)利要求I所述的無線電控制板,其特征在于,所述LVDS接口包括至少四個(gè)28針LVDS連接器,它們分兩行和兩列排列在所述RCB上,每一行或列有兩個(gè)LVDS連接器,其中所述LVDS連接器的縱向中心線之間的距離在17. 78和20. OOmm之間。
7.根據(jù)權(quán)利要求I所述的無線電控制板,其特征在于,所述系統(tǒng)總線是外圍組件互連快捷(PCIe)總線。
8.根據(jù)權(quán)利要求I所述的無線電控制板,其特征在于,還包括數(shù)據(jù)幀編碼器,所述數(shù)據(jù)幀編碼器被配置成,將所述RCB上的數(shù)據(jù)編碼為數(shù)據(jù)消息的有效負(fù)載部分,然后再將所述數(shù)據(jù)消息發(fā)射到所述RF前端,所述數(shù)據(jù)消息具有起始幀定界符和長(zhǎng)度指示符。
9.根據(jù)權(quán)利要求I所述的無線電控制板,還包括 在所述RCB上實(shí)現(xiàn)的、從所述RF前端上的LVDS發(fā)送器接收傳入的編碼的數(shù)據(jù)消息的LVDS接收器;以及 所述RCB上的解碼所述編碼的數(shù)據(jù)消息以得到傳入的數(shù)據(jù),用于將所述傳入的數(shù)據(jù)存儲(chǔ)在所述RCB上的緩沖器中的數(shù)據(jù)幀解碼器。
10.一種方法,包括 通過通信接口連接具有處理器和存儲(chǔ)器的無線電控制板(RCB)以便可操作地與射頻(RF)前端進(jìn)行通信,其中所述RCB還連接用于可操作地與計(jì)算設(shè)備的系統(tǒng)總線進(jìn)行通信; 從所述計(jì)算設(shè)備將傳出數(shù)據(jù)接收到所述RCB處的所述存儲(chǔ)器中; 通過所述RCB將所述傳出數(shù)據(jù)編碼為數(shù)據(jù)消息;以及 通過所述通信接口將所述編碼的數(shù)據(jù)消息傳遞到所述RF前端。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,還包括 將控制參數(shù)編碼為控制消息,用于通過所述通信接口遞送到所述RF前端, 其中,所述控制消息包括起始幀定界符,所述控制參數(shù)和循環(huán)冗余校驗(yàn)值,其中,所述控制消息通過所述通信接口在與用于遞送所述數(shù)據(jù)消息的一個(gè)或多個(gè)數(shù)據(jù)通道分開的專用控制通道上遞送到所述RF前端。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,還包括通過所述通信接口在專用狀態(tài)通道上,在所述RCB處接收所述RF前端的狀態(tài),其中,所述狀態(tài)表示通過所述專用數(shù)據(jù)通道遞送的數(shù)據(jù)是訓(xùn)練數(shù)據(jù)還是工作數(shù)據(jù)。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,還包括通過所述通信接口遞送訓(xùn)練數(shù)據(jù),其中,所述訓(xùn)練數(shù)據(jù)使LVDS接收器能調(diào)節(jié)時(shí)鐘信號(hào)的相位,以便優(yōu)化接收到的數(shù)據(jù)的讀取。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述通信接口是LVDS(低電壓差分信號(hào))接口,所述方法還包括通過所述RCB上的LVDS發(fā)送器來向所述RF前端發(fā)送所述數(shù)據(jù)消息,其中,所述LVDS發(fā)送器使用8b/10b編碼來向所述RF前端遞送所述數(shù)據(jù)消息。
15.一種無線電控制板(RCB),包括 耦合到RCB存儲(chǔ)器的RCB控制器; 用于可操作地連接所述RCB以與計(jì)算設(shè)備的系統(tǒng)總線進(jìn)行通信,以便在所述RCB和所述計(jì)算設(shè)備之間交換數(shù)據(jù)的總線接口; 用于可操作地連接所述RCB與射頻(RF)前端以便在所述RCB和所述RF前端之間交換數(shù)據(jù)的低電壓差分信號(hào)(LVDS )接口, 其中,所述LVDS接口包括至少一個(gè)LVDS連接器,提供用于在所述RCB和所述RF前端之間傳輸數(shù)據(jù)消息的至少一個(gè)LVDS數(shù)據(jù)通道的,以及用于在所述RCB和所述RF前端之間傳輸控制消息的單獨(dú)的LVDS控制通道。
全文摘要
無線電控制板使用消息協(xié)議,通過包括單獨(dú)的數(shù)據(jù)和控制通道的接口,與射頻(RF)前端交換數(shù)據(jù)。也可以通過該接口傳遞用于調(diào)節(jié)時(shí)鐘相位的訓(xùn)練數(shù)據(jù)。
文檔編號(hào)G06F9/46GK102667742SQ201080043940
公開日2012年9月12日 申請(qǐng)日期2010年9月15日 優(yōu)先權(quán)日2009年9月30日
發(fā)明者張健松, 張永光, 譚尡 申請(qǐng)人:微軟公司