一種具有定時中斷功能的處理器裝置的制造方法
【專利摘要】本發明涉及一種具有定時中斷功能的處理器裝置,該處理器裝置包括內部層次、中間層次和頂層,內部層次為處理器內核,包括特殊目標寄存器、用以逐級處理指令的譯碼和執行流水線以及用以控制流水線運行的旁路模塊和流水線暫停模塊;中間層次包括處理器核以及分別與處理器核連接的外設接口和存儲器,所述的處理器核內還設有中斷模塊和定時器,所述的定時器分別與中斷模塊和特殊目標寄存器連接,所述的中斷模塊與處理器內核連接;頂層包括調試接口、總線和直接存儲訪問模塊,所述的調試接口與處理器核連接,所述的直接存儲訪問模塊分別與總線和存儲器連接,所述的總線與處理器核連接。與現有技術相比,本發明具有效率高、響應快等優點。
【專利說明】
一種具有定時中斷功能的處理器裝置
技術領域
[0001]本發明涉及處理器體系結構領域,尤其是涉及一種具有定時中斷功能的處理器裝置。
【背景技術】
[0002]數字信號處理器(DSP)是一種特殊結構的微處理器,是專門用來處理大規模數字信號的處理器。專用數字信號處理器的實時運行速度一般也比通用處理器快,其主要特色是強大的數字運算能力,因此主要被用于涉及到大規模數字信息計算的領域。數字信號處理器(DSP)已經成為數字化世界中日益重要的芯片。
[0003]隨著高新技術的快速發展,對數字信號處理器(DSP)的功能要求也越來越高。例如,對外部設備的相應等待可以通過執行相應程序反復對外部設備詢問實現,但此時處理器本身就無法執行其他程序。另一種解決方法是設置一個定時器,當定時器計數完畢后,通過中斷通知處理器對外部設備詢問,這樣在計數過程中,處理器就可以執行其他程序,從而提高處理器的效率。然而,所述定時器和中斷產生模塊通常在處理器之外,對定時器進行設置依然需要占用處理器的大量執行周期。
【發明內容】
[0004]本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種效率高、響應快的具有定時中斷功能的處理器裝置。
[0005]本發明的目的可以通過以下技術方案來實現:
[0006]—種具有定時中斷功能的處理器裝置,用以輔助數字信號處理器實現內部定時器的中斷,該處理器裝置設有三個層次,包括內部層次、中間層次和頂層,其中:
[0007]內部層次為處理器內核,包括特殊目標寄存器、用以逐級處理指令的譯碼和執行流水線以及用以控制流水線運行的旁路模塊和流水線暫停模塊;
[0008]中間層次包括處理器核以及分別與處理器核連接的外設接口和存儲器,所述的處理器核內還設有中斷模塊和定時器,所述的定時器分別與中斷模塊和特殊目標寄存器連接,所述的中斷模塊與處理器內核連接;
[0009]頂層包括調試接口、總線和直接存儲訪問模塊,所述的調試接口與處理器核連接,所述的直接存儲訪問模塊分別與總線和存儲器連接,所述的總線與處理器核連接。
[0010]所述的頂層還包括通過總線與處理器核連接的外部接口。
[0011 ]所述的中斷模塊和定時器與處理器核的時鐘頻率相同。
[0012]所述的處理器內核還包括異常處理模塊,用以處理流水線產生的異常情況、控制流水線跳轉到相應的異常處理執行子程序,并在異常處理完成后,使之前被執行的程序從中斷點繼續執行。
[0013]所述的流水線暫停模塊用以對流水線中的各流水級單獨控制,或使某一流水級暫停或者刷新該流水級對應的寄存器。
[0014]所述的特殊目標寄存器用以保存處理器核的狀態信息、控制信息和定時器的計時周期數。
[0015]與現有技術相比,本發明具有以下優點:
[0016]一、效率高:處理器核內部本身包含定時器模塊中斷模塊,這些模塊工作時的時鐘頻率與處理器本身相同,一旦中斷發生,可以更快地提交相應,比現有技術中外置的定時、中斷模塊效率更高。
[0017]二、響應快:定時器模塊和中斷模塊作為一個整體共同工作,即該中斷模塊只對所述定時器模塊送來的信號做出相應,與現有技術中能相應各種不同來源信號以產生中斷的中斷模塊相比,響應更快,效率更高。
【附圖說明】
[0018]圖1為本發明的結構示意圖。
[0019]圖2為定時器模塊的使用步驟。
[0020]其中,1、處理器內核,11、流水線,12、旁路模塊,13、流水線暫停模塊,14、特殊目標寄存器,15、異常處理模塊,2、中間層次,21、處理器核,211、中斷模塊,212、定時器,22、外設接口,23、存儲器,3、頂層,31、調試接口,32、總線,33、直接存儲訪問模塊,34、外部接口。
【具體實施方式】
[0021 ]下面結合附圖和具體實施例對本發明進行詳細說明。
[0022]實施例:
[0023]如圖1所示,本處理器裝置由三個層次構成,內部層次為處理器內核I,是由處理器最基本的機構組成,包括了流水線11、旁路(BYPASS)模塊12、流水線暫停(FREEZE)模塊13和異常處理模塊15,所有指令的譯碼執行都在該內核中依流水線逐級執行完成,旁路模塊12、流水線暫停模塊13和異常處理模塊15均用于控制流水線運行。
[0024]處理器裝置的中間層次2主要包括了處理器核21,基本的外設接口 22和存儲器23,外設接22和存儲器23均與處理器核21連接,存儲器23進一步分為指令存儲器和數據存儲器,指令存儲器用于存儲指令供處理器21執行,數據存儲器用于存儲數據供處理器核21讀與O
[0025]處理器裝置的頂層3包括了調試接口 31 (JTAG),總線32(Wishbone)以及直接存儲訪問模塊33(DMA),此外,頂層3提供了處理器裝置對外訪問的外部接口34。其中,調試接口31和處理器核21連接,專門用于外部對處理器狀態的調試;直接存儲訪問模塊33分別與總線32和存儲器23連接,用于不經處理器核直接處理,直接在總線32和存儲器23之間傳遞數據;此外,總線32還與處理器核21和對外接口 34連接,用于處理器核21訪問外部數據。
[0026]在處理器內核中,流水線暫停模塊13用于控制流水線的暫停。該模塊在設計時有以下特點:
[0027](I)對各流水級單獨控制,可以分別讓某一級流水線暫停或者刷新該級流水線的流水線寄存器。
[0028](2)控制信號的優先級設計,每一級流水線的暫停信號都比處在它之后的流水線的暫停信號優先級高。
[0029](3)多周期指令的執行,譯碼器需要告訴流水線暫停模塊該指令需要多少個周期才能執行完,因此流水線暫停模塊在內部保存了一個計數器用來保存停等的周期數。
[0030]在處理器內21中,異常處理模塊15用來處理產生的各種異常情況,包括溢出異常,訪存地址不對齊等。一旦有異常發生,之后異常處理模塊15根據發生異常的向量號取得向量表的入口地址,控制流水線11跳轉到相應的異常處理執行子程序。
[0031]具體地,正在被執行程序的返回地址被保存在了一個特殊目標寄存器14里面,當程序執行中斷返回指令時,處理器核21從該特殊目標寄存器14讀出返回地址而后跳轉,使得之前被執行的程序能夠從中斷點繼續執行。其次異常處理需要刷新流水線,也就是說在異常發生的之后的所有指令對寄存器的寫回操作均會被放棄,而刷新的操作由流水線暫停模塊13控制。
[0032]在處理器內核21中設有特殊目標寄存器模塊,該模塊提供了特殊目標寄存器14的接口,使它可以解碼特殊目標寄存器14的地址并訪問特殊目標寄存器14,特殊目標寄存器14的數據輸出到定時器模塊進行控制,特殊目標寄存器14可以用于保存處理器內核21的狀態信息或者控制信息,包括處理器狀態位、配置的程序地址空間等信息。
[0033]對特殊目標寄存器14的讀寫使用加載存儲指令,特殊目標寄存器14有單獨的編址空間,當數據讀取指令或數據存儲指令計算出訪存地址時,如果落在特殊目標寄存器14的編址空間,則從特殊目標寄存器模塊得到特殊目標寄存器14的值或者將數據寫入特殊目標寄存器14。
[0034]在處理器裝置中,外設接口22主要用于處理器內核21和外部設備進行交互的,拓展了處理器本身的功能,外設接口 22內部設有中斷處理單元、定時器單元和調試單元。
[0035]在處理器裝置中,所有外部設備產生的中斷信號都將被送到中斷處理單元進行處理。中斷處理單元支持不可屏蔽中斷和具有優先級的可屏蔽中斷。對于可屏蔽中斷,可以通過特殊目標寄存器14對中斷進行屏蔽。每次當中斷處理單元接收到外部設備送來的中斷信號時,中斷處理單元首先與相應的中斷屏蔽標志位做“邏輯與”操作,其輸出結果被送到處理器內核1,同時把相應產生的中斷向量號也一并送到處理器內核I,從而由處理器內核I進行后續操作。
[0036]在處理器裝置中,定時器212主要用于記錄一定的時鐘周期數,當達到計數值的時候,將向處理器核I送出一個中斷信號。定時器212的設計思路是,在定時器212內部有兩個寄存器,一個用于保存預先設置的需要計時的數值,另一個用于保存當前的計數值。在使用定時器212之前,同樣需要通過特殊目標寄存器14對定時器212進行配置。一旦開始之后,每個時鐘周期,定時器212內部的計數器就會累加I,直到達到要求的計數值然后送出中斷信號。
[0037]如圖2所示,本實施例通過一下步驟對定時器212進行配置:
[0038](I)通過特殊目標寄存器模塊配置定時器212,主要需要配置定時器的計時數值寄存器,該寄存器保存了定時器需要記錄的周期數。
[0039](2)配置完成之后定時器212即開始計時,直到達到需要的周期數。
[0040](3)當定時器212計時到所需要的周期數的時候,定時器212計數停止,并告知中斷模塊211,中斷模塊211則送出中斷到處理器內核I,由處理器內核I執行中斷處理子程序會處理后續任務。
[0041]最后,以一條數據讀取(LOAD)指令和一條數據存儲(STORE)指令執行為例,來演示整個處理器裝置通過執行程序對定時器進行配置的工作步驟。所述程序如下:
[0042]LOAD RO,Rl,$100
[0043]STORE R0,R3,$200
[0044]該段程序首先執行一條數據讀取(LOAD)指令,然后執行一條數據存儲(STORE)指令,對于數據存儲(STORE)指令,假設數據存儲(STORE)指令的目的地址落在了特殊目標寄存器14(SPR)的地址空間,具體對應到定時器212(TIMER)。主要有以下步驟:
[0045](I)程序和數據的導入。在處理器上電之后,處理器將工作于從設備(Slave)模式,之后直接存儲訪問模塊(DMA)開始工作,將外部的只讀存儲器(ROM)上的數據和需要執行的指令送到片上的數據和指令存儲器(RAM)內部,之后復位(RESET)處理器,處理器將從程序開始的第一條指令開始執行指令。
[0046](2)假設現階段取指到了所述數據讀取(LOAD)指令,經過譯碼產生相應的訪存信號,同時通過訪問寄存器文件,讀得寄存器里面的數值。之后在執行級通過處理器內部的加法器算得需要訪存的地址。
[0047](3)送出該訪存地址,并取得下一條指令。在對該下一條指令譯碼的時候,旁路(BYPASS)模塊發現存在數據依賴,但是此時上一條數據讀取(LOAD)指令正在進行的訪存操作還沒有取回數據。
[0048](4)旁路(BYPASS)模塊通知流水線暫停(FREEZE)模塊暫停流水線,因此數據存儲(STORE)指令將等待兩個周期,直到數據讀取(LOAD)指令取回了訪存的數據。
[0049 ] (5)數據存儲(STORE)指令取到旁路(BYPASS)模塊送過來的結果之后,計算出訪存地址。之后,處理器發現數據存儲(STORE)指令的地址空間并不在數據存儲器里面而是在特殊目的寄存器(SPR)的地址空間里面。
[0050](6)地址送到特殊目標寄存器模塊,特殊目標寄存器模塊對地址進行譯碼,找到該指令具體需要訪問的模塊是定時器(TMER),最后特殊目標寄存器(SPR)產生讀寫信號,完成對定時器(TIMER)的特殊寄存器的訪問。
【主權項】
1.一種具有定時中斷功能的處理器裝置,用以輔助數字信號處理器實現內部定時器的中斷,其特征在于,該處理器裝置設有三個層次,包括內部層次、中間層次和頂層,其中: 內部層次為處理器內核(I),包括特殊目標寄存器(14)、用以逐級處理指令的譯碼和執行流水線(11)以及用以控制流水線(11)運行的旁路模塊(12)和流水線暫停模塊(13); 中間層次(2)包括處理器核(21)以及分別與處理器核(21)連接的外設接口(22)和存儲器(23),所述的處理器核(21)內還設有中斷模塊(211)和定時器(212),所述的定時器(212)分別與中斷模塊(211)和特殊目標寄存器(14)連接,所述的中斷模塊(211)與處理器內核(I)連接; 頂層(3)包括調試接口( 31)、總線(32)和直接存儲訪問模塊(33),所述的調試接口( 31)與處理器核(21)連接,所述的直接存儲訪問模塊(33)分別與總線(32)和存儲器(23)連接,所述的總線(32)與處理器核(21)連接。2.根據權利要求1所述的一種具有定時中斷功能的處理器裝置,其特征在于,所述的頂層(3)還包括通過總線(32)與處理器核(21)連接的外部接口(34)。3.根據權利要求1所述的一種具有定時中斷功能的處理器裝置,其特征在于,所述的中斷模塊(211)和定時器(212)與處理器核(21)的時鐘頻率相同。4.根據權利要求1所述的一種具有定時中斷功能的處理器裝置,其特征在于,所述的處理器內核(I)還包括異常處理模塊(15),用以處理流水線(11)產生的異常情況、控制流水線(II)跳轉到相應的異常處理執行子程序,并在異常處理完成后,使之前被執行的程序從中斷點繼續執行。5.根據權利要求1所述的一種具有定時中斷功能的處理器裝置,其特征在于,所述的流水線暫停模塊(13)用以對流水線(11)中的各流水級單獨控制,或使某一流水級暫停或者刷新該流水級對應的寄存器。6.根據權利要求1所述的一種具有定時中斷功能的處理器裝置,其特征在于,所述的特殊目標寄存器(14)用以保存處理器核(21)的狀態信息、控制信息和定時器(212)的計時周期數。
【文檔編號】G06F9/48GK105824696SQ201610157123
【公開日】2016年8月3日
【申請日】2016年3月18日
【發明人】任浩琪, 吳俊 , 趙朝興, 陳鑫, 牛麗凡, 李涵, 張志峰
【申請人】同濟大學