<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    基于TR600芯片的過程調用設計與硬件實現

    發布時間:2010-9-17 10:34    發布者:techshare
    關鍵詞: TR600 , 過程調用 , 硬件實現
    隨著大規模集成電路的不斷發展,軟硬件界面的劃分也發生了變化,VKSI設計方法的改進、IP技術的標準化以及系統在片(SOC)設計的日漸成熟,為軟件功能邏輯硬件化實現提供了技術條件和實現手段。作為軟件程序設計的重要部分,過程調用功能使用頻度相當高,尤其在結構化設計中起到重要作用,因此,其硬件實現方法的優劣對于軟件能否很好地移植到邏輯電路中起到了非常重要的作用。

    TR600語音編解碼芯片設計是基于MELP、SELP2(Sine Excitation Linear Prediction)等多種語音算法,采用可重構體系結構…和變長指令技術,實現了多種語音算法可在片配置的SOC設計。這款語音芯片結合了邏輯電路的快速性和用戶指令編程靈活性的特點,通過分析多種語音算法,并提取資源共集,建立了資源、運算、網絡可重構的邏輯電路,同時提取資源的可控節點,形成用戶指令界面,以指令流形式控制邏輯電路,實現算法級應用功能。過程調用功能就是以指令形式提供給使用者,并通過指令譯碼器控制邏輯電路動作,實現具體功能。因此,過程調用功能的硬件實現效率和靈活度直接影響芯片整體的速度、規模以及用戶指令編程的復雜度。

    過程調用模型可簡單描述為主調過程將被調過程置于某一位置,然后把控制權交給被調過程,執行完畢,再取回控制權,并返回運行結果,主調過程繼續執行。因此過程調用需要2個步驟:調用過程和返回過程。過程調用需要處理的信息有:程序計數器(PC)值的保存與恢復、現場保護和參數傳遞。過程調用是一種典型的后入先出堆棧寄存器結構,這種實現方式雖已相當普遍,但也存在不足:(1)堆棧寄存器使用效率低,存儲時間和空間浪費嚴重。因為參數傳遞的個數和規格因調用過程的不同會有所不同,而主調過程需要對所有可能被破壞的數據堆棧進行保護,而堆棧的寬度和深度會因滿足過程調用最壞情況而設計得最大,而且嵌套調用會增加堆棧寄存器的開銷。(2)堆棧寄存器結構無法解決調用過程存取算子對存儲體交叉訪問的問題。為了給用戶指令編程提供一個清晰的指令界面,在指令體系設計時,將LS存取算子設計成與SDRAM存儲體一一對應的關系。單塊存儲體采用獨立編址。而對于過程調用,主調過程傳遞實參可來源于任意存儲體,被調過程的LS存取算子只能指向某一個存儲體,這就產生了過程調用中參數傳遞的全局性與存取算子訪問局部性之間的矛盾。

    為了解決堆棧寄存器結構實現方式的不足,TR600語音編解碼芯片采用了重疊寄存器窗口技術和存取算子對存儲體的交叉訪問技術來實現過程調用功能。  

    1 重疊寄存器窗口技術

    重疊寄存器窗口技術是一種寄存器堆設計方法,它將寄存器堆分成若干個寄存器子堆,相鄰寄存器子堆有重疊部分并共同可見,作為子堆之間信息交互的窗口,稱為窗口寄存器。寄存器子堆與其他子堆不重疊的部分只有自身可見,獨立于其他子堆,稱為局部通用寄存器。在外部控制電路作用下,同一時刻只有一個子堆對用戶是可見的.可以進行讀寫操作。存儲于局部通用寄存器的數據不會影響相鄰子堆的操作,而存儲于窗口寄存器的數據可以被相鄰子堆直接使用。過程調用操作利用了局部通用寄存器的局部性和窗口寄存器的共用性的特點.將過程調用中的相關數據存人局部通用寄存器,避免了數據相關;將傳遞參數寫入窗口寄存器,可以供被調過程直接使用,避免了寄存器之間的數據轉移。因此,重疊寄存器窗口技術可以解決過程調用中的現場保護和參數傳遞的問題。

    TR600芯片體系結構采用可重組思想設計了二組總線寄存器堆,每組寄存器堆有19個寄存器單元,每個單元由2組16位寄存器拼接而成,因此,單指令周期可以存取64位、32位、16位規格的數據。為了實現語音算法中多重嵌套過程調用,每組寄存器堆分為三層寄存器子堆.如圖1所示。每層最多可以使用9個寄存器單元,調用操作可以在寄存器子堆內部,也可以在相鄰子堆之間完成?偩寄存器堆控制信號由過程調用指令和寄存器讀寫控制指令經指令譯碼器譯碼產生。過程調用指令控制層計數器,產生層譯碼器使能,控制寄存器子堆換層操作。同時,控制輸出選通器選擇寄存器子堆輸出;寄存器讀指令產生當前子堆內寄存器單元輸出選擇信號,寄存器寫指令控制產生數據通路選擇和寄存器寫使能信號。



    TR600芯片體系結構采取2種過程調用方式:同層調用和換層調用。當一層寄存器子堆滿足主調過程和被調過程的寄存器資源使用時,采用同層調用;當換層調用時,被調過程位于主調過程的下一層寄存器子堆,主調過程和被調過程分別控制所在層的寄存器單元,主調過程將傳遞參數寫入窗口寄存器.被調過程則從窗口寄存器取入參數,以當前寄存器子堆為存儲空間進行運算,并將需要傳遞的運算結果寫入窗口寄存器.返回主調過程。如果被調過程內還含有調用.可以根據寄存器使用情況確定是同層調用還是換層調用,從而決定傳遞參數寫入局部通用寄存器或是窗口寄存器。多重過程調用同樣遵循這個過程。TR600體系中采用的語音編解碼算法的過程調用最多涉及到17個子函數過程和5重嵌套調用,而重疊寄存器窗口技術都可以很好地解決這些問題。

    2 存取算于對存儲體交叉訪問技術

    存取算子對存儲體交叉訪問機制解決了存取算子訪問局部性與過程調用中參數傳遞的全局性之間的矛盾。由于在指令體系設計時,將Is存取算子設計成與SDRAM存儲體一一對應的關系,這就使得存取算子只能固定訪問單塊存儲體。而對于過程調用,主調過程實參傳遞可來自于任意存儲體,被調過程的形參卻只能指向某一個存儲體.這就要求主調過程要將實參轉移到形參指定的存儲體內,才能正確執行調用;而在數據轉移過程中,可能引起數據相關,并且浪費數據轉移時間。本設計的解決方法是對LS存取算子做變換,使其能夠訪問所有存儲體,避免數據轉移,并稱其為存取算子對存儲體的交叉訪問。

    為了在過程調用時使存取算子能夠訪問任意存儲體,使被調過程形參可以指向任意存儲體,采用在體系中添加段寄存器配置,標識存取算子訪問存儲體的信息的方法。因此用戶可以通過設置段寄存器的值來動態改變璐存取算子對SDRAM存儲體的訪問關系。在初始化狀態,段寄存器中的值表示LS存取算子與存儲體訪問是一一對應的,如圖2所示。在存儲體交叉訪問時,過程調用指令通過重置段寄存器值,改變存取算子與存儲體的對應關系,并在執行調用過程中保持不變,如圖3所示。段寄存器值由過程調用指令來動態配置,用戶在使用過程中調用指令時,要參照指令格式的要求,在具體指令域裝載段寄存器的配置信息。段寄存器值經過譯碼器譯碼產生存儲體控制信息,再經過邏輯運算產生每個存儲體的控制信號,包括:輸入輸出數據通路選擇信號以及存儲體的使能、讀寫、地址控制信號。  

    在TR600芯片體系結構中包含5塊獨立編址的SDRAM存儲體,指令體系提供5個LS存取控制算子,分別為LSl控制讀寫RAMl、LS2控制讀寫RAM2……LS5控制讀寫RAM5。相應地,體系中提供5個3位段寄存器,標識過程調用時存取算子與存儲體的對應關系?紤]到語音算法存在多重嵌套過程調用,每次過程調用時都可能發生存儲體交叉訪問的情況,因此設計了6層段寄存器陣列分別標·代表“或”操作識每次調用時存取算子與Rij表示第i層第j個段寄存器存儲體的對應關系,如圖4所示。執行過程調用指令時,段寄存器被重新配置,同時將過程調用的嵌套次數保存在層計數器。通過對層計數器輸出的譯碼,產生段寄存器的層控制信息,包括段寄存器使能和段寄存器輸出選擇控制。通過段寄存器陣列的變換,實現每個存取算子對存儲體訪問的控制轉換.再經過段譯碼器譯碼及邏輯運算產生存儲體控制信號。例如,存儲體RAMI使能信號(RAM1_E)可由5個段譯碼器譯碼產生的RAMl控制信號做邏輯“或”運算產生,變換邏輯運算即可以產生存儲體的讀寫信號、地址控制信號和輸入輸出選擇控制信號(本文不做詳細論述)。


    3 技術特點

    (1)TR600芯片體系結構中重疊寄存器窗口技術采用可重組思想設計寄存器堆結構,提高了存儲靈活性,適應了語音算法在過程調用中數據規格多樣性的特點;多層窗口寄存器結構和寄存器堆局部可見的特點,解決了過程調用時的現場保護和參數傳遞問題,不需要設計現場保護參數的專用部件,減少了系統的時空開銷。


    (2)存儲體交叉訪問機制采用段寄存器標識存取算子與存儲體的對應關系,由過程調用指令配置段寄存器.避免了因為參數傳遞而進行的存儲體之間的數據轉移;同時提供了清晰易讀、編程靈活的指令界面,屏蔽了邏輯設計的復雜性,方便了用戶指令編程。但過程調用功能的硬件實現與應用環境及體系結構是密不可分的,設計者應依據具體情況調整實現方案,如窗口寄存器堆的分層數目及段寄存器的層數,要根據具體算法中過程調用的最大嵌套層數而定,存取算子對存儲體的交叉訪問要依據體系結構提供的指令界面而定等,因為這些設計都具有靈活性和多樣性。

    本文論述的過程調用功能硬件實現方法也可以為其他應用設計借鑒,例如.在網絡體系結構中,對多種通信協議的硬件實現以及RPC遠程過程調用的實現都具有一定的參考價值。
    本文地址:http://www.portaltwn.com/thread-27404-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區
    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷