两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

從設(shè)計缺陷中動態(tài)恢復(fù)和還原的裝置、系統(tǒng)和方法

文檔序號:6609080閱讀:143來源:國知局
專利名稱:從設(shè)計缺陷中動態(tài)恢復(fù)和還原的裝置、系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及錯誤恢復(fù),并且更具體地說,涉及從集成電路中的設(shè)計缺陷進(jìn)行動態(tài)錯誤恢復(fù)。
背景技術(shù)
當(dāng)公司設(shè)計和生產(chǎn)集成電路時,會執(zhí)行大量模擬和測試來發(fā)現(xiàn)和糾正集成電路設(shè)計中的缺陷。由于時間和技術(shù)的制約,公司將模擬和測試最頻繁發(fā)生的系統(tǒng)狀態(tài)置于較高的優(yōu)先級。在除了最簡單的集成電路以外的所有集成電路中,很難模擬和測試每個可能的系統(tǒng)狀態(tài)和邏輯路徑。解決一個設(shè)計缺陷還可能導(dǎo)致其他錯誤,這使模擬和測試過程進(jìn)一步復(fù)雜化。
集成電路不斷增加的尺寸和復(fù)雜性使在大量生產(chǎn)集成電路之前發(fā)現(xiàn)和糾正設(shè)計缺陷變得更加困難。一旦集成電路投入生產(chǎn),更改電路設(shè)計成本高昂并會延遲與此集成電路有關(guān)的任何產(chǎn)品的發(fā)布。當(dāng)在現(xiàn)場發(fā)現(xiàn)設(shè)計缺陷時,成本將更加高昂?,F(xiàn)場越來越需要可在系統(tǒng)級別上從設(shè)計缺陷恢復(fù)的集成電路。
更高的模擬和仿真能力幫助提高了早期設(shè)計缺陷檢測和排除的效率,特別是在簡單的集成電路中。但是,每個集成電路中的邏輯路徑數(shù)的增長如此迅速,以致在合理的時間內(nèi)以合理的成本模擬每個邏輯路徑已經(jīng)變得很困難。由于具有這種困難,在生產(chǎn)和發(fā)布集成電路之前,數(shù)量越來越多的邊界情況和不常使用的邏輯路徑得不到模擬和測試。通常,從未被模擬或測試的邊界條件中仍存在設(shè)計缺陷,這些缺陷只有在現(xiàn)場生產(chǎn)后才能發(fā)現(xiàn)。
通過上面的介紹,應(yīng)顯而易見的是,需要用于從集成電路中的設(shè)計缺陷恢復(fù)的裝置、系統(tǒng)和方法。有益地,此類裝置、系統(tǒng)和方法使得集成電路能夠在現(xiàn)場在系統(tǒng)級別處從設(shè)計缺陷恢復(fù)。

發(fā)明內(nèi)容
開發(fā)本發(fā)明以響應(yīng)本領(lǐng)域的現(xiàn)狀,具體地說,響應(yīng)本領(lǐng)域中尚未完全通過當(dāng)前可用的動態(tài)設(shè)計缺陷恢復(fù)方法解決的問題和需要。因此,開發(fā)了本發(fā)明以提供用于從集成電路中的設(shè)計缺陷動態(tài)恢復(fù)和還原的裝置、系統(tǒng)和方法,并克服本領(lǐng)域中上面介紹的許多或全部缺點。
幫助系統(tǒng)從集成電路中的設(shè)計缺陷恢復(fù)的裝置具備多個模塊,所述模塊配置為功能性地執(zhí)行以下必要的步驟發(fā)現(xiàn)錯誤發(fā)生,根據(jù)一組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容,執(zhí)行操作,以及判定是否成功執(zhí)行所述操作。所描述的實施例中的這些模塊包括錯誤檢查模塊、控制設(shè)置模塊、重試模塊和恢復(fù)模塊。
在一個實施例中,所述錯誤檢查模塊發(fā)現(xiàn)發(fā)生了錯誤。在進(jìn)一步的實施例中,所述錯誤檢查模塊發(fā)現(xiàn)所述錯誤在操作期間發(fā)生。
在一個實施例中,所述控制設(shè)置模塊根據(jù)一組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容。在進(jìn)一步的實施例中,該組系統(tǒng)控制設(shè)置更改一個或多個系統(tǒng)信號的邏輯路徑。
在一個實施例中,所述恢復(fù)模塊發(fā)現(xiàn)所述操作成功執(zhí)行。在另一個實施例中,所述恢復(fù)模塊發(fā)現(xiàn)系統(tǒng)已從所述錯誤恢復(fù)。
還提供了從集成電路中的設(shè)計缺陷恢復(fù)的本發(fā)明的系統(tǒng)。所述系統(tǒng)可以包括電路板、集成電路和外部接口。
具體地說,在一個實施例中,所述電路板為一個或多個電子設(shè)備提供了絕緣基座。在進(jìn)一步的實施例中,兩個所述設(shè)備包括所述集成電路和所述外部接口。
在一個實施例中,所述集成電路主要執(zhí)行實現(xiàn)上述與所述裝置的操作有關(guān)的功能所需的步驟。在另一個實施例中,所述集成電路還具有知識數(shù)據(jù)庫,所述知識數(shù)據(jù)庫具有一個或多個錯誤的列表以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置。
在進(jìn)一步的實施例中,所述外部接口連接到所述電路板并且與所述集成電路通信。所述外部接口從單獨的設(shè)備接收對所述知識數(shù)據(jù)庫的更新。
還提供了用于從集成電路中的設(shè)計缺陷恢復(fù)的本發(fā)明的計算機(jī)程序產(chǎn)品。在一個實施例中,所述計算機(jī)程序產(chǎn)品發(fā)現(xiàn)在操作期間發(fā)生了錯誤。所述計算機(jī)程序產(chǎn)品從知識數(shù)據(jù)庫檢索一組與所述錯誤關(guān)聯(lián)的系統(tǒng)控制設(shè)置。所述知識數(shù)據(jù)庫是一個或多個錯誤的列表以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置。所述計算機(jī)程序產(chǎn)品根據(jù)該組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容。所述計算機(jī)程序產(chǎn)品發(fā)現(xiàn)所述操作成功執(zhí)行。
還提供了用于向客戶提供知識數(shù)據(jù)庫以便從集成電路中的設(shè)計缺陷恢復(fù)的本發(fā)明的方法。所披露的實施例中的方法主要包括執(zhí)行上述與所述裝置和系統(tǒng)的操作有關(guān)的功能所需的步驟。在一個實施例中,所述方法包括向客戶提供知識數(shù)據(jù)庫。所述方法還可以包括為所述客戶更新所述知識數(shù)據(jù)庫。
本說明書中對功能、優(yōu)點的參考或類似語言并非暗示可以與本發(fā)明一起實現(xiàn)的所有功能和優(yōu)點應(yīng)在本發(fā)明的任何單個實施例中。相反,應(yīng)當(dāng)理解,引用所述功能和優(yōu)點的語言指與實施例一起描述的特定功能、優(yōu)點或特性包括在本發(fā)明的至少一個實施例中。因此,本說明書中對功能、優(yōu)點的討論和類似語言可以(但并不一定)指相同的實施例。
此外,本發(fā)明的所述功能、優(yōu)點和特性可以以任何適當(dāng)?shù)姆绞浇M合在一個或多個實施例中。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有特定實施例的一個或多個特定功能或優(yōu)點的情況下實現(xiàn)本發(fā)明。在其他情況下,可以在特定實施例中認(rèn)識到可能不存在于本發(fā)明的所有實施例中的其他功能和優(yōu)點。
從以下說明,本發(fā)明的這些功能和優(yōu)點將變得更加顯而易見,或者通過實現(xiàn)如下文所述的本發(fā)明,可以了解本發(fā)明的這些功能和優(yōu)點。


為了容易地理解本發(fā)明的優(yōu)點,將通過參考附圖中示出的特定實施例說明上面簡要介紹的本發(fā)明的更具體的說明。應(yīng)當(dāng)理解,這些附圖僅示出了本發(fā)明的典型實施例,并且因此不應(yīng)被視為限制其范圍,將通過使用附圖以其他特性和詳細(xì)信息來介紹和說明本發(fā)明,這些附圖是圖1是示出根據(jù)本發(fā)明的用于從集成電路中的設(shè)計缺陷恢復(fù)的系統(tǒng)的一個實施例的示意性方塊圖;圖2是示出根據(jù)本發(fā)明的知識數(shù)據(jù)庫的一個實施例的示意性方塊圖;圖3是示出根據(jù)本發(fā)明的集成電路的一個實施例的示意性方塊圖;圖4是示出根據(jù)本發(fā)明的設(shè)計缺陷恢復(fù)方法的一個實施例的示意性流程圖;以及圖5是示出根據(jù)本發(fā)明的設(shè)計缺陷恢復(fù)方法的進(jìn)一步實施例的示意性流程圖。
具體實施例方式
將本說明書中描述的多個功能單元標(biāo)記為模塊,以便更具體地強(qiáng)調(diào)它們的實現(xiàn)無關(guān)性。例如,模塊可以被實現(xiàn)為包括定制VLSI電路或門陣列、諸如邏輯芯片、晶體管或其他分離組件之類的現(xiàn)用半導(dǎo)體的硬件電路。模塊還可以在諸如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備之類的可編程硬件設(shè)備中實現(xiàn)。
模塊還可以在軟件中實現(xiàn),以便由各種類型的處理器執(zhí)行。例如,標(biāo)識的可執(zhí)行代碼的模塊可以包括一個或多個物理或邏輯的計算機(jī)指令塊,所述塊可以例如組織為對象、過程或功能。然而,標(biāo)識的模塊的可執(zhí)行代碼不需要在物理上位于一起,但是可以包括存儲在不同位置的不同指令,當(dāng)所述指令被邏輯地結(jié)合時,將包括所述模塊并實現(xiàn)模塊的所述目的。
實際上,可執(zhí)行代碼的模塊可以是單個指令或多個指令,并且甚至可以分布在數(shù)個不同的代碼段上、多個不同的程序中,以及跨多個存儲器設(shè)備。同樣,操作數(shù)據(jù)可以在模塊中被標(biāo)識和在此示出,并且可以包括在任何適當(dāng)?shù)男问街胁⒔M織在任何適當(dāng)類型的數(shù)據(jù)結(jié)構(gòu)中。操作數(shù)據(jù)可以被收集為單個數(shù)據(jù)集,或可以分布在包括不同存儲設(shè)備的不同位置上,并且可以至少部分地僅作為電子信號存在于系統(tǒng)或網(wǎng)絡(luò)中。
本說明書中對“一個實施例”、“實施例”或類似語言的引用指結(jié)合該實施例描述的特定功能、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施例中。因此,本說明書中出現(xiàn)的短語“在一個實施例中”、“在實施例中”和類似語言可以(但是并非一定)都指相同的實施例。
引用計算機(jī)可讀介質(zhì)可以采取任何能夠生成信號、導(dǎo)致信號生成、或?qū)е略跀?shù)字處理裝置上執(zhí)行機(jī)器可讀指令的程序的形式。計算機(jī)可讀介質(zhì)可以通過傳輸線、光盤、數(shù)字視盤、磁帶、貝努利驅(qū)動器、磁盤、穿孔卡片、閃存、集成電路,或其他數(shù)字處理裝置存儲器設(shè)備來實現(xiàn)。
此外,本發(fā)明的所述功能、結(jié)構(gòu)或特性可以以任何適當(dāng)?shù)男问浇M合在一個或多個實施例中。在以下說明中,提供了大量特定的詳細(xì)信息,如編程、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等的實例,以便徹底理解本發(fā)明的實施例。但是,本領(lǐng)域的技術(shù)人員將認(rèn)識到,可以在沒有一個或多個特定的細(xì)節(jié)的情況下實現(xiàn)本發(fā)明,或者可以通過其他方法、組件、材料等實現(xiàn)本發(fā)明。在其他情況下,未詳細(xì)示出或描述公知的結(jié)構(gòu)、材料或操作以避免使本發(fā)明的各方面變得模糊不清。
圖1示出了用于從集成電路中的設(shè)計缺陷恢復(fù)的系統(tǒng)100。在一個實施例中,系統(tǒng)100包括電路板102、集成電路104、控制寄存器106、知識數(shù)據(jù)庫108、錯誤恢復(fù)模塊110、設(shè)備112、外部接口114和電源模塊116。
在一個實施例中,電路板102是由絕緣材料(通常是玻璃纖維)制成的薄板,上面安裝有包括集成電路在內(nèi)的一個或多個組件來形成執(zhí)行特定功能的一個電路或一組電路。電路板102可以是印刷電路板(PCB)、印刷線路板(PWB)或試驗電路板。
在一個實施例中,將集成電路104安裝在電路板102上。參考圖3提供并詳細(xì)描述了集成電路104的一個實例。在一個實施例中,集成電路104是帶有單個半導(dǎo)體襯底和互連的電子組件(例如形成一個或多個處理特定功能的電路的晶體管、電阻器、電容器和二極管)陣列的小片或芯片。在進(jìn)一步的實施例中,集成電路104包括控制寄存器106、知識數(shù)據(jù)庫108和錯誤恢復(fù)模塊110,它們配置為幫助集成電路104從集成電路104的設(shè)計缺陷中恢復(fù)。參考圖2提供并詳細(xì)介紹了知識數(shù)據(jù)庫108的一個實例。集成電路104還可以包括配置為執(zhí)行一項或多項功能的其他模塊或電路。
參考圖3提供并詳細(xì)介紹了控制寄存器106、知識數(shù)據(jù)庫108和錯誤恢復(fù)模塊110。通常,錯誤恢復(fù)模塊110發(fā)現(xiàn)在操作期間集成電路104上發(fā)生了錯誤,并更改一個或多個控制寄存器106以便更改一個或多個系統(tǒng)信號的邏輯路徑。在一個實施例中,錯誤恢復(fù)模塊110從知識數(shù)據(jù)庫108檢索一組與所述錯誤相關(guān)的系統(tǒng)控制設(shè)置。
在一個實施例中,設(shè)備112是連接到集成電路104并由集成電路104控制的設(shè)備。設(shè)備112可以是傳感器、磁盤或光盤驅(qū)動器、計算機(jī)硬件、家用或便攜式電子設(shè)備,也可以是能夠從集成電路104接收信號的其他設(shè)備。在一個實施例中,將設(shè)備112安裝在電路板102上。在另一個實施例中,設(shè)備112電氣地連接到電路板102以從集成電路104接收信號。在進(jìn)一步的實施例中,集成電路104執(zhí)行操作來控制設(shè)備112,并且集成電路104使用錯誤恢復(fù)模塊110在操作期間從錯誤恢復(fù)以控制設(shè)備112。
在一個實施例中,外部接口114也安裝在電路板102上。外部接口114提供接口以便集成電路104接收來自用戶、客戶機(jī)、計算機(jī)、網(wǎng)絡(luò)或模塊的命令、指令和微代碼更新。所述外部接口可以是一個或多個按鈕、鍵盤、通用串行總線(USB)端口、串行端口、電氣與電子工程師協(xié)會(IEEE)1394端口、麥克風(fēng)、無線適配器或其他可以接收數(shù)據(jù)的接口。在一個實施例中,集成電路104從外部接口114接收對知識數(shù)據(jù)庫108的更新。
在一個實施例中,電路板102和安裝在電路板102上的組件由電源模塊116供電。電源模塊116可以是存儲并提供電力的電池或配置為接收外部電力的適配器。電源模塊116還可以為設(shè)備112提供電力,或從設(shè)備112接收電力。
圖2示出了與圖1的知識數(shù)據(jù)庫108基本類似的知識數(shù)據(jù)庫200的一個實施例。在一個實施例中,知識數(shù)據(jù)庫200由在集成電路上存儲和運行的微代碼來定義。知識數(shù)據(jù)庫200可以是微代碼的一部分,或是查找表或其他可由微代碼訪問的數(shù)據(jù)結(jié)構(gòu)。在另一個實施例中,知識數(shù)據(jù)庫200存儲在與集成電路分離,但是可由集成電路訪問的永久性存儲裝置中。在一個實施例中,知識數(shù)據(jù)庫200包括錯誤列表202、恢復(fù)設(shè)置列表204、恢復(fù)策略列表206、錯誤計數(shù)列表208和恢復(fù)失敗計數(shù)列表210,每個列表的表項都與錯誤列表202中列出的錯誤相對應(yīng)。
在一個實施例中,錯誤列表202是已知在集成電路中發(fā)生的錯誤的列表。錯誤列表202中的表項可以是機(jī)器可讀的錯誤代碼、人工可讀的字符串、系統(tǒng)代碼、操作名稱或其他錯誤表示。對于錯誤列表202中列出的每個錯誤,在恢復(fù)設(shè)置列表204中列出了一個或多個系統(tǒng)控制設(shè)置。在一個實施例中,恢復(fù)設(shè)置列表204中的系統(tǒng)控制設(shè)置是已知在先前恢復(fù)嘗試中解決了錯誤列表202中的對應(yīng)錯誤的系統(tǒng)控制寄存器設(shè)置。系統(tǒng)控制設(shè)置204可以是特定的控制設(shè)置,也可以是可允許的控制設(shè)置的范圍,并可用于設(shè)置系統(tǒng)時鐘的頻率,確定先入先出(FIFO)隊列在轉(zhuǎn)發(fā)數(shù)據(jù)之前存儲多少數(shù)據(jù),設(shè)置總線調(diào)解方法,定義直接存儲器存取(DMA)數(shù)據(jù)傳輸塊大小,禁用一個或多個DMA引擎,或者控制集成電路中其他子系統(tǒng)的行為。恢復(fù)設(shè)置204可以更改一個或多個系統(tǒng)信號遵循的邏輯路徑。
在一個實施例中,恢復(fù)策略列表206包括定義應(yīng)實施系統(tǒng)控制設(shè)置204的時間量以允許系統(tǒng)從錯誤列表202中的對應(yīng)錯誤恢復(fù)的策略?;謴?fù)策略206可以包括保持新的控制設(shè)置,在特定持續(xù)時間或時鐘周期之后還原先前的控制設(shè)置,在從錯誤列表202的對應(yīng)錯誤恢復(fù)之后還原先前的控制設(shè)置,或者是其他恢復(fù)策略。
在一個實施例中,由知識數(shù)據(jù)庫200保存一個或多個錯誤統(tǒng)計表,例如錯誤計數(shù)列表208和恢復(fù)失敗計數(shù)列表210。在一個實施例中,錯誤計數(shù)列表208包括錯誤列表202中的每個錯誤在集成電路中發(fā)生的次數(shù)的列表。在一個實施例中,恢復(fù)失敗計數(shù)列表210是恢復(fù)設(shè)置列表204中的對應(yīng)恢復(fù)設(shè)置未能解決錯誤列表202中的對應(yīng)錯誤的次數(shù)的列表。諸如錯誤計數(shù)列表208和恢復(fù)失敗計數(shù)列表210之類的錯誤統(tǒng)計表可用于衡量恢復(fù)設(shè)置列表204中的設(shè)置以及恢復(fù)策略列表206中的策略是否成功,并且可用于更新或創(chuàng)建新的設(shè)置204或策略206。
圖3示出了可以與圖1的集成電路104基本類似的集成電路300的一個實施例。如上所述,通常,集成電路300是帶有單個半導(dǎo)體襯底和互連的電子組件(例如形成一個或多個處理特定功能的電路的晶體管、電阻器、電容器和二極管)陣列的小片或芯片。在一個實施例中,集成電路300具有控制寄存器302、知識數(shù)據(jù)庫304和錯誤恢復(fù)模塊308,它們配置為幫助集成電路300從集成電路300的設(shè)計缺陷恢復(fù)。集成電路300還可以包括配置為執(zhí)行其他功能的其他模塊或電路。
在一個實施例中,控制寄存器302可以與圖1的控制寄存器106基本類似。在進(jìn)一步的實施例中,控制寄存器302是配置為存儲一個或多個系統(tǒng)控制設(shè)置的板載系統(tǒng)存儲寄存器。在另一個實施例中,控制寄存器302存儲為各個板載子系統(tǒng)發(fā)出控制信號的位??刂萍拇嫫?02可以是鎖存器、觸發(fā)器或其他電子存儲結(jié)構(gòu)。存儲在控制寄存器302中的數(shù)據(jù)可以設(shè)置系統(tǒng)時鐘的頻率,確定先入先出(FIFO)隊列在轉(zhuǎn)發(fā)數(shù)據(jù)之前存儲多少數(shù)據(jù),設(shè)置總線調(diào)解方法,定義直接存儲器存取(DMA)數(shù)據(jù)傳輸塊大小,禁用一個或多個DMA引擎,或者控制集成電路300中的其他子系統(tǒng)的行為。
在一個實施例中,知識數(shù)據(jù)庫304可以與圖1的知識數(shù)據(jù)庫108和圖2的知識數(shù)據(jù)庫200基本類似。如上所述,知識數(shù)據(jù)庫304包括一個或多個錯誤的列表以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置。知識數(shù)據(jù)庫304還可以具有恢復(fù)策略,和/或一個或多個與列表中的每個錯誤對應(yīng)的錯誤統(tǒng)計表。在一個實施例中,由集成電路300的制造商向客戶提供知識數(shù)據(jù)庫304中的數(shù)據(jù)。在進(jìn)一步的實施例中,由更新模塊306更新知識數(shù)據(jù)庫304。
在一個實施例中,更新模塊306使用一個或多個錯誤或系統(tǒng)控制設(shè)置來更新知識數(shù)據(jù)庫。更新模塊306可以更改現(xiàn)有錯誤的系統(tǒng)控制設(shè)置以響應(yīng)失敗的恢復(fù),或添加帶有對應(yīng)恢復(fù)設(shè)置的新的錯誤記錄來響應(yīng)尚未包括在知識數(shù)據(jù)庫304中的錯誤。更新模塊306可以根據(jù)錯誤恢復(fù)模塊308提供的信息,根據(jù)知識數(shù)據(jù)庫304中的錯誤統(tǒng)計表,或者根據(jù)其他集成電路報告的錯誤來更新知識數(shù)據(jù)庫304。在一個實施例中,更新模塊306通過網(wǎng)絡(luò)遠(yuǎn)程地更新知識數(shù)據(jù)庫304。集成電路300的制造商可以為更新模塊306提供知識數(shù)據(jù)庫的更新。
在一個實施例中,錯誤恢復(fù)模塊308可以與圖1的錯誤恢復(fù)模塊110基本類似。如上所述,通常,錯誤恢復(fù)模塊110發(fā)現(xiàn)在操作期間在集成電路300上發(fā)生了錯誤,并更改一個或多個控制寄存器302以便更改一個或多個系統(tǒng)信號的邏輯路徑。在一個實施例中,錯誤恢復(fù)模塊308檢索一組與知識數(shù)據(jù)庫304中的錯誤相關(guān)的系統(tǒng)控制設(shè)置。在一個實施例中,錯誤恢復(fù)模塊308包括錯誤檢查模塊310、控制設(shè)置模塊312、隨機(jī)數(shù)發(fā)生器模塊314、重試模塊316、恢復(fù)模塊318、設(shè)置重置模塊320、繼續(xù)模塊322和重新啟動模塊324。
在一個實施例中,錯誤檢查模塊310發(fā)現(xiàn)在集成電路300執(zhí)行操作期間發(fā)生了錯誤。在一個實施例中,錯誤檢查模塊310可以通過輪詢包含錯誤信息的系統(tǒng)狀態(tài)寄存器來發(fā)現(xiàn)錯誤。在另一個實施例中,錯誤檢查模塊310接收警告錯誤檢查模塊310已經(jīng)發(fā)生錯誤的中斷。錯誤檢查模塊310可以隨后檢查狀態(tài)寄存器來發(fā)現(xiàn)錯誤類型,或者導(dǎo)致錯誤的操作。所述操作是集成電路300能夠執(zhí)行的多個操作中的一個操作。
在一個實施例中,控制設(shè)置模塊312根據(jù)配置為更改一個或多個系統(tǒng)信號的邏輯路徑的一組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器302的內(nèi)容。在進(jìn)一步的實施例中,控制設(shè)置模塊312從知識數(shù)據(jù)庫304的表項中檢索與錯誤檢查模塊310發(fā)現(xiàn)的錯誤對應(yīng)的一組系統(tǒng)控制設(shè)置。
在另一個實施例中,控制設(shè)置模塊312從隨機(jī)數(shù)發(fā)生器模塊314檢索一組系統(tǒng)控制設(shè)置,隨機(jī)數(shù)發(fā)生器模塊314從有效系統(tǒng)控制設(shè)置的列表中選擇一組隨機(jī)的系統(tǒng)控制設(shè)置。有效或可允許的系統(tǒng)控制設(shè)置的列表可以硬編碼到隨機(jī)數(shù)發(fā)生器模塊314中,或者隨機(jī)數(shù)發(fā)生器模塊可以從知識數(shù)據(jù)庫304中的默認(rèn)表項檢索有效系統(tǒng)控制設(shè)置的列表。在另一個實施例中,當(dāng)知識數(shù)據(jù)庫304中不存在用于錯誤的系統(tǒng)控制設(shè)置時,或者當(dāng)知識數(shù)據(jù)庫304中為錯誤列出的系統(tǒng)控制設(shè)置沒有解決錯誤時,控制設(shè)置模塊312從隨機(jī)數(shù)發(fā)生器模塊314檢索一組系統(tǒng)控制設(shè)置。
在一個實施例中,重試模塊316執(zhí)行導(dǎo)致錯誤的操作。因為控制設(shè)置模塊312更改了系統(tǒng)控制寄存器302中的一個或多個系統(tǒng)設(shè)置,所以執(zhí)行所述操作期間遵循的邏輯路徑現(xiàn)在可以是沒有設(shè)計缺陷或錯誤的邏輯路徑。
在一個實施例中,恢復(fù)模塊318發(fā)現(xiàn)成功執(zhí)行操作。在一個實施例中,在自重試模塊316執(zhí)行操作以來已經(jīng)過了預(yù)定的時間量或時鐘周期數(shù)時,恢復(fù)模塊318發(fā)現(xiàn)成功執(zhí)行所述操作。在另一個實施例中,集成電路300的子系統(tǒng)發(fā)信號通知恢復(fù)模塊318成功執(zhí)行了所述操作。在進(jìn)一步的實施例中,恢復(fù)模塊318輪詢狀態(tài)寄存器來判定是否成功執(zhí)行了所述操作。
在一個實施例中,設(shè)置重置模塊320將控制寄存器302返回先前的狀態(tài)以響應(yīng)恢復(fù)模塊318發(fā)現(xiàn)操作成功執(zhí)行。在進(jìn)一步的實施例中,設(shè)置重置模塊320根據(jù)與知識數(shù)據(jù)庫304中的錯誤對應(yīng)的恢復(fù)策略表項來將控制寄存器302返回到先前的狀態(tài)。設(shè)置重置模塊320可以立即或在預(yù)定的時間量或時鐘周期數(shù)之后將控制寄存器302返回到先前的狀態(tài)。當(dāng)解決錯誤的控制設(shè)置導(dǎo)致系統(tǒng)性能下降或其他負(fù)面影響時,這是有用的。
在一個實施例中,繼續(xù)模塊322保存一個或多個并發(fā)執(zhí)行的操作的狀態(tài)以響應(yīng)錯誤檢查模塊310發(fā)現(xiàn)錯誤,并繼續(xù)執(zhí)行操作以響應(yīng)恢復(fù)模塊318發(fā)現(xiàn)操作成功執(zhí)行。在一個實施例中,并非所有并發(fā)執(zhí)行的操作都在它們的執(zhí)行中處于可以保存它們的狀態(tài)并繼續(xù)它們的執(zhí)行的點。
在一個實施例中,重新啟動模塊324保存一個或多個并發(fā)執(zhí)行的操作的列表以響應(yīng)錯誤檢查模塊310發(fā)現(xiàn)錯誤,并重新啟動操作的執(zhí)行以響應(yīng)恢復(fù)模塊318發(fā)現(xiàn)操作成功執(zhí)行。在一個實施例中,某些并發(fā)執(zhí)行的操作由繼續(xù)模塊322繼續(xù),而在其執(zhí)行中并未處于可以繼續(xù)的點的操作將由重新啟動模塊324重新啟動。
通常作為邏輯流程圖說明以下的示意性流程圖。同樣,所示順序和標(biāo)記的步驟指示所提供方法的一個實施例??梢詷?gòu)想其他步驟和方法,它們在功能、邏輯或效果上與所示方法的一個或多個步驟或其各部分等效。另外,提供所使用的格式和符號以說明所述方法的邏輯步驟,并且應(yīng)理解它們并非限制所述方法的范圍。盡管可以在流程圖中使用不同的箭頭類型和線條類型,但是應(yīng)理解,它們并非限制相應(yīng)方法的范圍。實際上,某些箭頭或其他連接符可用來僅指示所述方法的邏輯流。例如,箭頭可以指示所示方法的枚舉步驟之間的未指定持續(xù)時間的等待或監(jiān)視周期。另外,出現(xiàn)特定方法的順序可以或可以不嚴(yán)格地依照所示的相應(yīng)步驟的順序。
圖4示出了設(shè)計缺陷恢復(fù)方法400的一個實施例。錯誤檢查模塊310檢查402操作期間的系統(tǒng)錯誤。如果有錯誤,則控制設(shè)置模塊312根據(jù)一組系統(tǒng)控制設(shè)置來更改404一個或多個控制寄存器302的內(nèi)容。所述系統(tǒng)控制設(shè)置可以被硬編碼到控制設(shè)置模塊312中,由知識數(shù)據(jù)庫304提供或由隨機(jī)數(shù)發(fā)生器模塊314提供。
重試模塊316然后重試406操作的執(zhí)行。因為控制寄存器302中的系統(tǒng)設(shè)置被控制設(shè)置模塊312更改404,所以系統(tǒng)數(shù)據(jù)信號在操作執(zhí)行期間所采用的邏輯路徑可以不同于初始執(zhí)行操作期間所采用的邏輯路徑。由設(shè)計缺陷造成的錯誤更可能出現(xiàn)在較少使用的邏輯路徑中。更改執(zhí)行操作期間使用的邏輯路徑增加了系統(tǒng)數(shù)據(jù)信號遵循更常用的邏輯路徑和無缺陷的邏輯路徑的可能性。
恢復(fù)模塊318然后檢查408操作是否無錯誤地完成。在一個實施例中,恢復(fù)模塊318輪詢狀態(tài)寄存器來檢查408操作是否成功完成。在另一個實施例中,恢復(fù)模塊318使用計數(shù)器或計時器來判定408操作是否無錯誤地完成。在進(jìn)一步的實施例中,集成電路300的子系統(tǒng)發(fā)信號通知恢復(fù)模塊318它已經(jīng)成功地執(zhí)行了操作。
如果無錯誤地完成了操作執(zhí)行,則設(shè)置重置模塊320重置410控制寄存器302,并且方法400返回步驟402,錯誤檢查模塊310檢測402下一個錯誤。如果操作沒有無錯誤地完成,則方法400返回步驟404,更改404控制寄存器302并從步驟404繼續(xù)執(zhí)行方法400。
圖5示出了設(shè)計缺陷恢復(fù)方法500的另一個實施例。錯誤檢查模塊310檢測502在操作期間是否發(fā)生了錯誤。錯誤檢查模塊重復(fù)錯誤檢測步驟502直到檢測502到錯誤。如果檢測502到錯誤,則繼續(xù)模塊322保存504在錯誤期間正在執(zhí)行且在它們的執(zhí)行中處于可以重新啟動的點的其他操作的狀態(tài)。重新啟動模塊324保存504在錯誤期間正在執(zhí)行并且不能繼續(xù)而必須重新啟動的其他操作的列表。
控制設(shè)置模塊312檢查508知識數(shù)據(jù)庫304中與錯誤對應(yīng)的表項。如果知識數(shù)據(jù)庫304中存在對應(yīng)于錯誤的錯誤表項202,則控制設(shè)置模塊312從知識數(shù)據(jù)庫304檢索510對應(yīng)于錯誤表項202的系統(tǒng)設(shè)置204。如果未在知識數(shù)據(jù)庫304中找到對應(yīng)于錯誤的錯誤表項202,則控制設(shè)置模塊312從隨機(jī)數(shù)發(fā)生器模塊314檢索一組隨機(jī)的系統(tǒng)設(shè)置。控制設(shè)置模塊312根據(jù)其檢索510、512的系統(tǒng)設(shè)置來設(shè)置514控制寄存器302。重試模塊316重試516操作的執(zhí)行。
恢復(fù)模塊318檢查518系統(tǒng)是否通過成功執(zhí)行操作來從錯誤恢復(fù)。如果操作成功完成,則繼續(xù)模塊322繼續(xù)520繼續(xù)模塊322先前保存504了其狀態(tài)的操作的執(zhí)行。重新啟動模塊324還可以重新啟動520來自重新啟動模塊324先前保存504的操作列表的操作的執(zhí)行。
更新模塊306更新知識數(shù)據(jù)庫304。在一個實施例中,更新模塊306使用一個或多個錯誤統(tǒng)計表208、210來更新知識數(shù)據(jù)庫304。在另一個實施例中,更新模塊306根據(jù)發(fā)生的錯誤和解決所述錯誤的系統(tǒng)設(shè)置使用新的錯誤表項202和對應(yīng)的恢復(fù)設(shè)置204來更新知識數(shù)據(jù)庫304。設(shè)置重置模塊320根據(jù)恢復(fù)策略206設(shè)置524控制寄存器302。方法500返回步驟502,錯誤檢查模塊310檢測502下一個系統(tǒng)錯誤,并且方法500繼續(xù)。
如果恢復(fù)模塊318未發(fā)現(xiàn)518系統(tǒng)從錯誤中恢復(fù),則更新模塊306更新526知識數(shù)據(jù)庫304。在一個實施例中,更新模塊306更新一個或多個錯誤統(tǒng)計表208、210。在另一個實施例中,更新模塊306更新對應(yīng)于錯誤表項202的恢復(fù)設(shè)置204來反映失敗的恢復(fù),即刪除或更改該表項。
在一個實施例中,方法500返回步驟512來從隨機(jī)數(shù)發(fā)生器模塊314檢索一組系統(tǒng)控制設(shè)置,并繼續(xù)執(zhí)行方法500。在另一個實施例中,方法500返回步驟510來檢索同樣與錯誤表項202對應(yīng)的一組不同的系統(tǒng)控制設(shè)置204,并繼續(xù)執(zhí)行方法500。
有利地,可以實現(xiàn)上面介紹的裝置、系統(tǒng)和方法的某些實施例以使用板載診斷和控制設(shè)置在現(xiàn)場克服集成電路中的設(shè)計缺陷。某些實施例還可以減少克服集成電路中的設(shè)計缺陷的成本和復(fù)雜性。
可以以其他特定形式實現(xiàn)本發(fā)明而不偏離本發(fā)明的精神和本質(zhì)特性。所述實施例在所有方面都只是被視為示例性的而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求而非上述說明來指示。所有在權(quán)利要求的等效含義和范圍之內(nèi)的更改都旨在被包含在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種幫助從集成電路中的設(shè)計缺陷恢復(fù)的裝置,所述裝置包括錯誤檢查模塊,配置為發(fā)現(xiàn)在操作期間發(fā)生了錯誤;控制設(shè)置模塊,配置為根據(jù)一組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容,所述系統(tǒng)控制設(shè)置組更改一個或多個系統(tǒng)信號的邏輯路徑;重試模塊,配置為執(zhí)行所述操作;以及恢復(fù)模塊,配置為判定是否成功執(zhí)行所述操作。
2.根據(jù)權(quán)利要求1的裝置,還包括設(shè)置重置模塊,該模塊配置為將所述一個或多個系統(tǒng)控制寄存器返回到先前狀態(tài)以響應(yīng)所述操作的成功執(zhí)行。
3.根據(jù)權(quán)利要求1的裝置,還包括繼續(xù)模塊,該模塊配置為保存一個或多個并發(fā)執(zhí)行的操作的狀態(tài)以響應(yīng)所述錯誤,以及繼續(xù)執(zhí)行該操作以響應(yīng)成功執(zhí)行所述操作。
4.根據(jù)權(quán)利要求1的裝置,還包括重新啟動模塊,該模塊配置為保存一個或多個并發(fā)執(zhí)行的操作的列表以響應(yīng)所述錯誤,以及重新啟動執(zhí)行該操作以響應(yīng)成功執(zhí)行所述操作。
5.根據(jù)權(quán)利要求1的裝置,還包括隨機(jī)數(shù)發(fā)生器模塊,該模塊配置為從有效系統(tǒng)控制設(shè)置的列表中選擇一組隨機(jī)的系統(tǒng)控制設(shè)置。
6.根據(jù)權(quán)利要求1的裝置,還包括知識數(shù)據(jù)庫,該知識數(shù)據(jù)庫包含一個或多個錯誤的列表以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置。
7.根據(jù)權(quán)利要求6的裝置,其中所述知識數(shù)據(jù)庫進(jìn)一步包括一個或多個與每個錯誤對應(yīng)的統(tǒng)計表。
8.根據(jù)權(quán)利要求6的裝置,其中所述知識數(shù)據(jù)庫進(jìn)一步包括與每個錯誤對應(yīng)的恢復(fù)策略。
9.根據(jù)權(quán)利要求6的裝置,還包括更新模塊,該模塊配置為使用一個或多個錯誤或系統(tǒng)控制設(shè)置來更新所述知識數(shù)據(jù)庫。
10.一種從集成電路中的設(shè)計缺陷恢復(fù)的系統(tǒng),所述系統(tǒng)包括電路板,配置成為一個或多個電子設(shè)備提供絕緣基座;集成電路,該集成電路與所述電路板相連,所述集成電路配置為發(fā)現(xiàn)在操作期間發(fā)生了錯誤;從知識數(shù)據(jù)庫檢索一組與所述錯誤關(guān)聯(lián)的系統(tǒng)控制設(shè)置,所述知識數(shù)據(jù)庫包括一個或多個錯誤的列表以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置;根據(jù)該組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容;執(zhí)行所述操作;以及判定是否成功執(zhí)行了所述操作;以及外部接口,所述外部接口連接到所述電路板并與所述集成電路通信,所述外部接口配置為從單獨的設(shè)備接收對所述知識數(shù)據(jù)庫的更新。
11.根據(jù)權(quán)利要求10的系統(tǒng),其中所述知識數(shù)據(jù)庫進(jìn)一步包括一個或多個與每個錯誤對應(yīng)的統(tǒng)計表。
12.根據(jù)權(quán)利要求10的系統(tǒng),其中所述知識數(shù)據(jù)庫進(jìn)一步包括與每個錯誤對應(yīng)的恢復(fù)策略。
13.一種用于向客戶提供知識數(shù)據(jù)庫以便從集成電路中的設(shè)計缺陷恢復(fù)的方法,所述方法包括向客戶提供知識數(shù)據(jù)庫,所述知識數(shù)據(jù)庫包括已知在集成電路中發(fā)生的一個或多個錯誤的列表,以及與每個錯誤對應(yīng)的一個或多個系統(tǒng)控制設(shè)置,所述系統(tǒng)控制設(shè)置配置為更改所述集成電路中的一個或多個信號的邏輯路徑;以及為所述客戶更新所述知識數(shù)據(jù)庫。
14.根據(jù)權(quán)利要求13的方法,其中所述知識數(shù)據(jù)庫進(jìn)一步包括與每個錯誤對應(yīng)的恢復(fù)策略。
15.根據(jù)權(quán)利要求13的方法,其中通過網(wǎng)絡(luò)遠(yuǎn)程地更新所述知識數(shù)據(jù)庫。
16.根據(jù)權(quán)利要求15的方法,其中根據(jù)其他客戶報告的錯誤來更新所述知識數(shù)據(jù)庫。
全文摘要
本發(fā)明披露了用于從集成電路中的設(shè)計缺陷恢復(fù)的裝置、系統(tǒng)和方法。所述裝置包括錯誤檢查模塊、控制設(shè)置模塊、重試模塊和恢復(fù)模塊。所述錯誤檢查模塊發(fā)現(xiàn)在操作期間發(fā)生了錯誤。所述控制設(shè)置模塊根據(jù)更改一個或多個系統(tǒng)信號的邏輯路徑的一組系統(tǒng)控制設(shè)置來更改一個或多個系統(tǒng)控制寄存器的內(nèi)容。所述重試模塊執(zhí)行所述操作。所述恢復(fù)模塊發(fā)現(xiàn)成功執(zhí)行了所述操作。
文檔編號G06F17/50GK101075271SQ20071010380
公開日2007年11月21日 申請日期2007年5月15日 優(yōu)先權(quán)日2006年5月19日
發(fā)明者郭立中 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
日照市| 博罗县| 宜州市| 苏尼特左旗| 梨树县| 双牌县| 景泰县| 理塘县| 布尔津县| 静海县| 巴林右旗| 繁昌县| 炉霍县| 革吉县| 尖扎县| 汉中市| 湟中县| 益阳市| 醴陵市| 登封市| 沂水县| 灵台县| 水城县| 社旗县| 丹阳市| 巩留县| 晋宁县| 奉贤区| 中卫市| 溧水县| 威海市| 三亚市| 公主岭市| 白玉县| 福贡县| 兴安县| 古交市| 红安县| 广昌县| 庆元县| 呼伦贝尔市|