基于TR600芯片的過程調(diào)用設計與硬件實現(xiàn)
隨著大規(guī)模集成電路的不斷發(fā)展,軟硬件界面的劃分也發(fā)生了變化,VKSI設計方法的改進、IP技術的標準化以及系統(tǒng)在片(SOC)設計的日漸成熟,為軟件功能邏輯硬件化實現(xiàn)提供了技術條件和實現(xiàn)手段。作為軟件程序設計的重要部分,過程調(diào)用功能使用頻度相當高,尤其在結構化設計中起到重要作用,因此,其硬件實現(xiàn)方法的優(yōu)劣對于軟件能否很好地移植到邏輯電路中起到了非常重要的作用。
本文引用地址:http://www.ex-cimer.com/article/173368.htmTR600語音編解碼芯片設計是基于MELP、SELP2(Sine Excitation Linear Prediction)等多種語音算法,采用可重構體系結構…和變長指令技術,實現(xiàn)了多種語音算法可在片配置的SOC設計。這款語音芯片結合了邏輯電路的快速性和用戶指令編程靈活性的特點,通過分析多種語音算法,并提取資源共集,建立了資源、運算、網(wǎng)絡可重構的邏輯電路,同時提取資源的可控節(jié)點,形成用戶指令界面,以指令流形式控制邏輯電路,實現(xiàn)算法級應用功能。過程調(diào)用功能就是以指令形式提供給使用者,并通過指令譯碼器控制邏輯電路動作,實現(xiàn)具體功能。因此,過程調(diào)用功能的硬件實現(xiàn)效率和靈活度直接影響芯片整體的速度、規(guī)模以及用戶指令編程的復雜度。
過程調(diào)用模型可簡單描述為主調(diào)過程將被調(diào)過程置于某一位置,然后把控制權交給被調(diào)過程,執(zhí)行完畢,再取回控制權,并返回運行結果,主調(diào)過程繼續(xù)執(zhí)行。因此過程調(diào)用需要2個步驟:調(diào)用過程和返回過程。過程調(diào)用需要處理的信息有:程序計數(shù)器(PC)值的保存與恢復、現(xiàn)場保護和參數(shù)傳遞。過程調(diào)用是一種典型的后入先出堆棧寄存器結構,這種實現(xiàn)方式雖已相當普遍,但也存在不足:(1)堆棧寄存器使用效率低,存儲時間和空間浪費嚴重。因為參數(shù)傳遞的個數(shù)和規(guī)格因調(diào)用過程的不同會有所不同,而主調(diào)過程需要對所有可能被破壞的數(shù)據(jù)堆棧進行保護,而堆棧的寬度和深度會因滿足過程調(diào)用最壞情況而設計得最大,而且嵌套調(diào)用會增加堆棧寄存器的開銷。(2)堆棧寄存器結構無法解決調(diào)用過程存取算子對存儲體交叉訪問的問題。為了給用戶指令編程提供一個清晰的指令界面,在指令體系設計時,將LS存取算子設計成與SDRAM存儲體一一對應的關系。單塊存儲體采用獨立編址。而對于過程調(diào)用,主調(diào)過程傳遞實參可來源于任意存儲體,被調(diào)過程的LS存取算子只能指向某一個存儲體,這就產(chǎn)生了過程調(diào)用中參數(shù)傳遞的全局性與存取算子訪問局部性之間的矛盾。
為了解決堆棧寄存器結構實現(xiàn)方式的不足,TR600語音編解碼芯片采用了重疊寄存器窗口技術和存取算子對存儲體的交叉訪問技術來實現(xiàn)過程調(diào)用功能。
1 重疊寄存器窗口技術
重疊寄存器窗口技術是一種寄存器堆設計方法,它將寄存器堆分成若干個寄存器子堆,相鄰寄存器子堆有重疊部分并共同可見,作為子堆之間信息交互的窗口,稱為窗口寄存器。寄存器子堆與其他子堆不重疊的部分只有自身可見,獨立于其他子堆,稱為局部通用寄存器。在外部控制電路作用下,同一時刻只有一個子堆對用戶是可見的.可以進行讀寫操作。存儲于局部通用寄存器的數(shù)據(jù)不會影響相鄰子堆的操作,而存儲于窗口寄存器的數(shù)據(jù)可以被相鄰子堆直接使用。過程調(diào)用操作利用了局部通用寄存器的局部性和窗口寄存器的共用性的特點.將過程調(diào)用中的相關數(shù)據(jù)存人局部通用寄存器,避免了數(shù)據(jù)相關;將傳遞參數(shù)寫入窗口寄存器,可以供被調(diào)過程直接使用,避免了寄存器之間的數(shù)據(jù)轉(zhuǎn)移。因此,重疊寄存器窗口技術可以解決過程調(diào)用中的現(xiàn)場保護和參數(shù)傳遞的問題。
TR600芯片體系結構采用可重組思想設計了二組總線寄存器堆,每組寄存器堆有19個寄存器單元,每個單元由2組16位寄存器拼接而成,因此,單指令周期可以存取64位、32位、16位規(guī)格的數(shù)據(jù)。為了實現(xiàn)語音算法中多重嵌套過程調(diào)用,每組寄存器堆分為三層寄存器子堆.如圖1所示。每層最多可以使用9個寄存器單元,調(diào)用操作可以在寄存器子堆內(nèi)部,也可以在相鄰子堆之間完成??偩€寄存器堆控制信號由過程調(diào)用指令和寄存器讀寫控制指令經(jīng)指令譯碼器譯碼產(chǎn)生。過程調(diào)用指令控制層計數(shù)器,產(chǎn)生層譯碼器使能,控制寄存器子堆換層操作。同時,控制輸出選通器選擇寄存器子堆輸出;寄存器讀指令產(chǎn)生當前子堆內(nèi)寄存器單元輸出選擇信號,寄存器寫指令控制產(chǎn)生數(shù)據(jù)通路選擇和寄存器寫使能信號。
評論