新四季網

一種指令異常處理方法

2023-04-23 15:03:56

專利名稱:一種指令異常處理方法
技術領域:
本發明涉及到一種帶有中斷功能的、採用指令流水線結構的微處理器。特別是一種指令集處理器中指令異常處理的方法。
背景技術:
眾所周知,微處理器泛指令集處理器(ISP,Instruction SetProcessor)。ISP執行預先定義指令集中的指令。微處理器的功能幾乎完全取決於指令集,從而通過指令集表明它的執行能力。所有運行於微處理器上的程序都要基於指令集進行編碼。
微處理器的發展一定程度上也是指令集系統的發展,從CISC指令集到RISC指令集,指令集經歷了一個從簡單到複雜,又從複雜回歸到簡單的一個螺旋上升的過程。
計算機結構通常是朝著更複雜的方向發展,如更大的指令集、更多的尋址方式、更多的專用寄存器和更強的指令計算功能等。這時使用的指令集主要是CISC指令集。然而,當CISC發展到一定程度,人們發現,一些過於複雜和深奧的指令很難也很少用到,把這樣的指令加到指令集反而使控制器的設計變得複雜,並佔用了CPU晶片面積相當大的部分。於是,RISC指令集應運而生。現在已有眾多廠家生產RISC處理器,儘管它們的實現手段有所不同,但如下的RISC概念的基本要素是普遍贊同的(1)一個有限的簡單的指令集。
(2)強調寄存器的使用,或CPU配備大量的通用寄存器(常稱為寄存器文件),或以便意見書優化寄存器的使用。
(3)強調對指令流水線的優化。
指令流水線使用時間重疊技術,允許幾條指令同時被處理,從而全面改善處理器性能。現在,用於PC/工作站和並行計算機中的處理器,計劃全部採用了指令流水線結構。
微處理器設計單位按照預定義的指令集設計微處理器,在流片生產前必須要對所設計的微處理器進行測試,但是現在的測試機制並不能完全覆蓋所有情況,所以在流片生產後,設計單位還必須有專人對已生產出的微處理器進行長時間、大範圍、高覆蓋率的測試。
如果此時發現了某指令執行錯誤,現在一般的做法有兩種(1)廠家向用戶發放對該款處理器的勘誤表,提醒使用彙編語言的用戶不要使用某指令。如下例所示程序1AND T0,T1;將T0與T1作與操作,結果存於T1中OR T3,T2 ;將T3與T2作或操作,結果存於T2中NOT T0;將T0中的數據取反後存入T0中XOR T1,T2;將T1與T2作異或操作,結果存於T2中注T0,T1,T2,T3是臨時寄存器。
如測試中發現XOR指令執行時發生錯誤,那麼繼續執行這段程序,程式設計師將得不到正確的或預期的結果。當程式設計師收到廠家的勘誤表後,就需要將他所寫程序中的所有使用該指令的地方用一個可以完成異或操作的程序段替換,如程序2所示程序2AND T0,Ti;將T0與T1作與操作,結果存於T1中OR T3,T2 ;將T3與T2作或操作,結果存於T2中NOT T0;將T0中的數據取反後存入T0中PUSH T0 ;保存現場PUSH T3 ;保存現場NOT T2,T3;將T2中的數據取反後存入T3中NOT T1,T0;將T1中的數據取反後存入T0中AND T1,T3;實現T1·T2,結果存入T3中AND T0,T2;實現T1·T2,結果存入T2中OR T3,T2 ;實現T1·T2+T1·T2。結果存入T2中POP T3;恢復現場POP T0;恢復現場可見,這種方式大大增加程式設計師的工作量和代碼量,而且這種方法對程式設計師的依賴性很大,並不保證質量。
(2)要求編譯器的生產者在編譯該款處理器的程序時迴避該指令,然後要求用戶不斷升級編譯軟體和用戶平臺來適應該款處理器。
這兩種方法會給用戶使用帶來諸多不便。
如果有一種方法對用戶是透明的,不需改變程序,讓處理器本身來迴避該指令,那麼將大大減少程式設計師的工作量,減少人為引入錯誤的機會。

發明內容
本發明的目的是提供一種指令集處理器中指令異常處理的方法,它不需要升級硬體,不需要用戶更改程序,將減少程式設計師的工作量,減少人為引入錯誤的機會。
具體的技術方案如下本發明所述的指令異常處理的方法,主要應用於指令集處理器中,其特徵在於,方法中所需的硬體結構主要為包括含有識別指令邏輯的程序控制單元、指令解碼單元、執行單元、提交控制臺和三個專用的16位IO寄存器(以16位處理器為例)的處理器;以及還包括提供給用戶更新的導入程序;所述方法的內容為(1)處理器在讀入指令後,通過存放在預留的其中一個IO寄存器內的識別指令的編碼,對指令進行識別。該編碼所指的這條指令我們就稱為已標誌出的指令。
(2)識別出已標誌出的指令以後,就立即進入預先設定好的中斷服務程序,並將該指令對應的PC地址存入另外兩個預留的IO寄存器。
(3)在中斷服務程序中,通過讀取另外兩個預留的IO寄存器所存儲的被標誌出的指令所在的PC地址,讀出完整的指令,並進一步識別其所使用的操作數信息,然後用其它指令或程序將其替換。
(4)替換結束後,返回原程序。
關於方法中所使用的中斷服務程序和新的導入程序,處理器晶片生產廠家會隨著指令的勘誤表一起提供給用戶,用戶只需將其替換原來的導入程序,並將該中斷服務程序添加到項目文件中,並更新中斷向量表即可使用。
本發明方法由於在實現時,要求所運行的處理器預留三個專用的16位IO寄存器(以16位處理器為例),並在程序流單元加入識別指令的邏輯。這樣使得生產廠家不需要重新流片來更新硬體,減少了用戶參與維護的操作,減少了為避免錯誤而導入錯誤的機會。
本發明在實現時,不需要依賴軟體環境,也不需要應用程式員幹預,只需啟動內嵌程序,用戶及時更新廠家提供的初始化文件即可。
本發明有利於系統合理地安排數據流程,使之在微處理器的各執行單元間無衝突地順利執行。由於此方法沒有中斷已有的數據流和指令流,沒有打亂所有器件的並行執行機制,所以微處理器系統仍然在正常的運行,所以對講異常指令對系統的傷害降到了最底點。


圖1是現有處理器的一般工作流程框圖。
圖2是採用本發明的異常處理機制以後的流程圖。
具體實施例方式下面將結合附圖進一步闡述本發明。
根據上述所提供的本發明方法中的硬體與軟體配置環境,其具備達到處理器可以對出錯指令進行白行修復的功能。
為了便於對本發明技術的理解,首先闡述一下未使用本發明的處理器的一般工作流程。
如圖1所示,程序控制單元通過指令地址總線將指令地址給指令存儲器,通過指令數據總線讀入指令。讀入指令後,程序控制單元首先對指令進行識別,一般這裡將識別出跳轉指令等程序控制指令,然後將運算指令交給解碼單元進行解碼,再由解碼單元將解碼後的結果分別交給地址產生單元和數據運算單元,地址產生單元通過解碼單元所給的信息計算需訪問的存儲器地址,通過地址總線給數據存儲器接口,然後將數據通過數據總線送出,數據運算單元將運算後的結果和狀態寄存器的結果放到數據總線上,程序控制單元通過採樣數據總線上的數據和狀態寄存器的結果來監控運算單元的工作狀態。
根據本發明機制,其中所涉及的三個預留的16位IO寄存器的作用如下IO寄存器1存放需要識別的指令編碼;IO寄存器2存放被替換指令的PC地址高位;IO寄存器3存放被替換指令的PC地址低位。
如圖2所示,所述方法機制中的微處理器在讀入指令後,程序控制單元首先對指令進行識別,此時,程序控制單元不但要識別跳轉指令等程序控制指令,還要識別出已標誌出的指令。我們在IO埠預留了三個寄存器給這種機制使用,其中一個就是用來存放需要識別的指令的編碼的,該編碼所指的這條指令我們就稱為已標誌出的指令。程序控制單元通過識別指令編碼來識別這條指令,識別出以後,就立即進入預先設定好的中斷服務程序,並且將該指令對應的PC地址存入另外兩個預留的IO寄存器。在中斷服務程序中,通過讀取另外兩個預留的IO寄存器所存儲的被標誌出的指令所在的PC地址,讀出完整的指令,並進一步識別其所使用的操作數信息,然後用其它指令或程序將其替換。替換結束後,返回原程序。這裡所使用的中斷服務程序和新的導入程序,處理器晶片生產廠家會隨著指令的勘誤表一起提供給用戶,用戶只需將其替換原來的導入程序,並將該中斷服務程序添加到項目文件中,並更新中斷向量表即可使用。
以上是本發明的實施方式之一,對於本領域內的一般技術人員,不花費創造性的勞動,在上述實施例的基礎上可以做多種變化,同樣能夠實現本發明的目的。但是,這種變化顯然應該在本發明的權利要求書的保護範圍內。
權利要求
1.一種指令異常處理的方法,主要應用於指令集處理器中,其特徵在於,方法中所需的硬體結構主要為包括含有識別指令邏輯的程序控制單元、指令解碼單元、執行單元、提交控制臺和三個專用的16位IO寄存器的處理器;以及還包括提供給用戶更新的導入程序;所述方法的內容為(1)處理器在讀入指令後,通過存放在預留的其中一個IO寄存器內的識別指令的編碼,對指令進行識別。該編碼所指的這條指令我們就稱為已標誌出的指令。(2)識別出已標誌出的指令以後,就立即進入預先設定好的中斷服務程序,並將該指令對應的PC地址存入另外兩個預留的IO寄存器。(3)在中斷服務程序中,通過讀取另外兩個預留的IO寄存器所存儲的被標誌出的指令所在的PC地址,讀出完整的指令,並進一步識別其所使用的操作數信息,然後用其它指令或程序將其替換。(5)替換結束後,返回原程序。
2.根據權利要求1的指令異常處理的方法,其特徵在於,所述方法中所使用的中斷服務程序和新的導入程序,處理器晶片生產廠家會隨著指令的勘誤表一起提供給用戶,用戶只需將其替換原來的導入程序,並將該中斷服務程序添加到項目文件中,並更新中斷向量表即可使用。
全文摘要
本發明公開了一種指令異常處理方法,其主要應用於指令集處理器中,其硬體結構主要包括程序控制單元、指令解碼單元、寄存器文件、執行單元、提交控制臺等各個部分。本發明利用程序控制單元和寄存器文件,將指定指令識別出,然後利用指定的中斷服務程序將其替換,迴避該指定指令,實現在不改變硬體資源的條件下對異常指令的處理。
文檔編號G06F9/30GK101042670SQ20071003986
公開日2007年9月26日 申請日期2007年4月24日 優先權日2007年4月24日
發明者張達文, 李興仁, 金榮偉, 劉春暉, 林錦麟, 楊一茜 申請人:上海華龍信息技術開發中心

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀