專利名稱:總線修補器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的關(guān)于總線通信系統(tǒng)的改進。更具體地,關(guān)于一種方法和設(shè)備,它通過對計算機系統(tǒng)添加一個修補器(patcher),來防止在計算機系統(tǒng)中出現(xiàn)錯誤,修補器監(jiān)測總線上一個會潛在地引起系統(tǒng)中一個錯誤、然后干擾正常的總線行為總線事件的出現(xiàn),從而防止該事件出現(xiàn)在總線上或被總線上的其它代理模塊觀測到。
先有技術(shù)計算機系統(tǒng)或其它的邏輯系統(tǒng)可以包括部件或元件的組合,它們在一系列特定條件出現(xiàn)時,服從不同的故障機制。每個這樣的條件都可被稱為一個“故障”(bug)。每個故障都有一個“故障標志”,它定義引起故障出現(xiàn)的事件集。
例如,一個系統(tǒng)部件可能會在第一個特定事件后緊跟第二個特定事件時出錯,但若有任何其它事件出現(xiàn)在第一和第二事件之間,則不會出錯。或者,如果第二部件在第一部件處于一個指定狀態(tài)時發(fā)出一個特定事件,則第一部件可能會改變行為或者甚至可能失敗。這類故障機制的技術(shù)是已知的。
在計算機系統(tǒng)或其它邏輯或通信系統(tǒng),以下總稱為計算機系統(tǒng)中,這些不同的故障標志可能集中于出現(xiàn)在連接許多代理模塊的總線上的事件。例如,一個計算機系統(tǒng)可能包含一個處理器,一個芯片組及其它代理模塊,它們?nèi)加梢粋€系統(tǒng)總線連接在一起。很容易理解,可能會存在故障標志,它涉及總線上這些代理模塊間的特定通信。
另一方面,故障標志可能位于一個更緊湊的整體中,其中,一個特定事件或全部在一個單個芯片或其它代理模塊中的條件系列可能引起一個內(nèi)部或外部錯誤。這些類型的故障可能涉及由芯片內(nèi)總線連接在一起的多個功能單元,或者,它們甚至可能涉及一個單個單元中的一系列狀態(tài)。
以前,利用邏輯分析儀和線路內(nèi)仿真器來監(jiān)測計算機總線業(yè)務(wù),以確定所觀察到的系統(tǒng)錯誤的來源和誘因。不過,這些工具只提供可被用于對存在故障的部件重定義和重制造(一個新的改進)的信息,以便該部件的新的改進將不出現(xiàn)故障。它們不能被用于防止原有部件中故障的出現(xiàn)。
同樣,也容易理解,特定種類的“阻塞故障”可能“隱藏”其它故障。一旦阻塞故障被修正后,被隱藏的故障才能出現(xiàn),并被發(fā)現(xiàn)以便修正?;蛘撸鼈兂霈F(xiàn)得非常稀少,使得它們可能被其它故障所掩蓋。若有一系列這種阻塞故障,則使用純粹的邏輯分析儀及線路內(nèi)仿真器將要求大量的改進以得到一個功能上正確,無故障的組件。而這將花費大量時間、費用和工程工作。最終,邏輯分析儀及線路內(nèi)仿真器會很大而且價格昂貴,且完全不適合于在一個運行基礎(chǔ)上修復大量已安裝系統(tǒng)中的故障。
于是,希望有一種改進的裝置,用來根據(jù)故障標志,檢測故障的出現(xiàn)或即將出現(xiàn),并用來防止故障出現(xiàn)。并且希望它不要求部件的改進。還希望在進行批量部件生產(chǎn)中價格不貴。還希望它是可編程的,這樣,它可被用于在一個系統(tǒng)的已安裝基礎(chǔ)中修復后來發(fā)現(xiàn)的故障。
發(fā)明總結(jié)本發(fā)明圍繞一個裝置,它包括一個總線,一個連接到總線上的第一代理模塊,一個連接到總線上、用來按照一個總線協(xié)議與第一代理模塊通信的第二代理模塊,和一個連接到總線上的修補器,它用來監(jiān)測從第二代理模塊到第一代理模塊的通信,以識別一個將會引起設(shè)備中的一個錯誤的事件,并用來修改通信以避免錯誤。本發(fā)明還圍繞這樣一個設(shè)備和這樣一個修補器的操作方法。
總線修補器包含一個適于與總線一起使用的協(xié)議觀測器,一個適于觀察總線上已知故障標志的出現(xiàn)的狀態(tài)機,和一個用于在總線上干擾以防止有那些標志的故障出現(xiàn)的干擾器。協(xié)議觀測器,狀態(tài)機和/或干擾器中的任何一個都是可編程的。
在硅排錯中可使用總線修補器以避免阻塞故障并發(fā)現(xiàn)隱藏在它們后面的故障,以允許在硅的少量改進中修正阻塞及隱藏的錯誤。
附圖概述
圖1是總線修補器的主要部件的方塊圖。
圖2舉例說明了按先有技術(shù)的,包括兩個連接到總線上的代理模塊的簡化計算機系統(tǒng)。
圖3描述了一個包含總線修補線的增強計算機系統(tǒng),其中總線修補器被直接連接到總線上。
圖4描述了一個計算機系統(tǒng),其中總線修補器被插入在一個代理模塊和總線之間。
圖5更詳細地示出一個計算機系統(tǒng),說明了作為代理模塊連接到橋上的一個處理器,總線橋和內(nèi)存控制器,還說明了除主處理器或系統(tǒng)總線以外,總線修補器還可在總線上使用。
圖6說明了總線修補器可以位于不同的系統(tǒng)代理模塊中。
圖7是總線修補器物理實現(xiàn)的一個側(cè)視圖,其中,總線修補器位于一個插入器板上,該板安裝在一個代理模塊,如一個處理器,和主板或子板上該代理模塊的慣用插槽之間。
圖8是一個改進的物理實施例,其中插入器板包括多個連接卡。
圖9是一個時序圖,說明了按一個示例的故障標志的各種信號的行為,它將在系統(tǒng)中引起一個錯誤。
圖10是一個時序圖,舉例說明這些信號中某一個的行為可被總線修補器如何修改以避免故障。
本發(fā)明具體描述圖1舉例說明了本發(fā)明總線修補器的一個實施例。總線修補器包括一個用來連接到總線或出現(xiàn)故障的部件上的接收器。在一個實施例中,接收器用于將總線修補器連接到計算機系統(tǒng)的系統(tǒng)總線或處理器總線上。
很容易理解,計算機系統(tǒng)中的不同組件可以很方便地使用一個預(yù)定義的總線協(xié)議,以通過總線互相通信。于是,總線修補器包括一個連接到接收器上的協(xié)議觀測器,它監(jiān)測信號、事件、事務(wù)或表現(xiàn)在總線上的協(xié)議的其它元素。
總線修補器還包括連接到協(xié)議觀測器上的一個狀態(tài)機或其它邏輯裝置。狀態(tài)機知道要被修補并從而避免的故障的故障標志。
一個干擾器連接到并響應(yīng)于狀態(tài)機。一旦狀態(tài)機根據(jù)故障標志識別故障的出現(xiàn)或即將出現(xiàn),干擾器執(zhí)行適當?shù)膭幼饕员苊夤收?。干擾器通過一個驅(qū)動器連接回計算機系統(tǒng)總線。
總線修補器的任何基本單元都可以是可編程的。為了是可編程的,一個單元可以包括一個編程裝置,諸如一個現(xiàn)場可編程門陣列,一個可編程陣列邏輯,一個可編程邏輯陣列,一個應(yīng)用專用集成電路,一個只讀存儲器,一個隨機存取存儲器或其它合適的可編程裝置。在其中有一個或多個單元是可編程的實施例中,總線修補器包括用于接收一個程序的程序輸入裝置。例如總線修補器可以使用一個JTAG掃描鏈,一個專用I/O端口,總線自身或其它合適的裝置,以接收編程信息。
另一方面,如果不要求單元是可編程的,可以使用硬編碼邏輯。
如果希望總線修補器以可改變的總線協(xié)議操作,或者若要求總線修補器對有不同總線的兩種或多種計算機系統(tǒng)操作,則協(xié)議觀測器可以包括一個編程裝置。
甚至希望狀態(tài)機包含編程裝置,以確定要修補哪一個故障標志。通過將附加故障標志輸入狀態(tài)機的編程裝置,總線修補器將能夠觀察并防止附加故障。這將使得在發(fā)現(xiàn)新故障時,總線修補器能夠現(xiàn)場升級。它還使得總線修補器能根據(jù)它所安裝的特定系統(tǒng)被定制。例如,一個應(yīng)用程序能確定系統(tǒng)的一個標識,并根據(jù)它而有選擇地加載特定的故障標志。
最后,干擾器可以包括一個編程裝置。這將允許在檢測到特定故障時,重新定義所要執(zhí)行的動作,并允許在發(fā)現(xiàn)新的故障時,增加新的動作。狀態(tài)機和干擾器總是相互配合地被升級或重新編程,因為一個故障標志及要防止其出現(xiàn)所要采取的動作總是成對出現(xiàn)的。
在一個實例中,故障標志和干擾操作的可編程性可以共同存儲在一個單個部件,例如狀態(tài)機中。在不同實施例中,狀態(tài)機和干擾器可被實現(xiàn)為一個單個單元,或可被實現(xiàn)為另一個單元的子部件。
可以看到,總線修補器關(guān)于整個系統(tǒng)的知識越全面,它防止故障的能力越強。例如,可以希望給總線修補器提供關(guān)于計算機系統(tǒng)的地址映像的完整信息。這可以使總線修補器能捕捉到依賴于系統(tǒng)的故障。另外,可以希望總線修補器有關(guān)于I/O總線(例如PCI總線)的信息。
通過以較細粒度識別故障標記,還可以使修補器避免不必要的修補。例如,在具有某特定屬性的兩個總線事務(wù)被連續(xù)發(fā)出時可能出現(xiàn)一個故障,但只是在它們來自同一代理模塊時才出現(xiàn)該故障。通過加入這一附加信息,則故障只出現(xiàn)在同一代理模塊發(fā)出兩個事務(wù)時,總線修補器將能夠在兩個事務(wù)來自不同代理模塊時避免修補。這一不必要的修補不外乎是導致輕微的系統(tǒng)性能降級損害,或者它將在實際中引起一個錯誤,崩潰或停機。
編程信息可以包括,例如,要觀測的總線線路,事件或事務(wù),要監(jiān)測的特定數(shù)據(jù)值,或是預(yù)定義的地址映像,特定事件序列,某些輸出或結(jié)果等等。這些定義了故障標志。可以看到,故障標志可包含各種各樣的數(shù)據(jù),條件,狀態(tài),事件等。
干擾也同樣包括各種操作。通常,它們可包括總線協(xié)議,總線流水線,系統(tǒng)電氣,到代理模塊的直接通信,I/O總線,邊帶信號等。
總線協(xié)議干擾的例子包括將一個總線信號或事務(wù)延遲一段時間,例如一個預(yù)定數(shù)目的時鐘,確立或撤銷一個信號,擴展總線周期,中斷總線判優(yōu),取消一個完整的事務(wù),發(fā)出一個中斷,或者甚至發(fā)出一個復位信號以重新啟動整個計算機,或其它這類總線協(xié)議自身的合法應(yīng)用。在這種情況下,干擾是在總線協(xié)議的約束下進行的,以保持系統(tǒng)一致性和確定性。
另一方面,干擾還可包含違反總線協(xié)議。其例子包括在一個禁止時間發(fā)出一個信號,根據(jù)其它信號以一個禁止的組合發(fā)出一個信號,或類似情況。通常,這類違法干擾不象總線協(xié)議范圍內(nèi)的那些干擾那樣理想,因為它們會帶來較少的確定性及在實際中更可能產(chǎn)生錯誤。
不過,如果其違反協(xié)議的方式會產(chǎn)生系統(tǒng)能從中恢復的已知結(jié)果,則有些違反總線協(xié)議的干擾是可以被接受的。例如,通過改變一個單個數(shù)據(jù)信號或位線的值來強制一個奇偶錯誤通常是可恢復的,并且足以克服有些故障標志。
在有些情況下,可能是干擾操作的一個副作用,而不是干擾自身的直接作用,在實際上阻礙故障。例如,一個強制奇偶錯誤可能不直接避免故障,但系統(tǒng)修正一個奇偶錯誤所采用的校正操作由于其非期望作用被取消或被校正可引起故障標志被避免。
電氣干擾,例如注入噪聲,過激一個信號,或確立一個非法信號電壓,通常遠不如協(xié)議干擾那樣理想,但它可能在一些系統(tǒng)中或?qū)τ谝恍┛偩€適用。例如,一些數(shù)據(jù)轉(zhuǎn)發(fā)器檢測立即邏輯值并識別競爭的出現(xiàn),這將導致重試。
在其中計算機系統(tǒng)是一個Intel體系結(jié)構(gòu)的模式中,干擾還可包括在其它信號中確立或撤銷這些信號HIT#,HITM#,AERR#,BNR#,BPRI#,BINIT#,BERR#,INIT#,RESET#,和DBSY#。
最后,總線修補器可包含使能和禁止其電路的任何常規(guī)裝置。為簡單起見,未示出使能/禁止單元和其它單元間的連接。本技術(shù)領(lǐng)域的專業(yè)人士可以意識到,該單元允許外部邏輯將總線修補器斷掉電,因此,在不需要時,總線修補器進入低電耗狀態(tài)。在這種模式下,根據(jù)外部使能信號,使能/禁止單元使總線修補器上電。另一方面,不需要任何外部輸入信號,使能/禁止單元可被內(nèi)部觸發(fā),在不需要時自動將總線修補器置于休眠模式。在這種模式下,可以以任何一種本技術(shù)專業(yè)人士所熟知的常規(guī)方式,采用使能/禁止單元檢測什么時候再次需要總線修補器。
圖2示出了一個按先有技術(shù)的計算機系統(tǒng),其中,第一代理模塊(A)和第二代理模塊(B)被連接在一起以通過總線互相通信。圖2示出兩個代理模塊僅是為了簡單起見??梢砸庾R到,在任何給定計算機系統(tǒng)中可以出現(xiàn)任意數(shù)目的代理模塊。在不同實施例中,一個代理模塊可以是一個處理器,或一個協(xié)處理器,或一個信號處理器,或一個總線橋,例如一個處理器與一個用來連接插入板的總線(例如一個PCI總線或ISA總線)之間的總線橋,或一個內(nèi)存控制器,或一個高速緩存控制器,或一個直接存儲器存取裝置,或其它這類代理模塊,這些例子中沒有一個在圖2中專門示出。
圖3示出一個如圖2的簡單系統(tǒng),但加入了總線修補器。如在圖3中示出的,總線修補器可以直接和獨立地連到其它代理模塊所連接的同一總線上。在該模式,修補器相對于其它代理模塊是一個可獨立應(yīng)用的部件。
另一方面,圖3可被理解為說明了一個實際上在一個諸如微處理器的單個芯片范圍內(nèi)的系統(tǒng),其中,不同代理模塊僅是芯片的不同內(nèi)部單元,總線是一個內(nèi)部總線,通過它,那些單元互相通信。在這個替換例子中,總線不需是外部世界可見的。
圖4示出了一個有些不同的實例,其中總線修補器被插入在一個代理模塊和總線之間。希望,但不要求被插入總線修補器的代理模塊是一個引起故障的代理模塊或是一個由故障導致失敗的代理模塊。
圖5詳細說明了本發(fā)明的一個特定的實用實施例,其中代理模塊包括一個處理器,一個總線橋和一個內(nèi)存控制器及其相關(guān)存儲器。在這樣一個實施例中,處理器是Intel公司的PentiumPro處理器,總線橋橋接在處理器總線和PCI總線之間。
圖5還示出了總線修補器不需直接接到處理器總線上。在所示實例中,總線修補器被連接到PCI總線上以修補出現(xiàn)在該總線上的故障,例如在一個PCI內(nèi)插卡(未示出)與另一個PCI內(nèi)插卡(未示出)或PCI橋芯片間的通信中的故障。在另一個實施例(未示出)中,總線修補器可以連接到內(nèi)存控制器和內(nèi)存之間的總線上,以修復出現(xiàn)在那里的故障。在另一個實施例(未示出)中,總線修補器可以被連到多于一個總線上,例如處理器總線和PCI總線上,以修補也連接到這些總線上的一個總線橋中的故障。
圖6舉例說明了修補器不需是一個獨立應(yīng)用的設(shè)備。而是,總線修補器可以直接被插入到一個或多個其它代理模塊中??梢灶A(yù)料,總線修補器通常只占任何代理模塊芯片的很小一個區(qū)域,于是它當然可以很便利地被包含在一個代理模塊,或者甚至所有代理模塊中,僅是“以防萬一”。在這種模式下,希望給修補器配備使能和禁止修補器的裝置(未示出),于是除非需要并使其能工作,修補器將不作任何操作且不消耗能量。任何合適的,常用的使能裝置都可用于該目的。
圖6還舉例說明了單個修補器的功能可被分配在不同代理模塊間。例如,協(xié)議觀測器可以被包含在處理器中,因為通常處理器是定義其它所有代理模塊將采用的總線協(xié)議的部件。如果在要被修補的故障出現(xiàn)時,且總線橋是要失效的代理模塊時,則干擾器可以被包含在總線橋中。狀態(tài)機可位于任何方便的地方。在這樣一個分配實例中,系統(tǒng)總線本身可用于在總線修補器的單元間發(fā)送信號。在有些情況下,系統(tǒng)總線將被用于這一業(yè)務(wù)這一事實可以免除對干擾器的需求;元件間通信本身可能足以干擾以克服故障標志。另一方面,專用修補器總線(未示出)可以將修補器部件連接在一起。
可以意識到,對這些實施例的選擇,以及在哪里連接總線修補器,可以部分地由總線自身的性質(zhì)決定。例如,一個線-或總線(wired-or bus)可以使自己很方便地使用于圖3中的實施例。一個線-或總線是有利的,因為它允許任何獨立代理模塊-包括一個其系統(tǒng)沒有專門設(shè)計以容納例如一個總線修補器的代理模塊-發(fā)出一個可被總線上所有其它代理模塊識別的信號。
圖7示出了用于圖4所示計算機系統(tǒng)中的總線修補器的可能的物理實現(xiàn)。其中,總線修補器被插入在一個代理模塊和在不插入修補器時該代理模塊將被連接到其上的總線之間。圖7將其示為插入了總線修補器的處理器,不過可以理解,其它代理模塊也可被這樣插入。
處理器被連接到一個插入器板的插槽上,而不是被直接連接到其母板或用于連接到芯片組或其它板邏輯上的處理器子卡插槽上。然后,一個適配器將插入器板連接到母板或子板上。在所示實施例中,處理器是被插入的,但可以體會到,插入器技術(shù)可適應(yīng)于使用其它已知安裝技術(shù)。
總線修補器被連接到插入器板上并以未被示出但在本技術(shù)中是可以理解的方式,被電連接到插入器插座和適配器上。在所示實施例中,總線修補器的接收器和/或驅(qū)動器,總稱為緩存器,物理上可以被從修補器的邏輯部分中移去。在一種模式下,緩存器,或它們的一個子集,可被置于插入器插座下面或位于插入器插座的外部插針周邊中(在該側(cè)視圖中未示出)。這尤其適用于處理器是一個Intel Pentium Pro處理器的情況,它與第二級高速緩存一起封裝在一個雙腔插針網(wǎng)格陣列封裝部件中,該封裝部件的插針圍繞其周邊,而不是直接在該封裝部件中心部分下面。
圖8舉例說明了插入器板的另一個模式,其中,處理器或其它代理模塊被連接到主插入器卡上,且至少有總線修補器的一部分被連接到諸如一個上引器卡(riser card)的單獨的卡上,該卡由一個諸如邊緣連接器的連接器連接到主插入器卡上,可選擇地,總線修補器的一些元件,例如緩存器,可位于主插入器卡上。這一般可以提供較好的噪聲,解耦,和其它電氣效果。
這種模式可提供幾點特殊的好處。要在其中插入總線修補器的特定計算機系統(tǒng)可能有空間限制,使得不能使用完整的插入器。同樣,對總線修補器的一些部分,例如邏輯或編程部分,使用分離的、可聯(lián)接的卡,使得能夠通過連接不同的上引器卡,簡單地使用有不同邏輯內(nèi)插式附件的一個單個插入器卡。
盡管在所舉例子中,上引器卡是相對于主插入器卡安裝在一個角度上,但可以理解,這是一個任選模式。它們可以任何合適方式連接。
為了清楚和易于理解,圖8相對于圖7所示內(nèi)容被簡化了,并且圖8中說明了處理器和緩存器被連接到插入器板上,修補器邏輯被連接到上引器卡上,且上引器卡和插入器卡由一個連接器連接起來。
圖9說明了一個可能出現(xiàn)在系統(tǒng)中的示例故障。為了說明的目的,所述系統(tǒng)是基于例如PentiumPro處理器的一個Intel結(jié)構(gòu)微處理器。
時序圖描述了三個讀事務(wù),其中R1是一個讀出線事務(wù),R2是一個讀局部線事務(wù),R3是一個由總線代理模塊在總線上發(fā)出的讀出線事務(wù)。為R1返回的數(shù)據(jù)出現(xiàn)在R11-14,為R2返回的數(shù)據(jù)出現(xiàn)在R21。
所舉例說明的故障的故障標志是一個返回數(shù)據(jù)的總線代理模塊(芯片組)中緩存重新配置策略中的故障,該故障在下列條件下出現(xiàn)1)讀事務(wù)R1的最近數(shù)據(jù)傳輸R14和有確立HITM#的讀事務(wù)的探測階段在同一時鐘(11)出現(xiàn),它引起為讀事件R1和R3重新配置緩存的請求,2)在下一個緊接著的時鐘(12),出現(xiàn)單個的數(shù)據(jù)傳輸R21,它使得出現(xiàn)一次為事務(wù)R2所做的緩存重新配置。由于邏輯沒有被設(shè)計為在兩個連續(xù)時鐘內(nèi)處理三次重新配置,所以出現(xiàn)該故障。其結(jié)果是為事務(wù)R2所進行的重新配置丟失,且當同一緩存隨后被分配給下一個事務(wù)時,該事件接收到錯誤數(shù)據(jù)。
圖10說明了總線修補器克服圖9中故障的用法。因為故障只出現(xiàn)在兩個連續(xù)時鐘內(nèi)有三個緩存重新配置時,且因為要求例如R14和R21的兩個獨立數(shù)據(jù)傳輸完成時間出現(xiàn)在兩個連續(xù)的時鐘,所以通過將R21延遲一個到多個時鐘,可以避免故障標志。一個避免故障的修補方法是將事務(wù)R2的探測階段完成延遲。Pentium Pro的總線協(xié)議允許一個獨立總線代理模塊-總線修補器即為這樣的代理模塊-在總線的任何事務(wù)中確立探測拖延。
在該例中,總線修補器的狀態(tài)機被編程為去檢測其后緊跟一個部分讀的讀出線的背對背序列,且干擾器被編程為為部分讀確立探測拖延(通過在探測階段中同時確立HIT#和HITM#),直到讀出線的數(shù)據(jù)傳輸完成。這就保證了R21總是被從R14延遲至少一個時鐘,從而通過防止故障標志出現(xiàn)而避免故障。
作為對使用探測拖延的干擾器的替換,干擾器可以在觀察到包含三個事務(wù)的背對背序列的故障標志時,確立一個BNR#信號(未示出)(一個阻塞下一個請求的信號),從而在第三個事務(wù)的發(fā)出中引起拖延。然后,當出現(xiàn)故障標志的窗口消失時,釋放BNR#。對只要求兩個事務(wù)的背對背序列的故障來說,BNR#可被用于調(diào)節(jié)指令發(fā)布,BNR#在每個不是故障標志的背對背序列中的第一個的事務(wù)時被撤銷。
因為在示例系統(tǒng)中,HIT#,HITM#和BNR#是線-或信號,所以它們是用于總線修補器干擾方案中的最佳候選。如果線或瞬變協(xié)議(glitch protocol)限制被放寬且總線在一個較低頻率工作,則附加信號成為可行的候選信號。例如,撤銷BPRI#可被延遲到來自總線橋代理模塊的最近事務(wù)完成之后,以避免任何與總線使用權(quán)在優(yōu)先代理模塊和對稱代理模塊之間改變有關(guān)的故障。有些事務(wù)類型僅從一個橋代理模塊中出現(xiàn)。如果BPRI#撤銷被延遲能防止來自橋代理模塊的最近事務(wù)與來自一個對稱代理模塊的另一事務(wù)流水相連。
另一個例子,DBSY#撤銷的擴展將數(shù)據(jù)傳輸總線占用從一個代理模塊中擴展,防止另一代理模塊緊跟其后流水傳送下一個數(shù)據(jù)傳輸。
另一個例子,確立AERR#使得事務(wù)被重新發(fā)出一次。該技術(shù)可以非常有限的方式被使用,以得到給定事件的正好再一次重試。這被證明是有用的,例如,可作為修補一個故障的初步嘗試(盡管不能保證成功),它所承諾的修補具有明顯缺陷,例如嚴重的性能下降或諸如此類。
還有一個例子,總線修補器被用于修補一個故障,該故障是由PentiumPro處理器芯片組的內(nèi)存控制器數(shù)據(jù)緩存重新配置問題所導致的,其中當寫后讀出訪問不能進行時,硅失敗。該故障的修補以偽代碼格式在表1中舉例說明。
若探測拖延則{若ReqA:MEM INV則{起動BNR#一個時鐘若ReqB:LEN=00則繼續(xù)拖延BNR#,直到探測拖延完成}等待16個附加時鐘
}表1示例修補以上所給這些例子進一步引導關(guān)心修補器使用的讀者。讀者將理解到,這決不是一個全面的表,且修補器可以在各種總線,處理器和計算機結(jié)構(gòu)中做無數(shù)其它修補。
請重新參考圖1,在修補器被實現(xiàn)為例如片內(nèi)形式的實施例中,其中修補器并非實際上連到總線上,而是被直接連到一個或多個功能單元上。干擾可以簡單地就是指修補器有一個或多個單元發(fā)送一個信號,使它們采取一些預(yù)定操作。
在另一個實例中,總線修補器不包含一個干擾器??偩€修補器采取一些動作以支持例如芯片或系統(tǒng)合法性,而不是試圖去修補一個故障。例如,它可能包含一個計數(shù)器(未示出),而不是一個干擾器。該實施例對于驗證以前已識別并推測已修復的故障不再出現(xiàn)尤其有用。即,它可被用于確認一個改進確實已修復了一個故障。如果已知一個特定故障能在一個預(yù)修復系統(tǒng)中引起一個可見錯誤,例如系統(tǒng)停機,且如果計數(shù)器確認已觀察到一次或多次故障標志,且未觀察到故障,則它可以非常有把握地斷言故障事實上已被修復。
盡管借助于由此處特定圖形所示出的特定實施例,并參照Intel結(jié)構(gòu)處理器的總線信號,已描述了本發(fā)明,但本技術(shù)的專業(yè)人士可以意識到,本發(fā)明可以用不同的其它結(jié)構(gòu)和不同的其它總線來實現(xiàn),它們在所介紹技術(shù)的范圍之內(nèi)。
權(quán)利要求
1.一種裝置,包括一條總線;一個連接到總線上的第一代理模塊;一個連接到該總線上的第二代理模塊,用于按總線協(xié)議與第一代理模塊通信;和一個連接到該總線上的修補器,用于監(jiān)測從第二代理模塊到第一代理模塊的通信,以確定一個會在裝置中引起一個錯誤的事件,并用來修正該通信以避免該事件。
2.如權(quán)利要求1的裝置,其中該修補器包括可編程裝置,用來存儲事件的一個故障標志,修補器根據(jù)它來識別該事件。
3.如權(quán)利要求2的裝置,其中該可編程裝置具有一個存儲在其中的故障標志。
4.如權(quán)利要求2的裝置,其中修補器還包括一個連接到該總線及用于存儲的該可編程裝置上的協(xié)議觀測器;和一個連接到用于存儲的該可編程裝置上并連接到總線上的干擾器。
5.如權(quán)利要求4的裝置,其中該修補器包括一個完整的、獨立的部件。
6.如權(quán)利要求4的裝置,其中該修補器的兩個或多個部件被分配在兩個或多個代理模塊中。
7.如權(quán)利要求4的裝置,其中該協(xié)議觀測器包括用來存儲該協(xié)議的可編程裝置。
8.如權(quán)利要求7的裝置,其中該協(xié)議觀測器的可編程裝置具有存儲在其中的協(xié)議。
9.如權(quán)利要求4的裝置,其中該干擾器包括可編程裝置,用來響應(yīng)于用于存儲的該可編程裝置對故障標志的識別存儲要被執(zhí)行的干擾。
10.如權(quán)利要求9的裝置,其中用來存儲干擾的該可編程裝置有一個存儲在其中的干擾。
11.如權(quán)利要求2的系統(tǒng),其中用于存儲的該可編程裝置包含一個狀態(tài)機。
12.如權(quán)利要求1的裝置,其中第一代理模塊,第二代理模塊和修補器的每一個都被連接到總線上。
13.如權(quán)利要求12的裝置,其中該修補器和其中代理模塊之一構(gòu)成一個通過一個單連接連接到該總線上的單個設(shè)備。
14.如權(quán)利要求1的裝置,還包含多個修補器。
15.如權(quán)利要求1的裝置,其中這些代理模塊之一被連接到總線上,另一個通過該修補器非直接地連接到總線上。
16.如權(quán)利要求15的裝置,其中這些代理模塊之一是一個處理器且另一個是一個芯片組。
17.如權(quán)利要求1的裝置,其中該修補器通過這些代理模塊之一非直接地連到總線上。
18.如權(quán)利要求17的裝置,其中這些代理模塊之一是該總線與一個外圍總線之間的一個總線橋,該修補器通過該外圍總線連接到其中一個代理模塊上。
19.如權(quán)利要求18的裝置,其中該總線橋用來在Pentium Pro處理器總線與該PCI總線間橋接。
20.如權(quán)利要求1的裝置,其中至少該總線的一部分包括一條線或總線。
21.如權(quán)利要求1的裝置,其中,該裝置包含一個單片芯片且其中該總線修補器用來修補該芯片中一個內(nèi)部總線上的故障。
22.一種裝置,包括一個協(xié)議觀測器,用來按照一個總線協(xié)議觀察總線業(yè)務(wù)。一個狀態(tài)機,連接到該協(xié)議觀測器上,檢測總線業(yè)務(wù)中故障標志的出現(xiàn);和一個干擾器,連接到該狀態(tài)機上,用來干擾總線標志以防止錯誤事件的出現(xiàn)。
23.如權(quán)利要求22的裝置,其中該協(xié)議觀測器包括用來存儲該總線協(xié)議的第一可編程裝置。
24.如權(quán)利要求23的裝置,其中該第一可編程裝置具有存儲在其中的該總線協(xié)議。
25.如權(quán)利要求22的裝置,其中該狀態(tài)機包括第二可編程裝置,該第二可編程裝置用來存儲至少一個該狀態(tài)機檢測的故障標志。
26.如權(quán)利要求25的裝置,其中該第二可編程裝置還用來存儲該狀態(tài)機檢測的多個故障標志。
27.如權(quán)利要求26的裝置,其中該第二可編程裝置中至少儲存有一個故障標志。
28.如權(quán)利要求22的裝置,其中該干擾器包含用來存儲至少一個干擾的第三可編程裝置。
29.如權(quán)利要求28的裝置,其中該第三可編程裝置還用來存儲多個干擾。
30.如權(quán)利要求28的裝置,其中裝置還包括第二可編程裝置,用來存儲該狀態(tài)機檢測的多個故障標志;和第三可編程裝置,用來存儲該第二可編程裝置中所存貯的每個故障標志的一個干擾。
31.如權(quán)利要求30的裝置,其中該第二可編程裝置中至少儲存有一個故障標志;和該第三可編程裝置中至少儲存有一個干擾。
32.如權(quán)利要求22的裝置,還包括用于使該裝置使能和禁止的裝置。
33.一種總線修補器,包括一個插入器板;將該插入器板連接到一條總線上的緩存器;和連接到該緩存器上的修補器邏輯,并包括,一個協(xié)議觀測器,適于按照總線協(xié)議觀察總線業(yè)務(wù),一個連接到該協(xié)議觀測器上的狀態(tài)機,用來檢測總線業(yè)務(wù)中一個故障標志的出現(xiàn),和一個連接到該狀態(tài)機上的干擾器,用來干擾該總線標志以防止一個錯誤事件的出現(xiàn)。
34.如權(quán)利要求33的總線修補器,還包括用于將該總線修補器插入到一個電子設(shè)備和適于接收該電子設(shè)備的電子系統(tǒng)之間的裝置。
35.如權(quán)利要求34的總線修補器,其中用于插入的裝置包括一個連接到插入器板和緩存器上的插入器插座,適用于容納該電子設(shè)備,以及一個用來連接到該電子系統(tǒng)上的適配器。
36.如權(quán)利要求35的總線修補器,其中該修補器邏輯被安裝在該插入器板上。
37.如權(quán)利要求33的總線修補器,還包括該修補器邏輯連接到其上的第二卡;和用于將該第二卡連接到該插入器卡上的裝置。
38.如權(quán)利要求37的總線修補器,其中,用來將該第二卡連接到該插入器卡上的裝置將它們以相互來說大體直角的角度連接。
39.一種在計算機系統(tǒng)中避免故障的方法,其中該計算機系統(tǒng)中的第一代理模塊通過一條總線與第二代理模塊通信,該方法包括下列步驟在該總線上觀察通信中的一個故障標志;和干擾該通信以防止一個故障事件的出現(xiàn),否則將會出現(xiàn)與該故障標志一致的故障事件。
40.一種裝置,包括一個第一電子部件,在其中做了一些改進以校正有一個故障標志的故障,該故障引起該裝置在總線上的通信中的一個錯誤;和一個第二電子部件,包括,一個協(xié)議觀測器,按照該總線的一個協(xié)議觀測該通信,和一個狀態(tài)機,用來觀測該故障標志并用來表明已觀測到該故障標記,從而在表明出現(xiàn)故障標志而未出現(xiàn)錯誤時確認該修改的正確性。
41.一個分析與第二電子設(shè)備通過總線通信的第一電子設(shè)備的功能正確性的方法,包括以下步驟識別在該總線上的第一個通信中的一個第一故障;在一個修補器的可編程存儲裝置中存儲該第一故障的第一故障標志;重復該第一通信;檢測該第一故障標志;響應(yīng)于該檢測步驟,干擾該第一通信以避免該第一故障;并驗證該第一故障不出現(xiàn)在所干擾的第一通信中。
42.如權(quán)利要求41的方法,還包括以下步驟在該驗證步驟之后,識別若無該干擾步驟,將被該第一故障所隱藏的第二故障。
43.如權(quán)利要求42的方法,還包括以下步驟在一次或多次重復尋找隱藏在阻塞故障之后的故障以后,改進該第一電子設(shè)備以校正一個阻塞故障及隱藏在該阻塞故障后的故障。
全文摘要
一種裝置,包括一個與總線一起使用的協(xié)議觀測器,一個用來檢測總線上已知故障標志的狀態(tài)機,和一個適用于在總線上干擾以防止具有這些標志的故障出現(xiàn)的干擾器。使用這樣一個裝置的系統(tǒng)包括一個總線,一個連接到該總線上的第一代理模塊,一個連接到該總線上,用于按照一個總線協(xié)議向第一代理模塊通信的第二代理模塊,和連接到總線上的總線修補器,用來監(jiān)測從第二代理模塊到第一代理模塊的通信以識別將會引起該裝置中一個錯誤的一個事件,并用來通知該通信該事件已被避免。協(xié)議觀測器,狀態(tài)機和/或干擾器中的任一個都可以是可編程的。
文檔編號G06F11/34GK1220746SQ97193980
公開日1999年6月23日 申請日期1997年2月26日 優(yōu)先權(quán)日1996年2月28日
發(fā)明者G·A·布德爾曼, W·A·霍布斯, S·J·彼德斯, T·庫爾茨, N·V·薩蘭達, K·B·奧利維爾 申請人:英特爾公司