專利名稱:主處理器與協(xié)處理器接口之間的異常處理方法及實現(xiàn)裝置的制作方法
技術領域:
本發(fā)明涉及一種處理器與至少一個協(xié)處理器接口之間的異常處理 方法及實現(xiàn)裝置。
背景技術:
協(xié)處理器是針對不同的應用場合和需求、對主處理器擴展的、協(xié) 助主處理器完成特殊應用處理的處理器。越來越多的系統(tǒng)采用包括一 個主處理器和至少一個協(xié)處理器的結構,主處理器起著管理和控制各 個協(xié)處理器的工作。
在包含多個協(xié)處理器的系統(tǒng)中,協(xié)處理器在顯示其驚人的計算效 率和明顯的性能提升的同時,又都力圖回避其所采用的具體接口以及 在系統(tǒng)中與主處理器之間的協(xié)作關系,當多個協(xié)處理器之間頻繁產(chǎn)生 異常后,各個協(xié)處理器之間的切換是一個相對耗時的過程,因此多個 協(xié)處理器的設計在很大程度上會影響系統(tǒng)整體架構的表現(xiàn)。
中國實用新型專利(專利號為CN200620158473.5)公開了一種自 定時的異常監(jiān)控裝置。由主處理器通過地址信號線和數(shù)據(jù)信號線在其 中設置對應協(xié)處理器的預設時間,當由協(xié)處理器輸出的狀態(tài)信號得知 其發(fā)生異常時,通過向主處理器請求中斷上報異常狀態(tài),在接收到協(xié) 處理器輸出的表示狀態(tài)正常的信號后重新啟動該協(xié)處理器對應的狀態(tài) 監(jiān)控計數(shù)器。這種方法可以正確監(jiān)控協(xié)處理器異常狀態(tài),但是在協(xié)處 理器產(chǎn)生異常到主處理器開始進行異常處理之間的一段時間內(nèi),它是通過計數(shù)器進行監(jiān)控的,并不是一個實時的過程,另外其重新啟動狀
態(tài)監(jiān)控計數(shù)器也是一個相對耗時的過程。
發(fā)明內(nèi)容
為了克服已有的主處理器與協(xié)處理器之間異常處理的相對耗時、 實時性差、切換效率低的不足,本發(fā)明提供一種能夠加快異常處理速 度、實時性良好、提高切換效率的主處理器與協(xié)處理器接口之間的異 常處理方法及實現(xiàn)裝置。
本發(fā)明解決其技術問題所采用的技術方案是
一種主處理器與協(xié)處理器接口之間的異常處理方法,所述異常處 理方法包括以下步驟
A. 當協(xié)處理器產(chǎn)生異常信號,并通知主處理器;
B. 主處理器根據(jù)產(chǎn)生的異常信號自動切換成產(chǎn)生異常的協(xié)處理 器通過將原來的主處理器狀態(tài)寄存器備份到主處理器狀態(tài)影子寄存 器中,自動修改當前主處理器狀態(tài)寄存器并選中產(chǎn)生異常的協(xié)處理器;
C. 主處理器執(zhí)行完異常服務程序,通過一條主處理器異常返回指 令返回的同時,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的協(xié)處理 器自動恢復。
進一步,在所述步驟A中,所述當協(xié)處理器產(chǎn)生異常信號的過程 由協(xié)處理器內(nèi)部功能單元產(chǎn)生的異常信號。
再進一步,在所述步驟A中,所述協(xié)處理器有至少兩個,異常信 號經(jīng)過仲裁器進行仲裁后通知主處理器的過程為同時有至少兩個協(xié) 處理器產(chǎn)生的異常信號,輸出給協(xié)處理器異常仲裁器,異常仲裁器根 據(jù)配置好的協(xié)處理器異常優(yōu)先級,選出一個優(yōu)先級最高的異常信號,通知主處理器進入異常狀態(tài);
在所述步驟B中,根據(jù)協(xié)處理器異常仲裁器的信息自動修改當前 主處理器狀態(tài)寄存器并選中產(chǎn)生異常優(yōu)先級最高的協(xié)處理器。
更進一步,在所述步驟C中,根據(jù)主處理器狀態(tài)影子寄存器將異 常產(chǎn)生前的協(xié)處理器自動恢復的過程為通過將主處理器狀態(tài)影子寄 存器的內(nèi)容恢復到主處理器狀態(tài)寄存器,同時根據(jù)主處理器狀態(tài)寄存 器的內(nèi)容選中進入異常狀態(tài)前的協(xié)處理器。
一種所述的主處理器與協(xié)處理器接口之間的異常處理方法的實現(xiàn) 裝置,包括主處理器和協(xié)處理器,所述協(xié)處理器包括用于產(chǎn)生異常信 號的協(xié)處理器異常信號產(chǎn)生單元;所述主處理器包括用于主處理器
根據(jù)主處理器狀態(tài)寄存器的指示選擇對應的協(xié)處理器的協(xié)處理器選擇
單元;用于指示當前主處理器選中的協(xié)處理器編號的主處理器狀態(tài)寄 存器;用于保存主處理器出現(xiàn)異常前其選中的協(xié)處理器編號的主處理 器狀態(tài)影子寄存器;以及用于通知主處理器處理在完成異常服務程序 后從異常狀態(tài)返回到正常狀態(tài)的主處理器異常返回控制單元。
作為優(yōu)選的一個方案所述協(xié)處理器有至少兩個,所述實現(xiàn)裝置
還包括用于仲裁出現(xiàn)異常的協(xié)處理器之間的異常優(yōu)先級,并向主處理 器請求中斷上報異常并通知主處理器更新主處理器狀態(tài)寄存器的協(xié)處
理器異常仲裁器;各個協(xié)處理器的協(xié)處理器異常信號產(chǎn)生單元均與協(xié) 處理器異常仲裁器連接。
進一步,在所述主處理器異常返回控制單元中,返回到正常狀態(tài) 后,程序計數(shù)器的值從異常程序計數(shù)器恢復至中斷或異常之前的地址, 同時,主處理器狀態(tài)寄存器的值從狀態(tài)影子寄存器恢復至中斷或異常之前的狀態(tài)。
再進一步,所述協(xié)處理器選擇單元中,協(xié)處理器選擇信號與協(xié)處 理器一一對應過程通過主處理器狀態(tài)寄存器中記錄的協(xié)處理器編號 解碼后進行選擇。
本發(fā)明的技術構思為本發(fā)明設計了專門的協(xié)處理器狀態(tài)切換保 存寄存器,而且協(xié)處理器產(chǎn)生的異常信號可以直接通知主處理器,完 全可以保證各個協(xié)處理器的正常切換和實時響應。
本發(fā)明的有益效果主要表現(xiàn)在1、能夠加快異常處理速度、實時 性良好、提高切換效率;2、降低主處理器在協(xié)處理器之間切換的復雜 度。
圖1是本發(fā)明異J^處理裝置的結構框圖。 圖2是圖1中協(xié)處理器仲裁器的原理框圖。 圖3是異常處理的實現(xiàn)流程圖。
具體實施例方式
下面結合附圖對本發(fā)明作進一步描述。 實施例1
參照圖3, 一種主處理器與協(xié)處理器接口之間的異常處理方法,
所述異常處理方法包括以下步驟
A. 當協(xié)處理器產(chǎn)生異常信號,并通知主處理器;
B. 主處理器根據(jù)產(chǎn)生的異常信號自動切換成產(chǎn)生異常的協(xié)處理 器通過將原來的主處理器狀態(tài)寄存器備份到主處理器狀態(tài)影子寄存
器中,自動修改當前主處理器狀態(tài)寄存器并選中產(chǎn)生異常的協(xié)處理器;C.主處理器執(zhí)行完異常服務程序,通過一條主處理器異常返回指 令返回的同時,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的協(xié)處理 器自動恢復。
在所述步驟A中,所述當協(xié)處理器產(chǎn)生異常信號的過程由協(xié)處 理器內(nèi)部功能單元產(chǎn)生的異常信號。
在所述步驟A中,所述協(xié)處理器有至少兩個,異常信號經(jīng)過仲裁 器進行仲裁后通知主處理器的過程為同時有至少兩個協(xié)處理器產(chǎn)生 的異常信號,輸出給協(xié)處理器異常仲裁器,異常仲裁器根據(jù)配置好的 協(xié)處理器異常優(yōu)先級,選出一個優(yōu)先級最高的異常信號,通知主處理 器進入異常狀態(tài);
在所述步驟B中,根據(jù)協(xié)處理器異常仲裁器的信息自動修改當前 主處理器狀態(tài)寄存器并選中產(chǎn)生異常優(yōu)先級最高的協(xié)處理器。
在所述步驟c中,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的
協(xié)處理器自動恢復的過程為通過將主處理器狀態(tài)影子寄存器的內(nèi)容 恢復到主處理器狀態(tài)寄存器,同時根據(jù)主處理器狀態(tài)寄存器的內(nèi)容選 中進入異常狀態(tài)前的協(xié)處理器。
本實施例的一種處理器和至少一個協(xié)處理器接口之間的異常處理 方法如圖3所示,具體如下
(1) 開機。
(2) 初始化。主處理器狀態(tài)寄存器中協(xié)處理器編號被初始化為 llllh,默認指向第15個協(xié)處理器;協(xié)處理器仲裁器的默認優(yōu)先級根 據(jù)協(xié)處理器編號由小到大逐漸降低。
(3) 啟動協(xié)處理器。(4) 如果協(xié)處理器產(chǎn)生異常通知協(xié)處理器仲裁器,協(xié)處理器仲 裁器根據(jù)各個協(xié)處理器異常信號進行篩選判斷,通知主處理器。
(5) 主處理器根據(jù)協(xié)處理器仲裁器給出的信息,將當前主處理 器狀態(tài)寄存器的內(nèi)容保存到狀態(tài)影子寄存器中,并修改主處理器狀態(tài) 寄存器中協(xié)處理器編號為產(chǎn)生異常的協(xié)處理,最后主處理器跳轉(zhuǎn)到相 應的異常服務程序。
(6) 主處理器在異常服務程序中處理協(xié)處理器事物,異常服務 程序完成后,主處理器通過一條異常返回指令返回正常狀態(tài),返回過 程包括程序計數(shù)器(PC)的值從異常程序計數(shù)器(EPC)恢復至中
斷或異常之前的地址,同時,處理器狀態(tài)寄存器(PSR)的值從狀態(tài)影子 寄存器(EPSR)恢復至中斷或異常之前的狀態(tài)。
(7) 根據(jù)處理器狀態(tài)—寄存器中協(xié)處理器的編號,選中異常出現(xiàn) 前相應的協(xié)處理器。轉(zhuǎn)到第(4)步。
從執(zhí)行流程上看,該裝置有以下幾個特點首先,支持多個協(xié)處
理器同時產(chǎn)生異常,及異常優(yōu)先級仲裁。其次,協(xié)處理器產(chǎn)生的異常 經(jīng)過仲裁后直接通知主處理器,實時性高。再次,產(chǎn)生異常的協(xié)處理 器編號由裝置自動切換,當主處理器處理完異常服務程序后,正常狀 態(tài)的協(xié)處理器編號會自動恢復,提高了協(xié)處理器之間切換的效率。
實施例2 '
照圖1~圖2, 一種主處理器與協(xié)處理器接口之間的異常處理裝 置,包括主處理器和協(xié)處理器,所述協(xié)處理器包括用于產(chǎn)生異常信號 的協(xié)處理器異常信號產(chǎn)生單元;所述主處理器包括用于主處理器根 據(jù)主處理器狀態(tài)寄存器的指示選擇對應的協(xié)處理器的協(xié)處理器選擇單元;用于指示當前主處理器選中的協(xié)處理器編號的主處理器狀態(tài)寄存
器;用于保存主處理器出現(xiàn)異常前其選中的協(xié)處理器編號的主處理器 狀態(tài)影子寄存器;以及用于通知主處理器處理在完成異常服務程序后 從異常狀態(tài)返回到正常狀態(tài)的主處理器異常返回控制單元。
所述協(xié)處理器有至少兩個,所述實現(xiàn)裝置還包括用于仲裁出現(xiàn)異 常的協(xié)處理器之間的異常優(yōu)先級,并向主處理器請求中斷上報異常并 通知主處理器更新主處理器狀態(tài)寄存器的協(xié)處理器異常仲裁器;各個 協(xié)處理器的協(xié)處理器異常信號產(chǎn)生單元均與協(xié)處理器異常仲裁器連 接。
在所述主處理器異常返回控制單元中,返回到正常狀態(tài)后,程序 計數(shù)器的值從異常程序計數(shù)器恢復至中斷或異常之前的地址,同時, 主處理器狀態(tài)寄存器的值從狀態(tài)影子寄存器恢復至由斷或異常之前的 狀態(tài)。
所述協(xié)處理器選擇單元中,協(xié)處理器選擇信號與協(xié)處理器一一對 應過程通過主處理器狀態(tài)寄存器中記錄的協(xié)處理器編號解碼后進行 選擇。
本實施例的整個裝置由一個主處理器、至少一個協(xié)處理器, 一個 主處理器異常返回控制單元, 一個主處理器狀態(tài)寄存器, 一個主處理 器狀態(tài)影子寄存器, 一個協(xié)處理器異常仲裁器,至少一根協(xié)處理器異 常信號,至少一根協(xié)處理器選擇信號組成。
整個電路的信息流向為協(xié)處理器產(chǎn)生異常信號,輸出給協(xié)處理 器仲裁器,仲裁器對異常信號進行仲裁后,將信息通知主處理器,主 處理器進行協(xié)處理器的現(xiàn)場保存,并跳轉(zhuǎn)到異常入口地址,完成異常處理后,通過異常返回指令,主處理器恢復進入異常前的現(xiàn)場,進入 正常模式執(zhí)行,等待下一次協(xié)處理器異常信號的產(chǎn)生。
權利要求
1、一種主處理器與協(xié)處理器接口之間的異常處理方法,所述異常處理方法包括以下步驟A.當協(xié)處理器產(chǎn)生異常信號,并通知主處理器;B.主處理器根據(jù)產(chǎn)生的異常信號自動切換成產(chǎn)生異常的協(xié)處理器通過將原來的主處理器狀態(tài)寄存器備份到主處理器狀態(tài)影子寄存器中,自動修改當前主處理器狀態(tài)寄存器并選中產(chǎn)生異常的協(xié)處理器;C.主處理器執(zhí)行完異常服務程序,通過一條主處理器異常返回指令返回的同時,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的協(xié)處理器自動恢復。
2、 如權利要求1所述的主處理器與協(xié)處理器接口之間的異常處理方 法,其特征在于i^所述步驟A中,所述當協(xié)處理器產(chǎn)生異常信號的 過程由協(xié)處理器內(nèi)部功能單元產(chǎn)生的異常信號。
3、 如權利要求1或2所述的主處理器與協(xié)處理器接口之間的異常處理 方法,其特征在于在所述步驟A中,所述協(xié)處理器有至少兩個,異 常信號經(jīng)過仲裁器進行仲裁后通知主處理器的過程為同時有至少兩 個協(xié)處理器產(chǎn)生的異常信號,輸出給協(xié)處理器異常仲裁器,異常仲裁 器根據(jù)配置好的協(xié)處理器異常優(yōu)先級,選出一個優(yōu)先級最高的異常信 號,通知主處理器進入異常狀態(tài);在所述步驟B中,根據(jù)協(xié)處理器異常仲裁器的信息自動修改當前 主處理器狀態(tài)寄存器并選中產(chǎn)生異常優(yōu)先級最高的協(xié)處理器。
4、 如權利要求1或2所述的主處理器與協(xié)處理器接口之間的異常處理 方法,其特征在于在所述步驟C中,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的協(xié)處理器自動恢復的過程為通過將主處理器狀態(tài)影 子寄存器的內(nèi)容恢復到主處理器狀態(tài)寄存器,同時根據(jù)主處理器狀態(tài) 寄存器的內(nèi)容選中進入異常狀態(tài)前的協(xié)處理器。
5、 如權利要求3所述的主處理器與協(xié)處理器接口之間的異常處理方 法,其特征在于在所述步驟C中,根據(jù)主處理器狀態(tài)影子寄存器將 異常產(chǎn)生前的協(xié)處理器自動恢復的過程為通過將主處理器狀態(tài)影子. 寄存器的內(nèi)容恢復到主處理器狀態(tài)寄存器,同時根據(jù)主處理器狀態(tài)寄 存器的內(nèi)容選中進入異常狀態(tài)前的協(xié)處理器。
6、 一種如權利要求1所述的主處理器與協(xié)處理器接口之間的異常處理 方法的實現(xiàn)裝置,其特征在于所述實現(xiàn)裝置包括主處理器和協(xié)處理 器,所述協(xié)處理器包括用于產(chǎn)生異常信號的協(xié)處理器異常信號產(chǎn)生單 元;所述主處理器包括用于主處理器根據(jù)主處理器狀態(tài)寄存器的指 示選擇對應的協(xié)處理器的協(xié)處理器選擇單元;用于指示當前主處理器 選中的協(xié)處理器編號的主處理器狀態(tài)寄存器;用于保存主處理器出現(xiàn) 異常前其選中的協(xié)處理器編號的主處理器狀態(tài)影子寄存器;以及用于 通知主處理器處理在完成異常服務程序后從異常狀態(tài)返回到正常狀態(tài) 的主處理器異常返回控制單元。
7、 如權利要求6所述的實現(xiàn)裝置,其特征在于所述協(xié)處理器有至少兩個,所述實現(xiàn)裝置還包括用于仲裁出現(xiàn)異常的協(xié)處理器之向的異常 優(yōu)先級,并向主處理器請求中斷上報異常并通知主處理器更新主處理器狀態(tài)寄存器的協(xié)處理器異常仲裁器;各個協(xié)處理器的協(xié)處理器異常 信號產(chǎn)生單元均與協(xié)處理器異常仲裁器連接。
8、 如權利要求6或7所述的實現(xiàn)裝置,其特征在于在所述主處理器異常返回控制單元中,返回到正常狀態(tài)后,程序計數(shù)器的值從異常程 序計數(shù)器恢復至中斷或異常之前的地址,同時,主處理器狀態(tài)寄存器 的值從狀態(tài)影子寄存器恢復至中斷或異常之前的狀態(tài)。
9、 如權利要求6或7所述的實現(xiàn)裝置,其特征在于所述協(xié)處理器選 擇單元中,協(xié)處理器選擇信號與協(xié)處理器一一對應過程通過主處理 器狀態(tài)寄存器中記錄的協(xié)處理器編號解碼后進行選擇。
10、 如權利要求8所述的實現(xiàn)裝置,其特征在于所述協(xié)處理器選擇 單元中,協(xié)處理器選擇信號與協(xié)處理器一一對應過程通過主處理器 狀態(tài)寄存器中記錄的協(xié)處理器編號解碼后進行選擇。
全文摘要
一種主處理器與協(xié)處理器接口之間的異常處理方法,包括以下步驟A.當協(xié)處理器產(chǎn)生異常信號,并通知主處理器;B.主處理器根據(jù)產(chǎn)生的異常信號自動切換成產(chǎn)生異常的協(xié)處理器通過將原來的主處理器狀態(tài)寄存器備份到主處理器狀態(tài)影子寄存器中,自動修改當前主處理器狀態(tài)寄存器并選中產(chǎn)生異常的協(xié)處理器;C.主處理器執(zhí)行完異常服務程序,通過一條主處理器異常返回指令返回的同時,根據(jù)主處理器狀態(tài)影子寄存器將異常產(chǎn)生前的協(xié)處理器自動恢復。以及提供一種實現(xiàn)所述異常處理方法的裝置。本發(fā)明能夠加快異常處理速度、實時性良好、提高切換效率。
文檔編號G06F11/07GK101650674SQ20091015250
公開日2010年2月17日 申請日期2009年9月11日 優(yōu)先權日2009年9月11日
發(fā)明者嚴曉浪, 孟建熠, 彭信民, 葛海通 申請人:杭州中天微系統(tǒng)有限公司