專利名稱:微處理器定向中斷的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)。更準(zhǔn)確地說,是涉及用來擴展微處理器中斷能力的裝置。
一般情況下,微處理器能接受有限數(shù)目的優(yōu)先中斷。例如,莫托洛拉公司的三十二位微處理器68020具有七級中斷優(yōu)先級,第七級為最高優(yōu)先級,第零級代表無中斷請求。
按照Prentice-Hall出版公司出版的《三十二位微處理器MC68020用戶手冊》第二版所述,當(dāng)微處理器進(jìn)行中斷異常處理時,它從中斷設(shè)備上取得一個向量號,并將被響應(yīng)的中斷等級號放到地址總線A1-A3上。如果向量號不是由中斷設(shè)備產(chǎn)生的,則外部邏輯請求自動指定向量。處理器內(nèi)部產(chǎn)生一個向量號,該向量號是由中斷等級號決定的。
但是,在一個擁有多個處理器和大量外圍子系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中,所提供的優(yōu)先中斷個數(shù)太有限了。
因此,提供一種改進(jìn)型的數(shù)據(jù)處理系統(tǒng),使其擁有大量優(yōu)先中斷就是本發(fā)明的目的。
一種數(shù)據(jù)處理系統(tǒng)包括了許多子系統(tǒng),所有這些子系統(tǒng)聯(lián)接到一條系統(tǒng)總線上,用這些子系統(tǒng)組成常規(guī)子系統(tǒng),另外這種常規(guī)子系統(tǒng)包括非專有子系統(tǒng)(NPE)。這種非專有子系統(tǒng)執(zhí)行非專有應(yīng)用軟件。
NPE從其它子系統(tǒng)上接收中斷命令。這些命令包括NPE的通道號,請求子系統(tǒng)的通道號和說明NPE所要執(zhí)行的操作的功能代碼。NPE包括了一個中斷符合寄存器IIR,它存儲著中斷設(shè)備的通道號。
在接收到命令時,如果NPE上的中央處理單元(CPU)沒有在執(zhí)行較高級的命令,它將接收一個優(yōu)先請求,并回答它。
當(dāng)CPU回答這個命令時,存儲在IIR中的通道號被加到中斷向量陣列隨機存取存儲器(RAM)的地址輸入端。RAM在對應(yīng)每個通道號的單元里存儲了八位偏移向量。
異常向量表存儲著指針,它指向中斷程序的起始地址。這種中斷程序用來處理中斷請求。CPU提供一個基地址,這個基地址與偏移向量值的四倍相加,從而在異常向量表中找到這個指針,該指針就是中斷程序的起始地址。
按照下列對附圖的詳細(xì)說明,可以很好地理解本發(fā)明方法的執(zhí)行方式,本發(fā)明裝置的構(gòu)成方法和它的工作方式。
圖1為整個系統(tǒng)的框圖,它包括了非專有子系統(tǒng)的詳細(xì)邏輯框圖。
圖2為發(fā)送到系統(tǒng)總線上的某些命令的格式。
圖3為處理優(yōu)先中斷的詳細(xì)邏輯。
圖4為使用本發(fā)明的一個例子中所用的流圖。
圖1為數(shù)據(jù)處理系統(tǒng)1的框圖,它包括一個系統(tǒng)管理裝置(SMF)32,若干可選的處理器34,一個外部存儲器30和若干可選的外圍子系統(tǒng)36及一個非專有子系統(tǒng)3,所有這些都聯(lián)接到系統(tǒng)總線16上,SMF32提供整個數(shù)據(jù)處理系統(tǒng)1的啟動和中央控制,外部存儲器30、可選處理器34和可選外圍子系統(tǒng)36都按常規(guī)工作。
非專有系統(tǒng)(NPE)3提供一系列接口系統(tǒng),非專有操作系統(tǒng)可以通過這些接口系統(tǒng)來聯(lián)接。系統(tǒng)的建造人員可以將各方面現(xiàn)有的應(yīng)用軟件與數(shù)據(jù)處理系統(tǒng)1中常規(guī)子系統(tǒng)的標(biāo)準(zhǔn)軟件結(jié)合起來,從而得到解決問題的方法。NPE3包括一個中央處理單元(CPU)2,一個科學(xué)處理單元(SPU)4,一個存儲器管理單元(MMU)10和一個非存儲器訪問單元14。所有這些都聯(lián)結(jié)到地址總線6和數(shù)據(jù)總線8上。存儲器訪問單元(MRU)12聯(lián)接到數(shù)據(jù)總線8,并由實際地址總線18聯(lián)接到MMU10上。局部存儲器28通過數(shù)據(jù)總線24和地址總線26聯(lián)接到MRU12上。MRU12和NMRU14都聯(lián)接到系統(tǒng)總線16上。
CPU2為典型的莫托洛拉68020微處理器。它在地址總線6上產(chǎn)生32位地址信號,在數(shù)據(jù)總線8上接收或產(chǎn)生32位數(shù)據(jù)信號,并有一些控制端。SPU4為典型的莫托洛拉68881浮點協(xié)處理器。SPU4和CPU2協(xié)作執(zhí)行浮點指令。CPU2取指,并進(jìn)行指令譯碼,計算有效地址,建立操作數(shù)索引值。然后由SPU4執(zhí)行指令。
優(yōu)先中斷邏輯38處理從系統(tǒng)總線16接收到的中斷命令。
MMU10為典型的莫托洛拉68851存儲器分頁管理單元。它接收由地址總線6傳來的CPU2邏輯地址,并產(chǎn)生一個實際地址傳送到總線18上。
MRU12從MMU10和系統(tǒng)總線16上接收實際地址,并決定是訪問局部存儲器28,還是訪問外部存儲器30。如果為局部存儲器寫,MRU12把每個從CPU2接收到的數(shù)據(jù)字節(jié)加上奇偶校驗位,并寫到局部存儲器28尋址的單元中。如果為局部存儲器讀,MRU12從尋址單元中獲取數(shù)據(jù),進(jìn)行奇偶校驗,然后將數(shù)據(jù)送往要求數(shù)據(jù)的CPU2或SPU4或系統(tǒng)總線16。
如果要直接訪問外部存儲器30,則MRU12向系統(tǒng)總線16送出地址,控制和數(shù)據(jù)信息,對外部存儲器30進(jìn)行寫操作。在讀操作中,MRU12將地址和控制信息送到地址總線16上。在這種情況下,數(shù)據(jù)信息(通道號)確定出發(fā)送單元,因此,在后半個總線周期中,響應(yīng)命令將包括所請求的數(shù)據(jù)和請求單元的地址及通道號。
MMU10、MRU12支持八位、十六位、二十四位和三十二位操作(1,2,3和4字節(jié))。
NMRU14控制所有非存儲器命令,包括內(nèi)部的NPE3(局部)非存儲器命令和系統(tǒng)總線16(外部)上所有非存儲器命令。局部非存儲器命令為程序員提供了許多寄存器。外部非存儲器命令在聯(lián)接到系統(tǒng)總線16的控制器中為程序號提供了許多寄存器。
圖2為一些典型非存儲器命令的格式。從一個聯(lián)接到系統(tǒng)總線16的子系統(tǒng)向另一個聯(lián)接到系統(tǒng)總線16的子系統(tǒng)發(fā)送數(shù)據(jù)的輸出命令在地址總線16-2的第8到17位中包含了接收子系統(tǒng)的通道號,在地址總線16-2的18到23位中還包含一個功能代碼,在數(shù)據(jù)總線16-4的0到31位中包含的是數(shù)據(jù)。在控制總線16-6上的控制信號是存儲器索引信號BSMREF。它說明,這不是存儲器30的命令。后半個總線周期信號BSSHBC說明這不是在響應(yīng)前一個命令。每個子系統(tǒng)將只響應(yīng)唯一的通道號。功能代碼說明了接收子系統(tǒng)將要進(jìn)行的操作。
還要說明的是輸入命令和它的輸入響應(yīng)。注意到數(shù)據(jù)總線16-4的第0到9位指定了發(fā)送子系統(tǒng)的通道號。在輸入響應(yīng)命令中,這個通道號出現(xiàn)在地址線16-2的第8到17位上。注意BSSHBC信號指明這是對前一個輸入命令的響應(yīng)。
中斷命令是按本發(fā)明的原理來處理的。此命令包括NPE3的十六進(jìn)制通道號OF和十六進(jìn)制功能代碼03;數(shù)據(jù)總線16-4包括提出中斷的子系統(tǒng)或子系統(tǒng)中設(shè)備的通道號及中斷等級號。
如果它的中斷級別大于CPU2正執(zhí)行的程序現(xiàn)行等級,則NPE3將處理這次中斷。
關(guān)于圖3,NPE3接收系統(tǒng)總線16上的所有命令。通道信號BSAD8-17通過地址總線16-2和驅(qū)動器66接收,它加到邏輯76上。NPE3的通道號是由開關(guān)(沒有畫出)設(shè)置的??刂菩盘朆SSHBC和BSMREF通過控制總線16-6和驅(qū)動器78也加到邏輯76上。如果信號BSAD的10到17位指明一個十六進(jìn)制通道號OF,則信號ITSAME變低。如果信號BSAD8.BSAD9、BSMREF和BSSHBC都為低,則產(chǎn)生信號CPINTF。信號CPINTF加到中斷符合寄存器(IIR)54的時鐘輸入端,中斷符合寄存器(IIR)54通過數(shù)據(jù)總線16-4和驅(qū)動器68存儲數(shù)據(jù)信號BSDT的0到15位,也存儲地址信號BSAD的16到23位。地址信號BSAD的16到23位包括十六進(jìn)制功能代碼03和通道號的兩個低位。信號BSDT的0到9位指明了源子系統(tǒng)或子系統(tǒng)中設(shè)備的通道號,信號BSDT的10到15位指明了源子系統(tǒng)的中斷等級。
邏輯76也產(chǎn)生信號MBINTR,正像信號名字上的橫線所表明的那樣,它是低有效。信號MBINTR一直保持有效,直到總線回答信號ACKMBI變低,信號MBINTR加到可編程邏輯陣列(PAL)70上。在這里,與其它對CPU2的較高級請求競爭。最高優(yōu)先級(7)分給信號PWFAIL,這個信號為低意味著緊急掉電。次最高優(yōu)先級(6)分給信號ATMROV,這個信號為低說明計數(shù)定時器減到一個預(yù)定值。再次一級的最高優(yōu)先級(5)分給信號TICKED,它說明實時時鐘達(dá)到了一個預(yù)定值。更低一級的優(yōu)先級(3)分給信號DBINTR,它說明插到NPE3的可選單元正在請求中斷。
最低級的優(yōu)先級(1)分配給信號MBINTR,它產(chǎn)生信號IPL2低,IPL1低和IPL0高。這些信號加到CPU2上。如果CPU2沒有在處理較高優(yōu)先級的命令,則它回答這個命令,將信號FCODE的0到2和地址信號CPLA的0到15加到PAL72上,它們都為高則產(chǎn)生中斷回答信號CPINTA,使其變低。為了產(chǎn)生信號CPINTA,CPU2還發(fā)生地址選通信號AS。
信號CPINTA。MBINRT和CPPA的28到30加到PAL74上,強制信號ACKMBI變低,從而強制信號MBINTR為高。
現(xiàn)在,中斷命令訪問CPU2。信號CPINTA加到邏輯64上,產(chǎn)生IIR寄存器54的輸出允許信號ENINTR。存儲在IIR寄存器54中的通道號和信號CPDT16-25通過數(shù)據(jù)總線8和多路器(MUX)50,加到存放中斷向量的隨機存取存儲器52的地址輸入端。RAM52是由兩個1024×4位的隨機存取存儲器構(gòu)成的,它存儲向量。這些向量的功能要與圖4一起說明。加到MUX50上的低信號CPINTA在RAM52的讀操作期間選擇數(shù)據(jù)總線信號CPDT16-25,高信號CPINTA在RAM52的寫操作期間選擇地址總線6上的信號CPLA8-17。
RAM52是由信號ENVECR變低來允許的。在地址選通時,信號ENVECR或者由RAM寫入信號LDVECR產(chǎn)生,或者由RAM讀信號RDVECR產(chǎn)生,或者由信號CPINTA和實際地址信號CPPA28,CPPA29和CPPA30產(chǎn)生。
信號LDVECR或RDVECR在非中斷操作期間由所示的布爾方程產(chǎn)生。
信號LDVECR是由PAL56產(chǎn)生的,信號RDVECR是由PAL58產(chǎn)生的,注意數(shù)據(jù)選通信號DS控制著RAM52的寫入定時。
在管理器數(shù)據(jù)周期中(FCODEO,F(xiàn)CODE1和FCODE2等于八進(jìn)制5),PAL58還產(chǎn)生訪問RAM52的RDINTR信號,在CPU周期中(FCODEO,F(xiàn)CODE1和FCODE2等于八進(jìn)制7)處理中斷。
下列布爾表達(dá)式描述了PAL56,58,62,70,72和74及邏輯64和76的邏輯功能。
由系統(tǒng)總線16向CPU2請求中斷。
CPINTF =BSAD8·BSAD9·ITSAME·BSMREF·BSSHBCMBINTR=CPINTF·ACKMBIACKMBI=CPINTA,CPPA 28;CPPA·29;CCPA 30·MBINTRCPINTA=FCODE2.FCODE1.FCODE0.CPLA12.
CPLA13.CPLA14.CPLA15CPINTA=CPINTA·ASIPL2=PWFAIL+ATMROV+TICKEDIPL1=PWFAIL+ATMROV+(TICKED·DBINTR)
IPLO=PWFAIL+ATMROV·(TICKED+DBINTR+MBINTR)HHH-無中斷LLL-最高優(yōu)先級ITSAME=通道號比較器BSAD10.BSAD11.BSAD12.BSAD13.BSAD14.
BSAD15.BSAD16.BSAD17通道號(十六進(jìn)制OF)中斷向量表52(允許)ENVECR=AS(LDVECR+RDVECR+(CPINTA.CPPA28.
CPPA29.CCPA30))(寫入)LDVECR=AS.
.FCODE2.FCODE1.
FCODEO.DS.CPLAO.CPLA1.
CPLA2.CPLA3.CPLA4.CPLA5.
CPLA6.CPLA7(讀出)RDVECR=AS.R/W.FCODE2.FCODE1.
FCODEO.CPLAO.CPLA1.
CPLA2.CPLA3.CPLA4.
CPLA5.CPLA6.CPLA7中斷符合寄存器54(寫入)CPINTF(輸出允許)ENINTR=CPINTA+RDINTRRDINTR=AS.CPRDWR.FCODE2.FCODE1.
FCODEO.CPLAO.CPLA1.CPLA2.
CPLA3.CPLA4.CPLA5.CPLA6.
CPLA7圖4為本發(fā)明中斷特征的一個例子。在接受命令80中,從系統(tǒng)總線16接收到命令、功能代碼、中斷設(shè)備的通道號及中斷允許信號存儲在IIR寄存器54中,中斷信號MBINTR還要請求訪問優(yōu)先編碼器70。如果優(yōu)先編碼器70沒有更高的優(yōu)先請求,則為八進(jìn)制1的IPL0-2請求訪問CPU2。如果CPU2沒有在執(zhí)行較高優(yōu)先級的命令,則CPU2允許IIR寄存器54輸出。
假定中斷設(shè)備的通道號為十六進(jìn)制EO(11100000),則尋址EO號單元。假定十六進(jìn)制EO所指的單元中存放的是十六進(jìn)制數(shù)72,則將此值加到偏移計算器82上。向量基地址,十六進(jìn)制1000也加到偏移計算器82上。向量基地址是存儲器28或30中異常向量表84的首地址,偏移計算器80將偏移量加到十六進(jìn)制基地址1000上。偏移量是RAM52中內(nèi)存地址內(nèi)容的四倍(1000H+4(72H))。計算結(jié)果為十六進(jìn)制11C8。這是存儲器28或30中的中斷程序86指針的地址。例如,十六進(jìn)制地址11C8中的內(nèi)容為十六進(jìn)制4000。因而CPU將轉(zhuǎn)到十六進(jìn)制4000地址處,開始執(zhí)行中斷程序。
我們已經(jīng)參照較佳實施例,對本發(fā)明進(jìn)行了詳細(xì)的描述。本領(lǐng)域的普通技術(shù)人員可以懂得,形式上和細(xì)節(jié)上可以變化,但都沒有離開本發(fā)明的中心思想及范圍。
權(quán)利要求
1.一個響應(yīng)優(yōu)先中斷命令的數(shù)據(jù)處理系統(tǒng),它包括(A)一條系統(tǒng)總線;(B)一個聯(lián)接到上述系統(tǒng)總線上的處理器子系統(tǒng);(C)多個子系統(tǒng)聯(lián)接到上述系統(tǒng)總線上,所述的多個子系統(tǒng)中的一個產(chǎn)生優(yōu)先中斷命令,所述的命令包括識別上述處理器子系統(tǒng)的第一通道號和識別上述多個子系統(tǒng)中的一個的第二通道號;(D)上述處理器子系統(tǒng)包括響應(yīng)上述第一通道號的接受設(shè)備,它產(chǎn)生中斷信號,聯(lián)接到上述接受設(shè)備的處理器設(shè)備,當(dāng)接受上述中斷信號時,它產(chǎn)生許多控制信號,聯(lián)接到上述接受設(shè)備的寄存器設(shè)備,它存儲上述第二通道號,進(jìn)而聯(lián)接到上述處理器設(shè)備上,來響應(yīng)上述多個控制信號,并產(chǎn)生指定第二通道號的信號,聯(lián)接到上述處理器設(shè)備和寄存器設(shè)備的第一存儲器設(shè)備,它響應(yīng)上述多個控制信號,并由上述第二個通道號指定一個地址,從中產(chǎn)生向量信號,聯(lián)接到上述第一存儲器設(shè)備和處理器設(shè)備上的第二存儲器設(shè)備,它由上述向量信號和基地址信號指定一個地址并從中產(chǎn)生指針信號,聯(lián)接到上述第二存儲器設(shè)備的第三存儲器設(shè)備,它響應(yīng)上述指針信號,為執(zhí)行優(yōu)先中斷程序產(chǎn)生第一條指令和后續(xù)指令。
2.響應(yīng)優(yōu)先中斷命令的裝置包括多個子系統(tǒng);接受設(shè)備,它接收從上述多個子系統(tǒng)中發(fā)來的命令,當(dāng)所述命令包含識別上述裝置的第一通道號時,產(chǎn)生一個中斷信號;聯(lián)接到上述接受設(shè)備的處理器設(shè)備,當(dāng)接受上述中斷信號時,它產(chǎn)生多個控制信號;聯(lián)接到上述接受設(shè)備和處理器設(shè)備上的存貯設(shè)備,它響應(yīng)上述中斷信號,接收包含在上述命令中的第二通道號,此通道號用來識別多個子系統(tǒng)中的一個,并產(chǎn)生上述第二通道號信號,以響應(yīng)所述的多個控制信號;聯(lián)接到上述處理器設(shè)備和存貯裝置的第一存儲器設(shè)備,它響應(yīng)上述多個控制信號,由上述第二通道號信號指定的地址中產(chǎn)生向量信號;聯(lián)接到上述第一存儲器設(shè)備和處理器設(shè)備的第二存儲器設(shè)備,它由上述向量信號和基地址信號指定一個單元,從中產(chǎn)生指針信號;聯(lián)接到上述第二存儲器設(shè)備的第三存儲器設(shè)備,它響應(yīng)上述指針信號,為執(zhí)行中斷程序產(chǎn)生第一條指令和后續(xù)指令。
3.一個響應(yīng)優(yōu)先中斷命令的數(shù)據(jù)處理系統(tǒng),它包括(A)一條系統(tǒng)總線;(B)一個聯(lián)接到上述系統(tǒng)總線上的處理器子系統(tǒng);(C)多個子系統(tǒng)聯(lián)接到上述系統(tǒng)總線上,所述的多個子系統(tǒng)中的一個產(chǎn)生優(yōu)先中斷命令,所述的命令包括識別上述處理器子系統(tǒng)的第一通道號和識別上述多個子系統(tǒng)中的一個的第二通道號;(D)上述處理器子系統(tǒng)包括響應(yīng)上述第一通道號的接受設(shè)備,它產(chǎn)生中斷信號,并且存儲上述第二通道號;聯(lián)接到上述接受設(shè)備的處理器設(shè)備,當(dāng)接受上述中斷信號時,它產(chǎn)生許多控制信號;聯(lián)接到上述處理器設(shè)備和接受設(shè)備的第一存儲器設(shè)備,它由上述第二通道號指定一個地址并從中產(chǎn)生向量信號;聯(lián)接到上述第一存儲器設(shè)備和處理器設(shè)備上的第二存儲器設(shè)備,它由上述向量信號和基地址信號指定一個地址并從中產(chǎn)生指針信號;聯(lián)接到上述第二存儲器設(shè)備的第三存儲器設(shè)備,它響應(yīng)上述指針信號,為執(zhí)行優(yōu)先中斷程序產(chǎn)生第一條指令和后續(xù)指令。
4.響應(yīng)優(yōu)先中斷命令的裝置包括多個子系統(tǒng);聯(lián)接到上述多個子系統(tǒng)的接受設(shè)備,它響應(yīng)上述命令中的第一通道號,此通道號用來識別存貯第二通道號的裝置,第二通道號用來識別多個子系統(tǒng)中的一個,它發(fā)出上述命令并產(chǎn)生中斷信號;聯(lián)接到上述接受設(shè)備的處理器設(shè)備,當(dāng)接受上述中斷信號時,它產(chǎn)生多個控制信號;聯(lián)接到上述處理器設(shè)備和接受設(shè)備的第一存儲器設(shè)備,它響應(yīng)上述多個控制信號,由上述第二通道號指定的地址中產(chǎn)生向量信號;聯(lián)接到上述第一存儲器設(shè)備和處理器設(shè)備的第二存儲器設(shè)備,它由上述向量信號和基地址信號指定一個單元,從中產(chǎn)生指針信號;聯(lián)接到上述第二存儲器設(shè)備的第三存儲器設(shè)備,它響應(yīng)上述指針信號,為執(zhí)行中斷程序產(chǎn)生第一條指令和后續(xù)指令。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)包括了許多子系統(tǒng)。這些子系統(tǒng)一起聯(lián)接到一條系統(tǒng)總線上。子系統(tǒng)之間的相互通訊借助于系統(tǒng)總線互相發(fā)送命令來進(jìn)行。子系統(tǒng)用通道號來識別。一個子系統(tǒng)裝有用來接收優(yōu)先中斷申請命令的裝置。該子系統(tǒng)將中斷向量存儲在隨機存取存儲器中,這些向量由那些提出中斷的子系統(tǒng)的通道號來尋址,它們指明了異常向量表基地址上要加的偏移量,異常向量存儲的是中斷程序的內(nèi)存起始地址。
文檔編號G06F13/24GK1043023SQ8810825
公開日1990年6月13日 申請日期1988年12月2日 優(yōu)先權(quán)日1988年12月2日
發(fā)明者米歇爾·D·史密斯, 里查德·A·萊米 申請人:霍尼威爾布爾公司