專利名稱:微機總線接口協(xié)議分析器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到一種數(shù)據(jù)處理系統(tǒng),特別是涉及一種容錯處理機。
當(dāng)把執(zhí)行愈來愈多需要高可靠性的臨界任務(wù)賦予給處理器件時,就增加了對該處理器的容錯需要。容錯設(shè)計的一個目標(biāo)就是通過使某個系統(tǒng)能夠在限定錯誤數(shù)量的情況下去執(zhí)行其預(yù)期的功能來改善其可靠性。
在數(shù)據(jù)處理系統(tǒng)中,通過在硬件、軟件、信息和/或計算中的冗余已經(jīng)實現(xiàn)了容錯。一個容錯策略被認(rèn)為包括下述一個或多個成份。它包括掩蔽(一般誤差的動態(tài)校正);封鎖(避免跨規(guī)定邊界的誤差傳播);誤差檢測(故障跡象的檢測);診斷(識別與所檢測的誤差相關(guān)的故障模式);修復(fù)/結(jié)構(gòu)變換(通過將其旁路來排除或取代發(fā)生故障的成份或機制)和系統(tǒng)恢復(fù)(將該系統(tǒng)校正到可以繼續(xù)工作的狀態(tài))。
一個現(xiàn)有的流水線中央處理系統(tǒng)在系統(tǒng)的每塊電路板上都包括有一個或多個在與其相關(guān)的流水級呈現(xiàn)異常情況時用以進行檢測的異常事件(UEV)檢測電路。所謂異常情況是指就其通常所執(zhí)行的功能而論,由某一級所執(zhí)行的功能是沒有意義的。這種檢測器電路能夠檢測出異常情況狀態(tài),諸如假設(shè)某個異常的設(shè)備狀態(tài)就所施加的輸入信號而言是無意義的,即發(fā)送或接收一個不正常的命令序列,不正常的命令序列試圖執(zhí)行一個與以前所執(zhí)行的操作互不相容的操作或試圖到一個與正常操作互不相容的固件控制存貯單元進行存取。處理器的接口板包括一些特殊的寄存器電路,用于存貯屬于提供給系統(tǒng)總線的最后一個實際地址的系統(tǒng)總線地址信息以及屬于最后一個封鎖存貯器操作的地址。如果不管是由于什么原因在流水線級中出現(xiàn)了故障,那么實際地址寄存器的地址內(nèi)容就指向軟件、最后的實際地址或與存取該系統(tǒng)總線相連的處理器所使用的I/O通道號。有關(guān)上述的進一步信息,可以參考由喬治、A、布朗(George,A.Borlow)等人的專利申請,其發(fā)明名稱為“用于多處理機系統(tǒng)的流水線處理單元的恢復(fù)方法和裝置”。
當(dāng)上述處理器被用于這種異常情況的檢測時,它被提供在系統(tǒng)總線的接口級并且不直接起處理器的作用。即,UEV指示通常被存貯在存貯器的一個區(qū)域,用以執(zhí)行后面的診斷分析以確定故障成份。另外,在系統(tǒng)級上,不需要高速的檢測裝置。特別重要的是,該裝置僅僅能夠檢測由該處理器發(fā)送給系統(tǒng)總線的錯誤的命令序列。
因此,本發(fā)明的一個主要目的就是提供一種裝置,它能夠監(jiān)視高性能微機的協(xié)議。
本發(fā)明上述目的和優(yōu)點是通過耦合到一個高性能微機總線接口上的本發(fā)明一個最佳實施例的監(jiān)控裝置實現(xiàn)的。該監(jiān)控裝置包括一個狀態(tài)設(shè)備,用于接收多個總線協(xié)議控制信號和確定微機協(xié)議序列是否已被徹底完成。當(dāng)一個正確協(xié)議序列被遵循或在一個予先設(shè)定的時間周期內(nèi)沒有結(jié)束時,該監(jiān)控裝置將產(chǎn)生適當(dāng)?shù)臏?zhǔn)備好響應(yīng)信號,該信號避免微機中止操作。這就使得微機能進行進一步的處理,諸如采取必要措施以引起一個請求誤差處理的非屏蔽中斷。
詳細地講,該監(jiān)控裝置包括一種定時器電路,其中一個用于監(jiān)控由微機發(fā)送給外部系統(tǒng)的命令,而另一個用于監(jiān)控由該微機發(fā)出的在諸如讀/寫內(nèi)部寄存器的局部總線上執(zhí)行內(nèi)部操作的命令或者用于執(zhí)行局部存貯器的操作。
除了上述以外,本發(fā)明的監(jiān)控裝置還包括一個輸出地址寄存器,該存貯器耦合到微機地址和命令線上,并耦合到狀態(tài)設(shè)備上。在每個微機總線操作周期內(nèi),狀態(tài)設(shè)備向該寄存器加載。當(dāng)檢測到協(xié)議誤差或另外一種產(chǎn)生非屏蔽中斷(NMI)的誤差情況時,狀態(tài)設(shè)備禁止進一步向地址寄存器加載,借此,當(dāng)產(chǎn)生誤差時獲取由微機發(fā)出的恰當(dāng)?shù)牡刂泛兔睢?br>
本發(fā)明上述的其它的目的及優(yōu)點通過下面結(jié)合附圖的詳述可得到更好的理解。
圖1示出了一個多處理機系統(tǒng)和方框圖,該系統(tǒng)包括有本發(fā)明的監(jiān)控裝置。
圖2詳細示出了圖1中的處理單元,該處理單元中包括了本發(fā)明的監(jiān)控單元。
圖3詳細示出了本發(fā)明的監(jiān)控裝置。
圖4示出了包括于圖2所示處理單元中的微機方框圖。
圖5是一個表示了圖4所示微機使用的總線協(xié)議的狀態(tài)圖。
圖6是一個用于表示本發(fā)明監(jiān)控裝置工作的附圖。
圖1示出了一個多處理機系統(tǒng)10,該系統(tǒng)包括多個中央處理單元10-2至10-6和同等處理器12-2和12-4,它們都被耦合到系統(tǒng)總線16和主存貯器或系統(tǒng)存貯器14上。如圖所示,每一個處理器都包括一個總線接口區(qū),它能使某個單元以命令、中斷、數(shù)據(jù)或響應(yīng)/狀態(tài)的形式將需要的信息傳遞給系統(tǒng)總線16上的另一個單元或從該另一單元接收所需的信息。在最隹實施例中,系統(tǒng)總線16同步操作,并使用一個分離總線周期協(xié)議,該協(xié)議通過在一個單元正在等待主存貯器提供數(shù)據(jù)以響應(yīng)該單元提出的較早請求的時間周期內(nèi)允許其它單元的總線周期的方法來提供較高的性能,有關(guān)這種總線接口和操作的進一步信息,可參考美國專利3997896。
參見圖1,可以看到每個同等處理器12-2和12-4包括一個微機12-20、一個局部存貯器12-30和接口總線,如圖示,接口總線被耦合到模塊12-40的總線接口電路上。微機12-20和局部存貯器12-30通過一個局部處理器總線12-25耦合到一起。微機12-20是一個高性能32位處理器,它工作的時鐘速度高達33MHZ,在該最隹實施例中,它相當(dāng)于Intel80486芯片。Intel芯片80486包括一個微機、一個浮點運算協(xié)同處理器、一個存貯器超高速緩沖控制器和一個8KRAM超高速緩沖單元。主要的處理功能是由微機完成的,而諸如浮點運算的附加處理功能是由算術(shù)協(xié)同處理器來執(zhí)行的。內(nèi)部的超高速緩沖單元提供所需處理數(shù)據(jù)的快速存取。在本最隹實施例中,同等處理器12-2和12-4在UNIX操作系統(tǒng)的控制下進行工作。
在圖1中,處理器10-2和10-6作主處理器使用。在最隹實施例中,每個處理器都是采用BullDPS6000系統(tǒng)的形式,該系統(tǒng)在BUII.HVS專家操作系統(tǒng)控制下工作。在圖1所示系統(tǒng)中,每個處理器都被配置得可以獨立工作,并且可以對諸如輸入/輸出單元,主存貯器或類似的所有系統(tǒng)資源進行存取。
圖2較詳細地示出了圖1所示的處理器12-2。在最隹實施例中,如圖所示,除了模塊12-22的時鐘發(fā)生電路以外,微機12-20、局部存貯器12-30和相關(guān)的狀態(tài)設(shè)備12-200及12-300、控制電路一起也被配置在一個單一的子插件板上。模塊12-22的時鐘發(fā)生器電路產(chǎn)生一個唯一的33MHZ單一頻率時鐘信號CLKREF,該信號除了對構(gòu)成處理器12-2的所有其它電路以外,還對微機12-20提供主定時和內(nèi)部操作頻率。系統(tǒng)和總線接口電路12-24、輸入和輸出寄存器和狀態(tài)設(shè)備12-80及12-66包含在主插件板上。這兩塊插件板構(gòu)成了一個完整的處理器。
詳細地講,微機12-2和局部存貯器12-30被一起耦合到局部總線12-25的地址、數(shù)據(jù)和命令/控制處理器總線上,如圖所示。模塊12-24的電路用作接口電路,它把控制信號施加給內(nèi)部耦合到總線狀態(tài)設(shè)備12-200的微機總線接口。通過產(chǎn)生一個適當(dāng)?shù)目偩€協(xié)議作為一個由外部狀態(tài)設(shè)備(XSM)12-66所產(chǎn)生的控制信號的功能,狀態(tài)設(shè)備12-200被用于控制對局部總線12-25的微機存取。正如這里所解釋的,XSM12-66控制局部存貯器12-30的存取以響應(yīng)來自系統(tǒng)總線16的外部請求。
如圖示,響應(yīng)由未示出的時鐘邏輯電路所產(chǎn)生的使能信號CYCREQ,從系統(tǒng)總線16所接收的外部請求被裝入接收數(shù)據(jù)、地址和命令寄存器12-42至12-46。地址和命令信號由模塊12-52和12-54的地址和命令轉(zhuǎn)換成適當(dāng)?shù)男问讲⒈淮尜A在模塊12-62和12-64的兩組排除寄存器的可用寄存器中。如所示,模塊12-62的寄存器共同通過三態(tài)電路連接到一個輸出總線(X總線)上。此后,響應(yīng)使能信號EADQTP,所存貯的地址和命令信號通過模塊12-72和12-74的驅(qū)動電路被加到處理器總線上。
與裝入寄存器12-42的外部請求相關(guān)的任何數(shù)據(jù)被模塊12-50的可編程陣列邏輯(PALs)重新排列為所需要的形式并被存貯在模塊12-60的多個寄存器中一個適當(dāng)?shù)募拇嫫髦校鲜龆鄠€寄存器通過三態(tài)電路被共同連接到一個輸出總線(Q總線)上。該數(shù)據(jù)字的不同字節(jié)被從稱為系統(tǒng)總線的大endian格式轉(zhuǎn)換成微機12-20所使用的小endian格式。這是由通過適當(dāng)?shù)刂匦陆M合連接器端子聯(lián)接方式所構(gòu)成的模塊12-70的字節(jié)轉(zhuǎn)換電路所實現(xiàn)的。
模塊12-80的處理器狀態(tài)設(shè)備(PSM)控制由微機12-20所起動的事件或請求的傳送和處理。如圖示,由微機12-20所產(chǎn)生的指示在系統(tǒng)總線16上的一個操作的命令被加到模塊12-82的微機至總線命令發(fā)生器上,隨后,該發(fā)生器產(chǎn)生適當(dāng)?shù)南到y(tǒng)總線命令。除了適當(dāng)?shù)牡刂泛蛿?shù)據(jù)以外,該總線命令也被裝入一個處理器命令寄存器12-84。如圖2所示,地址和數(shù)據(jù)分別通過一個地址總線和Q數(shù)據(jù)總線被裝入寄存器12-86和12-88。這一切都是為響應(yīng)由控制信號的PSM狀態(tài)設(shè)備12-80所產(chǎn)生的使能裝載信號PTDTLD而作出的,上述控制信號是作為發(fā)生器12-82和模塊12-90的系統(tǒng)總線響應(yīng)電路的輸入信號而施加的。
此外,PSM12-80處理由微機12-20所啟動的內(nèi)部I/O請求,用于讀/寫連接到Q總線上的多個內(nèi)部寄存器12-68中不同的每一個。這些寄存器包括通道地址寄存器(CAR)和實際地址寄存器(PAR)。CAR寄存器用于存貯作為在正常I/O操作期間I/O命令的一部分傳送給系統(tǒng)總線16的通道號信息,PAR寄存器用于存貯事件地址信息。附錄中包含了有關(guān)這些寄存器的進一步信息。
圖3以方框圖的形式示出了本發(fā)明的監(jiān)控電路12-250,如圖所示,監(jiān)控電路12-250包括一個串聯(lián)的不可屏蔽中斷匯流電路(NMI)(模塊12-250a),模塊12-250b的狀態(tài)設(shè)備電路和模塊12-250c的操作定時器電路。NMI電路12-250a響應(yīng)相應(yīng)于信號ILLACC-、DBPDE+、PRTUAR+和MBOTOR+的所測誤差狀態(tài),產(chǎn)生不可屏蔽中斷信號NMI。該信號被加到微機12-20和模塊12-250b的狀態(tài)設(shè)備電路上以作為輸入信號,這些電路通過在微機12-20發(fā)出命令期間從中所接受的BLAST來監(jiān)視總線協(xié)議信號RDY。它通過一系列狀態(tài)定序并產(chǎn)生所需的控制信號以用于確定協(xié)議進行順利并處于所需的時間周期之內(nèi)。
如圖示,狀態(tài)電路12-250b產(chǎn)生外部請求選擇信號EXTREQT和操作超時(timeout)使能信號OPTMEN,后者作為輸入信號施加給模塊12-250c的定時器電路。這些電路提供兩個定時間隔,一個間隔用于監(jiān)視內(nèi)部請求(即32時鐘間隔),另一個用于監(jiān)視外部請求(即250毫秒)。
此外,模塊12-250b的狀態(tài)電路還產(chǎn)生一個實際地址寄存器裝載信號PARLD,該信號使來自局部總線12-25的地址和命令上的信號通過圖2所示的Q總線被裝入PAR寄存器12-251。
另外,狀態(tài)設(shè)備電路12-250b還產(chǎn)生一個延遲的字符組準(zhǔn)備好信號DHBRDY(即延遲一個時鐘的信號BRDY),該信號作為一個內(nèi)部輸入被加給狀態(tài)設(shè)備電路12-250b。用于產(chǎn)生圖3各不同信號的方程列于附錄中。
圖4詳細地示出了微機12-20和不同的接口信號。接口被分成兩部分,這兩部分表明與Intel80486芯片的實際電路無必要相關(guān)性的不同功能,地址總線和總線控制線包含了大部分線。地址線是雙向的,用以適應(yīng)超高速緩沖總線探聽(Snooping)能力。超高速緩沖控制部分包括6個引線,用以控制微機的內(nèi)部超高速緩沖。超高速緩沖使能(KEN)輸入最常用于存貯器不能被高速緩沖的不適用區(qū)域。
地址保持(AHOLD)和外部地址選通(EADS)輸入允許一個外部設(shè)備向微機12-20提供一個地址。若該地址和微機內(nèi)部高速緩沖中的地址一致,則相關(guān)的數(shù)據(jù)被標(biāo)記作無效。清倉(FLUSH)超高速緩沖輸入被用于通知微機它的超高速緩沖的所有內(nèi)容都是無效的。頁面通寫(Write-tnrough)(PWT)和頁面高速緩沖失效(cache-disable)(PCD)輸出端子反映了置于內(nèi)部頁面項或頁面字典項寄存器中的頁面標(biāo)志位的狀態(tài)。它們表示軟件已被作用到邏輯存貯頁的超高速緩沖控制。
總線控制部分包括13個端子,用于控制屬于微機總線控制狀態(tài)設(shè)備的處理器總線。總線請求(BREQ)輸出信號表明微機需要地址/數(shù)據(jù)總線。即使是在一個有效但不完整的周期內(nèi),補償(backoff)輸入(BOFF)也能使得一個外部設(shè)備取得對所有地址/數(shù)據(jù)總線的控制。微機使用偽時鐘輸出信號(PLOCK)來表示一個事件的執(zhí)行需要一個總線周期以上才能完成。而總線鎖定信號(LOCK)被用于指示一個讀改寫操作,在該操作中,沒有其它的系統(tǒng)元件在現(xiàn)行操作完成以前能夠檢查正在被修改的項目。微機將不允許在另外的總線主導(dǎo)裝置能夠完成總線控制的地方發(fā)生總線保持請求(HOLD)。即微機將不產(chǎn)生相應(yīng)于總線保持請求的保持應(yīng)答信號(HLDA)。
存貯器/輸入一指出(M/IO),數(shù)據(jù)控制(D/C)和寫/讀(W/R)信號用于定義被啟動的總線周期的類型。地址狀態(tài)輸出信號(ADS)指出什么時候這些總線周期定義信號和地址信號是有效的。非字符組準(zhǔn)備好的輸入信號(RDY)表明現(xiàn)行總線周期已經(jīng)完成。字符組準(zhǔn)備好輸入信號(BRDY)和字符組最后信號(BLAST)被用于執(zhí)行字符組傳送操作。
字符組準(zhǔn)備好信號表明現(xiàn)行周期已經(jīng)完成,且在除非出現(xiàn)BLAST信號的情況下,在一個時鐘周期內(nèi)系統(tǒng)將繼續(xù)數(shù)據(jù)傳送。BLAST信號規(guī)定字符組傳輸已經(jīng)完成。
非屏蔽中斷請求信號指示什么時候產(chǎn)生外部非屏蔽中斷。為了在一個特定的時鐘周期內(nèi)進行適當(dāng)?shù)臋z測,NMI信號必須在電平上升以前至少保持幾個時鐘周期的低電平狀態(tài)。
有關(guān)使用這些信號的進一步信息,可參考Intel1989年11月出版物,卷號為240440-002,名稱“1486微機”。
參考圖1至圖3,下面還將參照圖5和圖6來敘述本發(fā)明的監(jiān)控裝置的操作。
圖5示出了微機總線狀態(tài),設(shè)備12-200在對總線12-25進行同步存取以向外部和內(nèi)部資源發(fā)出命令過程中的全部操作(即局部存貯器讀/寫操作和系統(tǒng)總線存貯器I/O操作)。
詳細地講,圖5示出了微機總線狀態(tài)設(shè)備12-200在對總線12-25進行同步存取以實現(xiàn)存貯器讀/寫操作和I/O操作過程中的所有操作。如所述,該狀態(tài)設(shè)備跟隨微機的操作,在本最隹實施例中,是跟隨Inttl486微機的操作。如從圖5中看到的,狀態(tài)設(shè)備12-200處于空閑狀態(tài)(T1)并且保持該狀態(tài)直到在沒有保持(!HOLD)和補償(!BOFF)前提下從該微機接收一個內(nèi)部請求。當(dāng)發(fā)生這種情況時,它定序到狀態(tài)T1,該狀態(tài)相應(yīng)于總線周期的第一個時鐘周期。在該狀態(tài)中,有效的地址和狀態(tài)被驅(qū)動,并產(chǎn)生地址選通ADS。
在沒有補償情況下,狀態(tài)設(shè)備12-200如圖所示定序到狀態(tài)T2。當(dāng)處于這種狀態(tài)時,第二和隨后的總線周期被執(zhí)行。在每一個這樣的周期內(nèi),在寫操作或讀操作情況下,數(shù)據(jù)線被驅(qū)動,準(zhǔn)備好(RDY)和字符組準(zhǔn)備好(BRDY)線的狀態(tài)被取樣。當(dāng)發(fā)出補償(BOFF)時,總線周期失靈,狀態(tài)設(shè)備12-200定序到狀態(tài)Tb。當(dāng)處于這種狀態(tài)時,設(shè)備12-200執(zhí)行故障總線周期的第二和隨后的時鐘周期。如圖5所示,狀態(tài)設(shè)備12-200將保持在狀態(tài)Tb直到保持(!HOLD)和補償(!BOFF)不再存在。在這段時間內(nèi),狀態(tài)設(shè)備12-200通過定序到狀態(tài)T1b重申總線周期。當(dāng)處于這種狀態(tài)時,設(shè)備12-200執(zhí)行重新開始的總線周期的第一個時鐘周期。當(dāng)在狀態(tài)T1時,它除了要產(chǎn)生一個地址選通(ADS)外,還要驅(qū)動有效的地址和狀態(tài)線。
如從圖5看到的,狀態(tài)設(shè)備12-200定序在狀態(tài)T2去完成該操作。還可以看到,緩沖(BOFF)以同樣的方式影響從狀態(tài)T1到狀態(tài)Tb的定序,在圖5所示情況下,狀態(tài)設(shè)備12-200在具有另一請求時,從狀態(tài)T2定序到狀態(tài)T1,而在沒有一個請求時返回到狀態(tài)Ti。
圖6是一個狀態(tài)圖,它表示了圖3所示狀態(tài)設(shè)備電路12-250的定序狀態(tài)。如圖所示,狀態(tài)設(shè)備電路12-250b開始處于空閑狀態(tài),并且保持該狀態(tài)只要微機12-20不產(chǎn)生一個地址選通信號!ADS。微機只要一產(chǎn)生地址選通信號ADS并且沒有保持應(yīng)答緩沖或系統(tǒng)總線清除信號(即!HOTLDA、QBBOFF、!MBMCLR)出現(xiàn),狀態(tài)設(shè)備電路12-250b就定序到狀態(tài)1,在沒有系統(tǒng)總線清除信號MBMCLR的情況下,狀態(tài)設(shè)備電路從狀態(tài)2定序到4,以響應(yīng)連續(xù)的時鐘信號REFCLK。在狀態(tài)3期間,狀態(tài)設(shè)備電路12-250b產(chǎn)生PAR裝載信號PARLD,該信號用于將微機12-20在當(dāng)前總線操作周期內(nèi)所發(fā)出的地址和命令裝入PAR寄存器12-251。
當(dāng)在狀態(tài)4時,狀態(tài)設(shè)備電路12-250b產(chǎn)生一個操作定時器信號OPTMEN+,該信號被施加到模塊12-250c的定時器電路上。這就使得該定時器電路能夠啟動用于外部請求的250毫秒間隔或用于內(nèi)部請求的32時鐘間隔,來自PSM狀態(tài)設(shè)備12-80的信號MBREQT的狀態(tài)規(guī)定了是哪一種類型的請求,若信號MBREQT是二進制值“1”,就選擇250毫秒間隔,若上述信號為二進制值“0”,則選擇32時鐘間隔。
如果定時器電路超過了所選擇的間隔,那么它將產(chǎn)生一個系統(tǒng)總線操作超時信號MBOTOR,該信號被加到NMI匯流電路12-250a。這就導(dǎo)致產(chǎn)生一個信號NMI,該信號使得狀態(tài)設(shè)備電路12-250b產(chǎn)生一個超時信號MBTZCK,后者又發(fā)送給狀態(tài)設(shè)備12-80,從而導(dǎo)致產(chǎn)生一個準(zhǔn)備好信號QBRDY。信號NMI同時還禁止產(chǎn)生裝載信號PARLD+。
信號QBRDY除了將狀態(tài)設(shè)備電路12-250b重新置位到空閑狀態(tài)以外,還要清零微機總線狀態(tài)設(shè)備。當(dāng)在沒有其它的地址選通信號(!ADS)或保持應(yīng)答(!HLDA)或緩沖(!BOFF)情況下產(chǎn)生清除信號(BLAST)時,就要遵循這條通路。
在沒有緩沖或保持應(yīng)答(即、!HLDA或!BOFF)的情況下(這表明局部存貯器12-30已經(jīng)向微機12-20發(fā)出了準(zhǔn)備好信號以指示總線協(xié)議進行順利)。狀態(tài)電路12-250b在一個準(zhǔn)備好(RDY)信號出現(xiàn)也返回到空閑狀態(tài),當(dāng)狀態(tài)電路12-250b返回到空閑狀態(tài)時,就使得操作定時器信號QPTMEN+的復(fù)位禁止模塊12-250c的定時器電路。
如從圖6所看到的如果在有清除信號時產(chǎn)生內(nèi)部信號DHBRDY并且在沒有保持應(yīng)答或補償(即!HLDAA或!BOFF)的情況下產(chǎn)生另一個地址選通,那么,狀態(tài)設(shè)備電路12-250b將定序到狀態(tài)5,然后返回到狀態(tài)2。這個定序保證除在背對背(backtoback)總線周期情況下該定時器電路被禁止外,還能向PAR寄存器裝入有效信息(提供從地址選通信號產(chǎn)生時開始的三個時鐘周期)。
除了上述以外,監(jiān)控裝置還為存貯器提供導(dǎo)致其它類型非屏蔽誤差條件的地址和命令。這包括發(fā)生其地址不包括在局部存貯器12-30范圍以內(nèi)的非法存貯器存取(即信號ILLACC),以及對數(shù)據(jù)總線奇偶誤差的檢測(即信號DBPDE)或?qū)ο到y(tǒng)總線不能獲得資源的檢測(即信號PTRUAR)。產(chǎn)生這些信號中的任何一個信號都導(dǎo)致產(chǎn)生一個向微機12-20傳送的信號NMI。
上述展示了本發(fā)明的監(jiān)控裝置是如何僅增加了少量電路就能檢測由微機12-20引入給局部存貯器12-30或系統(tǒng)總線16的總線協(xié)議定序的不正確結(jié)束的。
本專業(yè)以內(nèi)的技術(shù)人員可以理解,可以在不脫離本發(fā)明技術(shù)的情況下作出許多變化。如本發(fā)明可以和不同類型的協(xié)議和命令一起使用。另外,當(dāng)本最隹實施例利用不同的PAL電路去執(zhí)行某些功能時,在某些例子中,這些功能可以被相互結(jié)合在一起并使用一個單一的電路來執(zhí)行它。另外,本發(fā)明也不受限于任何特殊類型的電路。
附錄符號的敘述(其中#=OR(或)?。椒?&=與)1.狀態(tài)設(shè)備PAL電路12-250b模塊XCM58端子說明(輸入)REFLCK端子1;“基準(zhǔn)時鐘HOTRDY端子2;“來自DB的準(zhǔn)備好信號HOTBRDY端子3;“來自DB的字符組準(zhǔn)備好信號HOTADS端子4;“來自DB的地址選通信號MBMCLR端子5;“主插件主清除脈沖!HOTHLDA端子6;“來自DB的保持應(yīng)答!QBRDY端子7;“來自主插件的準(zhǔn)備好信號!QBBOFF端子8;“來自主插件的補償信號MBT2CK端子9;“系統(tǒng)定時2時鐘DBBLAST端子10;“來自DB的最后字符組!MBREQT端子11;“系統(tǒng)請求!OUTENA端子13;“輸出使能(邏輯O)MBNMI端子14;“系統(tǒng)非屏蔽中斷
(輸出)!PARLOAD端子15;
EXTREQT端子16;“外部請求Q0端子19;
Q1端子20;
Q2端子17;
OPTMEN端子21;“操作超時使能DHBRDY端子18;“來自DB的延遲字符組準(zhǔn)備好方程狀態(tài)設(shè)備狀態(tài)定義IDLE(空閑)=^B011;
STAE-1(狀態(tài)1)=^B010;
STATE-2(狀態(tài)2)=^B100;
STATE-3(狀態(tài)3)=^B100;
STAEA-4(狀態(tài)4)=^B111;
STATE-5(狀態(tài)5)=^B110;
STATE-6(狀態(tài)6)=^B001;
STATE-7(狀態(tài)7)=^B000;
OPTMOUT=[Q2、Q1、Q0];
狀態(tài)設(shè)備狀態(tài)定義結(jié)束。
方程式PARLOAD=!MBNMI&(OPTMOUT=STATE-3);
DHBRDY=HOTBRDY&!HOTHLDA&!QBBOFF;
EXTREQT=MBREQT;
OPTMEN=(OPTMOUT=STATE-4);
狀態(tài)設(shè)備方程式STATE-DIAGRAMOPTMOUT;
STATEIDLE(狀態(tài)空閑);
若HOTADS&!HOTHLDA&!QBBOFF&!MBMCLR,則處于狀態(tài)1;否則處于空閑狀態(tài)狀態(tài)-1狀態(tài)若是!MBMCLR則處于狀態(tài)-2;否則處于空閑狀態(tài);
狀態(tài)-2狀態(tài)若是!MBMCLR則處于狀態(tài)-3,否則處于空閑狀態(tài);
狀態(tài)-3狀態(tài)若是!MBMCLR則處于狀態(tài)-4,否則處于空閑狀態(tài);
狀態(tài)-4狀態(tài)若QBRDY#MBMCLR#(HOTRDY&!HOTHLDA&!QBBOFF)#(DHBRDY&DBBLAST&!MBMCLR&(!HOTADS#HOTHLDA#QBBOFF))則空閑否則若DHBRDY&DBBLAST&HOTADS&!HOTHLDA&!QBBOFF&!MBMCLR則處于狀態(tài)-5;否則處于狀態(tài)-4;
狀態(tài)-5狀態(tài)若是MBMCLR則是空閑,否則為狀態(tài)-2;
狀態(tài)-6狀態(tài)轉(zhuǎn)向狀態(tài)-7;
狀態(tài)-7狀態(tài)轉(zhuǎn)向空閑;
Ⅱ寄存器a.實際地址寄存器(PAR)實際地址寄存器(PAR)記錄由微機12-20所產(chǎn)生的每個事件的地址。當(dāng)信號NMI起作用時,該寄存器停止記錄,而當(dāng)通過讀出該伴隨寄存器的內(nèi)容而對NMI信號作出應(yīng)答時,該寄存器再次開始記錄。通過讀通道地址寄存器,微機12-20的NMI處理程序軟件可以確定非法事件控制引線M/O、D/C和W/R的狀態(tài)。響應(yīng)PAR讀操作而返回的數(shù)據(jù)是按字節(jié)調(diào)動的且兩個最高有效位是被反相的。讀PAR以響應(yīng)功能代碼值60。
b.通道地址寄存器(CAR)通道地址寄存器在發(fā)出一系列I/O命令以前被預(yù)先裝入了軟件,它是一個16位的寄存器,用于以位碼元0-9的形式存貯一個I/O通道號,該通道號被傳送給系統(tǒng)總線16以指示微機的I/O目的地址在I/O操作時發(fā)出INW/OUTW命令。此外,位碼元12-10存貯由微機12-20所發(fā)出的每個事件的M/IO,D/C和W/R引線的狀態(tài)。響應(yīng)功能代碼值40讀CAR寄存器,而響應(yīng)功能代碼值41對該CAR寄存器寫入。
在依據(jù)所展示和敘述的本發(fā)明最隹形式的措施和規(guī)定的情況下,可以作出某些變動而不脫離本發(fā)明和獨立權(quán)利要求的精神,并且在某些情況下,本發(fā)明的某些特性可以被用于獲得某些益處而不需要相應(yīng)地使用其它特性。
權(quán)利要求
1.一種與微機連在一起使用的監(jiān)控裝置,上述微機與依據(jù)預(yù)定總線協(xié)議執(zhí)行貯存器讀和寫操作的一個存貯器一起被耦合到一個同步總線上,所述微機包括一個用于處理非屏蔽中斷(NMI)的中斷接口,所述監(jiān)控裝置包括輸入電路,用于接收指示誤差狀態(tài)的若干信號,并被耦合到所述中斷接口上,所述輸入電路響應(yīng)上述若干信號中的任何一個以產(chǎn)生NMI信號;狀態(tài)設(shè)備,耦合到所述輸入電路以接收所述NMI信號,并耦合到所述同步總線上,所述的狀態(tài)設(shè)備被編程以產(chǎn)生一個預(yù)定序列的狀態(tài)信號,用于監(jiān)視所述微機在所述總線上發(fā)出命令時所產(chǎn)生的總線協(xié)議信號序列;耦合到所述狀態(tài)設(shè)備和所述輸入電路上的操作定時器電路裝置,當(dāng)處于第一預(yù)定狀態(tài)時,所述定時器電路裝置被所述狀態(tài)設(shè)備所使能從而啟動一個相當(dāng)于完全執(zhí)行由微機所發(fā)出的某種命令通常所需時間間隔的預(yù)定時間間隔,依據(jù)所述的總線協(xié)議信號,在從指示所述命令正常完成的所述狀態(tài)設(shè)備接收復(fù)位信號以前,所述的定時器電路裝置在所述預(yù)定時間間隔的終點處產(chǎn)生一個超時信號,且所述輸入電路響應(yīng)所述超時信號產(chǎn)生所述NMI信號并傳送給所述的中斷接口。
2.根據(jù)權(quán)利要求1的監(jiān)控裝置,其中,所述的監(jiān)控裝置還進一步包括耦合到所述同步總線和所述狀態(tài)設(shè)備的寄存器電路裝置,當(dāng)處于第2預(yù)定狀態(tài)時所述的寄存器電路裝置被所述狀態(tài)設(shè)備使能,以存貯在現(xiàn)行總線操作周期內(nèi)施加給所述總線的每個命令的地址和命令信號,且所述狀態(tài)設(shè)備響應(yīng)所述NMI信號,從而禁止進一步使能所述寄存器電路,以便于微機的中斷處理。
3.根據(jù)權(quán)利要求1的監(jiān)控裝置,其中,所述的操作定時器電路包括用于產(chǎn)生若干預(yù)定時間間隔的裝置,上述時間間隔中的每一個都與每個不同種類的命令有關(guān)。
4.根據(jù)權(quán)利要求3的監(jiān)控裝置,其中所述定時器電路裝置產(chǎn)生上述若干預(yù)定時間間隔的第一個預(yù)定時間間隔,該間隔相當(dāng)于一個由所述微機完全執(zhí)行一個內(nèi)部命令所通常需要的間隔。
5.根據(jù)權(quán)利要求4所述的監(jiān)控裝置,其中,所述微機耦合到系統(tǒng)總線上,用于傳送和接收命令給/從共同連接到所述系統(tǒng)上的單元,并且其中所述的定時器電路裝置產(chǎn)生上述若干預(yù)定時間間隔的第二預(yù)定時間間隔,該間隔相當(dāng)于由所述微機完全執(zhí)行所述系統(tǒng)總線上的一個外部命令通常所需的間隔。
6.根據(jù)權(quán)利要求1所述的監(jiān)控裝置,其中所述狀態(tài)設(shè)備包括一個同步可編程陣列邏輯(PAL)電路,該電路被編程,用于產(chǎn)生所述預(yù)定序列的狀態(tài)信號,所述PAL電路最初被置于空閑狀態(tài),并且響應(yīng)一個地址選通信號定序到第一狀態(tài),然后響應(yīng)隨后的時鐘信號通過后繼狀態(tài)定序到第二預(yù)定狀態(tài)。
7.根據(jù)權(quán)利要求6所述的監(jiān)控裝置,其中,所述的PAL電路響應(yīng)下一個時鐘信號從所述的第二狀態(tài)定序到所述第一預(yù)定狀態(tài)以用于使能所述定時器電路,在產(chǎn)生由所述總線協(xié)議信號的狀態(tài)所規(guī)定的多個事件中的一個以前,所述PAL電路仍保持在所述第一狀態(tài)。
8.根據(jù)權(quán)利要求7所述的監(jiān)控裝置,其中,所述事件的第一個包括產(chǎn)生第一協(xié)議信號,該信號表明在不存在表示所述同步總線上已經(jīng)配置了其它命令的信號的情況下,多字傳輸已經(jīng)完成,或者表明所述微機已經(jīng)允許其它單元對所述總線的控制或被迫中止對所述總線的控制。
9.根據(jù)權(quán)利要求8所述監(jiān)控裝置,其中,所述事件的第二個包括接收一個準(zhǔn)備好信號,該信號表示所述命令是正常的,在沒有表明所述微機已經(jīng)允許所述其它單元去控制所述總線或該微機被迫中止對所述總線的控制的信號的情況下,所述準(zhǔn)備好信號禁止所述操作定時器電路裝置并使所述PAL電路返回到所述空閑狀態(tài)。
10.根據(jù)權(quán)利要求9所述的監(jiān)控裝置,其中,當(dāng)有表明多字傳輸已經(jīng)完成的信號存在,以及在不存在表明所述微機已經(jīng)允許其它單元對所述總線的控制或該微機被迫中止對所述總線進行控制的信號的情況下有表明將其它的命令應(yīng)用于所述總線的信號存在時,接收一個準(zhǔn)備好的信號時,所述的PAL電路從所述第一狀態(tài)定序到第三狀態(tài),并且,所述PAL電路從所述第三狀態(tài)定序到一個較早的狀態(tài),以保證將涉及到由微機在背對背(back to back)總線周期情況下施加給所述總線的下一個命令的有效信息裝入所述寄存器裝置。
11.根據(jù)權(quán)利要求5所述的監(jiān)控裝置,其中,所述加到所述輸入電路的若干信號包括表明發(fā)生了非法存貯器存取的信號、對數(shù)據(jù)總線奇偶誤差的校驗信號或?qū)ο到y(tǒng)總線不可得資源進行檢測的信號。
12.根據(jù)權(quán)利要求1所述的監(jiān)控裝置,其中,所述NMI信號使所述微機去核對一個過程,用以查明所述中斷的原因,并借此避免中斷微機。
全文摘要
一種涉及到高性能微機的協(xié)議監(jiān)控裝置,用于監(jiān)控由微機發(fā)出的所有命令,檢測該協(xié)議在什么時候沒有被正確完成以及在什么時候在某預(yù)定時間周期內(nèi)被完成。當(dāng)監(jiān)視器/定時器電路檢測到一個協(xié)議誤差時,監(jiān)控裝置產(chǎn)生一個輸出控制信號,該信號不引入微機,從而使得它能繼續(xù)進一步的處理。此外,監(jiān)控裝置包括一個寄存器,用于存貯在協(xié)議誤差期間微機所執(zhí)行的地址和命令。同一寄存器也被用于記錄其它任何類型誤差的地址的命令信息。
文檔編號G06F13/42GK1072522SQ92112289
公開日1993年5月26日 申請日期1992年10月4日 優(yōu)先權(quán)日1991年10月4日
發(fā)明者詹姆斯·W·克勒爾, 瑞查德·A·里海 申請人:布爾·Hn·信息系統(tǒng)有限公司