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