新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP處理器的UMTS Turbo MAP 解碼器

        基于DSP處理器的UMTS Turbo MAP 解碼器

        作者: 時間:2008-12-25 來源:網絡 收藏

          2 LLR的實現

          對于UMTS 解碼器,MAP算法的LLR可由式(1),式(2)和式(3)計算得到。式(2)和式(3)分別說明了通過α、γ和β來計算位“1”和位“0”的APP值的關系。這些MAP LLR的關系如圖5(a)和圖5(b)所示。

          

          圖5(a) 位“1”的 MAP關系,(b)位“0”的MAP關系

          對于兩個相同的輸入和輸出,位“1”和位“0”的MAP關系并不相似(極少情況下狀態被交換),而這類不對稱流程使我們無法利用Blackfin中計算單元和加載/存儲單元的最大帶寬。例如,圖5(a)和圖5(b)中標示的部分,我們考慮與式(2)和式(3)的前兩項相對應的頂端蝶形運算。

          

          圖6 在Blackfin ALU上的LLR計算

          由于Blackfin只需要三個周期就能完成四個16位加法和兩個16位求最大值操作,要平衡加載/存儲(DAG)單元的帶寬和計算單元,只能用三個周期來加載數據。假設三個寄存器在三個周期中分別加載了α0|α0, α1|α1和 β4|β0,如圖6所示。那么通過16位加法操作,我們可以在兩個周期中計算出α0+β4|α0+β0和α1+β4|α1+β0。但是,MAX 操作要求仿照式(3)從反方向由α1+β0|α1+β4求得輸出的第二項。Blackfin的16位加法指令所支持的交叉選項(CO)選項可用來換回加法的中間輸出,如圖6所示。如果沒有交叉選項(CO),我們將耗費四個周期來計算四次加法,而不是兩個。采用(CO)選項換回之后,執行最大向量操作(一個周期)即可得到兩個Log-Max 輸出。這一部分程序代碼如圖7所示。有了(CO)選項,就可以在18個Blackfin指令周期內計算某一級上的LLR值。

          

          圖7 利用BF5xx處理器交叉選項(CO)的LLR高效實現

          總結

          本文介紹了在ADI BF5xx處理器上 MAP解碼器的高效實現,詳細說明了基于窗口的存儲空間降低方法,并利用16位加/減和16位求最大值向量指令以及交叉選項(CO),高效地在Blackfin嵌入式處理器上實現了 MAP解碼。該方法耗費大約36個BF5xx周期,即可計算得到一個LLR輸出。同時,利用約50kB的BF5xx存儲空間,完成了UMTS Turbo MAP解碼算法的數據和程序存儲。


        上一頁 1 2 3 4 5 下一頁

        關鍵詞: Turbo DSP BLACKFIN

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 车险| 淮安市| 高台县| 苍南县| 洞头县| 元阳县| 东至县| 德钦县| 阿拉善盟| 永川市| 庄浪县| 英吉沙县| 大方县| 竹北市| 越西县| 白沙| 唐山市| 山东| 开阳县| 涟源市| 张家港市| 新河县| 哈密市| 沁阳市| 阿拉善右旗| 南召县| 托克逊县| 易门县| 阿尔山市| 水城县| 新宾| 莱州市| 保山市| 张家川| 苍南县| 奉新县| 德庆县| 宾川县| 彝良县| 千阳县| 弥渡县|