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