《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 在KeyStone器件上實現高效的LTE上行基帶前端處理

在KeyStone器件上實現高效的LTE上行基帶前端處理

2013-12-30
作者:范偉,尹志新
來源:TI Multicore DSP / FAE

摘要

    LTE 上行基帶前端處理包括為PUSCH、PUCCH、SRS 信道執行的FFT,以及為PRACH信道執行的時頻轉換。這些操作處理的是原始時域天線數據,數據量大,對計算資源和存儲資源的需求都較高。文本針對TI 的KeyStone 器件給出了完整的LTE 上行基帶前端處理設計,目標是盡可能減少核的干預,消耗盡可能少的資源。本文還詳細列出了該設計對各種硬件資源的需求,以及c66x 核上任務的實測負載。

1、引言

    LTE(Long Term Evolution)是由3GPP 組織制定的3G 演進標準,在物理層采用OFDM和MIMO 技術。LTE 分為FDD 和TDD 兩種雙工模式。目前,LTE-FDD 在20MHz 頻譜帶寬下的實際速率大約能達到下行100Mbps、上行50Mbps。LTE-TDD(國內通常稱為TD-LTE)的實際速率會隨上、下行子幀的配比關系而變化。

   [1][2][3][4]是主要的幾個LTE 物理層協議文本。[1]描述了上、下行發射機從星座點調制到基帶信號上變頻之間的處理步驟,通常稱為符號級處理。[2]描述了星座點調制之前的處理步驟,通常稱為比特級處理。[3]描述了各種物理層過程。[4]描述了各種物理層測量。

    LTE 的上行物理信道信道包括用來傳輸數據和物理層隨路控制信令的PUSCH,專門用來傳輸物理層控制信令的PUCCH,用于隨機接入的PRACH,以及用于上行信道探測的SRS。下行物理信道包括用來傳輸數據的PDSCH,用來傳輸各種物理層控制信令的控制信道PCFICH、PHICH和PDCCH。

    本文描述的是LTE 上行基帶前端處理。如圖1 所示,LTE 上行基帶前端處理包括從天線接口接收時域數據,以及隨后的時頻變換。LTE 中所有上行信道接收機的第一步都是把信號從時域變到頻域,這是上行基帶前端處理最主要的任務。PRACH 采用和其它上行物理信道不同的時頻結構,因此,前端時頻變換需要做兩次,一次用于PRACH,一次用于其它上行物理信道。本文把前者稱為“PRACH 前端時頻轉換”,把后者稱為“上行前端FFT”。

TI 推出了一系列用于LTE 基站基帶處理的SoC(System On Chip)。這些SoC 基于TI 的KeyStone 架構,該架構目前已演進了兩代——KeyStone I 和KeyStone II。KeyStone I 家族基于40nm 工藝,包括如下基帶SoC 器件型號:

 

• TCI6616,詳細資料參見[5]

• TCI6618,詳細資料參見[6]

• TCI6614 和TCI6612,詳細資料參見[7]和[8]

• TMS320C6670,詳細資料參見[9]

KeyStone II 家族基于28nm 工藝,包括如下基帶SoC 器件型號:

• TCI6636K2H,詳細資料參見[10]

• TCI6634K2K,詳細資料參見[11]

• TCI6638K2K,詳細資料參見[12]

• TCI6630K2L,詳細資料參見[13]

所有這些器件都具有多模能力,支持GSM/EDGE、WCDMA、TD-SCDMA、WiMAX、LTE 的單模實現或混模實現。所有這些器件使用的DSP 核都是c66x,但個數不同。TCI6614 和TCI6612帶一顆ARM Cortex A8,TCI6636K2H 和TCI6638K2K 帶4 顆ARM Cortex A15,TCI6630K2L帶2 顆A15,它們除支持物理層以外,還支持高層(層2,層3)和傳輸處理。這些器件也可用于基于OFDM的無線回傳(wireless backhaul),如LTE relay 站。

本文介紹如何在上述KeyStone 器件上實現高效的LTE 上行基帶前端處理。上述KeyStone 器件中,只有TCI6630K2L 包含中頻處理模塊,稱為DFE 模塊,該模塊通過IQNet 模塊和系統總線相連。圖1 中的天線接口對TCI6630K2L 來說指的是IQNet,對其它器件來說指的是AIF2。IQNet和AIF2 都使用PktDMA 作為對內接口,行為方式類似。本文用AIF 統一指代IQNet 和AIF2,描述的前端處理方法同時適用于兩者。關于KeyStone I 和II 的AIF2,請參考[14]和[15]。關于PktDMA,請參考[16]。天線接口一旦配置完畢,在實時運行過程中不需要軟件干預,不產生實時負載。本文重點描述時頻轉換。對天線接口,僅描述其與時頻轉換交互的部分。

基帶前端工作在基帶時域采樣率上,對20MHz 載波通常為30.72Msps,而系統中通常存在多個這樣的數據流,對應多天線和/或多載波。對這樣高速的數據流做處理,效率至關重要,應盡量減少對處理資源、存儲資源、總線資源的占用。上行基帶前端的處理效率是基帶整體效率的重要組成部分。本文給出了在KeyStone 器件上用FFTC 硬件加速器完成盡可能多的時頻轉換,并將天線接口和兩類時頻轉換用EDMA 進行直連的方法。該方法使相關的軟件負載降至最低,并且盡可能地降低對內存和總線的占用。本文還給出了由c66x 和FFTC 共同完成PRACH 時頻轉換的方法,并給出了實測負載。該方法減少了對FFTC、內存、總線的占用,但增加了c66x 負載。用戶可根據自身系統的資源消耗情況選擇不同的PRACH 時頻轉換方法。關于EDMA,請參考[17]。關于FFTC,請參考[18]。

本文中的“符號”默認指的是OFDM符號。

2、上行前端FFT

圖2 以單片TCI6634K2K 或TCI6638K2K 實現2 個8 天線TD-LTE 載扇為例,描述了上行前端FFT 的設計,包括對Tx/Rx 通道、flow、Q(本文用Q 表示硬件隊列)、Tx 和Rx 描述符、Acc(本文用Acc 表示Accumulator)等物理資源的使用,以及描述符的傳遞路徑。相關的原理和更多的細節參見以下各節。

雖然這里以單片TCI6634K2K/TCI6638K2K 實現8 天線TDD 雙載扇為例,本文描述的設計實際上適用于在所有KeyStone 器件上實現各種部署場景。注意,對于TCI6634K2K/TCI6638K2K,當不要求所有載扇同時達到最高規格(比如在所有RB 上執行帶信道估計時域內插的MU-MIMO IRC均衡,下行每載扇瞬時數據流量300Mbps,每載扇400 個激活用戶等)且經過充分優化時,單片可支持8 天線TDD 三載扇。

該設計以一個載扇為基本設計單位。多載扇時,每個載扇使用相同的設計,但可以配置不同的硬件資源??紤]到一個FFTC 可以在一個符號周期內完成8 次帶1/2 子載波頻偏校正的2048 點FFT,為簡單起見,要求一個載扇的上行前端FFT 處理由一個FFTC 完成。

圖2 中的例子采用的物理層核間分工策略是:8 個c66x 核分為2 組,核0~3 是一組,核4~7 是另一組,每組處理一個載扇。對第一組:核0 和核1 處理PUSCH,其中信道估計按天線分工,均衡按時隙分工;核2 處理PUCCH 和PRACH;核3 處理下行和SRS,包括上行子幀最后一個符號上的SRS,以及UpPTS 內的SRS。第二組內的核間分工與第一組相同。

 

2.1 FFTC Tx 側設計

    AIF 每收齊一根天線上的一個完整符號,就把一個包push 到一個RxQ 中。本設計假設一個載扇的NA根接收天線與基帶之間的延時是相同的,則對一個符號,NA根天線對應的NA個包幾乎同時被AIF 的Rx PktDMA push 到RxQ 中。為避免對Rx 描述符的回收操作,可把AIF 的RxQ 和Rx FDQ 配置成同一個Q。除了AT timer,其它關于AIF 的部分沒有在圖2 中畫出。

    AIF 和FFTC 之間的直連不是通過AIF 的Rx PktDMA 把接收包直接push 到FFTC 的TxQ 來實現的。實際上,AIF 可以通過內部的AT timer 產生符號級事件,在一個符號的NA個Rx 包被push 到RxQ 之后,立即產生一個系統事件。該事件被用于觸發一個EDMA 操作,該操作把NA個包push到FFTC 的TxQ 中。稱該EDMA 為FFT 入隊EDMA。

對TD-LTE,AIF 可以做到只接收上行子幀和UpPTS 內的符號數據,但無法屏蔽其它符號對應的AT timer 事件。FFT 入隊EDMA 接收所有的AT timer 事件,但僅為上行符號對應的事件執行入隊操作。

為了給應用提供盡可能多的靈活性,為一個子幀內的每個【符號,天線】分配一個FFTC Tx 描述符,并使用描述符的PS data 承載FFTC 本地配置(Local Configuration)。記一個子幀的符號數為??sym,則需要分配??symNA個Tx 描述符,每個描述符的大小是64B。這樣,應用可以在初始化時為每個【符號,天線】配置任意的參數,如destination Q、output scaling 等。

用Acc 對Tx return Q 中的描述符進行自動回收,但不需要產生Acc 中斷或EDMA 事件。為了正常工作,Acc 要求在一個乒或乓List Buffer Page 滿了之后,向Interrupt N Count 寄存器寫1,作為應用對Acc 的響應。因為不需要產生Acc 事件,響應時不需要寫EOI 寄存器。

 

結合以上幾點,FFT 入隊EDMA 的設計如圖3 和圖4 所示。

圖3 以Normal CP 為例給出了FDD 時的設計。此時用到了3 個PaRAM set:PaRAM set 0 只用一次,為系統啟動后的第一個上行子幀的符號執行FFTC 入隊操作;PaRAM set 2 以子幀為單位被周期性地使用,為第一個上行子幀之后的所有上行符號執行入隊操作;PaRAM set 1 用于在每個上行子幀開始時,響應前一個上行子幀的Acc 操作。注意,為了使Acc 操作正常,這里實際上有一個隱性前提:Acc 總能以略短于一個符號的延時處理完被FFTC 的Tx PktDMA push 進Tx return Q 的描述符。該條件在通常的Acc 負載下都能被滿足。對Extended CP,只要把PaRAM set 0 和2 中的CCNT 從14 改為12 即可。

 

FFT 入隊EDMA 在處理完入隊操作后,通過chain 機制產生PRACH 觸發事件,該事件將觸發PRACH 前端時頻轉換。

 

圖4 以“UL/DL 配置6、特殊子幀配置5~8(UpPTS 包含2 個符號)、Normal CP”為例給出了TDD 時的FFT 入隊EDMA 設計。在該系統配置下,用到了8 個PaRAM set:

• PaRAM set 0 只用一次,用于消耗掉系統啟動后的第一個UpPTS 之前的所有AT timer 事件,不執行有實際意義的數據搬移操作。

• PaRAM set 2 和5 以無線幀為單位被周期性地使用,分別為一個無線幀的前、后半幀中的所有上行子幀的符號執行FFTC 入隊操作。

• PaRAM set 1 和4 分別為一個無線幀的前、后半幀中的UpPTS 符號執行FFTC 入隊操作。

• PaRAM set 3 和6 負責消耗掉非上行符號對應的AT timer 事件。

• PaRAM set 7 響應前一個操作周期的Acc 操作,這里的操作周期指的是從一個無線幀的第一個UpPTS 開始的一個10ms。

 

對UL/DL 配置6,需要為前、后半幀的上行子幀集合、UpPTS、其它符號集合的AT timer 事件響應使用不同的PaRAM set,這是因為兩個半幀包含的上行子幀數是不一樣的。對其它所有UL/DL配置,只需要5 個PaRAM set,對應的操作周期等于上下行切換周期(UL/DL 配置0~2 是5ms,3~5 是10ms)。

 

不論是FDD 還是TDD,服務于上行子幀或UpPTS 的PaRAM set 使用AB-sync,每次事件觸發當前上行符號的NA個Tx 描述符的FFTC 入隊操作。CCNT 等于該上行子幀集合或UpPTS 包含的符號數。

 

上行子幀集合和UpPTS 對應的PaRAM set 使用的源buffer 的大小,以及Acc 的List Buffer Page的大小,參見圖2。

 

對TDD,如果當前載扇使用的是長RACH(PRACH preamble 格式0~3),上行子幀中的FFT入隊EDMA 在處理完入隊操作后,還需通過chain 機制產生長RACH 觸發事件,該事件將觸發針對長RACH 的前端時頻轉換;如果當前扇區使用的是短RACH(PRACH preamble 格式4),UpPTS 中的FFT 入隊EDMA 通過chain 機制產生短RACH 觸發事件,觸發針對短RACH 的前端時頻轉換。一個TDD 小區不會同時使用長RACH 和短RACH,因此這兩類PRACH 觸發事件不需要同時配置。注意,AIF 無法屏蔽非上行符號對應的AT timer 事件,但是,經過FFT 入隊EDMA 的過濾,PRACH 前端時頻轉換功能模塊只會收到上行子幀對應的符號級事件。

圖5 以TDD 8 天線、normal CP 為例描述了Tx 描述符的配置。所有的配置域都是靜態的,也就是說,只需要在小區建立或重配時配置,實時運行過程中無需修改。大部分配置域的取值對上行前端FFT 應用來說是確定的,也有一些域的配置具有一定程度的靈活度,可根據算法、軟件框架、資源分配等方面的考慮靈活配置,這些域在圖5 中用下劃線標識,并說明如下。

 

• Return Q 和flow 根據應用的硬件資源分配進行配置。

• 為了盡可能節省內存,這個例子為AIF 接收數據使用符號級乒乓緩存。掛在Tx 描述符上的buffer 指針根據該描述符對應的【符號,天線】指向16 個buffer 中的一個。AIF 使用的是monolithic 描述符,這種描述符的凈荷直接跟在描述符頭的后面。為了避免數據搬移,FFTC Tx 描述符的buffer 指針直接指向AIF Rx monolithic 描述符中凈荷的起始位置。注意,即使不按符號乒乓設計AIF 接收數據緩存,其它方面的設計無需變化,只影響Tx 描述符中buffer 指針的配置。

• 這個例子使用了FFTC 的動態scaling 功能,使FFT 計算過程完全不發生飽和截位,同時每步蝶形運算的輸入數據都有最大有效位寬,因而獲得最高的計算精度。此時,每個【符號,天線】的FFT 輸出數據塊的定標各不相同,應用應使能FFTC 的side information 輸出,該信息包括FFTC 內部實際執行的各級scaling 的總和,應用在隨后的信道估計、測量、均衡處理中應考慮到各【符號,天線】上的scaling 的不同,執行必要的定標對齊。應用也可以不使用動態scaling,直接配置各級蝶形運算之前的移位量。無論使用動態還是靜態scaling,都需要配置靜態的output scaling factor 參數。該參數限制了FFT 輸出I/Q 分量的最大幅度,應用可根據隨后的信道估計和均衡所執行的計算,分別限制導頻符號和數據符號的FFT 輸出最大幅度,使隨后的計算在不出現飽和或溢出的情況下具有盡可能高的有效數據位寬。這個例子把output scaling factor 配置成了0x40,這使得輸出數據的I/Q 分量最大幅度是Q15 定標下的1/2,也就是說,輸出復樣本的最大幅度是Q15 定標下的1。不使用動態scaling 時,通常不需要使能side information 輸出。

 

• 上行前端FFT 通過將Rx 描述符push 進相應的QPend RxQ 來通知c66x 核,從而啟動信道估計或均衡。在這個例子中,一個核處理天線0~3 的信道估計,另一個核處理天線4~7 的信道估計,因此:每個導頻符號上的天線3 的Rx 包被push 進一個QPend Q,觸發前一個核上的信道估計;每個導頻符號上的天線7 的Rx 包被push 進另一個QPend Q,觸發后一個核上的信道估計。另外,子幀中最后一個符號上的天線7 的Rx 包被push 進第3 個QPend Q,該QPend Q 觸發均衡。剩下的所有【符號,天線】對應的Rx 包進一個General Purpose Q。對不同的核間分工,觸發c66x 核的細節也會不同,但只影響Tx 描述符中的destination Q 的配置,其它方面的設計不變。

 

o 本設計用FFTC 提供的destination Q 本地配置域指定RxQ。其實還可以把FFTC 本地配置中的destination Q 配置成無效值(0x3FFF),然后配置多個flow,為每個flow配置不同的destination Q,并為每個【符號,天線】的Tx 描述符指定相應的flow。

o 如果一個上行子幀的最后一個符號是SRS 符號,當PUSCH 和SRS 由不同的核處理時,收到QPend 中斷的PUSCH 核應向SRS 核發送核間中斷,觸發后者的SRS 處理。

 

• UpPTS 使用和上行子幀不同的flow。UpPTS 符號統一由一個核來處理,每個UpPTS 符號的最后一根天線對應的Rx 包觸發對該符號的處理。UpPTS 也采用符號級乒乓緩存,且和上行子幀共用緩存,但需要注意,當UpPTS 僅含一個符號時,該符號使用的是乓(而非乒)緩存。

 

Front-end FFT Tx packet 0~14*8-1 for UL TTI

圖5: 上行前端FFT Tx 描述符配置(例子:同圖2)

 

2.2 FFTC Rx 側設計

 

在Tx 側,在一個符號內接收到的時域天線數據可以由FFTC 在下一個符號內處理完畢,因此可以使用符號級乒乓緩存。在Rx 側,FFTC 輸出的頻域數據需要被PUSCH、PUCCH、SRS 接收機處理,其中PUSCH 和PUCCH 處理不是符號級的,需要對整個子幀的數據做綜合處理,且處理時間較長,理論上只要在該子幀全部收齊后1ms 內處理完即可。因此,Rx 側數據的生存期較長,需要使用子幀級乒乓緩存。

 

如前所述,在圖2 所示的例子中,上行前端FFT 之后,PUSCH 導頻符號按天線在雙核間分工,PUSCH 數據符號按時隙分工。數據符號按時隙分工的優點是:當使用IRC 均衡算法時,每個RB的所有RE 共用一個噪聲干擾空間相關陣Rn,因此,把一個RB 的所有RE 的處理集中在一個核上,有利于核盡可能多地復用加載到寄存器中的Rn元素,執行效率更高;當不做時域信道估計內插時,一個子載波在一個時隙內的6 個數據RE 共用一個信道估計矩陣H,因此,把一個子載波在一個時隙內的所有RE 的處理集中在一個核上,有利于核盡可能多地復用加載到寄存器中的H元素,執行效率更高。對不同的核間分工,基本設計不變,只是Rx 描述符中的buffer 指針會有不同的配置,宗旨是盡量把FFT 輸出數據直接送到將要處理該數據的那個核的LL2,以使隨后的處理有盡可能高的執行效率。

 

和Tx 側類似,在Rx 側,用Acc 對Rx General Q 中的描述符進行自動回收,但不需要產生Acc中斷或EDMA 事件。為了正常工作,Acc 要求在一個乒或乓List Buffer Page 滿了之后,向Interrupt N Count 寄存器寫1,作為應用對Acc 的響應。因為不需要產生Acc 事件,響應時不需要寫EOI 寄存器。Tx 側的響應由EDMA 完成,Rx 側的響應由核完成。對FDD,Rx 側的Acc 響應周期是一個子幀;對TDD UL/DL 配置0~5,響應周期是UL/DL 切換周期;對TDD UL/DL 配置6,響應周期是10ms。對FDD,Rx 側的Acc 響應在“TTI 配置函數”中實現;對TDD,該響應在“UpPTS 配置函數”中實現。“TTI 配置函數”和“UpPTS 配置函數”的主要任務是修改Rx描述符中的動態域,并完成Rx FDQ 入隊,參見后面關于Rx 描述符配置的部分。注意,Acc 不處理進入QPend Q 的Rx 描述符——如圖2 所示,這些Rx 描述符的回收由中斷處理函數執行。

 

為了盡量減少實時運行時修改Rx 描述符所引入的開銷,為兩個子幀內的每個【符號,天線】分配一組FFTC Rx 描述符。當軟件架構要求FFT 輸出的PUSCH 和PUCCH 數據分開存放時,每個Rx 包由5 個描述符鏈接而成;當不要求這樣的PUSCH/PUCCH 數據分離時,每個Rx 包由3 個描述符鏈接而成。因此,總共需要分配的Rx 描述符個數是2 ? ??sym ? ??A ? 5或2 ? ??sym ? NA? 3。每個Rx 描述符的大小是32B。

 

一次FFT 的輸出數據塊格式如圖6 所示——先是16 字節的side information(如果使能的話),然后是低頻側保護子載波,接著是PUCCH 低頻側RB、PUSCH RB、PUCCH 高頻側RB,最后是高頻側保護子載波。FFTC 的Rx PktDMA 不能自動去除兩邊的保護子載波。為了減少內存占用,可以讓所有FFT 輸出數據塊的左側和右側保護段都輸出到同一塊內存中。

 

對PUSCH/PUCCH 數據分離的情況,圖7 以動態scaling 為例描述了上行子幀Rx 描述符的配置。Rx PktDMA 為每個FFT 輸出塊從Rx FDQ 中pop 出5 個描述符,將這5 個描述符鏈接成一個Rx包,按順序將輸出數據塊(包括side information)寫入這5 個描述符提供的5 個buffer,再將這個包的SOP 描述符(也就是構成這個包的第一個描述符)push 到RxQ 中。因為每個上行子幀中實際承載PUCCH 的RB 數是動態變化的(實際上,頻段外側用于2 類格式的RB 數是半靜態配置的,內側用于1 類格式的RB 數動態變化的),所以,用于PUSCH 和PUCCH 的Rx 描述符中的original buffer length 域需要根據當前上行子幀實際包含的PUCCH RB 數進行修改。另外,當存在位于上行子幀的SRS 符號,且軟件架構要求SRS 使用和PUSCH 最后一個數據符號不同的buffer 時,上行子幀中最后一個符號對應的用于PUSCH 的Rx 描述符中的original buffer pointer域也需要根據該符號屬于PUSCH 還是SRS 動態更新。注意,SRS 符號上的PUCCH RB 數和非SRS 符號可能不同(SRS 可能使PUCCH 1 類格式采用協議中定義的shortened 格式)。上行子幀Rx 描述符動態域的修改以及它們的Rx FDQ 入隊操作都在“TTI 配置函數”中完成,該函數必須在相應上行子幀開始之前、在該上行子幀之前使用相同的乒或乓描述符集合的最近上行子幀結束之后調用。為降低核負載,TTI 配置函數用EDMA 完成Rx 描述符的修改和入隊,啟動后無需等待傳輸結束,最多需要3 個EDMA 通道,分別對應非最后一個符號的Rx 描述符修改、最后一個符號的Rx 描述符修改、Rx 描述符入Rx FDQ。

 

在圖7 中,對乒或乓,高頻側保護段的輸出地址是固定的,低頻側保護段的輸出地址按照FFTC實際處理的【符號,天線】順序從左向右遞進,每次增加16B,目的是保存一個子幀中每個【符號,天線】對應的side information。Side information 區域必須是子幀級乒乓的,導致保護段區域也不得不按乒乓分配。

 

當不要求PUSCH 和PUCCH 數據分離時,每個Rx 包由3 個描述符鏈接而成,PUCCH 位于每個buffer 的兩側。

 

圖8 以動態scaling 為例描述了UpPTS Rx 描述符的配置。和上行子幀相比,UpPTS 沒有PUSCH/PUCCH 分離的問題,所以一個Rx 包總是由3 個描述符鏈接而成,而且描述符的所有域都是靜態域,不需要動態修改。UpPTS Rx 描述符的Rx FDQ 入隊操作在“UpPTS 配置函數”中完成,該函數必須在相應UpPTS 開始之前、前一個UpPTS 結束之后調用。為降低核負載,用EDMA 完成描述符入隊。注意,對TDD UL/DL 配置6,“UpPTS 配置函數”每半幀調一次,但Rx 側Acc 響應每10ms 只需執行一次。

 

圖9 以單片TCI6634K2K/TCI6638K2K 實現3 載扇為例描述了從QPend 事件到核中斷的傳遞路徑實例。在這個例子中:

 

• 分配給每載扇的3 個QPend Q 的Q 編號分別是652/653/654、655/656/657、658/659/660。

• 每個核的QPend 中斷索引都是10。

• 核0/1、2/3、4/5 分別處理三個載扇的PUSCH。PUSCH 導頻符號按天線分工,數據符號按時隙分工。每對核中的第一個核只需接收導頻符號上第NA⁄2 − 1(從0 開始編號)根天線對應的QPend 中斷(觸發信道估計,而均衡可以在第二個時隙的信道估計完成后立即執行);第二個核既要接收導頻符號上最后一根天線對應的QPend 中斷(觸發信道估計),還要接收最后一個數據符號上最后一根天線對應的QPend 中斷(觸發均衡)。

• 核6 處理前載扇0 和2 的PUCCH,核7 處理載扇1 的PUCCH。因此,每個QPend Q 654/657/660 事件要傳遞到2 個核(載扇0 是核1 和核6,載扇1 是核3 和核7,載扇2 是核5 和核6)。

 

關于TCI6634K2K/TCI6638K2K 的內部事件路由,參見[19]。關于CIC(Chip Interrupt Controller),參見[20]。

 

2.3 硬件資源需求

 

對每個載扇,上行前端FFT 所需的硬件資源如下:

 

• 1 個FFTC 實例。

• 該FFTC 實例上的1 個Tx/Rx 通道(和該FFTC 實例的一個TxQ 綁定)。

• 1 個用于上行子幀的flow。TDD 時,還需1 個用于UpPTS 的flow。

• 1 個Tx return Q,1 個用于上行子幀的Rx FDQ,1 個Rx General Q,若干個Rx QPend Q(具體個數由核間分工確定,比如:當PUSCH 雙核處理,PUCCH 在另一個核上處理時,需要3 個;當單核處理單載扇時,只需1 個)。TDD 時,還需1 個用于UpPTS 的Rx FDQ。

• ??sym??A個用于上行子幀的Tx 描述符。TDD 時,還需??UpPTS,sym??A個用于UpPTS 的Tx 描述符。每個Tx 描述符的大小是64B。

• 2 ? ??sym ? ??A ? 5(要求PUSCH/PUCCH 數據分離時)或2 ? ??sym ? ??A ? 3(不要求數據分離時)個用于上行子幀的Rx 描述符。TDD 時,還需??UpPTS,sym ? ??A ? 3個用于UpPTS 的Rx 描述符。每個Rx 描述符的大小是32B。

• 用于Tx 和Rx 描述符回收的Acc 所使用的PDSP 實例。

• 用于Tx 描述符回收的Accumulator 通道,用于Rx 描述符回收的Accumulator 通道。

• Tx 側TxQ 入隊EDMA 用到的1 個CC 實例,1 個TC 實例,1 個EDMA 通道,3(FDD)、5(TDD UL/DL 配置0~5)或8(TDD UL/DL 配置6)個PaRAM set。

• Rx 側為上行子幀用到了3 個EDMA 通道,分別對應非最后一個符號的Rx 描述符修改、最后一個符號的Rx 描述符修改、Rx FDQ 入隊。每類操作涉及1 個CC 實例,1 個TC 實例,1個EDMA 通道,1 個PaRAM set。Rx FDQ 入隊也可以改用QDMA,其它兩類操作涉及3D搬移,只能用EDMA。TDD 時,只要在使用時間上不沖突,針對上行子幀和針對UpPTS 的操作可以合用一套資源。

• Acc 內存資源:

o 用于Tx 描述符回收的List Buffer Page:

l   FDD 時,以子幀為單位乒乓,總大小為字節。

l   TDD UL/DL 配置0~5 時,以UL/DL 切換周期為單位乒乓,總大小為字節,其中??TTI表示一個UL/DL 切換周期包含的上行子幀數。

l   TDD UL/DL 配置6 時,以10ms 為單位乒乓,總大小為字節。

 

o 用于Rx 描述符回收的List Buffer Page:

l   FDD 時,以子幀為單位乒乓,總大小為字節,其中??TTI,QPend表示一個上行子幀中進入QPend Q 的Rx 包個數。

l   TDD UL/DL 配置0~5 時,以UL/DL 切換周期為單位乒乓,總大小為字節,其中??UpPTS,QPend表示一個UpPTS 中進入QPend Q 的Rx 包個數。

l   TDD UL/DL 配置6 時,以10ms 為單位乒乓,總大小為字節。

 

只要處理能力足夠,多個載扇可以共用一個FFTC 實例、一個CC 甚至TC 實例。多扇區通常共用一個Acc PDSP 實例。所有用于通知某個核或某組核的QPend 事件可以來自同一個QPend Q,軟件通過從中pop 出的描述符地址辨別事件類型。其它資源通常不適合多載扇共用,需要為每個載扇單獨分配。

 

2.4 C66x 核負載測量

 

采用本設計,大部分配置工作在小區建立或重配時完成,需要在實時運行過程中調用的函數僅限于TTI 配置函數和UpPTS 配置函數。表1 給出了TTI 配置函數的實測cycle 數。TTI 配置函數的任務主要是響應Acc 以及配置/啟動用于Rx 描述符修改和入隊的3 個EDMA,因為無需等待EDMA 傳輸結束,所以該函數的負載和天線數無關。UpPTS 配置函數的負載比TTI 配置函數更低,此處從略。本測試使用TCI6638K2K EVM;L1P/L1D cache 初始狀態都為cold,也就是說,函數開始執行時,代碼和數據都不在L1 cache 中。

 

3、PRACH 前端時頻轉換

   

圖10 給出了PRACH 接收機的流程圖,本章描述的PRACH 前端時頻轉換包括去CP 和轉換至頻域這兩個步驟。

 

 

本文用短RACH 指代PRACH preamble 格式4,用長RACH 指代其它格式。表2 給出了各種小區帶寬情況下,長、短RACH 的前端時頻轉換所需的DFT 原始長度。下面分情況描述時頻轉換方案設計:

 

• 長RACH:

o 對20、15、10MHz 小區,FFTC 不支持DFT 原始長度,需要采用間接的時頻轉換法,具體分為兩種:

l        大點DFT 法。該方法主要使用FFTC,輔以少量的核處理,直接完成一個大點數的DFT。參見3.1 節。

l        混合法。該方法使用核完成下變頻和濾波降采樣,然后用FFTC 在降低后的采樣率上執行小點DFT。參見3.2 節。

o 對更窄帶寬的小區,可以直接用FFTC 執行DFT。參見3.3 節。

 

•短RACH:

o 總是可以直接用FFTC 執行DFT。參見3.4 節。

 

 

3.1 RACH——大點DFT

 

本節先描述原理,再給出實現方案。

 

3.1.1 原理

 

一個長度為N 的序列??(??)的N 點DFT 定義為

 

 

其中??是時間索引,??是頻率索引,。大點DFT 法直接實現一個長度超過FFTC 支持范圍的FFT。用于實現快速DFT 的FFT 算法通??梢苑譃闀r域抽取法(DIT)和頻域抽取法(DIF)兩類。當計算完整的DFT 時,DIT 和DIF 的計算復雜度是一樣的。但是,PRACH 前端時頻轉換實際上只需要計算一部分X(??),比如,對20MHz 小區、頻域僅1 個opportunity 的情況,N=24576,但真正需要的X(??)只有839 點。通過對比分析可知,只有DIT 可以利用到這個應用特性降低核負載。因此,我們選擇采用DIT 法。

 

DIT 法將一個N 點DFT 分解成P 個N/P 點DFT 的方式為

 

 

定義????(??) = ??(P ? ??+ ??);??= 0,1,?,N⁄P − 1,下標??= 0,1,?, P − 1,定義F??(??)是????(??)的N/P點DFT,并注意到= WN⁄P,可得

 

進一步地,定義??= ??′+ ??′? N⁄P,??′= 0,1,?,N⁄P − 1,??′= 0,1,?, P − 1,因為F??(??)以N/P 為周期,且X(??)可以拆分成如下的多個表達式

 

 

其中??′= 0,1,?,N⁄P − 1。這組表達式可以用圖11 表示,并描述如下:

1. 對輸入N 點序列做P 點抽取,獲得P 個子序列,每個子序列的長度是N/P。

2. 分別對P 個子序列做N/P 點DFT 運算,得到F??(??),??= 0,1,?, P − 1,??= 0,1,?,N⁄P − 1

3. 第p 個子序列F??(??)點乘

4. 對第3 步輸出的P 個子序列,執行P 點“塊DFT”,相當于每次取P 個子序列相同位置上的點,構成一個P 點序列,然后對該P 點序列執行P 點DFT,第m 次P 點DFT 輸出的P 個結果對應X(??), X(??+ N/P),?, X(??+ (P − 1) ? N/P)。

 

 

對20MHz 小區,按照FFTC 支持的DFT 長度對整個24576 點序列做分割,有24576 = 8192*3 =6144*4 = 4096*6 = 3072*8 = 2048*12 = ……,對應的抽取因子P 分別是3、4、6、8、12 等。對P 的選取應綜合考慮以下因素:

 

• C66x 核負載。P 越大,步驟3 和4 涉及的計算量就越大。

• 抽取EDMA 的配置復雜度。如前一章所述,AIF 收到的上行時域天線數據是按符號乒乓緩存的,為了用EDMA 完成P 點抽取,最直接的方法是在FFT 入隊EDMA 完成后,觸發另一個EDMA 把當前符號的時域數據以P 點抽取的方式搬到別的地方去。為了EDMA 配置的簡單性,一個符號內的樣本數最好是P 的倍數。對20M小區、normal CP 場景,為了滿足此需要,P只能等于1、2、4、8、16。

• FFTC 執行效率。根據[21],1GHz KeyStone 器件上的一個FFTC 的流量在DFT 長度為8192、6144、4096、3072、2048 時分別為378、360、437、413、431 Msps。不同長度對應的流量有較為可觀的差異,比如,4096 點時的流量比6144 點時高21.4%。

 

綜合考慮以上因素,本文推薦使用P=4 作為20MHz 小區的抽取因子,對應6144 點DFT。對15和10MHz 小區,假設采樣率按帶寬等比下降,則PRACH 序列長度從20M 時的24576 降為18432 和12288。對這兩類小區帶寬,分別使用P=3 和2,而保持6144 作為DFT 點數。這樣的選擇偏向更輕的核負載和EDMA 配置簡單性,犧牲了一些FFTC 執行效率。

 

3.1.2 實現

 

如上所述,基于DIT 的大點DFT 有4 個處理步驟。實現時,步驟1(P 點抽?。┯蒃DMA 完成,步驟2 由FFTC 完成,步驟3 和4 由c66x 核完成。

 

抽取EDMA 需要用到2 個EDMA 通道,分別稱為trigger 通道和working 通道。圖12 以“TDD UL/DL 配置1,PRACH 配置10,20MHz,Normal CP”為例給出了抽取EDMA 的配置細節。

 

根據附錄A,在該系統配置下,trigger 通道需要7 個EDMA PaRAM set 來響應上行前端FFT 產生的長RACH 觸發事件。第1 個PaRAM set 只用一次,用于響應系統初始化后最初的若干上行子幀符號對應的事件。之后的6 個PaRAM set 以10ms 為周期重復使用,用于處理該系統配置下一個無線幀包含的3 個opportunity,以及相鄰opportunity 之間不承載PRACH 數據的上行子幀符號。對不承載PRACH 的上行子幀符號,相應的長RACH 觸發事件不觸發實際操作,本文稱這樣不承載實際數據搬移任務的EDMA 為dummy 類型的EDMA。對承載PRACH 的上行子幀符號,相應的長RACH 觸發事件通過trigger 通道的chain 機制間接觸發working 通道,并且在觸發working 通道之前先用trigger 通道修改working 通道將要用到的PaRAM set 中的符號級動態域。

 

Working 通道需要NA + 3個PaRAM set。第1 個PaRAM set 只用到1 次,屬于dummy 類型的。后面的NA + 2個PaRAM set 以link 加self-chain 的方式,以上行子幀符號為周期重復使用。對每個上行子幀符號,先執行1 個dummy 類型的PaRAM set,用于確保trigger 通道對接下來的NA + 1個PaRAM set 的動態域的修改已經完成。接下來的NA個PaRAM set 用于完成NA根天線的P 點抽取。最后1 個PaRAM set 用于在整個序列的最后一個符號處執行FFTC TxQ 入隊操作,非序列最后一個符號對應的該PaRAM set 屬于dummy 類型。

 

Working 通道的后NA + 1個PaRAM set 中的動態域包括SRC、DST 和BCNT。Trigger 通道為每個上行子幀符號執行一次對這NA + 1個working 通道PaRAM set 的動態更新,數據源位于內存中,稱為PaRAM set LUT,其內容在小區初始化或重配時由驅動軟件配置。

 

對圖12 示例之外的其它系統配置,基本原理是類似的,但細節上有一些差別。

 

• Trigger 通道用到的PaRAM set 個數等于附錄A 表格中“EDMA 分段”列給出的值加1。

• Trigger 通道的每個PaRAM set 負責響應的上行子幀符號數等于附錄A 表格中“初始Dummy符號數”列或“EDMA 段內符號數”列給出的值。對dummy 類型的PaRAM set,這個值配置到BCNT;對其它PaRAM set,配置到CCNT。

• 對PRACH 格式0 和1,一個抽取目的buffer 包含1 個PRACH 序列,僅需為最后一個符號執行FFTC 入隊操作。對PRACH 格式2 和3,一個抽取目的buffer 包含2 個序列。此時,為了在一個序列收齊之后立刻啟動FFTC,需要為每個序列的最后一個符號執行FFTC 入隊操作。這些都通過配置PaRAM set LUT 實現。

• 對PRACH 格式0,如果兩個相鄰的上行子幀都承載了PRACH,需要分配兩個抽取目的buffer,以子幀為單位乒乓使用。此時,每個buffer 有自己的PaRAM set LUT。對其它PRACH 格式,一個buffer 就夠了,但格式2 和3 的一個buffer 實際上包含2 個序列。

• 對PRACH 格式2 和3,不能把一個opportunity 的兩個序列的抽取輸出連續排列,這是因為DCIDX 域最大只有16 位(包括符號位),連續排列的話正好超出了表達范圍。

• 對PRACH 格式2 和3,為了讓兩個序列各自放在連續的內存中,需要對兩個序列交接處的那個符號的抽取EDMA 做特殊處理。為此,對working 通道,在原有的NA + 3個PaRAM set的基礎上增加NA個,這些新增的PaRAM set 不需要動態更新,負責處理交接符號中屬于后一個序列的部分的抽取,而原有的用于抽取的NA個PaRAM set 現在只處理屬于前一個序列的部分。這兩組PaRAM set 以相互交織的方式link 和self-chain,為此,LINK 必須成為動態更新域,以便動態改變link 目標。

 

掃描0017.jpg

 

步驟2,也就是6144 點DFT,由FFTC 完成。這一步采用原位操作以節省內存。推薦采用動態scaling,此時每個6144 點的buffer 需要在頭部多留出16B 以容納FFTC 輸出的side information。

 

步驟3 和4 由核實現。一個PRACH opportunity 在頻域占用6 個RB,但并不是整個6 RB 帶寬都被PRACH 占用,因為兩側有相同寬度的保護頻帶。圖13 給出了一個例子,其中,PRACH 導頻子載波被標記為紅色。

 

 

對FDD,每小區在一個特定時刻最多只有1 個opportunity,其起始物理RB 索引是其中,表示半靜態的PRACH 頻偏參數。

 

對TDD,一個小區在一個特定時刻可以有多個opportunity,其中第??RA個opportunity 的起始物理RB 索引是其中表示小區上行RB 數。

 

假設一個PRACH opportunity 的起始物理RB 索引是以20MHz 小區為例,它的第一個子載波在整個24576 點DFT 輸出中的位置是

 

參考圖11,假設該起始位置落在第??0 ∈[0, P − 1]個大點DFT 輸出塊內,在該塊內的內部偏移是O0,則如果O0≤6144 − 839 = 5305,這個opportunity位于一個大點DFT 輸出塊內;否則,這個opportunity 跨越2 個大點DFT 輸出塊,其最后O0− 5305個點位于塊??1 = (??0 + 1) mod 6的起始處。

 

如果該opportunity 位于一個輸出塊內,核執行下面的計算

 

 

如果跨越2 個塊,計算

 

 

當FFTC 為步驟2 執行動態scaling 時,核在處理步驟3 和4 時,除了上述公式描述的計算,還要執行定標對齊。

 

3.1.3 硬件資源需求

 

對每個載扇,PRACH 前端時頻轉換所需的硬件資源如下:

• 1 個FFTC 實例。

• 該FFTC 實例上的1 個Tx/Rx 通道(和該FFTC 實例的一個TxQ 綁定)。

• 1 個flow。

• 1 個Tx return Q,1 個Rx FDQ,1 個Rx QPend Q。

• ??X ? ??S? ??A ? P個Tx 描述符,其中??S表示一個opportunity 中的序列個數,??X表示前面所說的抽取目的buffer 個數(1 或2,僅格式0 在部分配置下取2)。每個Tx 描述符的大小是32B。

• Rx 描述符的個數和Tx 描述符一樣。每個Rx 描述符的大小是32B。

• 抽取EDMA 用到的1 個CC 實例,1 個TC 實例,2 個EDMA 通道。Trigger 通道需要的PaRAM set 個數等于附錄A 表格的“EDMA 分段”列取值加1,最大值等于11,發生在TDD UL/DL 配置0、PRACH 配置為15/16/17 時。對PRACH 格式0 或1,working 通道需要NA + 3個PaRAM set;對格式2 或3,需要2NA + 3個。

• 用于控制的內存資源:

o PaRAM set LUT,PRACH 格式0 或1 時的大小是??X ? ??? (??A + 1) ? 12字節,格式2 或3 時的大小是??? (??A + 1) ? 20字節,其中??表示一個opportunity 的序列部分占用的符號數,如附錄A 中的表4 所示。

 

o 描述符地址數組(用于PRACH 前端FFTC 入隊的源buffer),大小是Tx 描述符個數乘以4 字節。

 

只要處理能力足夠,多個載扇可以共用一個FFTC 實例、一個CC 甚至TC 實例。所有用于通知某個核或某組核的QPend 事件可以來自同一個QPend Q,軟件通過從中pop 出的描述符地址辨別事件類型。其它資源通常不適合多載扇共用,需要為每個載扇單獨分配。

 

3.1.4 負載測量

 

步驟3 和4 在c66x 核上的硬件實測負載如表3 所示,對應一個opportunity。如果在頻域有多個opportunity,則總cycle 數要乘以opportunity 個數。本測試使用TMS320C6670 EVM,內存配置是:輸入、輸出buffer 都位于LL2;L1P/L1D cache 初始狀態都為cold,也就是說,函數開始執行時,代碼和數據都不在L1 cache 中。

 

 

3.2 增大Cboot 電容的風險分析

 

混合法的原理如圖14 所示。C66x 核負責下變頻和低通濾波抽取,并啟動FFTC 完成降采樣序列的DFT。當頻域有多個opportunity 時,為每個opportunity 分別執行整個處理流程。降采樣后的序列長度等于1536,20、15、10MHz 小區分別對應16、12、8 倍降采樣。

 

圖14: 混合法原理

 

C66x 核處理任務可以每符號執行一次,也可以在一個PRACH 序列收集完畢后執行一次。前者的優點是節省內存;缺點是由多任務相互打斷而導致的cache 開銷和任務切換開銷,由“重疊相加”或“重疊保留”分段濾波帶來的額外計算量,以及更頻繁的中斷開銷。反之,后者的優點是核開銷較低,缺點是需要更多的內存。對后者,如果因片內內存不夠而需要把PRACH 序列收集buffer放到DDR,則核開銷方面的優點可能會被更低的內存訪問效率抵消。

 

采用逐符號處理時,PRACH 前端EDMA 配置和圖12 之間的區別是:

 

• 只用到了trigger 通道,working 通道及其PaRAM set 不再需要。

• 原本用于觸發working 通道的事件現在用于觸發核中斷,相應的PaRAM set 僅做dummy 數據搬運。

 

采用逐序列處理時,PRACH 前端EDMA 配置和圖12 之間的區別是:

 

• PaRAM set LUT 中的配置參數對應連續內存搬移,而非抽取操作。

• Working 通道用于FFTC 入隊的PaRAM set 不再需要,而它之前的那個PaRAM set 的final事件不僅觸發self-chain 事件,還產生核中斷。

 

下變頻和低通濾波抽取在c66x 核上的硬件實測負載為:一個opportunity、一個序列、一根天線上的cycle 數是55,958。本測試使用TMS320C6670  EVM,系統參數和內存配置是:20MHz 小區,32 階濾波器;分為12 段按重疊相加法處理;輸入、輸出buffer 都位于LL2;L1P/L1D cache 初始狀態都為cold。注意,這里測量的負載沒有包含多任務互相打斷而導致的額外開銷。

 

3.3 RACH——直接DFT

 

5、3、1.4MHz 小區中的長RACH 使用直接DFT,因為根據表2,這些小區帶寬下的DFT 原始長度可以被FFTC 直接處理。此時,PRACH 前端EDMA 配置類似圖12,唯一的區別是PaRAM set LUT 中的配置參數對應連續內存搬移,而非抽取操作。

 

直接DFT 沒有實時c66x 核開銷。

 

3.4 RACH

 

UpPTS 的長度可以是1 或2 個符號,而短RACH 僅在UpPTS 長度是2 個符號時才允許存在。短RACH 在UE 側UpPTS 結束點之前4832Ts 處發射,CP 長度是448Ts,序列部分從第1 個UpPTS 符號的0Ts(normal CP)或736Ts(extended CP)開始,長度是4096Ts。

 

如圖4 所示,前端FFT 入隊EDMA 可以為UpPTS 中的每個符號產生一個短RACH 事件,該事件觸發短RACH 的working 通道,完成數據搬移和FFTC 入隊。短RACH 的working 通道使用4 個PaRAM set,第一個用于初始dummy,接下來的兩個分別用于兩個符號的數據搬移,最后一個用于FFTC 入隊。

 

對每個載扇,短RACH 前端時頻轉換所需的硬件資源如下:

• 1 個FFTC 實例。

• 該FFTC 實例上的1 個Tx/Rx 通道(和該FFTC 實例的一個TxQ 綁定)。

• 1 個flow。

• 1 個Tx return Q,1 個Rx FDQ,1 個Rx QPend Q。

• NA個Tx 描述符。每個Tx 描述符的大小是32B。

• Rx 描述符的個數和Tx 描述符一樣。每個Rx 描述符的大小是32B。

• 數據搬移EDMA 用到的1 個CC 實例,1 個TC 實例,1 個EDMA 通道,4 個PaRAM set。

• 用于控制的內存資源:

o 描述符地址數組(用于短RACH 前端FFTC 入隊的源buffer),大小是Tx 描述符個數乘以4 字節。

 

只要處理能力足夠,多個載扇可以共用一個FFTC 實例、一個CC 甚至TC 實例。所有用于通知某個核或某組核的QPend 事件可以來自同一個QPend Q,軟件通過從中pop 出的描述符地址辨別事件類型。其它資源通常不適合多載扇共用,需要為每個載扇單獨分配。

 

 

4、小結

    本文詳細描述了在TI 的KeyStone 器件上實現高效的LTE 上行基帶前端處理的方法,包括對常規前端FFT 的處理和對PRACH 前端時頻轉換的處理,并給出了實測的c66x 核負載。

 

從本文的描述可見,KeyStone 架構提供的EDMA 和Navigator 機制非常靈活,可以把數據搬運、加速器啟動、核觸發等操作步驟串聯成一個可自動執行的整體流程,極大降低了對核實時干預的需求。

 

    當輸入數據位于DDR 時,FFTC 的執行效率較低。因此,對PRACH 前端處理,建議把從符號級乒乓緩存搬移出來的數據放在片內。

 

對PRACH 前端處理,大點DFT 法比混合法節省10 倍以上的核負載。當FFTC 和片內存儲資源足夠時(比如對小基站),大點DFT 較為合適。在其它情況下,哪種方法合適需要根據系統對c66x 核、FFTC、內存的使用情況選擇。

 

參考資料

 

[1] 3GPP TS-36.211

[2] 3GPP TS-36.212

[3] 3GPP TS-36.213

[4] 3GPP TS-36.214

[5] http://www.ti.com/product/tms320tci6616

[6] http://www.ti.com/product/tms320tci6618

[7] http://www.ti.com/product/tms320tci6614

[8] http://www.ti.com/product/tms320tci6612

[9] http://www.ti.com/product/tms320c6670

[10] http://www.ti.com/product/tci6636k2h

[11] http://www.ti.com/product/tci6634k2k

[12] http://www.ti.com/product/tci6638k2k

[13] http://www.ti.com/product/tci6630k2l

[14] KeyStone Architecture Antenna Interface 2 (AIF2) User Guide (SPRUGV7)

[15] KeyStone II Architecture Antenna Interface 2 (AIF2) User Guide (SPRUHL2)

[16] Multicore Navigator User Guide (SPRUGR9)

[17] Enhanced Direct Memory Access (EDMA3) Controller User Guide (SPRUGS5)

[18] Fast Fourier Transform Coprocessor (FFTC) User Guide (SPRUGS2)

[19] TCI6638K2K Data Manual (SPRS836)

[20] KeyStone Architecture Chip Interrupt Controller (CIC) User Guide (SPRUGW4)

[21] Throughput Performance Guide for TCI66x KeyStone Devices (SPRABH2)

 

 

 

附錄A:PRACH 分布與EDMA 參數

 

表5 到表12 分別給出了FDD 以及7 種TDD UL/DL 配置下的PRACH 分布描述表。解釋如下。

 

• “緩存數”一列描述每種配置下需要的緩存個數,等于1 或2,2 表示需要乒乓緩存。對于PRACH 格式2 和3,每個opportunity 包含2 個序列,1 個緩存對應一個opportunity,而非一個序列。格式2 和3 時,緩存數總是等于1,為了強調該緩存實際上要容納2 個序列,在表中用“1’”標識。當緩存數等于1 時,這個唯一的緩存用1 編號;當緩存數等于2 時,兩個緩存分別用1 和2 編號。確定緩存數時,假設系統能夠在“下下個”序列到達前處理完當前序列的時頻轉換。

• 假設系統啟動后總是從一個無線幀的第一個子幀開始接收天線數據,則一開始會有若干個上行子幀符號不承載PRACH 數據,這些上行子幀符號的個數在“初始Dummy 符號數”一列給出。注意,如前所述,經過FFT 入隊EDMA 的過濾,PRACH 前端時頻轉換功能模塊只會收到上行子幀對應的符號級事件。

• 經過初始階段的不承載PRACH 數據的若干個符號后,隨后的PRACH 時域承載模式按周期重復,每個周期包含若干個EDMA 分段,在“EDMA 分段”一列給出。1 表示該分段內的符號數據被EDMA 搬運到緩存1,2 表示該分段內的符號數據被EDMA 搬運到緩存2,0 表示在該分段內不執行實際的天線數據搬運,只是消耗長RACH 觸發事件。“EDMA 段內符號數”一列給出每個EDMA 分段中的上行子幀符號數。

 

??表示一個上行子幀內的符號數,????(??= ??, ??, ??, ??)表示格式??的一個opportunity 中的1 或2 個序列跨越的總符號數,????表示格式??的一個opportunity 從起始子幀的頭部到序列開始前不承載PRACH 的符號數(字母h 表示head),????表示格式??的一個opportunity 從序列結束后到結束子幀的末尾的不承載PRACH 的符號數(字母t 表示tail)。

 

• 表4 給出兩種CP 模式下,這些變量的取值。

 

 

 

5.jpg

 

 

 

6.jpg

 

 

 

 

 

7.jpg

 

 

8.jpg

 

9.jpg

 

 

 

 

10.jpg

 

 

11.jpg

 

12.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 中文字幕一区在线观看视频 | 男女午夜性爽快免费视频不卡 | 国产成人高清精品免费观看 | 成年男女免费视频观看性 | 91探花国产综合在线精品 | 日本特级淫片 | 国产成人系列 | 夜夜超b天天| 欧美特黄视频在线观看 | 日韩精品视频在线观看免费 | 欧美精品免费专区在线观看 | 成年香蕉大黄美女美女 | jizjizjiz亚洲人 | 99国产牛牛视频在线网站 | 亚州va| 色小视频 | 亚洲第一黄网站 | 污视频网站免费看 | 欧洲亚洲日本 | 夜夜操天天操 | 外国黄色毛片 | 亚洲欧美激情综合首页 | 欧美日韩中文字幕久久伊人 | 播放黄色一级片 | 久久精品免费全国观看国产 | 黄色的网站在线观看 | 香港一级a毛片在线播放 | 成人久久18免费网站游戏 | 亚洲免费在线视频播放 | 在线欧美不卡 | 日韩拍拍拍| 92看片淫黄大片欧美看国产片 | 色无五月| 亚洲丁香色婷婷综合欲色啪 | 午夜xxxx| 成人短视频在线免费观看 | 天天综合网天天综合色 | 中文字幕日韩专区 | 亚洲黄色影视 | 极品福利视频 | 成人合成mv福利视频网站 |