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