亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

微型計算機和中斷控制方法

文檔序號:6358062閱讀:237來源:國知局
專利名稱:微型計算機和中斷控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于執(zhí)行中斷處理的微型計算機和微型計算機的中斷控制方法,更具體地說,涉及中斷處理中的寄存器數(shù)據(jù)保存方法。
背景技術(shù)
近年來,微型計算機已經(jīng)用在包括移動電子裝置,例如,便攜式電話、家用器具、以及用于汽車的電子控制設(shè)備的各種電子裝置中。隨著這種電子裝置和計算機的更高的性能,要求進一步改進微型計算機的處理能力。在微型計算機的處理器中,當(dāng)生成具有比正執(zhí)行的指令更高優(yōu)先級的中斷時,中斷正執(zhí)行的指令,并且執(zhí)行中斷序列。當(dāng)開始中斷處理時,處理器在堆棧存儲器中臨時保存程序狀態(tài)字(PSW)和程序計數(shù)器(PC)的數(shù)據(jù),以及通用寄存器的數(shù)據(jù)(上下文)。在完成中斷處理后,能使所保存的上下文返回到PSW、PC和通用寄存器,以便重啟被中斷的處理。圖IA和IB是表示與根據(jù)常規(guī)示例的微型計算機的中斷處理有關(guān)的電路的結(jié)構(gòu)的框圖。參考圖IA和1B,將詳細地描述根據(jù)常規(guī)示例的中斷處理。根據(jù)常規(guī)示例的微型計算機包括中斷控制器100、處理器200、指令存儲器300和數(shù)據(jù)存儲器400。根據(jù)輸入的中斷信號,中斷控制器100將中斷向量INTVCT和中斷請求 INTREQ發(fā)送到處理器200。此時,中斷控制器100參考為每一中斷信號設(shè)置的優(yōu)先級PR,并且將具有較高優(yōu)先級I3R的中斷向量IVCT輸出到處理器200。當(dāng)將中斷請求INTREQ設(shè)置成“1”時,處理器200從指令存儲器300讀取對應(yīng)于中斷向量INVCT的指令,并且執(zhí)行該指令。此時,處理器200中斷正在執(zhí)行的處理并且將處理中,由寄存器文件204保持的數(shù)據(jù)(上下文)保存到數(shù)據(jù)存儲器400中。詳細地說,處理器200包括中斷處理控制電路201、取指令控制電路202、指令執(zhí)行部203、和寄存器文件204。中斷處理控制電路201控制中斷處理的執(zhí)行,并且將中斷處理的請求的接受和中斷處理的完成通知給中斷控制器100。響應(yīng)于中斷請求INTREQ,中斷處理控制電路201控制取指令控制電路202來提取對應(yīng)于中斷向量INVCT的指令。指令執(zhí)行部203執(zhí)行由取指令控制電路202提取的指令,用于中斷處理。當(dāng)開始中斷處理時,指令執(zhí)行部203將寄存器文件204的數(shù)據(jù)保存在數(shù)據(jù)存儲器 400(例如,堆棧存儲器)中。具體地,指令執(zhí)行部203首先將PC和PSW的數(shù)據(jù)保存到數(shù)據(jù)存儲器400中,然后,將通用寄存器RO至R31的數(shù)據(jù)保存到數(shù)據(jù)存儲器400中。當(dāng)完成寄存器文件204的數(shù)據(jù)的保存時,指令執(zhí)行部203執(zhí)行對應(yīng)于中斷請求的處理。當(dāng)結(jié)束該中斷處理時,響應(yīng)于返回指令,指令執(zhí)行部203將保存到數(shù)據(jù)存儲器400 中的數(shù)據(jù)返回到寄存器文件204中,并且重啟被中斷的處理。通過對寄存器文件204的數(shù)據(jù)進行保存和執(zhí)行中斷處理,在不破壞寄存器文件 204的數(shù)據(jù)的情況下,通過使用任何通用寄存器,能執(zhí)行該中斷處理。將在中斷處理中使用的通用寄存器的范圍有時由中斷處理的數(shù)據(jù)而預(yù)先確定。然而,在常規(guī)示例中,因為不能指定將在中斷處理中使用的通用寄存器,因此,有必要總是指定可能在中斷處理中使用的所有寄存器,而與中斷處理的數(shù)據(jù)無關(guān)。例如,當(dāng)將用在第一中斷處理中的通用寄存器為寄存器RO至R4,并且將用在第二中斷處理中的通用寄存器為寄存器RlO至R14時,有必要保存寄存器RO至R4以及RlO至R14的數(shù)據(jù),即使將執(zhí)行的中斷處理為第一中斷處理。在這種情況下,浪費了用于保存寄存器RlO至R14的數(shù)據(jù)所花費的時間以及用于保存的存儲器容量。如上所述,在根據(jù)常規(guī)示例的中斷處理中,由于相同的寄存器用于不同的中斷因素,甚至保存不必保存的寄存器數(shù)據(jù)。為此。寄存器數(shù)據(jù)保存所需的時間將會增加,并且要求增加保存所需的存儲區(qū)域。尤其是,當(dāng)中斷處理的頻率增加時,寄存器數(shù)據(jù)保存花費相當(dāng)長的時間,從而導(dǎo)致程序的處理能力降低。在專利文獻1中,通過提供用于標(biāo)識由用戶程序所使用的寄存器組的寄存器使用標(biāo)識符以及基于寄存器使用標(biāo)識符,指定所保存的寄存器,確定將用于中斷處理而保存的寄存器。由此,對每一用戶程序,能改變用于該中斷處理而保存的寄存器,以致不浪費用于保存和返回所需的時間,以及用于保存的存儲器容量。引用清單[專利文獻 1] JP HO9-I3^92A

發(fā)明內(nèi)容
根據(jù)專利文獻1中所述的中斷控制方法,將保存的寄存器數(shù)據(jù)和用于執(zhí)行寄存器數(shù)據(jù)的保存和返回的指令序列被指定為每一用戶程序而設(shè)置的寄存器使用標(biāo)識符,以及通過執(zhí)行指定的指令序列,執(zhí)行用于該用戶程序的寄存器數(shù)據(jù)的保存和返回。在專利文獻1中,基于預(yù)定的寄存器使用標(biāo)識符或?qū)?yīng)于在執(zhí)行用戶程序時設(shè)置的程序的寄存器使用標(biāo)識符,指定待保存的寄存器數(shù)據(jù)。為此,可以僅保存由正在執(zhí)行的程序所使用的寄存器的數(shù)據(jù),而與在中斷處理中寄存器數(shù)據(jù)是否被改變無關(guān)。通常,用在主例程中的寄存器的數(shù)量大于用在中斷處理中執(zhí)行的子例程(中斷處理程序)中的寄存器的數(shù)量。為此,基于執(zhí)行為主例程的用戶程序所指定的寄存器的數(shù)量通常大于用在中斷處理中的寄存器的數(shù)量。由此,當(dāng)基于用戶程序,確定待保存的寄存器數(shù)據(jù)時,存在通過中斷處理而未被破壞的寄存器數(shù)據(jù)被保存的情形,導(dǎo)致用于保存的時間和用于保存的存儲容量增加。此外,在專利文獻1中,由于對每一程序,在存儲器中準(zhǔn)備保存指令序列和返回指令序列,所以存儲容量需要增加。尤其是,當(dāng)考慮中斷嵌套(多個中斷)時,需要對正執(zhí)行中斷處理的程序,準(zhǔn)備寄存器使用標(biāo)識符、保存指令序列、和返回指令序列。標(biāo)識符和指令序列抑制能由另一程序使用的存儲區(qū),使得存儲容量增加。在專利文獻1中未描述當(dāng)中斷嵌套發(fā)生時的寄存器數(shù)據(jù)保存處理方法。如果,如同用戶程序一樣,通過使用對應(yīng)于正在執(zhí)行的中斷處理的寄存器使用標(biāo)識符,指定待保存的寄存器數(shù)據(jù),那么每次中斷發(fā)生時,需要執(zhí)行設(shè)置寄存器使用標(biāo)識符的處理,由此增加處理器的處理時間。此外,當(dāng)執(zhí)行基于寄存器使用標(biāo)識符而指定的保存指令序列時,有必要從存儲器提取指令序列。尤其是,當(dāng)中斷嵌套發(fā)生時,對中斷處理的次數(shù),由于取指令而導(dǎo)致的處理延遲被累積,由此降低處理器的處理能力。
6
本發(fā)明的主題是提供一種微型計算機和中斷控制方法,其中,能降低在中斷處理中保存的數(shù)據(jù)量。在本發(fā)明的方面中,一種微型計算機包括多個寄存器列表,其分別具有多個寄存器模式,其中,多個寄存器模式的每一個指定其數(shù)據(jù)將保存在數(shù)據(jù)存儲器中的寄存器;取指令控制電路,用來響應(yīng)于基于中斷因素的出現(xiàn)而發(fā)出的中斷請求,從指令存儲器中提取指令代碼;以及寄存器數(shù)據(jù)保存控制電路,用來響應(yīng)于中斷請求,從多個寄存器列表的一個獲取一種寄存器模式,以及響應(yīng)于中斷請求,發(fā)出基于所獲取的寄存器模式的微指令。指令執(zhí)行部被配置成先于提取的指令代碼而執(zhí)行微指令,以將基于所獲取的寄存器模式指定的寄存器的數(shù)據(jù)保存在數(shù)據(jù)存儲器中。在本發(fā)明的另一方面中,通過分別在多個寄存器列表中設(shè)置多個寄存器模式,實現(xiàn)中斷控制方法,其中,多個寄存器模式的每一個指定其數(shù)據(jù)將保存在數(shù)據(jù)存儲器中的寄存器;響應(yīng)于基于中斷因素的出現(xiàn)而發(fā)出的中斷請求,由取指令控制電路從指令存儲器提取指令代碼;響應(yīng)于中斷請求,由寄存器數(shù)據(jù)保存控制電路從多個寄存器列表的一個獲取一種寄存器模式;響應(yīng)于中斷請求,由寄存器數(shù)據(jù)保存控制電路發(fā)出基于所獲取的寄存器模式的微指令;以及由指令執(zhí)行部先于提取的指令代碼而執(zhí)行微指令,以將基于獲取的寄存器模式所指定的寄存器的數(shù)據(jù)保存在數(shù)據(jù)存儲器中。因此,根據(jù)本發(fā)明,能減少在中斷處理中保存的數(shù)據(jù)量。另外,能縮短中斷處理時間。此外,能縮短從接收中斷到開始保存上下文所花費的時間。


結(jié)合附圖,從下述的某些實施例的描述,本發(fā)明的上述和其他目的、優(yōu)點和特征將更顯而易見,其中圖IA和IB是表示與傳統(tǒng)的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖;圖2A和2B是表示與根據(jù)本發(fā)明的第一實施例的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖;圖3是表示為每一中斷因素而設(shè)置的保存模式的示例的圖;圖4是表示根據(jù)本發(fā)明的保存的寄存器模式ID設(shè)置寄存器單元的設(shè)置示例的圖;圖5是表示根據(jù)本發(fā)明的PTN設(shè)置寄存器的設(shè)置示例的圖;圖6是表示根據(jù)本發(fā)明,從中斷接收到返回的操作的示例的流程圖;圖7A和7B是表示根據(jù)本發(fā)明的中斷處理的操作的詳情的流程圖;圖8A和8B表示在根據(jù)本發(fā)明的第一實施例的中斷處理的操作中的時序圖;圖9A和9B表示在根據(jù)常規(guī)示例的中斷處理的操作中的時序圖;圖10是表示根據(jù)本發(fā)明的第一實施例的返回處理的操作的流程圖;圖IlA和IlB表示在根據(jù)本發(fā)明的第一實施例的返回處理的操作中的時序圖;圖12A和12B是表示與根據(jù)本發(fā)明的第二實施例的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖;圖13表示在根據(jù)本發(fā)明的第二實施例的中斷處理的操作中的時序圖;圖14表示在根據(jù)常規(guī)示例,通過流水線處理的中斷操作的時序圖15A和15B是表示與根據(jù)本發(fā)明的第三實施例的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖;圖16A是表示由第三實施例中的模式編號生成電路使用的模式編號表的圖;圖16B是表示第三實施例中的模式編號生成電路的圖;以及圖17A和17B表示在根據(jù)本發(fā)明的第四實施例的返回處理中的操作的時序圖。
具體實施例方式(概述)根據(jù)本發(fā)明的微型計算機基于為每一中斷因素設(shè)置的標(biāo)識符,指定寄存器,以及僅保存在中斷處理中要求保存的寄存器的數(shù)據(jù)。由此,在中斷處理中保存的數(shù)據(jù)量變得小于常規(guī)示例,導(dǎo)致能降低寄存器數(shù)據(jù)所需的存儲器容量,以及還能減少保存寄存器數(shù)據(jù)所花費的時間。根據(jù)本發(fā)明的微型計算機被提供有寄存器數(shù)據(jù)保存控制電路,用于基于微指令, 控制寄存器數(shù)據(jù)保存處理。寄存器數(shù)據(jù)保存控制電路響應(yīng)于微指令,控制指令執(zhí)行部來保存寄存器的數(shù)據(jù),即,處理器的上下文。當(dāng)提取用于中斷處理的指令代碼時,指令執(zhí)行部執(zhí)行微指令,以便將上下文,即,基于標(biāo)識符指定的寄存器的數(shù)據(jù)保存到數(shù)據(jù)存儲器中。因此, 能減少從保存寄存器數(shù)據(jù)(上下文)到執(zhí)行中斷處理所花費的時間,由此提高處理器的使用效率。接著,將參考附圖,在下文中,詳細地描述根據(jù)本發(fā)明的微型計算機。在圖中,相同或類似的參考數(shù)字指定給相同或類似的部件。[第一實施例]圖2A和2B是表示與根據(jù)本發(fā)明的第一實施例的微型計算機中的中斷處理有關(guān)的電路塊的構(gòu)造的圖。參考圖2A和2B,第一實施例中的微型計算機被設(shè)置有中斷控制器 (INTC) 1、處理器(CPU) 2、指令存儲器3、和數(shù)據(jù)存儲器4。中斷控制器1被設(shè)置有優(yōu)先級確定電路11、多個中斷因素寄存器組12-0至 12-(n-l)、ISPR寄存器13、和控制電路14。其中,η為2或以上的整數(shù)。多個中斷因素寄存器組12-0至12-(η-1)分別連接到多條中斷信號線INTO至 INTn-I0多個中斷因素寄存器組12-0至12-(n-l)的每一個被設(shè)置有標(biāo)志寄存器121、優(yōu)先級(PR)寄存器122、和模式編號寄存器(PTN寄存器)123。多條中斷信號線INTO至INTn-I分別分配給不同的中斷因素,并且分別在線路上傳輸中斷信號。基于在中斷信號線的每一條上傳輸?shù)闹袛嘈盘柖_定的數(shù)據(jù)被設(shè)置在中斷因素寄存器組12-0至12-(n-l)的相應(yīng)一個中。即,將對應(yīng)于不同中斷因素的數(shù)據(jù)分別設(shè)置到多個中斷因素寄存器組12-0至12-(n-l)。具體地,將表示中斷因素出現(xiàn)的1位中斷因素標(biāo)志設(shè)置到標(biāo)志寄存器121。當(dāng)中斷因素已經(jīng)出現(xiàn)時,將中斷因素標(biāo)志“1”設(shè)置到標(biāo)志寄存器121,以及當(dāng)結(jié)束用于該中斷因素的中斷處理時,將“0”設(shè)置到標(biāo)志寄存器121。將分配給中斷因素的優(yōu)先級設(shè)置到優(yōu)先級寄存器122。優(yōu)先級寄存器122是具有用于優(yōu)先級的數(shù)量的位大小的寄存器。例如,當(dāng)設(shè)置四個優(yōu)先級的任何一個時,在多個中斷因素寄存器組12-0至12-(n-l)的每一個中,設(shè)置有2 位優(yōu)先級寄存器122。
標(biāo)志寄存器121和優(yōu)先級寄存器122具有與常規(guī)示例相同的構(gòu)造。然而,本實施例中的中斷控制器1進一步設(shè)置有與每一中斷因素(中斷信號線INTO至INTn-I的每一條) 關(guān)聯(lián)的模式編號寄存器123。作為用于識別對應(yīng)于中斷因素的寄存器模式的標(biāo)識符的寄存器模式編號(PTN)被設(shè)置在模式編號寄存器123中。在此,寄存器模式是下述數(shù)據(jù),該數(shù)據(jù)用于指定當(dāng)中斷因素發(fā)生時要保存其數(shù)據(jù)的寄存器即數(shù)據(jù)保存寄存器。在稍后所述的寄存器列表中,對每一中斷因素設(shè)置寄存器模式,并且對一些中斷因素,可以設(shè)置相同的寄存器模式。例如,當(dāng)對η條中斷信號線ΙΝΤ(η個中斷因素),設(shè)置四種寄存器模式,例如“0”、 “1”、“2”和“3”時,在多個中斷因素寄存器組12-0至12-(η-1)的每一個中,提供2位模式編號寄存器123,并且將四種寄存器模式PTN的任何一個設(shè)置到相應(yīng)的模式編號寄存器123 中。同時,中斷因素信號線的數(shù)量可以為四或更多。在ISPR寄存器13中,設(shè)置當(dāng)前中斷處理的服務(wù)級(優(yōu)先級)。例如,根據(jù)4位寄存器構(gòu)成ISra寄存器13。在這種情況下,從底部開始的位位置對應(yīng)于優(yōu)先級“0”、“1”、“2” 和“3”的一個,并且將數(shù)據(jù)“ 1,,設(shè)置在對應(yīng)于中斷處理的優(yōu)先級的位位置中。優(yōu)先級確定電路11將在一個標(biāo)志寄存器121中設(shè)置的優(yōu)先級與當(dāng)前中斷處理的優(yōu)先級進行比較,并且控制處理器2來執(zhí)行具有較高優(yōu)先級的處理。在此,優(yōu)先級確定電路11參考多個中斷因素寄存器組12-0至12-(n-l)來在優(yōu)先級寄存器122中設(shè)置的優(yōu)先級中,選擇具有最高優(yōu)先級的中斷因素,并且將該最高優(yōu)先級與設(shè)置到isra寄存器13的優(yōu)先級進行比較。當(dāng)最高優(yōu)先級高于在isra寄存器13中設(shè)置的當(dāng)前中斷處理的優(yōu)先級時,優(yōu)先級確定電路11將中斷請求INTREQ設(shè)置成“1”來請求中斷因素,并且將被選中斷因素的中斷向量INTVCT (中斷處理程序開始地址),連同中斷請求INTREQ —起發(fā)給處理器2。此時,本實施例中的優(yōu)先級確定電路11將來自被選中斷因素的模式編號寄存器123的寄存器模式編號輸出到處理器2。另一方面,當(dāng)具有設(shè)置成“1”的標(biāo)志的中斷因素的所有優(yōu)先級等于或小于當(dāng)前中斷處理的優(yōu)先級時,優(yōu)先級確定電路11等待對應(yīng)于該中斷因素的中斷向量INTVCT的輸出。 在這種情況下,響應(yīng)于當(dāng)前中斷處理的完成,將具有設(shè)置成“1”的標(biāo)志的中斷因素的優(yōu)先級中的最高優(yōu)先級的中斷因素的中斷請求INTREQ輸出到處理器2。此時,本實施例中的優(yōu)先級確定電路11將來自模式編號寄存器123的中斷模式編號INTPTN,連同中斷向量INTVCT 和中斷請求INTREQ —起,輸出到處理器2。響應(yīng)于來自處理器2的中斷接受通知INTACK,控制電路14將由處理器2執(zhí)行的中斷處理的服務(wù)級(優(yōu)先級)設(shè)置到Isra寄存器13。響應(yīng)于來自處理器2的中斷處理結(jié)束通知INTFIN,控制電路14將對應(yīng)于完成的中斷處理的標(biāo)志寄存器121復(fù)位成“0”。處理器2被設(shè)置有中斷處理控制電路21、取指令控制電路22、指令執(zhí)行部23、寄存器文件24、寄存器數(shù)據(jù)保存控制電路25、寄存器列表選擇電路沈、和寄存器列表單元27。中斷處理控制電路21控制中斷處理的執(zhí)行,并且將接受中斷請求和完成中斷處理的通知輸出到中斷控制器1。響應(yīng)于中斷請求INTREQ,中斷處理控制電路21控制取指令控制電路22從指令存儲器3提取基于中斷向量INTVCT而指定的中斷處理程序的指令代碼。指令執(zhí)行部23執(zhí)行由取指令控制電路22提取的指令代碼,和從寄存器數(shù)據(jù)保存控制電路25獲得的微指令。指令執(zhí)行部23比所提取的指令代碼更優(yōu)先地執(zhí)行從寄存器數(shù)據(jù)保存控制電路25獲得的微指令。具體地,響應(yīng)于從寄存器數(shù)據(jù)保存控制電路25獲得的多循環(huán)微指令,指令執(zhí)行部 23將寄存器文件M的一部分或全部保存到數(shù)據(jù)存儲器4中。此時,寄存器數(shù)據(jù)保存控制電路25基于由寄存器列表選擇電路沈選擇的寄存器文件,指定用于指令執(zhí)行部23的數(shù)據(jù)保存寄存器,來自所述數(shù)據(jù)保存寄存器的數(shù)據(jù)將被保存。當(dāng)完成保存寄存器文件M的數(shù)據(jù)時,指令執(zhí)行部23執(zhí)行用于中斷處理的、由取指令控制電路22提取的指令代碼。寄存器數(shù)據(jù)保存控制電路25被設(shè)置有模式編號(PTN)寄存器250,其存儲和保持從中斷處理控制電路21通知的中斷模式編號。當(dāng)從中斷處理控制電路21接收到中斷請求 INTREQ和中斷模式編號INTPTN時,寄存器數(shù)據(jù)保存控制電路25將中斷模式編號INTPTN存儲在模式編號寄存器250中,并且將其輸出到寄存器列表選擇電路沈。寄存器列表選擇電路26基于在模式編號寄存器250中保持的寄存器模式編號,從寄存器列表單元27選擇多個寄存器列表270的一個。在被選寄存器列表270中,將寄存器列表的每一個與一個寄存器模式編號PTN相關(guān)聯(lián),并且選擇寄存器的寄存器模式。寄存器列表選擇電路沈從被選寄存器列表27提取寄存器模式,并且將寄存器模式輸出到寄存器數(shù)據(jù)保存控制電路25。寄存器數(shù)據(jù)保存控制電路25被設(shè)置有RAM (未示出),用于存儲用于控制寄存器數(shù)據(jù)保存處理的微指令的微程序,并且將包含寄存器模式的微指令輸出到指令執(zhí)行部23,由此控制指令執(zhí)行部23,以基于微指令,執(zhí)行寄存器數(shù)據(jù)保存處理。寄存器文件M包括程序計數(shù)器(PC)寄存器Ml,其存儲程序計數(shù)器(PC) ;PWS寄存器M2,其存儲程序狀態(tài)字(PSW) ;EIPC寄存器243,其用于在中斷處理中存儲PC ;EIPSW 寄存器M4,其用于在中斷處理中存儲PSW ;以及多個通用寄存器240 (例如32位通用寄存器 RO 至 R31)。通過這種結(jié)構(gòu),處理器2在中斷許可狀態(tài)中接受中斷請求,并且基于所提取的寄存器模式,將寄存器的數(shù)據(jù)保存到數(shù)據(jù)存儲器4中。參考圖3至5,將描述為每一中斷因素而設(shè)置的寄存器模式的變形。圖3是表示為每一中斷因素而設(shè)置的寄存器模式的示例的圖。在此,示出了下述四種寄存器模式。(1)將16條中斷信號線INTO至INT15用于OS中斷。在這種情況下,有必要保存可能由OS破壞的13個通用寄存器R3和R20至R31的數(shù)據(jù),并且在寄存器列表270中設(shè)置該寄存器模式,以便將這些寄存器指定為數(shù)據(jù)保存寄存器。(2)將16條中斷信號線INT16至INT31用于用戶中斷A。在這種情況下,有必要保存七個寄存器的數(shù)據(jù),即,可能由中斷處理程序破壞的通用寄存器RO至R4、EIPC寄存器 243和EIPSW寄存器244的數(shù)據(jù),并且將該寄存器模式設(shè)置在寄存器文件270中,以便將這些寄存器指定為數(shù)據(jù)保存寄存器。(3)將16條中斷信號線INT32至INT47用于用戶中斷B。在這種情況下,有必要保存七個寄存器的數(shù)據(jù),即,可能由中斷處理程序破壞的通用寄存器RlO至R14、EIPC寄存器M3、和EIPSW寄存器244的數(shù)據(jù),并且將該寄存器模式設(shè)置在寄存器列表270中,以便將這些寄存器指定為數(shù)據(jù)保存寄存器。(4)將16個中斷信號線INT48至INT63用于用戶中斷C。在這種情況下,有必要保存10個寄存器的數(shù)據(jù),S卩,通用寄存器R3、RlO至R14、似9至R31、EIPC寄存器243和 EIPSff寄存器244的數(shù)據(jù),并且將該寄存器模式設(shè)置在寄存器列表270中,以便將這些寄存器指定為數(shù)據(jù)保存寄存器。上述寄存器模式⑴至⑷分別與寄存器模式編號“0”、“1”、“2”和“3”相關(guān)聯(lián)。 圖4是表示根據(jù)本實施例的寄存器列表單元27的示例的圖。寄存器列表270包括作為表示與寄存器模式編號PTN關(guān)聯(lián)的寄存器的數(shù)據(jù)的寄存器模式。在圖4所示的示例中,寄存器列表單元27由四個寄存器列表構(gòu)成,每一個與四個寄存器模式編號PTN的任一個關(guān)聯(lián)。寄存器列表270包括用于34位的觸發(fā)器,并且位位置分別對應(yīng)于通用寄存器RO至R31、EIPC 寄存器243和EIPSW寄存器M4。在寄存器列表270中,將“ 1”設(shè)置到對應(yīng)于數(shù)據(jù)保存寄存器的位位置,以及將“0” 設(shè)置到對應(yīng)于數(shù)據(jù)未保存寄存器的位位置。因此,能在寄存器列表270中設(shè)置寄存器模式。 由于對一個寄存器模式編號PTN,提供寄存器列表單元27中的每一寄存器列表270,所以能由寄存器模式編號PTN,唯一地標(biāo)識寄存器模式。在圖4所示的示例中,寄存器模式(1)至 (4)分別與寄存器模式編號PTN “0”至“3”關(guān)聯(lián),并且將其設(shè)置在寄存器列表單元27中。例如,當(dāng)將中斷模式編號“1”通知處理器2時,選擇具有寄存器模式編號“1”的寄存器列表270,并且將被選寄存器模式的寄存器的數(shù)據(jù)保存到數(shù)據(jù)存儲器4中。在本實施例的中斷控制器1中,對每一中斷因素(中斷信號線),設(shè)置寄存器模式編號PTN。圖5是表示根據(jù)本實施例的模式編號寄存器123的示例的圖。在圖5所示的示例中,對64條中斷信號線INTO至INT63的每一條,提供2位模式編號寄存器123,并且將對應(yīng)于中斷因素的寄存器模式編號PTN設(shè)置到中斷信號線的每一條。在此,將寄存器模式編號“0”設(shè)置到中斷信號線INTO至INT15,以及將寄存器模式編號“1”設(shè)置到中斷信號線 INT16至INT31,將寄存器模式編號“2”設(shè)置到中斷信號線INT32至INT47,以及將寄存器模式編號“3”設(shè)置到中斷信號線INT48至INT63。響應(yīng)于中斷因素的出現(xiàn),本實施例中的中斷控制器1獲取用于中斷信號線的寄存器模式編號PTN,并且將寄存器模式編號作為中斷模式編號INTPTN通知給處理器2。基于被通知的中斷模式編號INTPTN,寄存器數(shù)據(jù)保存控制電路25能開始中斷接受處理,并且指定數(shù)據(jù)保存寄存器(寄存器模式)并且執(zhí)行寄存器數(shù)據(jù)保存處理。接著,參考圖6至11B,將描述根據(jù)第一實施例的中斷處理中的操作的詳情。圖6是表示根據(jù)本發(fā)明,從中斷接受處理到返回處理的操作的示例的流程圖。參考圖6,將描述從中斷接受處理到返回處理,再到主例程的多個中斷操作的示例。當(dāng)在執(zhí)行指令存儲器3中存儲的主例程期間,許可中斷請求時,具有當(dāng)前狀態(tài)中的最高優(yōu)先級的中斷請求被接受(步驟S101,S102)。其中,由于所請求的中斷因素的優(yōu)先級“ 1 ”高于正在執(zhí)行的主例程的服務(wù)級(優(yōu)先級),因此,處理器2接受該中斷請求,分支到指令存儲器3中存儲的中斷處理程序,以及執(zhí)行中斷例程1。此時,處理器2將基于所請求的中斷因素而唯一確定的寄存器數(shù)據(jù)保存到數(shù)據(jù)存儲器4中。當(dāng)在中斷例程1的執(zhí)行期間許可新的中斷請求,并且新的中斷請求的最高優(yōu)先級高于中斷例程1的服務(wù)級(優(yōu)先級)時,接受新的中斷請求(步驟S201,S202)。其中,由于新的中斷請求的優(yōu)先級“0”高于正在執(zhí)行的中斷例程1的優(yōu)先級“1”,因此,處理器2接受該新的中斷請求,分支到中斷處理程序并且執(zhí)行中斷例程2。此時,處理器2響應(yīng)于所接受的中斷請求,將寄存器數(shù)據(jù)唯一地保存到數(shù)據(jù)存儲器4中。當(dāng)在執(zhí)行中斷例程2期間,許可中斷請求,然后中斷例程2結(jié)束時,處理器2執(zhí)行中斷處理程序的返回指令(RET指令)(步驟S301,S3(^)。其中,將在步驟S202,保存到數(shù)據(jù)存儲器4中的數(shù)據(jù)返回給寄存器文件24,并且重啟掛起的中斷例程1。當(dāng)中斷例程1結(jié)束時,處理器2執(zhí)行中斷處理程序的返回指令(RET指令)(步驟 S20)。在此,在步驟S102處保存到數(shù)據(jù)存儲器4中的數(shù)據(jù)被返回到寄存器文件24,并且重啟掛起的主例程。如上所述,根據(jù)本實施例,在多個中斷處理中,響應(yīng)于中斷請求的每一個,保存對應(yīng)于中斷因素的數(shù)據(jù)保存寄存器的上下文(即,寄存器數(shù)據(jù))。為此,防止對在中斷處理中可能未被破壞的寄存器數(shù)據(jù)進行保存,由此降低保存的數(shù)據(jù)量。參考圖7A至8B,將描述根據(jù)本實施例的中斷接受處理中的操作的詳情。在此,例如,假定已經(jīng)將圖3至5中所示的寄存器模式和寄存器模式編號PTN設(shè)置到微型計算機。圖7A和7B是表示在圖6中所示的步驟S102和S202的中斷接受處理中的操作的詳情的流程圖。參考圖7A和7B,中斷控制器1在中斷因素寄存器組中搜索標(biāo)志寄存器以便檢測中斷因素,并且執(zhí)行檢測到的中斷因素的優(yōu)先級的比較(步驟S11)。其中,中斷控制器1在具有標(biāo)志寄存器121中設(shè)置的“1”的中斷因素的優(yōu)先級中,選擇最高優(yōu)先級,并且確定被選優(yōu)先級是否高于正在執(zhí)行的當(dāng)前處理的服務(wù)級(優(yōu)先級)。當(dāng)被選優(yōu)先級高于當(dāng)前服務(wù)級時,中斷控制器1將“1”設(shè)置到對應(yīng)于被選優(yōu)先級的中斷因素的中斷請求INTREQ,并且輸出對應(yīng)于中斷因素的中斷向量INTVCT和中斷模式編號INTPTN(步驟S12和S13,是)。另一方面,當(dāng)被選優(yōu)先級不高于當(dāng)前服務(wù)級時,中斷控制器1返回到步驟Sll (步驟S12,否)。當(dāng)許可對處理器2的中斷請求時(PSW中的中斷禁止標(biāo)志DI =“0”),處理器2響應(yīng)于中斷請求INTREQ,獲取中斷向量INTVCT和中斷模式編號INTPTN (步驟S14和S15,是)。 此時,處理器2將表示接受中斷請求INTREQ的中斷接受通知INTACK通知給中斷控制器1。 另一方面,當(dāng)禁止對處理器2的中斷請求時(PSW中的中斷禁止標(biāo)志DI =“1”),處理器2 進入步驟Sll (步驟S14,否)。響應(yīng)于中斷接受通知INTACK,中斷控制器1將由處理器2接受的中斷請求的服務(wù)級(優(yōu)先級)設(shè)置到Isra寄存器13,并且將對應(yīng)于所接受的中斷請求的標(biāo)志寄存器121復(fù)位成“0”(步驟S 16)。在步驟S15后,處理器2響應(yīng)于中斷請求INTREQ,中斷當(dāng)前執(zhí)行的指令的執(zhí)行,并且進入中斷禁止?fàn)顟B(tài)(步驟S17至S19)。更具體地說,在中斷許可狀態(tài)的情況下,處理器2 響應(yīng)于中斷請求INTREQ,中斷當(dāng)前執(zhí)行的指令的執(zhí)行,并且將中斷時的PC和PSW分別存儲到EIPC寄存器243和EIPSW寄存器M4 (步驟S17,S18)。由此,對在執(zhí)行中斷處理前的處理器2的內(nèi)部狀態(tài)進行存儲。當(dāng)存儲內(nèi)部狀態(tài)時,處理器2設(shè)置中斷禁止?fàn)顟B(tài)(PSW中的中斷禁止標(biāo)志DI = “1”)(步驟S19)。處理器2開始提取基于中斷向量INTVCT而指定的中斷處理程序(步驟S20)。此外,基于來自寄存器數(shù)據(jù)保存控制電路25的微指令,選擇對應(yīng)于中斷模式編號 INTPTN的寄存器模式,并且將所選寄存器模式的寄存器的數(shù)據(jù)保存到數(shù)據(jù)存儲器4中(步
12驟S21)。同時開始步驟S19至S21的處理。當(dāng)結(jié)束對應(yīng)于中斷模式編號INTPTN的寄存器模式的寄存器數(shù)據(jù)的保存時,處理器2將對應(yīng)于中斷模式編號INTPTN的寄存器模式編號PTN保存到數(shù)據(jù)存儲器4中(步驟 S22)。當(dāng)結(jié)束寄存器數(shù)據(jù)和寄存器模式編號PTN的保存時,處理器2執(zhí)行所提取的中斷處理程序(步驟S23)。通過開始中斷處理,結(jié)束中斷接受處理。如上所述,根據(jù)本發(fā)明,響應(yīng)于中斷因素的出現(xiàn),確定優(yōu)先級并且保存對應(yīng)于所接受的中斷請求的寄存器數(shù)據(jù),同時提取中斷處理程序。根據(jù)本發(fā)明,由于基于寄存器模式編號PTN,唯一地標(biāo)識數(shù)據(jù)保存寄存器,因此,可以僅選擇和保存通過中斷處理可能被破壞的寄存器的數(shù)據(jù)。由此,能降低存儲容量,并且還能減少保存所需的時間。此外,由于通過在寄存器數(shù)據(jù)保存控制電路25中執(zhí)行微程序來實現(xiàn)寄存器數(shù)據(jù)保存處理,因此,不必從指令存儲器3提取指令。為此,能減少提取保存指令所需的時間,由此能減少保存處理所需的時間。圖8A和8B表示根據(jù)本發(fā)明的第一實施例的中斷處理的操作的時序圖。參考圖8A 和8B,將描述第一實施例中的中斷處理的操作的詳情。在此,將描述當(dāng)發(fā)出多個中斷請求時的操作,其中,發(fā)出具有優(yōu)先級“ 1”的中斷請求,然后發(fā)出具有比優(yōu)先級“ 1”更高的優(yōu)先級 “0”的中斷請求。在此,假定如圖3至5所示,設(shè)置寄存器模式、寄存器列表單元27、和模式編號寄存器123。對應(yīng)于中斷因素的優(yōu)先級寄存器122中設(shè)置的優(yōu)先級如下。S卩,將優(yōu)先級 “1” (Pril)分配給中斷因素INT30至INT31,將優(yōu)先級“0” (PriO)分配給中斷因素INT32, 將優(yōu)先級“2” (Pri2)分配給中斷因素INT34至INT36,以及將優(yōu)先級“3” (Pri3)分配給中斷因素INT33和INT37。首先,在時鐘⑶,將優(yōu)先級“3”的中斷因素信號INT33輸入到中斷控制器1。此時, 假定將“0000B”設(shè)置到ISI^R寄存器13 (無當(dāng)前中斷處理),并且除中斷因素信號INT33外無中斷因素出現(xiàn)。為此,在中斷因素INT33出現(xiàn)兩個時鐘后,在時鐘C2,中斷控制器1將中斷因素INT33的出現(xiàn)通知處理器2。在此,將“1”設(shè)置到中斷請求標(biāo)志INTREQ,以及輸出作為中斷向量INTVCT的“310H”和作為寄存器模式編號INTPTN的“2H”。在時鐘Cl,將具有優(yōu)先級“2”(Pri2)的中斷因素信號INT34輸入到中斷控制器1。 此時,ISPR寄存器13處于“0000B”的狀態(tài)中(無當(dāng)前中斷處理),并且中斷因素信號INT34 在其他出現(xiàn)的中斷因素中,具有最高優(yōu)先級。為此,在中斷因素INT34出現(xiàn)兩個時鐘后,在時鐘C3,中斷控制器1將中斷因素INT34的出現(xiàn)通知給處理器2。在此,將“1”設(shè)置到中斷請求標(biāo)志INTREQ,并且輸出作為中斷向量INTVCT的“320H”和作為寄存器模式編號INTPTN 的 “2H”。在時鐘C2,將具有優(yōu)先級“l(fā)”(ft~il)的中斷因素信號INT31輸入到中斷控制器1。 此時,ISPR寄存器13處于“0000B”的狀態(tài)中(無當(dāng)前中斷處理),并且中斷因素信號INT31 在其他出現(xiàn)的中斷因素中,具有最高優(yōu)先級。為此,在中斷因素INT31出現(xiàn)兩個時鐘后,在時鐘C4,中斷控制器1將中斷因素INT31的出現(xiàn)通知給處理器2。在此,將“1”設(shè)置到中斷請求標(biāo)志INTREQ,并且輸出作為中斷向量INTVCT的“2F0H”和作為寄存器模式編號INTPTN 的 “1H,,。在時鐘CO至C3期間,盡管處理器2處于中斷許可狀態(tài)中,但由于處理器2的內(nèi)部狀態(tài)導(dǎo)致不能接受中斷請求。在這種情況下,不能接受中斷因素INT33和INT34。在時鐘C4,當(dāng)處理器2進入中斷接受狀態(tài)時,處理器2接受從中斷控制器1輸出的中斷向量 INTVCT “2F0H” (中斷因素INT31),并且將中斷接受通知INTACK返回到中斷控制器1。在時鐘C4,當(dāng)接受中斷請求時,將處理器2的內(nèi)部狀態(tài)(PC和PSW的值ins4(PC) 和ins4 (PSff))存儲在EIPC寄存器243和EIPSff寄存器244中。在時鐘C5,在中斷控制器1中,響應(yīng)于中斷接受通知INTACK,清零中斷因素INT31 的標(biāo)志寄存器121。另外,響應(yīng)于中斷因素INT31的優(yōu)先級“Pril”,將ISI3R寄存器13的第二低位設(shè)置成“1” ( “0010B”)。此外,在輸出中斷接受通知INTACK的處理器2中,將“1” 設(shè)置到PSW中的中斷禁止標(biāo)志DI,設(shè)置成中斷禁止?fàn)顟B(tài)。在時鐘C5,在接受中斷請求的中斷處理控制電路21的控制下,取指令控制電路22 從指令存儲器3提取中斷處理程序的指令(EI指令),并且寄存器數(shù)據(jù)保存控制電路25開始寄存器數(shù)據(jù)保存處理。此時,將中斷模式編號PTN “1H” (PTNl)設(shè)置到模式編號寄存器 250。更具體地說,寄存器數(shù)據(jù)保存控制電路25基于在模式編號寄存器250中設(shè)置的 “1H”的模式編號INTPTN(PTm),從寄存器列表單元27提取寄存器模式。然后,寄存器數(shù)據(jù)保存控制電路25將包含所提取的寄存器模式的多循環(huán)微指令提供給指令執(zhí)行部U。指令執(zhí)行部M使所提取的EI指令等待,并首先執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的多循環(huán)微指令。因此,在時鐘C5至C11,將包含在基于中斷模式編號INTPTN “1H” (PTNl)所指定的寄存器模式中的EIPC寄存器M3、EIPSff寄存器244和通用寄存器R0、Rl、R2、R3、R4 的數(shù)據(jù)保存到數(shù)據(jù)存儲器4中。同時,在時鐘C12,將“1H”的寄存器模式編號PTm保存到數(shù)據(jù)存儲器4中。當(dāng)結(jié)束指定寄存器模式的寄存器的數(shù)據(jù)的保存時,指令執(zhí)行部23在時鐘C13執(zhí)行所提取的EI指令(中斷許可指令)。接著,從由中斷向量“2F0H”指定的中斷處理程序的地址,提取指令代碼,以及由指令執(zhí)行部23執(zhí)行該中斷處理程序。通過在時鐘C13執(zhí)行EI指令,在下一時鐘C14,釋放中斷禁止?fàn)顟B(tài)。根據(jù)本發(fā)明,雖然在接受中斷請求后,在時鐘C5立即提取EI指令,但是在時鐘C5, 執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的微指令,而不執(zhí)行EI指令。在時鐘C9,輸入具有優(yōu)先級“0” (PriO)的中斷因素信號INT32。此時,ISI3R處于 “0010B”的狀態(tài)中(表示具有服務(wù)級I^ril的中斷處理),并且中斷因素信號INT32表示其他出現(xiàn)的中斷因素中的最高優(yōu)先級。為此,在中斷因素INT32出現(xiàn)兩個時鐘后,在時鐘C11,中斷控制器1將中斷因素INT31的出現(xiàn)通知處理器2。其中,將“1”設(shè)置到中斷請求INTREQ, 并且輸出作為中斷向量INTVCT的“300H”和作為寄存器模式編號INTPTN的“2H”。當(dāng)由于在時鐘C14,執(zhí)行EI指令,而導(dǎo)致處理器2設(shè)置成中斷許可狀態(tài),并且在時鐘C16,設(shè)置成中斷接受狀態(tài)時,處理器2接受從中斷控制器1輸出的中斷向量 INTVCT “300H” (中斷因素INT32),并且將中斷接受通知INTACK恢復(fù)到中斷控制器1。接著,如在時鐘C4至C13中,中斷當(dāng)前的中斷處理,并且執(zhí)行用于中斷因素INT32 的寄存器數(shù)據(jù)保存處理和中斷處理。更具體地說,當(dāng)在時鐘C16接受中斷處理時,將處理器2的內(nèi)部狀態(tài)(PC和PSW的值:inl2(PC), int 12 (PSff))存儲在 EIPC 寄存器 243 和 EIPSW 寄存器 244 中。
在時鐘C17,在中斷控制器1中,響應(yīng)于中斷接受通知INTACK,清零中斷因素INT32 的標(biāo)志寄存器121。此外,響應(yīng)于中斷因素INT32的優(yōu)先級“ft~i0”,將ISra寄存器13的最低位設(shè)置成“1” ( “0011b”)。此外,在輸出中斷接受通知INTACK的處理器2中,將“1”設(shè)置到PSW的中斷禁止標(biāo)志DI,設(shè)置成中斷禁止?fàn)顟B(tài)。在時鐘C17,在由接受中斷請求的中斷處理控制電路21的控制下,取指令控制電路22提取中斷處理程序的指令代碼,即,EI指令,并且寄存器數(shù)據(jù)保存控制電路25開始寄存器數(shù)據(jù)保存處理。此時,將“2H”的中斷模式編號INTPTN PTN2設(shè)置到模式編號寄存器 250。在此,寄存器數(shù)據(jù)保存控制電路25基于“ 2H”的中斷模式編號INTPTN (PTN2),從寄存器列表單元27提取寄存器模式。然后,寄存器數(shù)據(jù)保存控制電路25將包含寄存器模式 “PTN2”的多循環(huán)微指令提供給指令執(zhí)行部23。指令執(zhí)行部23使所提取的EI指令等待,并首先執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的多循環(huán)微指令。因此,在時鐘C17至C23,將基于中斷模式編號INTPTN “2H”(PTN2)的EIPC寄存器243、EIPSW寄存器M4、和通用寄存器R10、R11、R12、R13、R14的數(shù)據(jù)保存到數(shù)據(jù)存儲器4中,以及在時鐘C24,將模式編號寄存器250中的寄存器模式編號PTN “2H” (PTN2)保存到數(shù)據(jù)存儲器4中。當(dāng)結(jié)束指定寄存器模式的寄存器的數(shù)據(jù)的保存時,在時鐘C25,指令執(zhí)行部23執(zhí)行所提取的EI指令(中斷許可指令)。接著,從基于中斷向量“300H”而指定的中斷處理程序的地址提取指令,并且由指令執(zhí)行部23執(zhí)行該中斷處理程序。通過在時鐘C25執(zhí)行EI 指令,在下一時鐘C26,釋放中斷禁止?fàn)顟B(tài)。如上所述,根據(jù)本發(fā)明,由于基于中斷因素,能將寄存器唯一地指定為數(shù)據(jù)保存寄存器,因此,每次執(zhí)行中斷處理時,能僅保存可能被破壞的少量寄存器的數(shù)據(jù)。接著,將參考圖9A和9B中所示的傳統(tǒng)示例,描述根據(jù)本發(fā)明的中斷接受處理的效果。圖9A和9B表示根據(jù)傳統(tǒng)示例的中斷處理的時序圖。根據(jù)傳統(tǒng)示例,當(dāng)在時鐘C4,由處理器200接受中斷請求時,在時鐘C4中斷所提取的指令的處理,并且在時鐘C5,將PC和PSW的數(shù)據(jù)存儲到EIPC寄存器和EIPSW寄存器中。 然后,從時鐘C6開始以及之后,提取并執(zhí)行用于保存EIPC、EIPSW和通用寄存器的數(shù)據(jù)的指令。在傳統(tǒng)示例中,由于提取并執(zhí)行用于寄存器數(shù)據(jù)保存處理的指令,因此,從中斷當(dāng)前處理到開始(執(zhí)行)寄存器數(shù)據(jù)保存處理的周期為兩個時鐘。同時,根據(jù)本發(fā)明,基于從響應(yīng)于由中斷處理控制電路21提供的中斷請求而進行操作的寄存器數(shù)據(jù)保存控制電路25 提供的微指令,對寄存器數(shù)據(jù)保存處理進行控制。即,由于在中斷當(dāng)前處理后,無需提取中斷處理程序,就能執(zhí)行寄存器數(shù)據(jù)保存處理,因此,從處理中斷到開始寄存器數(shù)據(jù)保存處理的周期為1個時鐘,這意味著能比傳統(tǒng)示例更快地開始寄存器數(shù)據(jù)保存處理。根據(jù)本發(fā)明,由于在執(zhí)行寄存器數(shù)據(jù)保存處理期間,已經(jīng)提取將在寄存器數(shù)據(jù)保存處理后執(zhí)行的指令(在本示例中,為EI指令),因此,在寄存器數(shù)據(jù)保存處理后,能立即開始中斷處理程序的執(zhí)行。根據(jù)傳統(tǒng)示例,不能為每一中斷因素選擇數(shù)據(jù)保存寄存器。為此,在許可多個中斷的系統(tǒng)中,有必要總是指定在所有類型的中斷處理中可能被使用的所有寄存器,而與中斷處理無關(guān),因此,即使執(zhí)行任一類型的中斷處理,也不會破壞寄存器數(shù)據(jù)。在圖9A和9B所示的示例中,將通用寄存器RO至R4和RlO至R14設(shè)置成數(shù)據(jù)保存寄存器。在這種情況下, 即使僅僅是通過中斷因素INT31的中斷處理而可能破壞的通用寄存器RO至R4的數(shù)據(jù),也保存通用寄存器RlO至R14的數(shù)據(jù),導(dǎo)致寄存器數(shù)據(jù)保存處理所需的時間變?yōu)閺臅r鐘C6至 C16的11個時鐘。相反,根據(jù)本發(fā)明,當(dāng)執(zhí)行中斷因素INT31的中斷處理時,由于為每一中斷因素選擇數(shù)據(jù)保存寄存器,因此,僅選擇和保存寄存器RO至R4的數(shù)據(jù)。在這種情況下,包括用于保存寄存器模式編號PTN所需的時間的寄存器數(shù)據(jù)保存處理所需的時間變?yōu)閺臅r鐘C5至 C12的8個時鐘,其遠小于傳統(tǒng)示例中的時間。在傳統(tǒng)示例中,過度地使用用于保存通用寄存器RlO至R14的數(shù)據(jù)的存儲容量。然而,在本發(fā)明中,由于不執(zhí)行不必要的寄存器數(shù)據(jù)保存處理,因此,能降低用于寄存器數(shù)據(jù)保存處理所需的存儲容量。由此,能降低數(shù)據(jù)存儲器4的容量,導(dǎo)致電路的小型化。接著,參考圖10、11A和11B,描述根據(jù)本發(fā)明的中斷返回處理中的操作的詳情。圖10是表示在圖6所示的步驟S203和S302的返回處理中的操作的詳情的流程圖。參考圖10,處理器2響應(yīng)于在中斷處理中的RET指令的執(zhí)行,根據(jù)由堆棧指針 (SP)指定的數(shù)據(jù)(堆棧)存儲器4的位置,讀取寄存器模式編號PTN(步驟S31)。接著,基于所讀取的寄存器模式編號PTN,選擇寄存器數(shù)據(jù),并且響應(yīng)于從寄存器數(shù)據(jù)保存控制電路 25提供的微指令(出棧指令的操作),從數(shù)據(jù)存儲器4讀出響應(yīng)于于微指令(進棧指令的操作)的已經(jīng)在數(shù)據(jù)(棧)存儲器4中存儲的寄存器數(shù)據(jù),并將其寫入寄存器文件中的寄存器(步驟S3》。在此,寄存器數(shù)據(jù)保存控制電路25基于所讀取的寄存器模式編號PTN來指定寄存器模式(在此,返回寄存器的寄存器模式),并且響應(yīng)于微指令來將寄存器數(shù)據(jù)返回到寄存器文件對的寄存器。因此,將在中斷處理中被保存到數(shù)據(jù)存儲器4中的寄存器數(shù)據(jù)返回。當(dāng)在步驟S32,返回EIPC和EIPSW寄存器243和M4的數(shù)據(jù)時,在緊跟EIPC和 EIPSW寄存器243和244的數(shù)據(jù)的返回的時序處,處理器2的內(nèi)部狀態(tài)(PC,PSW)被返回(步驟S33)。在此,將EIPC寄存器243的數(shù)據(jù)和EIPSW寄存器244的數(shù)據(jù)分別存儲在PC寄存器241和PSW寄存器M2中。接著,響應(yīng)于來自處理器2的中斷結(jié)束通知INTFIN,改變中斷控制器1中的 ISPR(中斷服務(wù)優(yōu)先級)寄存器13的服務(wù)級(步驟S34)。更具體地說,當(dāng)執(zhí)行RET指令時,處理器2在一個時鐘期間,將中斷結(jié)束通知INTFIN設(shè)置成“1”,并且中斷控制器1響應(yīng)于中斷結(jié)束通知,改變isra寄存器13。 如上所述,根據(jù)本發(fā)明,由于基于所讀取的寄存器模式編號PTN,唯一地指定數(shù)據(jù)將返回的寄存器,因此,能僅返回所保存的寄存器數(shù)據(jù)。此外,由于通過執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的微程序,實現(xiàn)中斷返回處理,因此,不必從指令存儲器3提取任何指令。為此,能降低用于存儲中斷返回處理所需的指令集的存儲容量。此外,能減少提取返回指令所需的時間,能減少用于中斷返回處理所需的時間。 圖IlA和IlB表示根據(jù)本發(fā)明的本實施例的中斷返回處理的時序圖。參考圖IlA 和11B,將描述根據(jù)本實施例的中斷返回處理中的操作的詳情。在此,例如,將根據(jù)圖8A和 8B所示的中斷處理來描述中斷返回處理。
16
首先,在時鐘⑶,結(jié)束中斷因素INT32的中斷處理,并且提取RET指令。在時鐘Cl, 處理器2執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的微指令,并且從數(shù)據(jù)存儲器4讀取寄存器模式編號PTN。更具體地說,響應(yīng)于提取RET指令,中斷處理控制電路21向寄存器數(shù)據(jù)保存控制電路25發(fā)出指令。在時鐘Cl,響應(yīng)于來自中斷處理控制電路21的指令,寄存器數(shù)據(jù)保存控制電路25將用于執(zhí)行寄存器數(shù)據(jù)返回處理的微指令輸出到指令執(zhí)行部23。在時鐘 C2,指令執(zhí)行部23在多個循環(huán)中執(zhí)行該微指令,根據(jù)由堆棧指針SP表示的位置來讀取寄存器模式編號PTN( “2H”)(PTN2),以及將寄存器模式編號存儲在模式編號寄存器250中。當(dāng)執(zhí)行微指令時,即,響應(yīng)于出棧指令,從最高位置順序地更新堆棧指針SP。在時鐘C3至C9,處理器2基于模式編號寄存器250中的寄存器模式編號 PTN “2H”(PTN2),指定將向其返回數(shù)據(jù)的寄存器,并且響應(yīng)于微指令,執(zhí)行中斷返回處理。更具體地說,寄存器數(shù)據(jù)保存控制電路25基于寄存器模式編號PTN “2H”(PTN2), 從寄存器列表單元27提取寄存器模式。然后,寄存器數(shù)據(jù)保存控制電路25將包含寄存器模式“PTN2”的多循環(huán)微指令(的寄存器數(shù)據(jù)返回指令)提供給指令執(zhí)行部23。指令執(zhí)行部23執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的寄存器數(shù)據(jù)返回指令。因此,在時鐘C3至C9,響應(yīng)于出棧指令,根據(jù)由堆棧指針SP指定的位置來讀取“R14至R10”、 PSff "intl2 (PSff) ”和PC "intl2(PC) ”的數(shù)據(jù),并且在隨后的時鐘,將其分別返回到由寄存器模式編號INTPTN “2H” (PTN2)指定的通用寄存器R14、R13、R12、Rll和RIO、EIPSW寄存器244和EIPC寄存器243。當(dāng)在時鐘C10,由指令執(zhí)行部23執(zhí)行RET指令時,在一個時鐘期間,處理器2 (中斷處理控制電路21)將返回結(jié)束通知INTFIN設(shè)置成“1”。此時,將處理器2的內(nèi)部狀態(tài)(PC, PSff)返回到 EIPC 寄存器 243 和 EIPSff 寄存器 244 的數(shù)據(jù)(intl2 (PC),intl2 (PSff))。從時鐘Cl 1開始以及其后,基于返回的PC和PSW,重啟由于中斷處理而還未完成的處理。在此,在時鐘Cll提取指令“Intl2”并且在時鐘C12執(zhí)行。當(dāng)完成由于中斷請求而被中斷的處理時,在時鐘C 13提取RET指令。在時鐘C14, 處理器2執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的微指令,并且從數(shù)據(jù)存儲器4讀取寄存器模式編號PTN。接著,如在時鐘Cl至C9中,在時鐘C14到C22,按順序讀取已經(jīng)保存到數(shù)據(jù)存儲器4中的寄存器模式編號PTN “1H” (PTNl),以及數(shù)據(jù)“R4至R0”、PSff "int4(PSff) ”和 PC “ int4 (PC) ”,并將其返回到分別由寄存器模式編號INTPTN “ 1H"(PTNl)指定的模式編號寄存器250、以及通用寄存器R4、R3、R2、Rl和R0、EIPSff寄存器M4和EIPC寄存器M3。從時鐘C24開始以及其后,響應(yīng)于寄存器的返回處理的完成,執(zhí)行由于中斷而掛起的int4后的主例程。如上所述,在本實施例的中斷返回處理中,返回所保存的寄存器模式編號PTN,并且通過使用寄存器模式編號PTN,能指定將向其返回數(shù)據(jù)的寄存器。為此,響應(yīng)于微指令,能執(zhí)行中斷返回處理,由此減少提取返回指令所需的時間。[第二實施例]接著,將參考圖12A、12B、13和14,描述根據(jù)本發(fā)明的第二實施例的微型計算機的中斷處理的操作的詳情。在第一實施例中,由于無需提取中斷處理程序的指令代碼,所以能執(zhí)行寄存器數(shù)據(jù)保存處理,因此,與傳統(tǒng)情形相比能早一個時鐘地開始寄存器數(shù)據(jù)保存處理。在第二實施例中,能比第一實施例更顯著地實現(xiàn)比傳統(tǒng)情形更早地開始寄存器數(shù)據(jù)保存處理的效果。圖12A和12B是表示與根據(jù)本發(fā)明的第二實施例的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖。參考圖12A和12B,第二實施例中的指令執(zhí)行部23具有多級流水線構(gòu)造。除指令執(zhí)行部23外的構(gòu)造與第一實施例中相同,因此,將省略其詳細描述。第二實施例中的指令執(zhí)行部23被設(shè)置有調(diào)度級(dispatch stage)DP 231、指令解碼級ID 232、操作級EX 233、地址傳送級DT 234、取數(shù)據(jù)級DF 235和寫回級WB236。調(diào)度級DP 231基于由取指令控制電路22提取的指令代碼,確定執(zhí)行單元。指令解碼級ID 232 解碼該指令代碼,生成即時數(shù)據(jù)并且從在調(diào)度級DP 231或微指令中指定的指令寄存器讀取數(shù)據(jù)。操作級EX 233執(zhí)行從指令寄存器讀取的指令的操作,以便生成用于存儲器存取的地址。地址傳送級DF 234將由操作級EX233生成的地址傳送到數(shù)據(jù)存儲器4,并且執(zhí)行存儲器存取。取數(shù)據(jù)級DF 235基于由操作級EX 233生成的地址,從數(shù)據(jù)存儲器4獲取數(shù)據(jù)并且將數(shù)據(jù)傳送給寫回級WB 236。寫回級WB 236將所獲得的數(shù)據(jù)寫入通用寄存器M0。在第二實施例的微型計算機中,通過流水線處理,加速中斷處理和中斷返回處理。 根據(jù)本發(fā)明,通過執(zhí)行從寄存器數(shù)據(jù)保存控制電路25提供的微指令,能省略兩個時鐘的處理,即,指令代碼的提取和解碼所需的時鐘的處理。因此,能比傳統(tǒng)情形早至少兩個時鐘地開始寄存器數(shù)據(jù)保存處理和中斷返回處理。圖13表示在根據(jù)本發(fā)明的第二實施例的中斷處理中的時序圖。參考圖13,將描述根據(jù)第二實施例的中斷處理的操作的詳情。在此,將描述在執(zhí)行主例程期間,在時鐘C4生成中斷請求時的操作。如在第一實施例中,在生成中斷因素INT31兩個時鐘后,在時鐘C4,中斷控制器1 將中斷因素INT31的生成通知給處理器2。在此,將“1”設(shè)置到中斷請求INTREQ,以及輸出作為中斷向量INTVCT的“2F0H”和作為中斷模式編號INTPTN的“1H”。當(dāng)在時鐘C4,處理器2進入中斷接受狀態(tài)時,處理器2接受從中斷控制器1輸出的中斷向量INTVCT “2F0H”(中斷因素INT31),并且將中斷接受通知INTACK返回到中斷控制器1 ο當(dāng)在時鐘C4,接受中斷請求時,將處理器2的內(nèi)部狀態(tài)(PC和PSW的數(shù)據(jù) ins4 (PC),ins4 (PSff))存儲在 EIPC 寄存器 243 和 EIPSW 寄存器 244 中。在時鐘C5,在接受中斷請求的中斷處理控制電路21的控制下,取指令控制電路22 提取中斷處理程序的指令(EI指令),并且寄存器數(shù)據(jù)保存控制電路25開始寄存器數(shù)據(jù)保存處理。此時,將寄存器模式編號PTN的“1H”(PTNl)設(shè)置到模式編號寄存器250。更具體地說,寄存器數(shù)據(jù)保存控制電路25從寄存器列表單元27提取基于寄存器模式編號INTPTN “1H”(PTNl)的寄存器模式。寄存器數(shù)據(jù)保存控制電路25將包含寄存器模式“PTN1”的多循環(huán)微指令提供給指令執(zhí)行部23。在時鐘C6,指令執(zhí)行部23在下一級中, 延遲在調(diào)度級DP 231中提取的EI指令的執(zhí)行。盡管在調(diào)度級DP 231中延遲EI指令,但在指令解碼級ID 232和后續(xù)級中執(zhí)行來自寄存器數(shù)據(jù)保存控制電路25的微指令。在此,通過基于微指令,從指令解碼級ID 232 到寫回級WB 236的流水線處理,執(zhí)行寄存器數(shù)據(jù)保存處理。在該示例中,基于寄存器模式 “PTrn”,將EIPC寄存器M3、EIPSff寄存器244和通用寄存器MO (R0至R4)指定為數(shù)據(jù)保存寄存器。為此,通過在時鐘C5至Cll中的指令解碼級ID 232、時鐘C6至C12中的操作級 EX 233、和時鐘C7至C13中的地址傳送級DT234的每一個中的處理,能在數(shù)據(jù)存儲器4上保存設(shè)置到基于寄存器模式“PTN1”而指定的EIPC寄存器243、EIPSW寄存器244和通用寄存器M0(R0至R4)的數(shù)據(jù)。此外,通過在時鐘C12的指令解碼級ID 232、時鐘C13的操作級EX 233、和時鐘C14的地址傳送級DT 234的每一個中的處理,能將模式編號寄存器250 中的寄存器模式編號PTN “1H” (PTNl)保存到數(shù)據(jù)存儲器4中。當(dāng)通過指令解碼級ID 232,執(zhí)行用于保存寄存器模式編號PTN的STPTN指令時, 指令執(zhí)行部23執(zhí)行通過從下一時鐘C13開始以及其后的流水線處理,在調(diào)度級DP 231中保留和延遲的EI指令。然后,由指令執(zhí)行部23執(zhí)行由中斷向量“2F0H”指定的指令處理程序。如上所述,根據(jù)本發(fā)明,由于能與中斷接受同時地指定數(shù)據(jù)保存寄存器,并且響應(yīng)于微指令來執(zhí)行寄存器數(shù)據(jù)保存處理,因此,能從流水線處理中,省略取指令I(lǐng)F級和調(diào)度級DP的處理。為此,能比傳統(tǒng)情形早兩個時鐘地執(zhí)行寄存器數(shù)據(jù)保存處理。圖14表示當(dāng)數(shù)據(jù)保存寄存器為EIPC寄存器243、EIPSW寄存器244和通用寄存器 240 (R0至R4)時,通過流水線處理的傳統(tǒng)中斷處理的時序圖。如圖14所示,當(dāng)數(shù)據(jù)保存寄存器與圖13所示的寄存器相同時,由于在傳統(tǒng)示例中,通過取指令級IF和調(diào)度級DP來執(zhí)行寄存器數(shù)據(jù)保存處理,因此,與本發(fā)明相比,寄存器數(shù)據(jù)保存處理被延遲兩個時鐘。同時,根據(jù)第二實施例的中斷處理,由于能基于中斷因素,將寄存器唯一地指定為數(shù)據(jù)保存寄存器,因此,每次執(zhí)行中斷處理時,為防止數(shù)據(jù)破壞,能僅保存最少量寄存器。為此,如在第一實施例中,能降低中斷處理中保存的數(shù)據(jù)量,以及還能降低用于寄存器數(shù)據(jù)保存處理所需的時間。此外,如在中斷返回處理中,通過流水線處理,能使中斷返回處理加速兩個時鐘。[第三實施例]接著,參考圖15A、15B、16A和16B,將描述根據(jù)本發(fā)明的第三實施例的微型計算機。圖15A和15B是與根據(jù)本發(fā)明的第三實施例的微型計算機的中斷處理有關(guān)的電路塊的構(gòu)造的圖。參考圖15A和15B,在第三實施例的微型計算機中,省略第一實施例中的中斷因素寄存器組12-0至12-(n-l)的每一個的模式編號寄存器123,并且提供模式編號生成電路 5。除模式編號生成電路5外的結(jié)構(gòu)與第一實施例中相同,因此,省略其描述。在第一實施例中,將用于每一中斷因素的寄存器模式編號PTN存儲在與中斷因素 INTO至INTn-I的每一個關(guān)聯(lián)提供的模式編號寄存器123中,并且將寄存器模式編號通知處理器2,作為INTPTN。在第三實施例中,提供模式編號生成電路5來基于中斷向量INTVCT, 輸出模式編號PTN?;谠谄渲写鎯σ粋€中斷向量INTVCT和一個寄存器模式編號PTN的先前定制的集合的模式編號表,模式編號生成電路5指定對應(yīng)于中斷向量INTVCT的寄存器模式編號PTN,并且將指定的模式編號PTN輸出到處理器2,作為中斷模式編號INTPTN。因此,對每一中斷因素INT,不必提供模式編號寄存器123,導(dǎo)致電路規(guī)模的縮減。參考圖16A和16B,將描述模式編號生成電路5的構(gòu)造。圖16A是表示由模式編號生成電路5使用的模式編號表的圖,并且圖16B是表示模式編號生成電路5的構(gòu)造的圖。參考圖16A,將寄存器模式編號PTN “0”與對應(yīng)于INTO至INT15的中斷向量INTVCT “0100H”至“01F0H”關(guān)聯(lián),將寄存器模式編號PTN “1”與對應(yīng)于INT16至INT31的中斷向量INTVCT “0200H”至“02F0H”關(guān)聯(lián),將寄存器模式編號PTN “2”與對應(yīng)于INT32至 INT47的中斷向量INTVCT “0300H”至“03F0H”關(guān)聯(lián),并且將寄存器模式編號PTN “3”與對應(yīng)于INT48至INT61的中斷向量INTVCT “0400H”至“04F0H”關(guān)聯(lián)。在這種情況下,模式編號生成電路5包括用于基于16位中斷向量INTVCT"0000H” 至“111IH”,輸出2位寄存器模式編號PTN “00B”、“01B”、“10B”或“11B”的電路。例如,如圖16B所示,模式編號生成電路5接收16位中斷向量INTVCT[15:0],并且輸出2位中斷模式編號INTPTN[10]。此時,模式編號生成電路5通過參考圖16A中所示的模式編號表,確定寄存器模式編號PTN “00B”至“11B”的任何一個。在該示例中,能將模式編號生成電路 5實現(xiàn)為使用圖16A中所示的模式編號表的電路,因為該電路在INTVCT[10:8] = 000時, 輸出 00 的 INTPTN(PTN “0,,),在 INTVCT [10:8] = 001 時,輸出 01 的 INTPTN(PTN “1,,),在 INTVCT[10:8] = 011 時,輸出 10 的 INTPTN(PTN “2”),以及在 INTVCT[10:8] = 100 時,輸出 11 的 INTPTN(PTN “3”)。如上所述,由于模式編號生成電路5能根據(jù)中斷向量INTVCT生成寄存器模式編號 PTN,因此,不需要為每一中斷因素INT提供寄存器。尤其是,如圖16A所示,當(dāng)寄存器模式公用于多個中斷因素,并且將四個寄存器模式分配給64個中斷因素時,在第一實施例中, 需要提供64個模式編號寄存器123,而在本實施例中,不提供這些寄存器,也能獲得寄存器模式編號PTN。即,在本實施例中,當(dāng)用于待保存的數(shù)據(jù)的寄存器公用于多個中斷因素INT 時,通過提供模式編號生成電路5,能減少模式編號寄存器123的數(shù)量。[第四實施例]接著,將描述根據(jù)本發(fā)明的第四實施例的微型計算機。在第一實施例中,基于在寄存器數(shù)據(jù)保存處理中保存的寄存器模式編號PTN,指定在中斷返回處理中,將向其返回數(shù)據(jù)的寄存器。在第四實施例的微型計算機中,響應(yīng)于作為出棧指令的例子的上下文返回指令 (CXP0P指令),指定將返回的寄存器數(shù)據(jù),而不執(zhí)行寄存器模式編號PTN的寄存器數(shù)據(jù)保存處理和中斷返回處理。本實施例中的微型計算機的構(gòu)造與第一實施例中類似。然而,本實施例中的微型計算機不同于第一實施例之處在于在寄存器數(shù)據(jù)保存處理中,不保存寄存器模式編號PTN,并且響應(yīng)于CXPOP指令,寄存器數(shù)據(jù)保存控制電路25獲取用于指定待返回的寄存器的寄存器模式編號PTN。其他結(jié)構(gòu)和操作與第一實施例中相同,因此,將省略其描述。圖17A和17B是表示由根據(jù)本發(fā)明的第四實施例的微型計算機的中斷返回處理中的操作的流程圖。參考圖17A和17B,將描述根據(jù)第四實施例的中斷返回處理的操作的詳情。首先,在時鐘⑶,結(jié)束中斷因素INT32的中斷處理,并且提取CXPOP指令。響應(yīng)于 CXPOP指令,指定用于中斷返回處理的寄存器模式編號PTN。在時鐘Cl,寄存器數(shù)據(jù)保存控制電路25指定將響應(yīng)于CXPOP指令返回的寄存器數(shù)據(jù),并且控制指令執(zhí)行部23以基于微指令來執(zhí)行中斷返回處理。因此,在時鐘Cl至C7,基于堆棧指針SP,從堆棧存儲器讀取上下文“R14至RIO”、PSff "int 12 (PSff) ”和PC "intl2(PC) ”,并將其返回到由寄存器數(shù)據(jù)保存控制電路25指定的通用寄存器MO、EIPSW寄存器244和EIPC寄存器M3。同時,在時鐘Cl,結(jié)束中斷處理并且提取RET指令。其中,直到結(jié)束由寄存器數(shù)據(jù)
20保存控制電路25控制的中斷返回處理的時鐘C8為止,使所提取的RET指令的執(zhí)行保持并將其延遲。在時鐘C8,當(dāng)指令執(zhí)行部23執(zhí)行RET指令時,在一個時鐘期間,處理器2 (中斷處理控制電路21)將返回結(jié)束通知INTFIN設(shè)置成“1”。此時,將處理器2的內(nèi)部狀態(tài)(PC, PSff)恢復(fù)成 EIPC 寄存器 243 和 EIPSff 寄存器 244 的數(shù)據(jù)(intl2 (PC),intl2 (PSff))。從時鐘C9開始以及其后,基于返回的PC和PSW,重啟由于中斷而未完成的處理。 在此,在時鐘C9提取指令“int 12”,并且在時鐘ClO執(zhí)行。當(dāng)結(jié)束由于中斷請求而中斷的處理時,在時鐘Cll提取CXPOP指令。在時鐘C12, 處理器2執(zhí)行在寄存器數(shù)據(jù)保存控制電路25中存儲的微指令,并且基于響應(yīng)于CXPOP指令而指定的寄存器模式編號PTN,開始寄存器數(shù)據(jù)保存處理。接著,如在時鐘Cl至C7,在時鐘C12至C18,依次讀取保存到數(shù)據(jù)存儲器4中的上下文“R4至R0”、PSW "int4(PSff) ”以及PC "int4(PC) ”,并且將其返回到由寄存器模式編號 PTN “1H” (PTNl)指定的模式編號寄存器250,以及通用寄存器1 4、1 3、1 2、1 1和R0, EIPSff 寄存器M4、和EIPC寄存器M3。從時鐘C20開始以及其后,響應(yīng)于對每一寄存器數(shù)據(jù)的保存的完成,執(zhí)行由于中斷請求而被中斷的int4后的主例程。如上所述,在本實施例的中斷返回處理中,由于能基于CXPOP指令,指定用于待返回的數(shù)據(jù)的寄存器,因此,能省略寄存器模式編號PTN的保存處理和中斷返回處理。這能減少存儲區(qū)以及用于中斷處理中的保存處理和中斷返回處理所需的時間。即,在本實施例中, 能進一步減少中斷處理和中斷返回處理所需的時間。在根據(jù)本發(fā)明的微型計算機中,由于能基于為每一中斷因素而設(shè)置的中斷模式編號PTN,指定數(shù)據(jù)保存寄存器或數(shù)據(jù)返回寄存器,因此,能基于多循環(huán)微指令,執(zhí)行寄存器數(shù)據(jù)保存處理,而無需提取該指令。為此,能降低提取用于保存的指令所需的時間,以及能基于中斷因素,指定數(shù)據(jù)保存寄存器。此外,由于能通過執(zhí)行微指令,實現(xiàn)保存處理,因此,即使多個中斷發(fā)生,與傳統(tǒng)情形不同,也不累加用于保存處理的提取時間。為此,根據(jù)本發(fā)明,當(dāng)多個中斷發(fā)生時,與傳統(tǒng)相比,能進一步減少用于中斷處理的時間,因此,能提高處理器的處理能力。盡管詳細地描述了本發(fā)明的實施例,但詳細結(jié)構(gòu)不限于上述實施例,以及不背離本發(fā)明的主題的改進落在本發(fā)明的范圍內(nèi)??梢越M合上述實施例而不會導(dǎo)致技術(shù)沖突。例如,通過將第二實施例與第四實施例組合,能進一步減少用于中斷處理和中斷返回處理所需的時間?;蛘?,通過將第三實施例與第二或第四實施例組合,能減少用于中斷處理和中斷返回處理所需的時間,同時減小電路面積。
權(quán)利要求
1.一種微型計算機,包括多個寄存器列表,所述多個寄存器列表分別具有多個寄存器模式,其中,多個寄存器模式的每一個指定下述寄存器,所述寄存器的數(shù)據(jù)將被保存在數(shù)據(jù)存儲器中;取指令控制電路,所述取指令控制電路被構(gòu)造成響應(yīng)于基于中斷因素的出現(xiàn)而發(fā)出的中斷請求,從指令存儲器提取指令代碼;寄存器數(shù)據(jù)保存控制電路,所述寄存器數(shù)據(jù)保存控制電路被構(gòu)造成響應(yīng)于中斷請求, 從所述多個寄存器列表的一個獲取一個寄存器模式,并且響應(yīng)于中斷請求,發(fā)出基于獲取的寄存器模式的微指令;以及指令執(zhí)行部,所述指令執(zhí)行部被構(gòu)造成先于提取的指令代碼而執(zhí)行所述微指令,以將基于獲取的寄存器模式而指定的寄存器的數(shù)據(jù)保存在數(shù)據(jù)存儲器中。
2.如權(quán)利要求1所述的微型計算機,進一步包括中斷控制器,所述中斷控制器被構(gòu)造成響應(yīng)于中斷請求,輸出用于所述中斷因素的中斷向量,其中,所述取指令控制電路基于中斷向量來提取指令代碼。
3.如權(quán)利要求2所述的微型計算機,其中,所述中斷控制器包括多個模式編號寄存器, 為所述中斷因素提供多個模式編號寄存器的一個,其中,將多個模式編號存儲在所述多個模式編號寄存器中,其中,除中斷向量外,所述中斷控制器還輸出與所述中斷因素相對應(yīng)的多個模式編號的一個,以及其中,所述寄存器數(shù)據(jù)保存控制電路基于輸出的模式編號,從所述多個寄存器列表獲取所述一個寄存器模式。
4.如權(quán)利要求3所述的微型計算機,其中,所述寄存器數(shù)據(jù)保存控制電路在中斷處理中,將與中斷請求相對應(yīng)的模式編號保存在所述數(shù)據(jù)存儲器中,并且在中斷返回處理中,將在所述數(shù)據(jù)存儲器中保存的數(shù)據(jù)存儲到基于獲取的寄存器模式而指定的寄存器中。
5.如權(quán)利要求2所述的微型計算機,進一步包括模式編號生成電路,所述模式編號生成電路被構(gòu)造成根據(jù)模式編號表,輸出基于中斷向量的多個模式編號的一個,其中在模式編號表中存儲一個模式編號和一個中斷向量的集I=I,其中,所述寄存器數(shù)據(jù)保存控制電路基于輸出的模式編號,從所述多個寄存器列表獲取所述一個寄存器模式。
6.如權(quán)利要求5所述的微型計算機,其中,在中斷處理中,所述寄存器數(shù)據(jù)保存控制電路將與中斷請求相對應(yīng)的模式編號保存到所述數(shù)據(jù)存儲器中,并且在中斷返回處理中,將在所述數(shù)據(jù)存儲器中保存的數(shù)據(jù)存儲到基于獲取的寄存器模式而指定的寄存器中。
7.如權(quán)利要求1至6中的任何一項所述的微型計算機,其中,所述指令執(zhí)行部對從所述寄存器數(shù)據(jù)保存控制電路發(fā)出的微指令執(zhí)行流水線處理。
8.如權(quán)利要求2至6中的任何一項所述的微型計算機,其中,多條中斷信號線的每一條與中斷因素關(guān)聯(lián),并且多條中斷信號線的一些對應(yīng)于獲取的寄存器模式。
9.一種中斷控制方法,包括在多個寄存器列表中分別設(shè)置多個寄存器模式,其中,多個寄存器模式的每一個指定下述寄存器,所述寄存器的數(shù)據(jù)將被保存在數(shù)據(jù)存儲器中;響應(yīng)于基于中斷因素的出現(xiàn)而發(fā)出的中斷請求,由取指令控制電路從指令存儲器提取指令代碼;響應(yīng)于中斷請求,由寄存器數(shù)據(jù)保存控制電路從所述多個寄存器列表的一個獲取一個寄存器模式;響應(yīng)于中斷請求,由所述寄存器數(shù)據(jù)保存控制電路發(fā)出基于獲取的寄存器模式的微指令;以及由指令執(zhí)行部先于提取的指令代碼而執(zhí)行所述微指令,以將基于獲取的寄存器模式而指定的寄存器的數(shù)據(jù)保存在數(shù)據(jù)存儲器中。
10.如權(quán)利要求9所述的中斷控制方法,進一步包括響應(yīng)于中斷請求,由中斷控制器輸出用于所述中斷因素的中斷向量, 其中,取指令控制電路基于中斷向量,提取指令代碼。
11.如權(quán)利要求10所述的中斷控制方法,進一步包括將多個模式編號存儲在所述中斷控制器中的多個模式編號寄存器中,其中,為所述中斷因素提供所述多個模式編號寄存器的一個, 其中,所述獲取寄存器模式包括除中斷向量外,還輸出與所述中斷因素相對應(yīng)的多個模式編號的一個;以及基于輸出的模式編號,從所述多個寄存器列表獲取所述一個寄存器模式。
12.如權(quán)利要求11所述的中斷控制方法,進一步包括在中斷處理中,由所述寄存器數(shù)據(jù)保存控制電路將與中斷請求相對應(yīng)的模式編號保存在所述數(shù)據(jù)存儲器中;以及在中斷返回處理中,將在所述數(shù)據(jù)存儲器中保存的數(shù)據(jù)存儲到基于獲取的寄存器模式而指定的寄存器。
13.如權(quán)利要求10所述的中斷控制方法,進一步包括根據(jù)模式編號表輸出基于中斷向量的多個模式編號的一個,其中在模式編號表中存儲一個模式編號和一個中斷向量的集合;以及基于輸出的模式編號,由所述寄存器數(shù)據(jù)保存控制電路從所述多個寄存器列表獲取所述一個寄存器模式。
14.如權(quán)利要求13所述的中斷控制方法,進一步包括在中斷處理中,由所述寄存器數(shù)據(jù)保存控制電路將與中斷請求相對應(yīng)的模式編號保存到所述數(shù)據(jù)存儲器中;以及在中斷返回處理中,將在所述數(shù)據(jù)存儲器中保存的數(shù)據(jù)存儲到基于獲取的寄存器模式而指定的寄存器。
15.如權(quán)利要求9至14中的任何一項所述的中斷控制方法,進一步包括在所述指令執(zhí)行部中,對從所述寄存器數(shù)據(jù)保存控制電路發(fā)出的微指令執(zhí)行流水線處理。
16.如權(quán)利要求10至14中的任何一項所述的中斷控制方法,其中,多條中斷信號線的每一條與中斷因素關(guān)聯(lián),并且多條中斷信號線的一些對應(yīng)于獲取的寄存器模式。
17.如權(quán)利要求9至14中的任何一項所述的中斷控制方法,其中,所述執(zhí)行所述微指令包括對從所述寄存器數(shù)據(jù)保存控制電路發(fā)出的所述微指令執(zhí)行流水線處理。
全文摘要
一種微型計算機和中斷控制方法。其中微型計算機包括多個寄存器列表,其分別具有多個寄存器模式,其中,多個寄存器模式的每一個指定將其數(shù)據(jù)保存在數(shù)據(jù)存儲器中的寄存器;取指令控制電路,其用來響應(yīng)于基于中斷因素的出現(xiàn)而發(fā)出的中斷請求,從指令存儲器提取指令代碼;以及寄存器數(shù)據(jù)保存控制電路,其用來響應(yīng)于中斷請求,從多個寄存器列表的一個獲取一種寄存器模式,并且響應(yīng)于中斷請求,發(fā)出基于所獲取的寄存器模式的微指令。指令執(zhí)行部被配置成先于提取的指令代碼而執(zhí)行微指令,以將基于由獲取的寄存器模式指定的寄存器的數(shù)據(jù)保存在數(shù)據(jù)存儲器中。
文檔編號G06F9/30GK102214085SQ20111009438
公開日2011年10月12日 申請日期2011年4月12日 優(yōu)先權(quán)日2010年4月12日
發(fā)明者松山英樹 申請人:瑞薩電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1