專利名稱:恢復硬件的設備和方法
技術領域:
這個發明涉及具有高速緩存設計的SMP計算機系統,并且尤其涉及在故障之后恢復硬件。
背景技術:
隨著SMP計算機系統繼續提高性能,高速緩存設計以指數形式增長。這些較大的高速緩存大小正使得它非常有可能具有軟和硬陣列故障。先前,添加一種稱為集合刪除(set delete)的功能以刪除具有已知缺陷的高速緩存部分。然而,大部分的現有技術從高速緩存中刪除大量的集合或者隔間(compartment)。在優選實施例中使用的現有技術允許刪除在同余類內的一個隔間而不是全部刪除隔間。
這個發明的現有技術中的另一個方面允許清除已經遇到錯誤的高速緩存線。如果錯誤是可校正的,則重新校正該數據,并且將其作為干凈的數據在原有位置或者不同位置處再次輸入高速緩存中。如果相同的集合/隔間再次發生故障(即硬故障),則進行系統日志記錄,注銷所有發生故障的數據,并且清除和刪除那個位置以避免其在將來的使用。優選實施例使用硬件來進行這個清除/刪除。通過軟件代碼進行日志記錄。
即使這些硬件特征提供了可靠性的益處,但是通常必須在可以嘗試重新啟動之前替換有缺陷的部分。原因是因為當還沒有為陣列中發生故障的部分熔斷(blow)熔絲時,通常將不會經過陣列內置自測試(Array Built-In Self-Test,ABIST)檢查邏輯。ABIST邏輯將使發生故障的(一個或多個)地址是可用的。即使當如Huott等人在美國專利5,805,789中所描述的那樣應用加電修復時,也存在有沒有更多的熔絲可用于修復而且在客戶可以再次啟用機器之前將需要訂購該部分的可能性。
發明內容
這個發明在具有高速緩存設計的SMP(對稱計算機)系統中是有用的,并且使得能夠恢復硬件。它通常可應用于包括具有熔絲、熔絲控制和線刪除的高速緩存設計在內的各種類型的高速緩存設計,而且尤其可應用于這樣的設備和方法,所述設備和方法用于在重復的陣列故障時刪除線、記錄故障地址和單元信息、確定和保留熔絲信息以用于將來重新啟動硬件、當熔絲不可用時呼叫總部(call home)、在重新啟動時運行陣列內置自測試(ABIST)、以及在重新啟動期間使用熔斷熔絲信息、保留熔絲信息和新標識的ABIST故障信息來設置軟熔絲,以允許高速緩存即使在出現幾個可靠性問題之后也可以進行操作。
本發明還允許在下一次重新啟動時保存線刪除信息,運行ABIST以測試陣列,并且允許如果通過線刪除僅僅保護了ABIST故障的話則進行重新啟動。
本發明還提供了一種在軟件表格、可編程電子熔絲、和/或EPROM硬件中永久地保存熔絲結果的方法。
通過本發明的技術實現了另外的特征和優點。此處詳細描述了本發明的其它實施例和方面,而且這些其它實施例和方面被認為是所要求保護的發明的一部分。為了更好地理解本發明的優點和特征,可參考該描述和附圖。
在權利要求書中特別地指出和清楚地要求了被認為是本發明的主題。通過以下結合附圖的詳細說明,本發明的上述及其它目的、特征、和優點將變得明顯,其中圖1說明了本發明中的部件的高級設計;圖2示出了高速緩存線修復表格的示例;
圖3說明了L1高速緩存線刪除流程圖;圖4說明了L2高速緩存線刪除流程圖;圖5示出了高速緩存線刪除表格的示例;圖6示出了重新啟動修復流程;圖7示出了重新啟動刪除/修復流程;圖8a示出了將可編程熔絲信息掃描到鎖存器中的步驟;圖8b示出了將修復信息燒入電子熔絲中的步驟;以及圖8c示出了將修復信息寫入到可擦可編程序只讀存儲器(EPROM)中的步驟。
詳細說明參考附圖通過舉例解釋了本發明的優選實施例以及優點和特征。
具體實施例方式
為了展開本發明的詳細說明,讀者應該記住,這里的優選實施例允許高速緩存熔絲信息的自管理,以允許高速緩存通過代碼和硬件支持對其自身進行自修復。
在優選實施例中,使用代碼將“熔斷”或者“硬”熔絲數據從硬件讀到表格中。這通常在機器的初始啟動時完成。如果表格已經存在了,則不必將條目重讀到表格中。
記錄的故障數據用于確定可能需要哪個熔絲值集合以重定位發生故障的陣列段。在表格中保留這些熔絲值。如果沒有剩余的熔絲可用于重定位,則代碼可以可選地通知客戶不要重新啟動(即IML)機器,并且呼叫總部要求另一個部分/模塊來替換有缺陷的部分。原因是因為運行ABIST的重新啟動將不會具有足夠的熔絲來運行,而且ABIST邏輯將指示用完熔絲的、不匹配的發生故障的分段的失敗。
代碼可以可選地保留線刪除信息用于在下一次IML期間使用,而不是將它們轉換為修復。在ABIST完成之后,將任何故障與已知的線刪除進行比較,以確保在ABIST中沒有還未被線刪除所涵蓋的發生故障的區域。
如果存在有因為刪除在時間上太接近而無法同時記錄它們而導致在日志中遺漏的刪除的話,則代碼也呼叫總部。這是非常不可能的事情,但是代碼允許保護客戶,從而在下一次重新啟動期間不會有無熔絲的奇怪故障的風險。
另一個方面出現在IML或者重新啟動序列期間。經由掃描,而不是嚴格地依賴于硬熔絲設置,將熔絲表格加載到設計中。這允許重定位在初始熔絲熔斷之后發生故障的故障分段。這個特征使得具有缺陷的硬件能夠現場進行自修復。
優選實施例使用電子熔絲,并且它們可以現場在芯片內熔斷,以利用硬件永久地保存新熔絲信息,而不是在單獨的表格中保存該信息。
在替換實施例中,可以利用稱為EPROM(可擦可編程只讀存儲器)的單獨硬件保存熔絲信息。
熔絲表格的軟件版本具有故障出現時的時戳,什么事件首先檢測到問題(例如,ABIST、線刪除等),以及其它關于故障來源的有用信息。這可以以文本形式進行以便更容易讀取。熔絲修復表格用模塊序列號進行標記,而且使用模塊內的電子序列號相對于該模塊序列號進行跟蹤。如果插入了新的模塊,則根據需要從硬熔絲信息中重新創建該表格。
還有一個為了線刪除而存在的、具有序列號跟蹤的刪除表格。當沒有與線刪除相對應的熔絲可用時,更新該熔絲表格。本發明允許在下一次重新啟動時更新這些刪除,以便重新應用未用熔絲進行修復的刪除。可選地,如果代碼用于分析ABIST故障以確保這些線刪除將避免這些有缺陷的區域,則可以應用全部的刪除來代替軟或者硬熔絲修復。
當讀者閱讀說明了本發明優選實施例的各個附圖的更完整描述時,可以想到這些特征和優點。
現在轉向圖1,注意到,其中有對稱多處理器SMP硬件11,其包含時鐘芯片12、一個或多個CP芯片13、以及一個或多個高速緩存芯片14。在每個所述高速緩存芯片14內,存在一個或多個高速緩存陣列24,陣列內置自測試(ABIST)邏輯15,熔絲控制邏輯16,以及設陷(trap)、清除、刪除邏輯17。在所述一個或多個CP芯片13內,存在有記錄代碼(例如,CP微碼)18,其可以傳送來自所述高速緩存芯片14的發生故障的陣列的信息;以及服務單元19,其運行服務單元代碼20,該代碼20對修復表格21和刪除表格22進行讀寫,并且可以進行呼叫總部的動作23。還可選地具有電子熔絲25,其可以被熔斷以保存熔絲信息。還可選地具有可擦可編程只讀存儲器(EPROM)26,其還可以用于存儲熔絲和修復信息。
當在高速緩存陣列24中出現錯誤時,設陷、清除、刪除邏輯17收集有關該故障的信息。如果故障是新的(即,之前沒有遇到該特定高速緩存位置),則清除該高速緩存條目。如果發生故障的陣列位置先前早已經發生過故障,則清除該高速緩存條目,而且硬件刪除該高速緩存位置以便不會再次使用該位置。所述記錄代碼18通過時鐘芯片12將這個故障信息傳送到服務單元19。服務單元代碼20在讀取發生故障的高速緩存信息時,基于是否有任何未被記錄的遺漏的刪除來確定是否呼叫總部23。代碼20還確定將需要哪些熔絲用于修復缺陷,并且將這些熔絲與所述修復表格21進行比較。如果在該表格中沒有剩余足夠的修復用于該給定的缺陷,則代碼20呼叫總部,并且通知系統操作員不要重新啟動機器。當沒有找到用于該缺陷的修復時,代碼20將在刪除表格22中構造用于該刪除的條目。這個刪除可以在下一次重新啟動時重新應用于硬件。代碼20還可以一般在下一次IML窗口期間,更永久地將熔絲信息存儲在電子熔絲25中。這通常通過將期望的熔絲信息掃描到掃描環(例如軟熔絲邏輯16)中、并且施加更新電子熔絲信息的寫電壓來實現。代碼20還可以使用傳統方法在稱為EPROM(可擦可編程只讀存儲器)26的單獨的硬件存儲區域中存儲熔絲信息。
應當注意到,高速緩存陣列24的優選實施例包含用于檢測發生故障的校正子(syndrome)的錯誤校正邏輯。設陷、清除、刪除邏輯17跟蹤該發生故障的地址、集合或者隔間、以及在該陣列中使用的ECC的發生故障的校正子。如果出現可校正的錯誤,則校正子可用于檢測陣列中發生故障的位,并且因此檢測發生故障的熔絲位置。然而,當出現無法校正的錯誤(UE)時,對發生故障的熔絲的隔離未必是精確的(即,可能有一個以上的可能熔絲)。因此,對于高速緩存中的UE來說,優選實施例將一個故障映射到四個熔絲,每個熔絲用于高速緩存的、各個位可能已經來源于其中的每個區域。
圖2所示的修復表格是在優選實施例中使用的修復表格的示例。所述修復表格21包含一個ASCII、列相關的可讀表格,該表格由各個芯片和陣列上的修復位置、修復的時戳、導致修復的錯誤類型、以及熔絲是否是壞的構成。它還包含硬件的序列號以及最初創建該文件時的時戳。
轉向圖3,注意到,當處理L1高速緩存故障時,代碼實現了以下步驟接收有關故障的信息(31),保留執行刪除的重新啟動處理(32),以及確定這是否是這種類型的第一次刪除(33)。如果這是這種類型的第一次刪除,則將單元id及其他信息添加到刪除表格中(34)。將結果寫入到刪除表格中(35)。
轉向圖4,注意到,當處理L2高速緩存故障時,代碼實現了以下步驟接收有關故障的信息(41),確定其是否為替換(42),以及在替換的情況下、保留該替換(49)。
如果事件不是替換,則確定其是否是清除或者刪除(43)。如果事件是清除,則執行以下步驟遞增清除計數(50),確定清除計數是否超過閾值(51),以及如果其超過閾值則呼叫總部(52),而如果沒有超過閾值則沒有錯誤地退出(53)。
如果事件是刪除,則執行以下步驟保留執行刪除的重新啟動處理(44),將刪除條目和時戳一起添加到刪除表格22中(45),檢查遺漏的刪除(46),以及如果從記錄的數據中遺漏了刪除則呼叫總部(48),而如果沒有遺漏的刪除則沒有錯誤地退出(47)。
圖5所示的刪除表格是在優選實施例中使用的刪除表格的示例。所述刪除表格22包含PU部分(用于Cp),該部分是ASCII、列相關的可讀表格,其由各個L1芯片與陣列上的刪除位置、刪除時戳及其它刪除信息構成。此外,還具有L2部分,該部分是ASCII、列相關的可讀表格,其由各個L2芯片與陣列上的刪除位置、刪除時戳、發生故障的交錯、校正子、隔間、地址以及該故障的時戳構成。
轉向圖6,注意到其是帶有修復的、用于重新啟動系統的過程。當重新啟動該系統(61)時,重置高速緩存及其他陣列(62)。然后,根據表格應用陣列修復(63)。運行ABIST(64),以測試該陣列。分析ABIST故障(65)。如果沒有故障,則IML成功地完成(66)。然而,如果存在有故障,則檢查可用的修復(67)。如果沒有可用的修復,則IML失敗并且呼叫總部以獲得支持(68)。如果有可用的熔絲,則將新的熔絲修復添加到修復的陣列中(69)。然后再次運行ABIST(64)。此后,IML應該是成功的。
轉向圖7,注意到其是帶有刪除和修復的、用于重新啟動系統的過程。當重新啟動系統(71)時,重置高速緩存及其他陣列(72)。然后,根據表格應用陣列修復和刪除(73)。運行ABIST(74),以測試該陣列。分析ABIST故障(75)。如果沒有故障,則IML成功地完成(76)。然而,如果存在有故障,則將每個故障與線刪除列表進行比較(77)。當然,這要求ABIST結果具有足夠的信息可用于確定將影響哪些線。如果確定所有的故障都由線刪除保護了,則IML成功地完成(76)。如果存在有任何未被線刪除所涵蓋的故障,則檢查修復的可用性(78)。如果沒有相應的修復可用,則IML失敗而且將為這些部分呼叫總部(79)。如果有修復可用,則應用新的修復(80),并且再次運行ABIST(74)。這個時候,應該沒有剩余的未被線刪除所涵蓋的故障。
轉向圖8a,注意到其是帶有軟寄存器修復的、用于重新啟動系統的過程。當重新啟動系統(90)時,有這樣一個步驟用期望的修復值掃描熔絲環(91),由此更新鎖存器以便保持熔絲值。保持這些熔絲修復值,并且向陣列提供所需的冗余編程以便繞過(workaround)陣列的損壞部分。
轉向圖8b,注意到其是帶有電子熔絲修復的、用于重新啟動系統的過程。當重新啟動系統(94)時,有這樣一個步驟利用期望的修復值將電子熔絲信息燒入電子熔絲中(95),由此建立永久的修理設置。存在有各種燒制電子熔絲的方法。優選實施例包括設置較高的“燒制”電壓,當施加該電壓時,其可用于永久地熔斷電子熔絲。保持這些熔絲修復值,并且向陣列提供所需的冗余編程以便繞過陣列的損壞部分。即使系統掉電時,這個電子熔絲修復信息也將保持在硬件中。
轉向圖8c,注意到,其為具有可擦可編程只讀存儲器(EPROM)熔絲修復的、用于重新啟動系統的過程。當重新啟動系統(98)時,有這樣一個步驟利用熔絲修復信息寫EPROM(99),由此建立永久修復設置。保持這些熔絲修復值,并且可以稍后讀出這些值并將其掃描到系統軟熔絲鎖存器中,以向陣列提供所需要的冗余編程以繞過陣列的損壞部分。即使系統掉電時,這個EPROM熔絲修復信息也將保持在硬件中。一般地,可以把這個信息壓縮到EPROM中。
雖然已經描述了本發明的優選實施例,但是本領域技術人員應當理解不管是現在還是將來,都可以在權利要求的范圍內進行各種改進和提高。應該將這些權利要求解釋為保持對首先描述的本發明的恰當保護。
權利要求
1.一種在具有高速緩存的SMP計算機系統中恢復硬件的方法,包含步驟a)檢測高速緩存中的錯誤;b)記錄來自運行機器的故障信息;c)將修復重定位跟蹤到表格中;d)將修復信息加載到硬件中。
2.如權利要求1所述的方法,其中,所述步驟b包括記錄發生故障的ECC校正子。
3.如權利要求2所述的方法,其中,發生故障的ECC校正子用于計算重定位地址。
4.如權利要求1所述的方法,其中,在步驟d中的所述硬件包括可掃描的鎖存器。
5.如權利要求1所述的方法,其中,在步驟d中的所述硬件包括電子的可熔斷熔絲。
6.如權利要求1所述的方法,其中,在步驟d中的所述硬件包括EPROM。
7.如權利要求1所述的方法,其中,存在有另外的步驟將新的故障與來自步驟c中的所述表格的現有修復位置進行比較。
8.如權利要求7所述的方法,其中,包括有另外的步驟如果沒有修復可用,則呼叫總部。
9.如權利要求1所述的方法,其中,所述修復重定位用時戳進行標記。
10.如權利要求1所述的方法,其中,所述修復位置用一個指示錯誤類型的標記進行標記。
11.如權利要求1所述的方法,其中,所述表格依據序列號進行跟蹤。
12.如權利要求1所述的方法,其中,所述故障信息包含所執行的刪除的總數。
13.如權利要求12所述的方法,其中,包括另外步驟如果有遺漏的刪除,則呼叫總部。
14.如權利要求1所述的方法,其中,包括另外的步驟在下一次系統重新啟動期間應用修復。
15.如權利要求1所述的方法,其中,進行一或多次重定位。
16.如權利要求1所述的方法,其中,使用發生故障的地址來計算重定位地址。
17.如權利要求1所述的方法,其中,所述跟蹤修復重定位的步驟指示現有的重定位發生了故障。
18.如權利要求15所述的方法,其中,另一個重定位用于替換所述現有的、發生故障的重定位。
19.一種在具有高速緩存的SMP計算機系統中恢復硬件的方法,包含步驟a)執行高速緩存線刪除以避免使用有缺陷的高速緩存線條目,b)在系統重新啟動期間重新加載高速緩存線刪除,c)分析陣列內置自測試、即ABIST結果,以確定故障是否對應于線刪除條目,以及d)如果所有的陣列內置自測試、即ABIST故障都對應于線刪除條目,則允許系統重新啟動以便繼續進行。
20.作為在使用具有高速緩存的SMP計算機系統時執行的服務,恢復硬件的步驟包含a)檢測高速緩存中的錯誤,b)記錄來自運行機器的故障信息,c)將修復重定位跟蹤到表格中,以及d)將修復信息加載到硬件中。
21.一種在具有高速緩存的SMP計算機系統中恢復硬件的設備,包含用于檢測高速緩存中的錯誤的裝置;用于記錄來自運行機器的故障信息的裝置;用于將修復重定位跟蹤到表格中的裝置;用于將修復信息加載到硬件中的裝置。
22.如權利要求21所述的恢復硬件的設備,還包含多個用于實現先前方法權利要求所述的任何一種方法的裝置。
全文摘要
一種用于保護計算機系統以防止陣列可靠性故障的設備和方法,使用陣列內置自測試邏輯與代碼和硬件一起來刪除有缺陷的高速緩存線或者集合,標識相應的熔絲修復值,如果沒有多余的熔絲可用則主動呼叫總部,為下一次系統重新啟動調度軟熔絲修復,在下一次重新啟動時調度線刪除,在表格中存儲刪除和熔絲修復(該表格用電子序列id、刪除或者ABIST故障事件的時戳、地址、以及故障類型進行標記),并且如果存在有任何未被記錄的遺漏的刪除則主動呼叫總部。還可以將熔絲信息更永久地存儲在硬件電子熔絲和/或EPROM中。在重新啟動期間,能夠將先前的修復應用到機器中,以便ABIST成功地運行,而且利用檢查來維護先前的刪除,以允許某些由線刪除所保護的ABIST故障通過。
文檔編號G11C29/44GK1835125SQ200610059500
公開日2006年9月20日 申請日期2006年3月13日 優先權日2005年3月14日
發明者帕特里克·詹姆斯·米尼, 布萊恩·李·米奇特里, 戴維·詹姆斯·倫德, 托馬斯·約翰·尼普斯, 威廉·文森特·霍特, 普拉迪普·帕特爾 申請人:國際商業機器公司