專利名稱:帶有寄存器預(yù)讀寫優(yōu)化硬件棧的數(shù)字信號處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種數(shù)字信號處理器,特別是一種帶有寄存器預(yù)讀寫優(yōu)化硬件棧的數(shù)字信號處理器,對數(shù)字信號處理器中的硬件??刂茊卧慕Y(jié)構(gòu)進行了創(chuàng)新,屬于數(shù)字信號處理技術(shù)領(lǐng)域。
背景技術(shù):
數(shù)字信號處理器是專門用于數(shù)字信號處理的芯片,數(shù)字信號處理程序中往往含有大量的循環(huán)執(zhí)行的子程序,為提高循環(huán)的性能,許多數(shù)字信號處理器都提供專用的硬件循環(huán)指令,以此來提高數(shù)字信號處理器的運算效率。然而,這些硬件循環(huán)指令往往需要附加的系統(tǒng)硬件棧的支持。在美國摩托羅拉(Motorola)公司的DSP56300 Family Manual-24-bit Digital Signal Processor Revision3.0中,公開了系統(tǒng)硬件棧的一般實現(xiàn)形式。
在處理器內(nèi)部,通常用嵌入式靜態(tài)存儲器或高速寄存器組來實現(xiàn)硬件棧。然而,當(dāng)處理器內(nèi)核以核心頻率工作時,硬件棧的工作頻率無法達到處理器的頻率,同時處理器需要附加的等待周期才能夠完成一次對硬件棧的訪問,影響了硬件循環(huán)指令的性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種帶有寄存器預(yù)讀寫優(yōu)化硬件棧的數(shù)字信號處理器,把硬件棧的訪問開銷減少到最低,提高數(shù)字信號處理器的執(zhí)行效率。
本發(fā)明涉及的數(shù)字信號處理器的核心部分包括地址產(chǎn)生單元、指令譯碼單元、程序控制單元、算術(shù)運算單元。程序控制單元通過指令總線向指令存儲器給出指令地址,并從指令存儲器中接收指令將它送到指令譯碼單元。指令譯碼單元將譯碼以后的數(shù)據(jù)發(fā)送到兩路并行的數(shù)據(jù)通道,即算術(shù)運算單元和地址產(chǎn)生單元。算術(shù)運算單元將其狀態(tài)信息傳給程序控制單元,并將運算結(jié)果送給數(shù)據(jù)存儲器或者從數(shù)據(jù)存儲器接收數(shù)據(jù)。地址產(chǎn)生單元將地址值送給數(shù)據(jù)存儲器,指定相應(yīng)的存儲和讀寫的位置。本發(fā)明在程序控制單元內(nèi)部特別設(shè)計了硬件??刂茊卧?,主要包括兩組分開編址的硬件棧,兩組影子寄存器,棧讀寫控制單元和預(yù)讀預(yù)寫控制單元。兩組奇偶分開編址的硬件棧分別通過兩個選擇器與預(yù)讀預(yù)寫控制單元相連,預(yù)讀預(yù)寫控制單元通過譯碼器與兩組影子寄存器相連,兩組影子寄存器也分別通過兩個選擇器與棧讀寫控制單元相連,最后棧讀寫控制單元與數(shù)據(jù)總線以及預(yù)讀預(yù)寫控制單元相連。
本發(fā)明以如下方式工作。由于把硬件棧奇偶分開編組,當(dāng)棧已滿時,如果棧頂落在偶數(shù)區(qū),那么棧底一定落在奇數(shù)區(qū),反之亦然。對硬件棧分區(qū)的結(jié)果是,能夠分別同時訪問不同的分區(qū),棧頂和棧底始終在不同的分區(qū),這樣訪問棧頂和棧底就不會互相沖突。當(dāng)數(shù)字信號處理器內(nèi)核以核心工作頻率寫硬件棧時候,棧讀寫控制單元并不發(fā)出處理器等待信號,而是以同樣的工作頻率將數(shù)據(jù)寫入的影子寄存器中,同時,預(yù)讀預(yù)寫控制單元將根據(jù)寫入數(shù)據(jù)的硬件棧地址用處理器核心的工作頻率訪問系統(tǒng)的硬件棧;當(dāng)數(shù)字信號處理器以核心的工作頻率讀硬件棧時,棧讀寫控制單元并不發(fā)出處理器等待信號,而是以相同的工作頻率從預(yù)讀影子寄存器中選擇正確的數(shù)據(jù)返回給處理器核心,然后,預(yù)讀預(yù)寫控制單元將根據(jù)寫入數(shù)據(jù)的硬件棧地址以處理器核心的工作頻率訪問系統(tǒng)的硬件棧,將硬件棧的數(shù)據(jù)寫入影子寄存器保證數(shù)據(jù)的同步性。
本發(fā)明利用兩組分開編址的硬件棧,兩組影子寄存器以及相應(yīng)的控制單元,實現(xiàn)處理器內(nèi)核對硬件棧單周期讀寫訪問,使得數(shù)字信號處理器在任何情況下都能夠以核心工作頻率訪問硬件棧,提高了數(shù)字信號處理器的執(zhí)行效率。
圖1為本發(fā)明數(shù)字信號處理器的整體結(jié)構(gòu)框圖。
如圖1所示,本發(fā)明的數(shù)字信號處理器由數(shù)字信號處理器內(nèi)核和指令存儲器,數(shù)據(jù)存儲器連接而成,其中內(nèi)核包括程序控制單元,指令譯碼單元,算術(shù)運算單元和地址產(chǎn)生單元。硬件??刂茊卧挥诔绦蚩刂茊卧獌?nèi)。
圖2為本發(fā)明硬件??刂茊卧慕Y(jié)構(gòu)框圖。
如圖2所示,硬件??刂茊卧饕Wx寫控制單元,預(yù)讀預(yù)寫控制單元,分組硬件棧,影子寄存器,選擇器,譯碼器以及相應(yīng)的讀寫控制信號和數(shù)據(jù)總線接口。
具體實施例方式
以下結(jié)合附圖對本發(fā)明的技術(shù)方案作進一步描述。
圖1中描述了本發(fā)明的數(shù)字信號處理器中各個組成模塊之間的關(guān)系。如圖1所示,本發(fā)明涉及的數(shù)字信號處理器的核心部分包括地址產(chǎn)生單元、指令譯碼單元、程序控制單元、算術(shù)運算單元。數(shù)字信號處理器內(nèi)核的指令譯碼單元與算術(shù)運算單元及地址產(chǎn)生單元相連,并雙向連接到程序控制單元;程序控制單元連接到指令存儲器,通過指令總線向指令存儲器給出指令地址,并從指令存儲器中接收指令將它送到指令譯碼單元。指令譯碼單元將譯碼以后的數(shù)據(jù)發(fā)送到兩路并行的數(shù)據(jù)通道,即算術(shù)運算單元和地址產(chǎn)生單元。算術(shù)運算單元和程序控制單元單向相連,并雙向連接到數(shù)據(jù)存儲器,算術(shù)運算單元將其狀態(tài)信息傳給程序控制單元,并將運算結(jié)果送給數(shù)據(jù)存儲器或者從數(shù)據(jù)存儲器接收數(shù)據(jù)。地址產(chǎn)生單元通過地址總線連接到數(shù)據(jù)存儲器,將地址值送給數(shù)據(jù)存儲器,指定相應(yīng)的存儲和讀寫的位置,同時與算術(shù)運算單元雙向連接,能與算術(shù)運算單元進行雙向數(shù)據(jù)交換。本發(fā)明特別設(shè)計的硬件??刂茊卧挥诔绦蚩刂茊卧獌?nèi)。
硬件??刂茊卧慕Y(jié)構(gòu)如圖2所示,主要包括以下幾大部分棧讀寫控制單元,處理器內(nèi)核通過該單元讀出或?qū)懭霐?shù)據(jù);預(yù)讀預(yù)寫控制單元,它是影子寄存器和分組硬件棧之間的預(yù)讀預(yù)寫接口;分組硬件棧,它按棧指針對應(yīng)的地址進行奇偶分開編址;選擇器;譯碼器;寫寄存器的控制信號和數(shù)據(jù)總線接口;硬件棧到預(yù)讀預(yù)寫控制單元的選擇器;預(yù)讀預(yù)寫控制單元到硬件棧的讀寫控制信號和數(shù)據(jù)總線;棧讀寫控制單元到預(yù)讀預(yù)寫控制單元的控制信號;影子寄存器組。
處理器核心部分通過棧讀寫控制單元讀出或?qū)懭霐?shù)據(jù),棧讀寫控制單元的兩個輸出控制信號分別與預(yù)讀預(yù)寫控制單元和譯碼器相連;預(yù)讀預(yù)寫控制單元連到分組硬件棧,它按棧指針對應(yīng)的地址進行奇偶分開編址;硬件棧按奇偶地址分成兩個區(qū),奇地址區(qū)和偶地址區(qū)的輸出又分別連到兩個選擇器;影子寄存器的輸出也分別連到另外兩個選擇器,該兩個選擇器的選擇信號由棧讀寫控制單元控制,并且是反向的。譯碼器的輸出分別接到影子寄存器組上作為某個影子寄存器的選擇信號。
本發(fā)明的工作細節(jié)分為兩部分。處理器內(nèi)核對硬件棧的讀操作棧讀寫控制單元向譯碼器發(fā)出讀硬件棧的地址數(shù)據(jù),譯碼器通過數(shù)據(jù)總線接口產(chǎn)生對應(yīng)的讀信號,兩組影子寄存器的數(shù)據(jù)經(jīng)過選擇器通過棧讀寫控制單元的選擇信號,產(chǎn)生被選中的數(shù)據(jù)輸出給處理器內(nèi)核。棧讀寫控制單元通過控制信號通知預(yù)讀預(yù)寫控制單元——“處理器內(nèi)核執(zhí)行了一次讀操作”,預(yù)讀預(yù)寫控制單元通過控制信號線向分組硬件棧發(fā)出預(yù)讀信號,兩組硬件棧的數(shù)據(jù)通過選擇器返回預(yù)讀預(yù)寫控制單元,該單元通過控制信號線向譯碼器發(fā)出寫影子寄存器信號,新的數(shù)據(jù)通過數(shù)據(jù)總線接口被寫入其中一組影子寄存器。處理器內(nèi)核對硬件棧的寫操作棧讀寫控制單元向譯碼器發(fā)出寫寄存器的地址和數(shù)據(jù),同時通過信號線通知預(yù)讀預(yù)寫控制單元處理器內(nèi)核在執(zhí)行一個寫操作。這時候,預(yù)讀預(yù)寫控制單元直接通過數(shù)據(jù)總線向分組硬件棧寫入數(shù)據(jù);此外譯碼器通過數(shù)據(jù)總線接口向影子寄存器寫入數(shù)據(jù),寄存器中的數(shù)據(jù)被更新。
權(quán)利要求
1.一種帶有寄存器預(yù)讀寫優(yōu)化硬件棧的數(shù)字信號處理器,包括處理器核心部分的地址產(chǎn)生單元、指令譯碼單元、程序控制單元、算術(shù)運算單元,其特征在于程序控制單元內(nèi)的硬件??刂茊卧▋山M分開編址的硬件棧,兩組影子寄存器,棧讀寫控制單元和預(yù)讀預(yù)寫控制單元,處理器核心部分通過棧讀寫控制單元讀出或?qū)懭霐?shù)據(jù),棧讀寫控制單元的兩個輸出控制信號分別與預(yù)讀預(yù)寫控制單元和譯碼器相連,預(yù)讀預(yù)寫控制單元分別連到硬件棧的奇地址區(qū)和偶地址區(qū),每個區(qū)的輸出又分別通過兩個選擇器與預(yù)讀預(yù)寫控制單元相連,預(yù)讀預(yù)寫控制單元通過譯碼器分別與兩組影子寄存器相連,兩組影子寄存器的輸出分別通過另外兩個選擇器與棧讀寫控制單元相連,該兩個選擇器的選擇信號由棧讀寫控制單元控制,并且是反向的。
全文摘要
一種帶有寄存器預(yù)讀寫優(yōu)化硬件棧的數(shù)字信號處理器,在程序控制單元內(nèi)部特別設(shè)計的硬件??刂茊卧▋山M分開編址的硬件棧,兩組影子寄存器,棧讀寫控制單元和預(yù)讀預(yù)寫控制單元。兩組奇偶分開編址的硬件棧分別通過兩個選擇器與預(yù)讀預(yù)寫控制單元相連,預(yù)讀預(yù)寫控制單元通過譯碼器與兩組影子寄存器相連,兩組影子寄存器也分別通過兩個選擇器與棧讀寫控制單元相連,最后棧讀寫控制單元與數(shù)據(jù)總線以及預(yù)讀預(yù)寫控制單元相連。本發(fā)明利用兩組分開編址的硬件棧,兩組影子寄存器以及相應(yīng)的控制單元,實現(xiàn)處理器內(nèi)核對硬件棧單周期讀寫訪問,使得數(shù)字信號處理器在任何情況下都能夠以核心工作頻率訪問硬件棧,提高了數(shù)字信號處理器的執(zhí)行效率。
文檔編號G06F9/30GK1556468SQ20041001573
公開日2004年12月22日 申請日期2004年1月9日 優(yōu)先權(quán)日2004年1月9日
發(fā)明者李宇飛, 陳健 申請人:上海漢芯半導(dǎo)體科技有限公司