專利名稱:具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)和方法,詳言之,涉及應(yīng)用于微處理器結(jié)構(gòu)的具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)和方法。
背景技術(shù):
一般微處理器的結(jié)構(gòu)中對(duì)于處理異常中斷事件的硬體機(jī)制作法,觀念上都相當(dāng)類似。當(dāng)發(fā)生一異常中斷事件時(shí),微處理器會(huì)進(jìn)入一處理異常中斷事件的操作模式,而在跳到處理該異常中斷事件的副程序之前,必須先將一些微處理器的狀態(tài)存起來,以便異常中斷事件處理后返回時(shí),原程序能繼續(xù)執(zhí)行。
因此,在硬體的實(shí)施上,起碼必須有一個(gè)寄存器用以存儲(chǔ)程序計(jì)數(shù)值(PC,ProgramCounter),也必須有一些寄存器用以存儲(chǔ)該微處理器的狀態(tài)。若再細(xì)分,可能還有一些輔助寄存器,如紀(jì)錄是發(fā)生何種異常中斷事件的寄存器等,這些輔助寄存器一般都稱為特殊用途寄存器。而處理器在進(jìn)入異常中斷事件處理模式后,不管是何種的異常中斷事件,除了處理例外的副程序不同外,對(duì)于所能存取的寄存器(一般寄存器或特殊用途寄存器)都是相同的,并沒有分別,也就是因?yàn)椴还茉谌魏卫獠僮髂J?,所能存取的寄存器是一樣的,因此在進(jìn)行中斷副程序的相關(guān)動(dòng)作之前,我們就必須將這些寄存器的內(nèi)容存進(jìn)存儲(chǔ)器中,而在中斷副程序動(dòng)作結(jié)束和中斷返回之前,還必須由存儲(chǔ)器中將先前存進(jìn)去的寄存器值回存至原寄存器,待中斷返回,原程序才可繼續(xù)正常執(zhí)行。然而這些副程序呼叫或中斷處理程序必須多花額外的指令來完成存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移,為了減少此種存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移動(dòng)作,所以發(fā)展了一些改進(jìn)機(jī)制。
參考美國(guó)專利第5,159,680號(hào),其專利名稱為“RISC processing unit whichselectively isolates register windows by indicating usage of adjacent registerwindows in status register”,該專利是Sun Microsystems公司為了減少微處理器在程序呼叫所需多花費(fèi)的額外負(fù)擔(dān),發(fā)展出寄存器視窗(register windows)機(jī)制,并應(yīng)用在SPARC(Scalable Processor Architecture)微處理器上,此項(xiàng)機(jī)制使得SPARC處理器能有非常不錯(cuò)性能。寄存器視窗這項(xiàng)機(jī)制最大的特點(diǎn)就是每個(gè)寄存器視窗與其相鄰寄存器視窗的某些寄存器是重疊在一起的(overlapping),藉由此種機(jī)制可以達(dá)到內(nèi)部程序間快速消息傳遞的目的,并由于每個(gè)程序皆有自己的一些寄存器是別的程序所不能存取的,所以在程序切換時(shí)就毋須先將自己寄存器的內(nèi)容值搬到存儲(chǔ)器存放,如此也大大減少了程序之間切換所需存儲(chǔ)器與寄存器間的數(shù)據(jù)搬移動(dòng)作。然而,SPARC處理器的寄存器視窗是以空間換取時(shí)間的作法,寄存器視窗個(gè)數(shù)的增加將會(huì)大大增加晶片面積且就寄存器的使用效率而言是非常差的,必須依不同的應(yīng)用環(huán)境作不同的考慮。
參考美國(guó)專利第5,701,493號(hào),其專利名稱為“Exception handling method andapparatus in data processing systems”,該專利是ARM公司的ARM微處理器對(duì)于異常中斷事件處理機(jī)制,不同于美國(guó)專利第5,159,680號(hào),其最主要的差別就在ARM處理器可以利用不同操作模式分辨不同的異常中斷事件型態(tài),并不是單單只有一種異常中斷事件處理模式,且每種操作模式所能控制(存取)的寄存器也不一樣。ARM處理器若接受中斷,則處理器就會(huì)依照不同的中斷切換到不同的模式下執(zhí)行,共有六種不同的模式。參考圖1,其顯示一寄存器堆10具有六種寄存器11、12、13、14、15和16的配置。其中,寄存器CPSR內(nèi)的五個(gè)位是用以判斷六種不同操作模式。
另外,請(qǐng)參考美國(guó)專利第5,386,563號(hào),其專利名稱為“Register substitutionduring exception processing”,該專利也是ARM公司的專利。在不同的模式下,有其專屬的庫存寄存器(banked registers),是其他模式下不能存取的,目的就是為了達(dá)到快速模式切換即減少存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移動(dòng)作,這是該專利設(shè)計(jì)庫存寄存器的最大優(yōu)點(diǎn)。
參考中華民國(guó)專利公告第494644號(hào),其專利名稱為”選擇存取寄存器的方法”,該專利是智原科技公司針對(duì)ARM公司的庫存寄存器作了些許的改變,將六種模式轉(zhuǎn)變成為兩種模式,稱為轉(zhuǎn)換模式0和轉(zhuǎn)換模式1,其目的在于減少選取模式的所需位數(shù)和時(shí)間。
然而,上述專利不是需要視窗的切換,就是需要不同模式的切換,以選擇最終所要存取的寄存器,因此需要有控制切換的位,且會(huì)增加存取寄存器的時(shí)間。因此,有必要提供一種創(chuàng)新且具進(jìn)步性的系統(tǒng)和方法,以解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng),其包括一普通寄存器堆、一備份寄存器堆、一備份模式信號(hào)和至少一個(gè)輸入選擇控制器。該普通寄存器堆具有復(fù)數(shù)個(gè)普通寄存器,用以存儲(chǔ)數(shù)據(jù)。該備份寄存器堆具有復(fù)數(shù)個(gè)備份寄存器,用以存儲(chǔ)來自該等普通寄存器的數(shù)據(jù),該備份寄存器堆區(qū)分為復(fù)數(shù)個(gè)備份模式,每一備份模式具有至少一個(gè)備份寄存器,依據(jù)該等備份模式?jīng)Q定該等備份寄存器與該等普通寄存器的連接關(guān)系。該備份模式信號(hào)用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件,決定該備份寄存器堆的備份模式。該輸入選擇控制器用以將來自備份寄存器的數(shù)據(jù)還原輸入至相對(duì)應(yīng)的普通寄存器。依據(jù)該等備份模式?jīng)Q定該輸入選擇控制器與該等普通寄存器和該等備份寄存器的連接關(guān)系。
利用本發(fā)明的系統(tǒng),當(dāng)一異常中斷事件發(fā)生時(shí),依據(jù)該異常中斷事件,決定一備份模式。再依據(jù)該備份模式,自動(dòng)存儲(chǔ)至少一個(gè)普通寄存器內(nèi)的數(shù)據(jù)至相對(duì)應(yīng)的至少一個(gè)備份寄存器。當(dāng)該異常中斷事件結(jié)束時(shí),依據(jù)該備份模式,經(jīng)由至少一個(gè)輸入選擇控制器,將該備份寄存器內(nèi)的數(shù)據(jù)還原輸入至相對(duì)應(yīng)的普通寄存器。
因此,本發(fā)明的系統(tǒng),在異常中斷事件發(fā)生時(shí),除可具有減少存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移動(dòng)作的功效外,因?yàn)楸景l(fā)明的系統(tǒng)是單一操作模式,所以并不需如常規(guī)技術(shù)利用選擇模式位以決定不同操作模式下的可存取的寄存器。因此本發(fā)明的系統(tǒng)不需選擇模式位,可減少存取寄存器時(shí)間。
圖1為常規(guī)寄存器堆配置的示意圖;圖2為本發(fā)明第一實(shí)施例具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)圖;圖3為本發(fā)明第二實(shí)施例具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)圖;圖4為本發(fā)明第二實(shí)施例的系統(tǒng)處理復(fù)數(shù)個(gè)異常中斷事件的示意圖;圖5A是說明本發(fā)明的系統(tǒng)其備份存儲(chǔ)的時(shí)間與異常中斷事件的指令檢索時(shí)間重疊的示意圖;圖5B是說明本發(fā)明的系統(tǒng)其備份存儲(chǔ)的時(shí)間與異常中斷事件的指令解碼時(shí)間重疊的示意圖;圖5C是說明本發(fā)明的系統(tǒng)其備份存儲(chǔ)的時(shí)間與異常中斷事件的指令執(zhí)行時(shí)間重疊的示意圖;且圖6是說明本發(fā)明的系統(tǒng)其備份存儲(chǔ)的時(shí)間在異常中斷事件指令的時(shí)間之前的示意圖。
具體實(shí)施例方式
請(qǐng)參閱圖2,其顯示本發(fā)明第一實(shí)施例具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)20的整體結(jié)構(gòu)圖。本發(fā)明第一實(shí)施例的系統(tǒng)20包括一普通寄存器堆201、一備份寄存器堆202、一備份模式信號(hào)203、七輸入選擇控制器204至210、一多路復(fù)用器211、一邏輯運(yùn)算處理單元212和一外部存儲(chǔ)器213。
該普通寄存器堆201具有16個(gè)普通寄存器(R0至R15),用以存儲(chǔ)數(shù)據(jù)。在正常程序操作下,該普通寄存器堆用以存儲(chǔ)來自該外部存儲(chǔ)器213和經(jīng)該多路復(fù)用器211選擇的數(shù)據(jù),并將所存儲(chǔ)的數(shù)據(jù)傳送至該邏輯運(yùn)算處理單元212加以運(yùn)算處理。該多路復(fù)用器211、邏輯運(yùn)算處理單元212和該外部存儲(chǔ)器213在此稱為一外部裝置。該多路復(fù)用器211可用以選擇該邏輯運(yùn)算處理單元212或該外部存儲(chǔ)器213作為該普通寄存器堆201內(nèi)普通寄存器的輸入。
該備份寄存器堆202具有15個(gè)備份寄存器(BR0_BM5、BR1_BM5、BR2_BM5、BR3_BM5、BR4_BM5、BR5_BM1、BR6_BM2、BR7_BM3、BR8_BM4、BR9_BM5、BR10_BM1、BR11_BM2、BR12_BM3、BR13_BM4和BR14_BM5),用以于異常中斷事件發(fā)生時(shí),存儲(chǔ)來自該等普通寄存器的數(shù)據(jù)。該備份寄存器堆202區(qū)分為五個(gè)備份模式(BM1至BM5),每一備份模式具有至少一個(gè)備份寄存器,例如第一備份模式BM1具有二備份寄存器BR5_BM1和BR10_BM1、第二備份模式BM2具有二備份寄存器BR6_BM2和BR11_BM2、第三備份模式BM3具有二備份寄存器BR7_BM3和BR12_BM3、第四備份模式BM4具有二備份寄存器BR8_BM4和BR13_BM4且第五備份模式BM5具有七備份寄存器BR0_BM5、BR1_BM5、BR2_BM5、BR3_BM5、BR4_BM5、BR9_BM5和BR14_BM5。
該備份模式信號(hào)203用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件決定該備份寄存器堆202的備份模式,由于本實(shí)施例中具有五種備份模式,因此,該備份模式信號(hào)203必須具有三個(gè)位。若硬體結(jié)構(gòu)設(shè)計(jì)者定義了五種異常中斷事件發(fā)生原因(例如SVC、ABT、IRQ、UNDEF、FIQ等),則備份模式就可分為相對(duì)應(yīng)的五種備份模式,每種備份模式都可視需要訂定特定的備份規(guī)則,并決定該等普通寄存器與該等備份寄存器的連接關(guān)系。也即,此備份規(guī)則定義該等普通寄存器堆201中的普通寄存器的數(shù)據(jù)必須存儲(chǔ)到備份寄存器堆202中的相對(duì)應(yīng)的備份寄存器,例如第一備份模式BM1的二備份寄存器BR5_BM1和BR10_BM1分別連接至普通寄存器堆201的二普通寄存器R13和R14。
因此,當(dāng)異常中斷事件發(fā)生時(shí),則依其相對(duì)應(yīng)的備份模式,例如第一備份模式,將普通寄存器堆201中的普通寄存器R13和R14內(nèi)的數(shù)據(jù)分別存儲(chǔ)至該備份寄存器堆202中的備份寄存器BR5_BM1和BR10_BM1內(nèi)。
該等輸入選擇控制器204至210用以將備份寄存器的數(shù)據(jù)還原輸入至相對(duì)應(yīng)的普通寄存器。依據(jù)該等備份模式?jīng)Q定該輸入選擇控制器與該等普通寄存器和該等備份寄存器的連接關(guān)系。
每一輸入選擇控制器均具有至少二輸入端口和一輸出端口,其中的一輸入端口連接至該外部裝置的多路復(fù)用器,另一輸入端口連接至相對(duì)應(yīng)的備份寄存器,該輸出端口連接至相對(duì)應(yīng)的普通寄存器。例如第一輸入選擇控制器204的一輸入端口連接至該多路復(fù)用器211的輸出,另一輸入端口連接至備份寄存器BR0_BM5,而其輸出端口連接至普通寄存器R8。第七輸入選擇控制器210的一輸入端口連接至多路復(fù)用器211的輸出,其他輸入端口連接至備份寄存器BR10_BM1、BR11_BM2、BR12_BM3、BR13_BM4、BR14_BM5,而其輸出端口連接至普通寄存器R14。因此該輸入選擇控制器可以控制該普通寄存器的輸入是來自備份寄存器,或是來自該多路復(fù)用器。
因此,當(dāng)異常中斷事件結(jié)束后,則依其先前相對(duì)應(yīng)的備份模式,例如第一備份模式,將于異常中斷事件發(fā)生時(shí),存儲(chǔ)在該備份寄存器堆202中的備份寄存器BR5_BM1和BR10_BM1內(nèi)的數(shù)據(jù),再經(jīng)由第六輸入選擇控制器209和第七輸入選擇控制器210還原存儲(chǔ)至普通寄存器堆201中的普通寄存器R13和R14內(nèi),以使微處理器繼續(xù)執(zhí)行異常中斷事件發(fā)生前的程序。
請(qǐng)參閱圖3,其顯示本發(fā)明第二實(shí)施例具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng)30的整體結(jié)構(gòu)圖。本發(fā)明的系統(tǒng)30包括一普通寄存器堆301、一備份寄存器堆302、一備份模式信號(hào)303、一還原模式信號(hào)304、七輸入選擇控制器305至311、一多路復(fù)用器312、一邏輯運(yùn)算處理單元313和一外部存儲(chǔ)器314。
該普通寄存器堆301具有16個(gè)普通寄存器(R0至R15),用以存儲(chǔ)數(shù)據(jù)。在正常程序操作下,該普通寄存器堆用以存儲(chǔ)來自該外部存儲(chǔ)器314和經(jīng)該多路復(fù)用器312選擇的數(shù)據(jù),并將所存儲(chǔ)的數(shù)據(jù)傳送至該邏輯運(yùn)算處理單元313加以運(yùn)算處理。該多路復(fù)用器312、邏輯運(yùn)算處理單元313和該外部存儲(chǔ)器314在此稱為一外部裝置。該多路復(fù)用器312可用以選擇該邏輯運(yùn)算處理單元313或該外部存儲(chǔ)器314作為該普通寄存器堆301內(nèi)普通寄存器的輸入。
該備份寄存器堆302具有22個(gè)備份寄存器(BR0_M5、BR1_M6、BR2_M5、BR3_M6、BR4_M5、BR5_M6、BR6_M5、BR7_M6、BR8_M5、BR9_M6、BR10_M1、BR11_M2、BR12_M3、BR13_M4、BR14_M5、BR15_M6、BR16_M1、BR17_M2、BR18_M3、BR19_M4、BR20_M5和BR21_M6),用以于異常中斷事件發(fā)生時(shí),存儲(chǔ)來自該等普通寄存器的數(shù)據(jù)。該備份寄存器堆302區(qū)分為六個(gè)模式(M1-M6),每一個(gè)模式又分為備份模式和還原模式,每一模式具有至少一個(gè)備份寄存器,例如第一模式(包括第一備份模式和第一還原模式)具有二備份寄存器BR10_M1和BR16_M1、第二模式(包括第二備份模式和第二還原模式)具有二備份寄存器BR11_M2和BR17_M2、第三模式(包括第三備份模式和第三還原模式)具有二備份寄存器BR12_M3和BR18_M3、第四模式(包括第四備份模式和第四還原模式)具有二備份寄存器BR13_M4和BR19_M4、第五模式(包括第五備份模式和第五還原模式)具有七備份寄存器BR1_M5、BR2_M5、BR4_M5、BR6_M5、BR8_M5、BR14_M5和BR20_M5且第六模式(包括第六備份模式和第六還原模式)具有七備份寄存器BR1_M6、BR3_M6、BR5_M6、BR7_M6、BR9_M6、BR15_M6和BR21_M6。
該備份模式信號(hào)303用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件決定該備份寄存器堆302的備份模式,該還原模式信號(hào)304用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件決定該備份寄存器堆302的還原模式。若硬體結(jié)構(gòu)設(shè)計(jì)者定義了五種異常中斷事件發(fā)生原因(例如SVC、ABT、IRQ、UNDEF、FIQ等),則備份寄存器可分為六種模式(五個(gè)異常中斷事件加一個(gè)共用模式),每一個(gè)模式均包括一備份模式和一還原模式。每種備份模式和還原模式都可視需要訂定特定的備份規(guī)則和還原規(guī)則。備份規(guī)則定義該等普通寄存器堆301中的普通寄存器的數(shù)據(jù)必須存儲(chǔ)到備份寄存器堆302中的相對(duì)應(yīng)的備份寄存器,例如第一備份模式的二備份寄存器BR10_M1和BR16_M1分別連接至普通寄存器堆301的二普通寄存器R13和R14。
該等輸入選擇控制器305至311用以控制將來自備份寄存器的數(shù)據(jù)還原輸入至相對(duì)應(yīng)的普通寄存器。還原規(guī)則定義該等備份寄存器堆302中備份寄存器的數(shù)據(jù)必須還原存儲(chǔ)到普通寄存器堆301中相對(duì)應(yīng)的普通寄存器。
每一輸入選擇控制器均具有至少三輸入端口和一輸出端口,其中的一輸入端口連接至該外部裝置的多路復(fù)用器,另二輸入端口連接至相對(duì)應(yīng)的備份寄存器,該輸出端口連接至相對(duì)應(yīng)的普通寄存器。例如第一輸入選擇控制器305的一輸入端口連接至該多路復(fù)用器312的輸出,一輸入端口連接至備份寄存器BR0_M5,另一輸入端口連接至備份寄存器BR1_M6,而其輸出端口連接至普通寄存器R8。第七輸入選擇控制器311的一輸入端口連接至多路復(fù)用器312的輸出,其他輸入端口連接至備份寄存器BR16_M1、BR17_M2、BR18_M3、BR19_M4、BR20_BM5和BR21_M6,而其輸出端口連接至普通寄存器R14。因此該輸入選擇控制器可以控制該普通寄存器的輸入是來自備份寄存器,或是來自該多路復(fù)用器。
本發(fā)明第二實(shí)施例的系統(tǒng)30的自動(dòng)存儲(chǔ)和還原寄存器內(nèi)數(shù)據(jù)的方法,與第一實(shí)施例的系統(tǒng)20有所不同。本發(fā)明第二實(shí)施例的系統(tǒng)30同時(shí)具有備份模式信號(hào)303和還原模式信號(hào)304,不論在異常中斷事件發(fā)生或異常中斷事件返回時(shí),都必須同時(shí)依據(jù)相對(duì)應(yīng)的備份模式和還原模式作備份和還原的動(dòng)作。也即,發(fā)生一異常中斷事件時(shí),必須同時(shí)依據(jù)相對(duì)應(yīng)的備份模式和還原模式,作一次備份和一次還原的動(dòng)作;返回一異常中斷事件時(shí),必須同時(shí)依據(jù)相對(duì)應(yīng)的備份模式和還原模式,作一次備份和一次還原的動(dòng)作。
本發(fā)明第一實(shí)施例的系統(tǒng)20在異常中斷事件發(fā)生時(shí),進(jìn)行寄存器數(shù)據(jù)備份;在異常中斷事件返回時(shí),進(jìn)行寄存器數(shù)據(jù)還原,數(shù)據(jù)的備份和還原是單獨(dú)發(fā)生的。本發(fā)明第二實(shí)施例的系統(tǒng)30,在異常中斷事件發(fā)生時(shí),進(jìn)行寄存器數(shù)據(jù)備份和還原;在異常中斷事件返回時(shí),進(jìn)行寄存器數(shù)據(jù)備份和還原,數(shù)據(jù)的備份和還原是同時(shí)發(fā)生。
請(qǐng)參閱圖4所示,以實(shí)際的復(fù)數(shù)個(gè)異常中斷事件發(fā)生為例說明本發(fā)明第二實(shí)施例的系統(tǒng)30的實(shí)際運(yùn)作。當(dāng)在USR狀態(tài)下發(fā)生IRQ異常中斷事件(本實(shí)施例中定義為第四模式M4)時(shí),則依該中斷發(fā)生時(shí)的狀態(tài)(USR狀態(tài))和備份模式(第六備份模式),將普通寄存器堆301中的普通寄存器R13和R14內(nèi)的數(shù)據(jù)A13和A14分別存儲(chǔ)至該備份寄存器堆302中的備份寄存器BR15_M6和BR21_M6內(nèi);同時(shí)依其中斷發(fā)生時(shí)的狀態(tài)(USR狀態(tài))和還原模式(第四還原模式),將備份寄存器堆302中的備份寄存器BR13_M4和BR19_M4內(nèi)的數(shù)據(jù)B13和B14,還原存儲(chǔ)至普通寄存器堆301中的普通寄存器R13和R14內(nèi)。
當(dāng)系統(tǒng)在處理IRQ異常中斷事件時(shí),又發(fā)生一FIQ異常中斷事件(本實(shí)施例中定義為第五模式M5),則依該中斷發(fā)生時(shí)的狀態(tài)(IRQ異常中斷狀態(tài))和備份模式(第四備份模式),將普通寄存器堆301中的普通寄存器R8至R12內(nèi)的數(shù)據(jù)C8至C12分別存儲(chǔ)至該備份寄存器堆302中的備份寄存器BR1_M6至BR9_M6內(nèi),且普通寄存器堆301中的普通寄存器R13和R14內(nèi)的數(shù)據(jù)C13和C14分別存儲(chǔ)至該備份寄存器堆302中的備份寄存器BR13_M4和BR19_M4內(nèi);同時(shí)依其中斷發(fā)生時(shí)的狀態(tài)(IRQ異常中斷狀態(tài))和還原模式(第五還原模式),將備份寄存器堆302中的備份寄存器BR0_M5至BR20_M5內(nèi)的數(shù)據(jù)D8至D14,還原存儲(chǔ)至普通寄存器堆301中的普通寄存器R8至R14內(nèi)。
當(dāng)系統(tǒng)處理完FIQ異常中斷事件后,必須返回該IRQ異常中斷事件時(shí),則依該中斷返回時(shí)的狀態(tài)(FIQ異常中斷狀態(tài))和備份模式(第五備份模式),將普通寄存器堆301中的普通寄存器R8至R14內(nèi)的數(shù)據(jù)E8至E14分別存儲(chǔ)至該備份寄存器堆302中的備份寄存器BR0_M5至BR20_M5內(nèi);同時(shí)依其中斷返回時(shí)的狀態(tài)(FIQ異常中斷狀態(tài))和還原模式(第四還原模式),將備份寄存器堆302中的備份寄存器BR1_M6至BR9_M6內(nèi)的數(shù)據(jù)C8至C12,還原存儲(chǔ)至普通寄存器堆301中的普通寄存器R8至R12內(nèi),且該備份寄存器堆302中的備份寄存器BR13_M4和BR19_M4內(nèi)的數(shù)據(jù)C13和C14還原存儲(chǔ)至普通寄存器堆301中的普通寄存器R13和R14內(nèi)。
因此,系統(tǒng)可以保存在處理發(fā)生FIQ異常中斷事件時(shí),IRQ異常中斷事件的數(shù)據(jù)C8至C14。并且在處理完FIQ異常中斷事件后,能還原該數(shù)據(jù)C8至C14至該系統(tǒng),以便于繼續(xù)處理IRQ異常中斷事件。
當(dāng)系統(tǒng)處理完IRQ異常中斷事件后,必須返回該USR狀態(tài)時(shí),則依該中斷返回時(shí)的狀態(tài)(IRQ異常中斷狀態(tài))和備份模式(第四備份模式),將普通寄存器堆301中的普通寄存器R13和R14內(nèi)的數(shù)據(jù)F13和F14分別存儲(chǔ)至該備份寄存器堆302中的備份寄存器BR13_M4和BR19_M4內(nèi);同時(shí)依其中斷返回時(shí)的狀態(tài)(IRQ異常中斷狀態(tài))和還原模式(第六還原模式),將備份寄存器堆302中的備份寄存器BR15_M6和BR21_M6內(nèi)的數(shù)據(jù)A13和A14,還原存儲(chǔ)至普通寄存器堆301中的普通寄存器R13和R14內(nèi)。
因此,系統(tǒng)可以保存在處理發(fā)生IRQ異常中斷事件時(shí),正常USR狀態(tài)的數(shù)據(jù)A13和A14。并且在處理完IRQ異常中斷事件后,能還原該數(shù)據(jù)A13和A14至該系統(tǒng),以便于繼續(xù)處理正常的USR狀態(tài)。
參考圖5A,其顯示本發(fā)明第一和第二實(shí)施例的系統(tǒng)應(yīng)用于一微處理器的異常中斷事件處理的時(shí)序示意圖。圖5A至圖5C僅說明第一級(jí)第二實(shí)施例的系統(tǒng)進(jìn)行存儲(chǔ)的時(shí)序,第二實(shí)施例系統(tǒng)的還原存儲(chǔ)時(shí)間點(diǎn)也與圖5A至圖5C的存儲(chǔ)時(shí)間點(diǎn)相同,在此不加贅述。圖中的clock 1、clock 2等為時(shí)鐘周期,依序?yàn)榈谝粫r(shí)鐘周期和第二時(shí)鐘周期等。在本實(shí)施例中假設(shè)目前的微處理器是具有三個(gè)管線(pipeline)結(jié)構(gòu),每一個(gè)指令的執(zhí)行皆需要經(jīng)過以下三個(gè)階段指令檢索階段(Instruction Fetch StageIF)、指令解碼階段(Instruction Decode StageID)和指令執(zhí)行階段(Instruction Execution StageEXE)。
如圖5A所示,假設(shè)主程序的第一個(gè)指令為L(zhǎng)DR指令,第二個(gè)指令為ADD指令,B為發(fā)生FIQ異常中斷后所需執(zhí)行的下一個(gè)指令,F(xiàn)IQ_Handler是一個(gè)標(biāo)簽地址。在第一個(gè)時(shí)鐘周期(clock 1),第一個(gè)指令LDR進(jìn)行LDR指令檢索(IF)動(dòng)作。在第二個(gè)時(shí)鐘周期(clock 2),第一個(gè)指令LDR進(jìn)行LDR指令解碼(ID)動(dòng)作,同時(shí)第二個(gè)指令A(yù)DD進(jìn)行ADD指令檢索(IF)動(dòng)作。在第三個(gè)時(shí)鐘周期(clock 3),第一個(gè)指令LDR進(jìn)行LDR指令執(zhí)行(EXE)動(dòng)作,第二個(gè)指令A(yù)DD進(jìn)行ADD指令解碼(ID)動(dòng)作。假設(shè)在此時(shí)發(fā)生快速異常中斷(FIQ),將使得第二個(gè)指令A(yù)DD無效,程序跳至發(fā)生異常中斷后所需執(zhí)行的下一個(gè)指令B。
在第四個(gè)時(shí)鐘周期(clock 4),本發(fā)明的系統(tǒng)依據(jù)備份模式FIQ中所規(guī)定的FIQ備份規(guī)則,將普通寄存器中的內(nèi)容復(fù)制到依據(jù)FIQ備份規(guī)則所規(guī)定的備份寄存器中。同時(shí),在該第四時(shí)鐘周期(clock 4)中,F(xiàn)IQ異常中斷事件的B指令則同時(shí)進(jìn)行B指令檢索(IF)動(dòng)作。也即,存儲(chǔ)(Backup)的時(shí)間點(diǎn)是與發(fā)生異常中斷后所需執(zhí)行的下一個(gè)指令的指令檢索(IF)時(shí)間點(diǎn)重疊,因此,整個(gè)微處理器系統(tǒng)并不會(huì)多花時(shí)間去執(zhí)行本發(fā)明系統(tǒng)的備份動(dòng)作。
參考圖5B所示,在該實(shí)施例中,備份存儲(chǔ)(Backup)的時(shí)間點(diǎn)是與發(fā)生異常中斷后所需執(zhí)行的下一個(gè)指令的指令解碼(ID)時(shí)間點(diǎn)重疊。該備份存儲(chǔ)(Backup)的時(shí)間點(diǎn)是于第五時(shí)鐘周期(clock 5),與圖5A比較是延后一個(gè)時(shí)鐘周期,而與B指令的指令解碼(ID)階段重疊。在該時(shí)間點(diǎn)進(jìn)行備份存儲(chǔ)也能備份到正確的普通寄存器內(nèi)的值,并且整個(gè)微處理器系統(tǒng)也不會(huì)多花時(shí)間去執(zhí)行本發(fā)明系統(tǒng)的備份存儲(chǔ)動(dòng)作。
參考圖5C所示,在該實(shí)施例中,備份存儲(chǔ)(Backup)的時(shí)間點(diǎn)是與發(fā)生異常中斷后所需執(zhí)行的下一個(gè)指令的指令執(zhí)行(EXE)時(shí)間點(diǎn)重疊。該備份存儲(chǔ)(Backup)的時(shí)間點(diǎn)是于第六時(shí)鐘周期(clock 6),與圖5A比較是延后兩個(gè)時(shí)鐘周期,而與B指令的指令執(zhí)行(EXE)階段重疊。在該時(shí)間點(diǎn)進(jìn)行備份存儲(chǔ)也能備份到正確的普通寄存器內(nèi)的值,并且整個(gè)微處理器系統(tǒng)也不會(huì)多花時(shí)間去執(zhí)行本發(fā)明系統(tǒng)的備份存儲(chǔ)動(dòng)作。
如上所述,本發(fā)明的系統(tǒng)其自動(dòng)備份存儲(chǔ)的時(shí)間點(diǎn),是與發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的指令檢索、指令解碼或指令執(zhí)行時(shí)間點(diǎn)重疊。同樣地,在完成該異常中斷事件后,本發(fā)明的系統(tǒng)其自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是與完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的指令檢索、指令解碼或指令執(zhí)行時(shí)間點(diǎn)重疊。因此,本發(fā)明的系統(tǒng)不論在自動(dòng)備份存儲(chǔ)或自動(dòng)還原存儲(chǔ)均不會(huì)增加整個(gè)微處理器系統(tǒng)的額外時(shí)間。
然而,本發(fā)明的系統(tǒng)其自動(dòng)備份存儲(chǔ)的時(shí)間點(diǎn),不必要須與發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的指令檢索、指令解碼或指令執(zhí)行時(shí)間點(diǎn)重疊。該自動(dòng)備份的時(shí)間點(diǎn)可在發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。參考圖6所示,本發(fā)明的系統(tǒng)其備份存儲(chǔ)(Backup)的時(shí)間點(diǎn)在第四時(shí)鐘周期(clock 4),是在發(fā)生異常中斷后所需執(zhí)行的下一個(gè)指令的指令檢索(IF)時(shí)間點(diǎn)(第五時(shí)鐘周期clock 5)之前。同樣地,本發(fā)明的系統(tǒng)其自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)可在完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。
因此,本發(fā)明的系統(tǒng),在異常中斷事件發(fā)生時(shí),除可具有減少存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移動(dòng)作的功效外,因?yàn)楸景l(fā)明的系統(tǒng)是單一操作模式(備份模式?jīng)Q定后,直接將特定的普通寄存器存儲(chǔ)至相對(duì)應(yīng)的備份寄存器),所以并不需如常規(guī)技術(shù)利用選擇模式位以決定不同操作模式下的備份寄存器。因此本發(fā)明的系統(tǒng)不需選擇模式位,可減少存取寄存器時(shí)間。
另外,與常規(guī)的寄存器視窗和庫存寄存器相較,本發(fā)明的系統(tǒng)可減少晶片面積和存取時(shí)間。
但是上述實(shí)施例僅為說明本發(fā)明的原理和其功效,而非限制本發(fā)明。因此,所屬技術(shù)領(lǐng)域的技術(shù)人員可在不違背本發(fā)明的精神對(duì)上述實(shí)施例進(jìn)行修改和變化。本發(fā)明的權(quán)利范圍應(yīng)如后述的權(quán)利要求所列。
權(quán)利要求
1.一種具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng),其包括一普通寄存器堆,具有復(fù)數(shù)個(gè)普通寄存器,用以存儲(chǔ)數(shù)據(jù);一備份寄存器堆,具有復(fù)數(shù)個(gè)備份寄存器,用以備份存儲(chǔ)來自該等普通寄存器的數(shù)據(jù),該備份寄存器堆區(qū)分為復(fù)數(shù)個(gè)備份模式,每一備份模式具有至少一個(gè)備份寄存器,依據(jù)該等備份模式?jīng)Q定該等備份寄存器與該等普通寄存器的連接關(guān)系;一備份模式信號(hào),用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件,決定該備份寄存器堆的備份模式;和至少一個(gè)輸入選擇控制器,用以控制將該等備份寄存器內(nèi)的數(shù)據(jù),還原輸入至相對(duì)應(yīng)的該等普通寄存器,依據(jù)該等備份模式?jīng)Q定該輸入選擇控制器與該等普通寄存器和該等備份寄存器的連接關(guān)系。
2.如權(quán)利要求1所述的系統(tǒng),其中該普通寄存器堆具有16個(gè)普通寄存器,該備份寄存器堆具有15個(gè)備份寄存器。
3.如權(quán)利要求1所述的系統(tǒng),另包括一還原模式信號(hào),用以依據(jù)復(fù)數(shù)個(gè)異常中斷事件,決定一還原模式,用以控制將該等備份寄存器內(nèi)的數(shù)據(jù),還原輸入至相對(duì)應(yīng)的該等普通寄存器。
4.如權(quán)利要求3所述的系統(tǒng),其中該普通寄存器堆具有16個(gè)普通寄存器,該備份寄存器堆具有22個(gè)備份寄存器。
5.如權(quán)利要求1或3所述的系統(tǒng),其中該等普通寄存器和該等備份寄存器均為32位寄存器。
6.如權(quán)利要求1或3所述的系統(tǒng),其中該輸入選擇控制器具有至少二輸入端口和一輸出端口,其中的一輸入端口連接至一外部裝置,另一輸入端口連接至相對(duì)應(yīng)的備份寄存器,該輸出端口連接至相對(duì)應(yīng)的普通寄存器。
7.如權(quán)利要求6所述的系統(tǒng),其中該外部裝置包括一多路復(fù)用器、一邏輯運(yùn)算處理單元和一外部存儲(chǔ)器。
8.一種自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的方法,包括以下步驟(a)當(dāng)一異常中斷事件發(fā)生時(shí),依據(jù)該異常中斷事件,決定一備份模式;(b)依據(jù)該備份模式,自動(dòng)備份存儲(chǔ)至少一個(gè)普通寄存器內(nèi)的數(shù)據(jù)至相對(duì)應(yīng)的至少一個(gè)備份寄存器;以及(c)當(dāng)該異常中斷事件結(jié)束時(shí),依據(jù)該備份模式,經(jīng)由至少一個(gè)輸入選擇控制器,將該等備份寄存器內(nèi)的數(shù)據(jù),還原輸入至該等相對(duì)應(yīng)的普通寄存器。
9.如權(quán)利要求8所述的方法,另包括依據(jù)該備份模式?jīng)Q定該等備份寄存器與該等普通寄存器連接關(guān)系的步驟。
10.如權(quán)利要求8所述的方法,另包括依據(jù)該備份模式?jīng)Q定該等輸入選擇控制器與該等普通寄存器和該等備份寄存器連接關(guān)系的步驟。
11.如權(quán)利要求8所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(b)中,自動(dòng)備份存儲(chǔ)的時(shí)間點(diǎn),是在發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。
12.如權(quán)利要求8所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(c)中,自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是在完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。
13.如權(quán)利要求8所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(b)中,自動(dòng)備份存儲(chǔ)的時(shí)間點(diǎn),是與發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)重疊。
14.如權(quán)利要求8所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(c)中,自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是與完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)重疊。
15.如權(quán)利要求13或14所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的檢索階段。
16.如權(quán)利要求13或14所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的解碼階段。
17.如權(quán)利要求13或14所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的執(zhí)行階段。
18.一種自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的方法,包括以下步驟(a)當(dāng)一異常中斷事件發(fā)生時(shí),依據(jù)該異常中斷事件,決定一中斷發(fā)生的備份模式和一中斷發(fā)生的還原模式;(b)依據(jù)該中斷發(fā)生的備份模式,自動(dòng)備份存儲(chǔ)至少一個(gè)普通寄存器內(nèi)的數(shù)據(jù)至相對(duì)應(yīng)的備份寄存器,且依據(jù)該中斷發(fā)生的還原模式,經(jīng)由至少一個(gè)輸入選擇控制器,將至少一個(gè)備份寄存器內(nèi)的數(shù)據(jù),自動(dòng)還原存儲(chǔ)至相對(duì)應(yīng)的普通寄存器;(c)當(dāng)一異常中斷事件結(jié)束時(shí),依據(jù)該異常中斷事件,決定一中斷返回的備份模式和一中斷返回的還原模式;以及(d)依據(jù)該中斷返回的備份模式,自動(dòng)備份存儲(chǔ)至少一個(gè)普通寄存器內(nèi)的數(shù)據(jù)至相對(duì)應(yīng)的備份寄存器,且依據(jù)該中斷返回的還原模式,經(jīng)由至少一個(gè)輸入選擇控制器,將至少一個(gè)備份寄存器內(nèi)的數(shù)據(jù),自動(dòng)還原存儲(chǔ)至相對(duì)應(yīng)的普通寄存器。
19.如權(quán)利要求18所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(b)中,中斷發(fā)生的自動(dòng)備份存儲(chǔ)和自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是在發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。
20.如權(quán)利要求18所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(d)中,中斷返回的自動(dòng)備份存儲(chǔ)和自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是在完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)之前。
21.如權(quán)利要求18所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(b)中,中斷發(fā)生的自動(dòng)備份存儲(chǔ)和自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是與發(fā)生該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)重疊。
22.如權(quán)利要求18所述的方法,是應(yīng)用于一微處理器的異常中斷事件處理,其中在步驟(d)中,中斷返回的自動(dòng)備份存儲(chǔ)和自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn),是與完成該異常中斷事件后所執(zhí)行的下一個(gè)指令的時(shí)間點(diǎn)重疊。
23.如權(quán)利要求21或22所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的檢索階段。
24.如權(quán)利要求21或22所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的解碼階段。
25.如權(quán)利要求21或22所述的方法,其中該自動(dòng)備份存儲(chǔ)或該自動(dòng)還原存儲(chǔ)的時(shí)間點(diǎn)是在于該下一個(gè)指令的執(zhí)行階段。
全文摘要
本發(fā)明涉及一種具有自動(dòng)備份和還原寄存器內(nèi)數(shù)據(jù)的系統(tǒng),其包括一普通寄存器堆、一備份寄存器堆、至少一個(gè)備份模式信號(hào)和至少一個(gè)輸入選擇控制器。該普通寄存器堆具有復(fù)數(shù)個(gè)普通寄存器。該備份寄存器堆具有復(fù)數(shù)個(gè)備份寄存器。利用本發(fā)明的系統(tǒng),當(dāng)一異常中斷事件發(fā)生時(shí),依據(jù)該異常中斷事件,決定一備份模式;再依據(jù)該備份模式,自動(dòng)拷貝至少一個(gè)普通寄存器內(nèi)的內(nèi)容至相對(duì)應(yīng)的至少一個(gè)備份寄存器。當(dāng)該異常中斷事件結(jié)束時(shí),依據(jù)該備份模式,利用至少一個(gè)控制器,從備份寄存器還原相對(duì)應(yīng)的普通寄存器的內(nèi)容。因此,本發(fā)明的系統(tǒng),在異常中斷事件發(fā)生時(shí),除可具有減少存儲(chǔ)器與寄存器之間的數(shù)據(jù)搬移動(dòng)作的功效外,因?yàn)楸景l(fā)明的系統(tǒng)是以單一模式操作,所以并不需如常規(guī)技術(shù)般利用選擇模式位以決定不同操作模式下可存取的寄存器。因此本發(fā)明的系統(tǒng)不需選擇模式位,可減少存取寄存器時(shí)間。
文檔編號(hào)G06F9/46GK1755632SQ20041008052
公開日2006年4月5日 申請(qǐng)日期2004年9月30日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者黃英哲, 宋裕文 申請(qǐng)人:黃英哲