基于TR600芯片的過程調(diào)用設(shè)計與硬件實現(xiàn)
來源:電子技術(shù)應(yīng)用 作者:北京科技大學(xué) 王沁 趙鳳海 江山剛 摘 要:介紹了tr600語音編解碼芯片中過程調(diào)用的設(shè)計及實現(xiàn)方法,并與堆棧寄存器結(jié)構(gòu)實現(xiàn)方式做了簡要的比較.重點闡述了重疊寄存器窗口技術(shù)和存取算子對存儲體交叉訪問技術(shù)的原理、技術(shù)特點及其在tr600芯片體系中的具體實現(xiàn)。關(guān)鍵詞:可重構(gòu)體系過程調(diào)用重疊寄存器窗口交叉訪問 隨著大規(guī)模集成電路的不斷發(fā)展,軟硬件界面的劃分也發(fā)生了變化,vksi設(shè)計方法的改進(jìn)、ip技術(shù)的標(biāo)準(zhǔn)化以及系統(tǒng)在片(soc)設(shè)計的日漸成熟,為軟件功能邏輯硬件化實現(xiàn)提供了技術(shù)條件和實現(xiàn)手段。作為軟件程序設(shè)計的重要部分,過程調(diào)用功能使用頻度相當(dāng)高,尤其在結(jié)構(gòu)化設(shè)計中起到重要作用,因此,其硬件實現(xiàn)方法的優(yōu)劣對于軟件能否很好地移植到邏輯電路中起到了非常重要的作用。tr600語音編解碼芯片設(shè)計是基于melp、selp2(sine excitation linear prediction)等多種語音算法,采用可重構(gòu)體系結(jié)構(gòu)…和變長指令技術(shù),實現(xiàn)了多種語音算法可在片配置的soc設(shè)計。這款語音芯片結(jié)合了邏輯電路的快速性和用戶指令編程靈活性的特點,通過分析多種語音算法,并提取資源共集,建立了資源、運算、網(wǎng)絡(luò)可重構(gòu)的邏輯電路,同時提取資源的可控節(jié)點,形成用戶指令界面,以指令流形式控制邏輯電路,實現(xiàn)算法級應(yīng)用功能。過程調(diào)用功能就是以指令形式提供給使用者,并通過指令譯碼器控制邏輯電路動作,實現(xiàn)具體功能。因此,過程調(diào)用功能的硬件實現(xiàn)效率和靈活度直接影響芯片整體的速度、規(guī)模以及用戶指令編程的復(fù)雜度。過程調(diào)用模型可簡單描述為主調(diào)過程將被調(diào)過程置于某一位置,然后把控制權(quán)交給被調(diào)過程,執(zhí)行完畢,再取回控制權(quán),并返回運行結(jié)果,主調(diào)過程繼續(xù)執(zhí)行。因此過程調(diào)用需要2個步驟:調(diào)用過程和返回過程。過程調(diào)用需要處理的信息有:程序計數(shù)器(pc)值的保存與恢復(fù)、現(xiàn)場保護(hù)和參數(shù)傳遞。過程調(diào)用是一種典型的后入先出堆棧寄存器結(jié)構(gòu),這種實現(xiàn)方式雖已相當(dāng)普遍,但也存在不足:(1)堆棧寄存器使用效率低,存儲時間和空間浪費嚴(yán)重。因為參數(shù)傳遞的個數(shù)和規(guī)格因調(diào)用過程的不同會有所不同,而主調(diào)過程需要對所有可能被破壞的數(shù)據(jù)堆棧進(jìn)行保護(hù),而堆棧的寬度和深度會因滿足過程調(diào)用最壞情況而設(shè)計得最大,而且嵌套調(diào)用會增加堆棧寄存器的開銷。(2)堆棧寄存器結(jié)構(gòu)無法解決調(diào)用過程存取算子對存儲體交叉訪問的問題。為了給用戶指令編程提供一個清晰的指令界面,在指令體系設(shè)計時,將ls存取算子設(shè)計成與sdram存儲體一一對應(yīng)的關(guān)系。單塊存儲體采用獨立編址。而對于過程調(diào)用,主調(diào)過程傳遞實參可來源于任意存儲體,被調(diào)過程的ls存取算子只能指向某一個存儲體,這就產(chǎn)生了過程調(diào)用中參數(shù)傳遞的全局性與存取算子訪問局部性之間的矛盾。為了解決堆棧寄存器結(jié)構(gòu)實現(xiàn)方式的不足,tr600語音編解碼芯片采用了重疊寄存器窗口技術(shù)和存取算子對存儲體的交叉訪問技術(shù)來實現(xiàn)過程調(diào)用功能。 1 重疊寄存器窗口技術(shù)重疊寄存器窗口技術(shù)是一種寄存器堆設(shè)計方法,它將寄存器堆分成若干個寄存器子堆,相鄰寄存器子堆有重疊部分并共同可見,作為子堆之間信息交互的窗口,稱為窗口寄存器。寄存器子堆與其他子堆不重疊的部分只有自身可見,獨立于其他子堆,稱為局部通用寄存器。在外部控制電路作用下,同一時刻只有一個子堆對用戶是可見的.可以進(jìn)行讀寫操作。存儲于局部通用寄存器的數(shù)據(jù)不會影響相鄰子堆的操作,而存儲于窗口寄存器的數(shù)據(jù)可以被相鄰子堆直接使用。過程調(diào)用操作利用了局部通用寄存器的局部性和窗口寄存器的共用性的特點.將過程調(diào)用中的相關(guān)數(shù)據(jù)存人局部通用寄存器,避免了數(shù)據(jù)相關(guān);將傳遞參數(shù)寫入窗口寄存器,可以供被調(diào)過程直接使用,避免了寄存器之間的數(shù)據(jù)轉(zhuǎn)移。因此,重疊寄存器窗口技術(shù)可以解決過程調(diào)用中的現(xiàn)場保護(hù)和參數(shù)傳遞的問題。tr600芯片體系結(jié)構(gòu)采用可重組思想設(shè)計了二組總線寄存器堆,每組寄存器堆有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)用指令