專利名稱:程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬數(shù)字信號(hào)處理器與一般微處理器結(jié)構(gòu),特別是指一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器。
一般數(shù)字信號(hào)處理器(DSP)的程序儲(chǔ)存器管理與數(shù)據(jù)處理全部集成到一個(gè)芯片中形成中央處理單元(CPU)。這樣的結(jié)構(gòu)存在如下缺點(diǎn)高性能DSP的程序只讀儲(chǔ)存器(ROM)一般比較大,如采用系統(tǒng)集成(SOC)方案將ROM、CPU和數(shù)據(jù)儲(chǔ)存器(RAM)全部集成到一個(gè)芯片中,則存在如下缺點(diǎn)(1)芯片面積過大,生產(chǎn)中成品率嚴(yán)重降低。
(2)由于目前程序儲(chǔ)存器一般采用閃存只讀儲(chǔ)存器FLASH ROM結(jié)構(gòu),在生產(chǎn)工藝上與普通CMOS工藝有所不同,給芯片的生產(chǎn)帶來困難,使生產(chǎn)成本增加。
如采用ROM與CPU分離的方案,則(1)由于為了適用于廣泛的需要,CPU需要具有很大的程序存儲(chǔ)器的尋址能力,因此CPU需要有很多地址信號(hào)線,這樣,一方面在尋址時(shí)會(huì)耗費(fèi)很大的能源,另一方面由于芯片上引線會(huì)占用很大的芯片面積,使芯片成本增加。
(2)由于CPU尋址時(shí),ROM完全是被動(dòng)的響應(yīng)CPU的讀操作,這使CPU的尋址時(shí)間增加,影響CPU的工作速度。
本發(fā)明的目的在于提供一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,克服了目前DSP的上述缺點(diǎn),其具有成品率高和成本低的優(yōu)點(diǎn)。
本發(fā)明的另一目的在于提供一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其具有速度快的優(yōu)點(diǎn)。
本發(fā)明一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其特征在于其中至少包含有兩個(gè)芯片單元,一個(gè)程序管理單元,另一個(gè)數(shù)據(jù)處理單元;與程序?qū)ぶ酚嘘P(guān)的操作由程序管理單元完成,數(shù)據(jù)處理單元不處理與程序?qū)ぶ分苯佑嘘P(guān)的操作;兩個(gè)單元之間通過一條程序總線和一些握手信號(hào)相連接,在大部分情況下,系統(tǒng)處理的指令是程序的管理芯片通過程序總線單向地送入數(shù)據(jù)處理芯片。
其中程序管理單元包括一程序只讀存儲(chǔ)器,該程序只讀存儲(chǔ)器通過程序緩存與程序總線相連接,并連接到指令預(yù)處理單元10,該指令預(yù)處理、中斷控制信號(hào)經(jīng)過運(yùn)算返回到程序只讀存儲(chǔ)器。
其中指令預(yù)處理單元包括指令預(yù)處理器,用于對(duì)程序只讀存儲(chǔ)器的信號(hào)進(jìn)行預(yù)處理;選擇器和中斷管理器,該中斷管理器用于中斷控制。
其中數(shù)據(jù)處理單元包括程序緩存器,該程序緩存器與程序總線相連接,并經(jīng)寄存器測(cè)試與數(shù)據(jù)處理譯碼器相連接,并經(jīng)運(yùn)算單元與數(shù)據(jù)總線相連接,該數(shù)據(jù)總線分別接至輸入輸出接口和數(shù)據(jù)緩存器及數(shù)據(jù)存儲(chǔ)器。
為進(jìn)一步說明本發(fā)明的結(jié)構(gòu)和所能達(dá)成的功效,以下結(jié)合附圖對(duì)本發(fā)明作一詳細(xì)的描述,其中
圖1是本發(fā)明的結(jié)構(gòu)示意圖。
請(qǐng)參閱圖1所示,本發(fā)明一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其中至少包含有兩個(gè)芯片單元,一個(gè)程序管理單元(PMU),另一個(gè)數(shù)據(jù)處理單元(DPU);與程序?qū)ぶ酚嘘P(guān)的操作由程序管理單元完成,數(shù)據(jù)處理單元不處理與程序?qū)ぶ分苯佑嘘P(guān)的操作;兩個(gè)單元之間通過一條程序總線和一些握手信號(hào)相連接,在大部分情況下,系統(tǒng)處理的指令是程序的管理芯片通過程序總線單向地送入數(shù)據(jù)處理芯片。
其中程序管理單元包括一程序只讀存儲(chǔ)器,該程序只讀存儲(chǔ)器通過程序緩存與程序總線相連接,并連接到指令預(yù)處理單元10,該指令預(yù)處理、中斷控制信號(hào)經(jīng)過運(yùn)算返回到程序只讀存儲(chǔ)器。
其中指令預(yù)處理單元10包括指令預(yù)處理器,用于對(duì)程序只讀存儲(chǔ)器的信號(hào)進(jìn)行預(yù)處理;選擇器和中斷管理器,該中斷管理器用于中斷控制。
其中數(shù)據(jù)處理單元包括程序緩存器,該程序緩存器與程序總線相連接,并經(jīng)寄存器測(cè)試與數(shù)據(jù)處理譯碼器相連接,并經(jīng)運(yùn)算單元20與數(shù)據(jù)總線相連接,該數(shù)據(jù)總線分別接至輸入輸出接口和數(shù)據(jù)緩存器及數(shù)據(jù)存儲(chǔ)器。
PMU包括以下幾部分程序存儲(chǔ)器是一個(gè)只讀存儲(chǔ)器。它存儲(chǔ)系統(tǒng)的程序和參數(shù)。
程序緩存器一個(gè)先進(jìn)先出寄存器(FIFO)。
程序計(jì)數(shù)器(PC)是一個(gè)可預(yù)置加計(jì)數(shù)器,它的寬度(如24位)決定了系統(tǒng)的尋址能力(16M)。在系統(tǒng)啟動(dòng)復(fù)位時(shí),PC的被清零。PC的預(yù)置數(shù)據(jù)來自于a.程序存儲(chǔ)器,b.PC Stack或c.中斷向量存儲(chǔ)器。PC的輸出到程序存儲(chǔ)器地址多路選擇器。PC的功能是產(chǎn)生被讀出(從而被PMU或DPU處理)程序的地址序列。
程序計(jì)數(shù)器堆棧(PC Stack)是由一個(gè)加法器一個(gè)和后進(jìn)先出(LIFO)寄存器構(gòu)成,它們的寬度與PC相同。加法器只進(jìn)行加1運(yùn)算,它的輸入連接到PC的輸出,它的輸出連接到LIFO的輸入而LIFO的輸出連接到PC的預(yù)置輸入b。PC Stack的用途是在發(fā)生子程序調(diào)用或是系統(tǒng)響應(yīng)中斷時(shí),將PC+1(下一條指令的地址)保存在PC Stack;子程序返回或中斷服務(wù)程序結(jié)束時(shí),將保存在PC Stack的地址裝入PC。
數(shù)據(jù)表指針(DTP)是一個(gè)可預(yù)置加計(jì)數(shù)器,它的寬度等于或小于PC的寬度。它的預(yù)置輸入來自于a.程序存儲(chǔ)器b.DTP Stack或c.由DPU返回的參數(shù),它的輸出到程序存儲(chǔ)器地址多路選擇器。當(dāng)DTP的寬度小于PC的寬度時(shí),DTP連接到存儲(chǔ)器地址多路選擇器的低段,其高段補(bǔ)為一個(gè)常數(shù),此時(shí)數(shù)據(jù)表被該常數(shù)限定在程序存儲(chǔ)器的一個(gè)固定的區(qū)域。DTP是專門為查找數(shù)據(jù)表而設(shè)計(jì),它由專門的指令進(jìn)行賦值;在數(shù)據(jù)表讀取時(shí),通過程序存儲(chǔ)器地址多路選擇器將DTP送給存儲(chǔ)器的地址;數(shù)據(jù)讀出后,DTP自動(dòng)加1。
數(shù)據(jù)表指針堆棧(DTP Stack)是一個(gè)寬度與DTP相同的后進(jìn)先出(LIFO)寄存器。系統(tǒng)響應(yīng)中斷時(shí)將DTP保存在DTP Stack;中斷服務(wù)程序結(jié)束時(shí),將從DTP Stack中恢復(fù)DTP。
中斷管理單元(IMU)中包括中斷查詢邏輯、中斷響應(yīng)邏輯、中斷響應(yīng)隊(duì)列、中斷優(yōu)先級(jí)別管理器和中斷向量表。中斷優(yōu)先級(jí)別管理器中的個(gè)中斷的優(yōu)先級(jí)別和中斷向量表的中斷向量可以通過指令設(shè)定。當(dāng)中斷查詢邏輯查詢到中斷申請(qǐng)時(shí),中斷優(yōu)先級(jí)別管理器根據(jù)中斷響應(yīng)隊(duì)列中目前正在響應(yīng)的中斷級(jí)別和該中斷申請(qǐng)的級(jí)別判斷是否響應(yīng)該中斷申請(qǐng)。中斷響應(yīng)后,中斷響應(yīng)邏輯發(fā)出中斷響應(yīng)信號(hào),中斷向量表將該中斷的中斷向量送給PC(同時(shí)PC和DTP入堆棧),中斷響應(yīng)隊(duì)列建立0該中斷標(biāo)識(shí);系統(tǒng)開始進(jìn)入中斷服務(wù)程序。當(dāng)從控制電路中接受到中斷響應(yīng)完畢信號(hào)時(shí),清除中斷響應(yīng)隊(duì)列中該中斷標(biāo)識(shí)。
程序存儲(chǔ)器地址多路選擇器選擇程序存儲(chǔ)器地址輸入。在數(shù)據(jù)表讀取指令的執(zhí)行(讀數(shù)據(jù))周期程序存儲(chǔ)器地址輸入為DTP,其他情況下為PC。
指令預(yù)譯碼器(Pre-Decoder)的輸入為程序存儲(chǔ)器輸出的代碼段。它僅對(duì)a.直接程序分支、b.子程序調(diào)用、c子程序返回、d.DTP的直接賦值、e.DPU內(nèi)部寄存器到DTPD的賦值、f.數(shù)據(jù)表讀取、g.中斷管理管理參數(shù)設(shè)定h.中斷返回和i.條件程序分支等類指令進(jìn)行譯碼。譯碼的結(jié)果送給控制電路和條件分支預(yù)測(cè)電路。對(duì)于數(shù)據(jù)表讀指令之后的數(shù)據(jù)表讀周期,指令預(yù)譯碼器不予譯碼。
條件分支與DTP間接賦值處理電路(Conditional Branch and DTPWrite Back Processing)對(duì)指令預(yù)譯碼器的d和g類指令的譯碼結(jié)果進(jìn)行檢測(cè);當(dāng)檢測(cè)到有e和i類指令時(shí),向控制電路發(fā)出e指令測(cè)試等待或i指令測(cè)試等待信號(hào);同時(shí)檢測(cè)程序緩存器中是否有與該類指令相關(guān)的DPU內(nèi)部寄存器修改的指令,如果沒有,則通過程序總線向DPU發(fā)送類指令相關(guān)的DPU內(nèi)部寄存器測(cè)試指令。當(dāng)DPU響應(yīng)該指令,并把測(cè)試的寄存器內(nèi)容返回后,解除指令測(cè)試等待信號(hào)。
控制電路(Contro1)根據(jù)指令預(yù)譯碼器的譯碼結(jié)果和條件分支與DTP間接賦值預(yù)測(cè)電路發(fā)出的e指令測(cè)試等待或i指令測(cè)試等待信號(hào)對(duì)指令控制PMU中的上述構(gòu)件全部或部分執(zhí)行。
1、如不是a-i類指令,將程序存儲(chǔ)器輸出送入程序緩存器,PC加1;2、a指令,程序存儲(chǔ)器輸出中表示跳轉(zhuǎn)到的程序地址段裝載到PC,;
3、b指令,PC壓入PC Stack,DTP壓入DTP Stack,程序存儲(chǔ)器輸出中表示子程序地址段裝載到PC,PC加1;4、c指令,從PC Stack彈出PC,從DTP Stack彈出DTP,PC加1;5、d指令,從程序存儲(chǔ)器輸出向DTP賦值,PC加1;6、e指令,PC加1(跳過);待e指令測(cè)試等待信號(hào)被清除,將測(cè)試的寄存器內(nèi)容裝載到DTP;7、f指令,如果e指令測(cè)試等待信號(hào)沒有被清除,則等待(PC不變)。如果e指令測(cè)試等待信號(hào)已被清除,將程序存儲(chǔ)器輸出該條指令中的表示數(shù)據(jù)表數(shù)據(jù)要寫入存儲(chǔ)器的代碼部分和表示立即數(shù)到DPU內(nèi)部寄存器的數(shù)據(jù)傳送指令的代碼寫入程序緩存器的高位,將DTP通過程序存儲(chǔ)器地址多路選擇器送給程序存儲(chǔ)器,待下一個(gè)時(shí)鐘讀出DTP指向的程序存儲(chǔ)器的內(nèi)容,并將其寫入程序緩存器的低位;PC加1;8、g指令,從程序存儲(chǔ)器輸出向中斷管理管理參數(shù)寄存器賦值。PC加1;9、h指令,從PC Stack彈出PC,從DTP Stack彈出DTP,PC加1,向IMU發(fā)出中斷響應(yīng)完畢信號(hào);10、i指令,等待從DPU返回的分支條件(i指令測(cè)試等待信號(hào)被清除)。如分支條件成立,則將程序存儲(chǔ)器輸出中表示跳轉(zhuǎn)到的程序地址段裝載到PC;如分支條件不成立,則PC加1。
DPU中集成了數(shù)據(jù)處理指令譯碼器,寄存器測(cè)試電路,數(shù)學(xué)計(jì)算與邏輯處理單元,數(shù)據(jù)存儲(chǔ)器,輸入/輸出接口等。其中除寄存器測(cè)試電路外,其他部分與普通HARVARD結(jié)構(gòu)的DSP基本相同,下面只對(duì)本發(fā)明結(jié)構(gòu)與普通HARVARD結(jié)構(gòu)的DSP不同的部分加以說明。
數(shù)據(jù)處理指令譯碼器完成除前面所述的PMU處理的a-i類指令外的一切指令的譯碼。在a-i類指令中,f類指令由PMU處理轉(zhuǎn)變?yōu)榱⒓磾?shù)到DPU內(nèi)部寄存器的賦值指令。
數(shù)學(xué)計(jì)算與邏輯處理單元中的某些寄存器(具體那些寄存器由指令系統(tǒng)而定)可以直接由寄存器測(cè)試電路直接讀取。
寄存器測(cè)試電路完成PMU的條件分支與DTP間接賦值處理電路發(fā)出的DPU內(nèi)部寄存器測(cè)試信號(hào)(簡(jiǎn)稱寄存器測(cè)試信號(hào))的響應(yīng)。寄存器測(cè)試電路檢測(cè)到寄存器測(cè)試信號(hào)后,檢測(cè)程序緩沖器中是否有修改被測(cè)試寄存器的指令,如沒有,則向PMU發(fā)出測(cè)試響應(yīng)信號(hào)。PMU應(yīng)答該信號(hào)后,將欲測(cè)試的寄存器內(nèi)容放到程序總線上,PMU的測(cè)試響應(yīng)信號(hào)無效后,讓出程序總線,完成寄存器測(cè)試。
本發(fā)明與現(xiàn)有技術(shù)相比具有成品率高和成本低以及速度快的優(yōu)點(diǎn)。
權(quán)利要求
1.一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其特征在于其中至少包含有兩個(gè)芯片單元,一個(gè)程序管理單元,另一個(gè)數(shù)據(jù)處理單元;與程序?qū)ぶ酚嘘P(guān)的操作由程序管理單元完成,數(shù)據(jù)處理單元不處理與程序?qū)ぶ分苯佑嘘P(guān)的操作;兩個(gè)單元之間通過一條程序總線和一些握手信號(hào)相連接,在大部分情況下,系統(tǒng)處理的指令是程序的管理芯片通過程序總線單向地送入數(shù)據(jù)處理芯片。
2.根據(jù)權(quán)利要求1所述的一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其特征在于其中程序管理單元包括一程序只讀存儲(chǔ)器,該程序只讀存儲(chǔ)器通過程序緩存與程序總線相連接,并連接到指令預(yù)處理單元10,該指令預(yù)處理、中斷控制信號(hào)經(jīng)過運(yùn)算返回到程序只讀存儲(chǔ)器。
3.根據(jù)權(quán)利要求2所述的一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其特征在于其中指令預(yù)處理單元10包括指令預(yù)處理器,用于對(duì)程序只讀存儲(chǔ)器的信號(hào)進(jìn)行預(yù)處理;選擇器和中斷管理器,該中斷管理器用于中斷控制。
4.根據(jù)權(quán)利要求1所述的一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其特征在于其中數(shù)據(jù)處理單元包括程序緩存器,該程序緩存器與程序總線相連接,并經(jīng)寄存器測(cè)試與數(shù)據(jù)處理譯碼器相連接,并經(jīng)運(yùn)算單元20與數(shù)據(jù)總線相連接,該數(shù)據(jù)總線分別接至輸入輸出接口和數(shù)據(jù)緩存器及數(shù)據(jù)存儲(chǔ)器。
全文摘要
一種程序管理/數(shù)據(jù)處理分離式體系結(jié)構(gòu)的數(shù)字信號(hào)處理器,其中至少包含有兩個(gè)芯片單元,一個(gè)程序管理單元,另一個(gè)數(shù)據(jù)處理單元;與程序?qū)ぶ酚嘘P(guān)的操作由程序管理單元完成,數(shù)據(jù)處理單元不處理與程序?qū)ぶ分苯佑嘘P(guān)的操作;兩個(gè)單元之間通過一條程序總線和一些握手信號(hào)相連接,在大部分情況下,系統(tǒng)處理的指令是程序的管理芯片通過程序總線單向地送入數(shù)據(jù)處理芯片。
文檔編號(hào)G06F13/38GK1354426SQ0013273
公開日2002年6月19日 申請(qǐng)日期2000年11月16日 優(yōu)先權(quán)日2000年11月16日
發(fā)明者呂鐵良, 田澤, 仇玉林 申請(qǐng)人:中國(guó)科學(xué)院微電子中心