欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

可編程裝置的軟差錯(cuò)定位和敏感度檢測(cè)的制作方法

文檔序號(hào):6282368閱讀:250來源:國知局
專利名稱:可編程裝置的軟差錯(cuò)定位和敏感度檢測(cè)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及可編程裝置,尤其涉及用于檢測(cè)可編程裝置中的配置差錯(cuò)的系統(tǒng)和方法。
背景技術(shù)
可編程裝置通常包括由可被配置成執(zhí)行用戶定義的邏輯功能的邏輯門或查找表構(gòu)成的上千個(gè)可編程邏輯元件。可編程裝置通常還包括適用于特定功能的多個(gè)專用電路,諸如加法器、乘法和累加電路、鎖相環(huán)和存儲(chǔ)器。這些可編程邏輯元件和專用電路可使用可編程互連線來互連。可編程互連線選擇性地在可編程邏輯元件和專用之間對(duì)連接布線。通過配置可編程邏輯元件、專用電路和可編程互連線的組合,可編程裝置可適用于執(zhí)行實(shí)際上任何類型的信息處理功能。
可編程裝置的配置通常由儲(chǔ)存在一組配置RAM(CRAM)單元或配置存儲(chǔ)器中的配置數(shù)據(jù)來控制。通常,CRAM單元中的數(shù)據(jù)包括用于查找表的條目、用于可編程邏輯元件中所包括的多路復(fù)用器的控制信號(hào)、控制可編程互連線的值、以及控制可編程裝置的其它方面,諸如可編程裝置的工作模式的值。
配置數(shù)據(jù)通常儲(chǔ)存在與該可編程裝置在同一芯片封裝內(nèi)或在連接到該可編程存儲(chǔ)器裝置的外部配置裝置上的諸如閃存或ROM等非易失性存儲(chǔ)器中。在通電時(shí)、復(fù)位或其它適當(dāng)?shù)臈l件下,該配置數(shù)據(jù)從閃存加載到可編程裝置的CRAM單元中以配置該可編程裝置。
由于制造工藝的進(jìn)步,每一個(gè)新一代的可編程裝置是由比其代裝置小的晶體管構(gòu)成的。當(dāng)CRAM單元的物理尺寸減小時(shí),它們變得更易于受到自發(fā)的“軟差錯(cuò)”的影響。軟差錯(cuò)可由諸如α粒子或宇宙射線等背景輻射引入,并且導(dǎo)致CRAM單元自發(fā)地將狀態(tài)從“0”改為“1”或從“1”改為“0”。軟差錯(cuò)被如此命名是因?yàn)榇鎯?chǔ)單元中的錯(cuò)誤信息可通過重新編程來糾正,這與其中存儲(chǔ)單元永久地?zé)o法工作的硬差錯(cuò)形成對(duì)比。由于可編程裝置的功能是由儲(chǔ)存在CRAM單元中的數(shù)據(jù)來確定的,因此甚至是CRAM單元的狀態(tài)中的單個(gè)改變也可改變或禁用可編程裝置的功能。另外,當(dāng)可編程裝置變得越來越復(fù)雜時(shí),需要另外的CRAM單元來儲(chǔ)存配置數(shù)據(jù)。這進(jìn)一步增大了軟差錯(cuò)的頻率。
糾正軟差錯(cuò)的先前的方法包括使用從CRAM單元中讀取配置數(shù)據(jù)并確定差錯(cuò)的存在的檢錯(cuò)電路。在檢測(cè)到差錯(cuò)時(shí),檢錯(cuò)電路通常引發(fā)一使得可編程裝置重新加載其配置數(shù)據(jù)并可被重新配置以進(jìn)行正確的操作的差錯(cuò)信號(hào)。在另一種方法中,裝置上也包括可糾正已知差錯(cuò)的糾錯(cuò)電路。該電路可用于糾正CRAM中的配置數(shù)據(jù)而無需重新加載整組配置數(shù)據(jù)。
運(yùn)行在可編程裝置上的許多應(yīng)用程序不使用該裝置的大部分電路。例如,典型的應(yīng)用程序可能僅使用所包括的電路的一半,這意味著只需大約一半的CRAM單元來配置由該應(yīng)用程序使用的可編程邏輯元件、專用電路和可編程互連線的操作。可被設(shè)為某一已知的邏輯值的剩余的CRAM單元并不影響可編程裝置的功能??刂莆幢粦?yīng)用程序使用的可編程邏輯元件、專用電路和可編程互連線的CRAM單元被稱為未使用CRAM單元。未使用CRAM單元中的軟差錯(cuò)是不重要的且通常被忽略。
由于檢錯(cuò)電路不在已使用和未使用CRAM單元之間區(qū)分,因此采用常規(guī)技術(shù)的可編程裝置一般在檢測(cè)到CRAM單元中的任何差錯(cuò)時(shí)重新加載配置數(shù)據(jù)。然而,由于大部分CRAM可能未被可編程裝置的應(yīng)用程序使用,因此這些軟差錯(cuò)的許多是對(duì)可編程裝置的功能沒有任何影響的“假肯定”。由此,由于假肯定,可編程裝置通常不必要地重新加載配置數(shù)據(jù),這降低了可編程裝置的性能—由于配置數(shù)據(jù)的加載期間的停機(jī)時(shí)間—并增加了功耗—由于配置數(shù)據(jù)的不必要的加載和儲(chǔ)存。
因此,所需的是檢測(cè)假肯定軟差錯(cuò)以避免諸如糾錯(cuò)或裝置重配置等不必要的補(bǔ)救活動(dòng)的電路、方法和裝置。

發(fā)明內(nèi)容
因此,本發(fā)明的實(shí)施例提供了檢測(cè)所儲(chǔ)存的配置數(shù)據(jù)中的軟差錯(cuò)是否為可被忽略的假肯定使得無需執(zhí)行重新加載配置數(shù)據(jù)或其它補(bǔ)救措施的電路、方法和設(shè)備。
本發(fā)明的一個(gè)示例性實(shí)施例提供了一種具有檢錯(cuò)電路和敏感度處理器的集成電路。該檢錯(cuò)電路檢測(cè)所儲(chǔ)存的配置數(shù)據(jù)中的軟差錯(cuò)的存在。敏感度處理器判斷檢測(cè)到的軟差錯(cuò)是否可被忽略,或者是否需要發(fā)起諸如提供差錯(cuò)標(biāo)志、重新配置裝置或糾正差錯(cuò)等補(bǔ)救動(dòng)作。敏感度處理器可基于配置未使用電路的存儲(chǔ)單元中發(fā)生的差錯(cuò)來作出這一判斷。敏感度處理器可利用差錯(cuò)日志來跟蹤可被忽略的已知差錯(cuò),使得該判斷無需在每次檢查配置數(shù)據(jù)時(shí)完成。
在本發(fā)明的一個(gè)特定實(shí)施例中,由可編程裝置接收一比特流并儲(chǔ)存在其上。該比特流包括用于配置形成該可編程裝置的可編程邏輯元件、專用電路和可編程互連線的配置數(shù)據(jù)。該比特流還包括通常從配置數(shù)據(jù)中導(dǎo)出的檢錯(cuò)比特。這些檢錯(cuò)比特可用于確定配置比特中的一個(gè)或多個(gè)是否被破壞并且已變?yōu)樗^的軟差錯(cuò)。檢錯(cuò)比特可用于確定軟差錯(cuò)的存在和位置。通常,確定軟差錯(cuò)的精確位置,即,精確的CRAM單元,盡管在某些情況下或本發(fā)明的某些實(shí)施例中,軟差錯(cuò)的位置被發(fā)現(xiàn)為在多個(gè)或一組CRAM單元中。此外,在多個(gè)差錯(cuò)的情況下,這些差錯(cuò)位置可能是不可確定的。
在本發(fā)明的一個(gè)特定實(shí)施例中,該比特流還包括敏感度數(shù)據(jù)。該敏感度數(shù)據(jù)指示可編程裝置上的某些電路是否是該可編程裝置正被配置供其使用的應(yīng)用程序所需要或使用的。更具體地,敏感度數(shù)據(jù)的每一比特指示一個(gè)或多個(gè)CRAM單元中的差錯(cuò)是否不會(huì)對(duì)總體電路性能具有十分有害的影響以使得該差錯(cuò)可被忽略。如果差錯(cuò)導(dǎo)致對(duì)裝置性能沒有十分有害的影響的錯(cuò)誤配置,則該差錯(cuò)可被忽略。這允許諸如提供差錯(cuò)指示、執(zhí)行糾錯(cuò)以及經(jīng)歷裝置重新配置等補(bǔ)救措施可被避免。
在本發(fā)明的各實(shí)施例中,對(duì)電路何時(shí)被錯(cuò)誤地配置使得它對(duì)裝置性能具有十分有害的影響的準(zhǔn)則可以變化。例如,敏感度可以基于電路是否由應(yīng)用程序使用。在本發(fā)明的一個(gè)特定實(shí)施例中,如果可編程邏輯元件未被應(yīng)用程序使用,則該應(yīng)用程序?qū)τ糜谂渲迷摽删幊踢壿嬙腃RAM單元中的差錯(cuò)是不敏感的。然而,在其它實(shí)施例中,未使用電路中的某些差錯(cuò)可能會(huì)對(duì)已被使用的其它電路有不利的影響。例如,這一差錯(cuò)可能會(huì)不必要地加載已使用的驅(qū)動(dòng)程序、可能會(huì)增加功耗、或可能會(huì)具有使得性能被不合需要地降低的其它影響。因此,在本發(fā)明的各實(shí)施例中,這些和其它準(zhǔn)則可在生成敏感度數(shù)據(jù)時(shí)使用。
例如,敏感度數(shù)據(jù)的每一比特可指示應(yīng)用程序?qū)τ谝粋€(gè)CRAM單元中的差錯(cuò)的敏感度。然而,這需要使用較大的敏感度數(shù)據(jù)庫。因此,在本發(fā)明的一個(gè)特定實(shí)施例中,每一敏感度比特指示應(yīng)用程序?qū)σ唤MCRAM單元中的任一個(gè)CRAM單元中的差錯(cuò)的敏感度。
在本發(fā)明的一個(gè)特定實(shí)施例中,可編程邏輯元件包括查找表部分和寄存器部分。因此,對(duì)用于配置可編程邏輯元件的查找表或寄存器部分的一組CRAM單元的差錯(cuò)的敏感度可使用一個(gè)比特來跟蹤?;蛘撸粋€(gè)敏感度比特可指示應(yīng)用程序?qū)τ糜谂渲靡粋€(gè)可編程邏輯元件或諸如邏輯陣列塊等一組邏輯元件的任一個(gè)CRAM單元中的差錯(cuò)的敏感度。
同樣,在該特定實(shí)施例中,布線是使用布線多路復(fù)用器來配置的。這些多路復(fù)用器可在通常是6-15個(gè)CRAM單元的控制之下。因此,應(yīng)用程序?qū)@一組CRAM中的任一個(gè)比特中的差錯(cuò)的敏感度可用一個(gè)敏感度比特來跟蹤?;蛘?,對(duì)用于一組布線多路復(fù)用器的CRAM單元中的差錯(cuò)的敏感度可用一個(gè)敏感度比特來跟蹤。例如,邏輯陣列塊中的局部布線多路復(fù)用器可用一個(gè)敏感度比特來跟蹤。再一次,在本發(fā)明的這些實(shí)施例的任一個(gè)中,應(yīng)用程序?qū)RAM比特中的差錯(cuò)的敏感度可通過該CRAM比特是否配置由該應(yīng)用程序使用的電路來確定。
如果應(yīng)用程序?qū)Πl(fā)生的差錯(cuò)敏感,則敏感度處理器可向外部裝置提供一標(biāo)志,以使可編程裝置被重新配置。如果應(yīng)用程序?qū)Σ铄e(cuò)不敏感,則該差錯(cuò)可被忽略。在任一情況下,可能期望跟蹤差錯(cuò)供應(yīng)用程序進(jìn)行數(shù)據(jù)收集和分析。
一旦確定有差錯(cuò)的配置比特可被忽略,則期望不必在每次檢查配置數(shù)據(jù)時(shí)都作出同一判斷。因此,本發(fā)明的另一示例性實(shí)施例包括跟蹤可被忽略的軟差錯(cuò)的差錯(cuò)日志。當(dāng)檢測(cè)到差錯(cuò)時(shí),檢查該日志來看該差錯(cuò)是否可被忽略。如果該差錯(cuò)未被記入日志,則參考敏感度數(shù)據(jù)來看該差錯(cuò)是否可被忽略。如果差錯(cuò)可被忽略,則該差錯(cuò)然后被記入日志以供將來參考。
在本發(fā)明的各實(shí)施例中,還包括了糾錯(cuò)電路。如果應(yīng)用程序?qū)Σ铄e(cuò)敏感,則除糾正之外的進(jìn)一步動(dòng)作可能是必要的,諸如軟或硬復(fù)位。同樣,如果發(fā)生了多個(gè)差錯(cuò),則如果糾正電路不能糾正這多個(gè)差錯(cuò),則可能需要復(fù)位。即使應(yīng)用程序?qū)Σ铄e(cuò)不敏感,但這些差錯(cuò)通常也應(yīng)被糾正,以免它們累積并導(dǎo)致稍后的差錯(cuò)不能被糾正的情況。再一次,在任一情況下,可能需要跟蹤差錯(cuò)以供應(yīng)用程序分析。
本發(fā)明的各實(shí)施例可結(jié)合此處所描述的這些或其它特征中的一個(gè)或多個(gè)。參考以下詳細(xì)描述和附圖可以獲得對(duì)本發(fā)明的特性和優(yōu)點(diǎn)的更好的理解。


圖1示出了用于可編程裝置的示例配置存儲(chǔ)器和相關(guān)聯(lián)的電路。
圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于可編程裝置的配置存儲(chǔ)器的示例;圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟差錯(cuò)檢測(cè)單元和相關(guān)聯(lián)的電路的示例;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的檢測(cè)配置存儲(chǔ)器中的差錯(cuò)的方法的流程圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的檢測(cè)配置存儲(chǔ)器中的差錯(cuò)的方法的另一流程圖;圖6是通過結(jié)合本發(fā)明的實(shí)施例改進(jìn)的可編程邏輯裝置的簡(jiǎn)化框圖;以及圖7是通過結(jié)合本發(fā)明的實(shí)施例改進(jìn)的電子系統(tǒng)的框圖。
具體實(shí)施例方式
圖1是用于典型的可編程裝置100的CRAM陣列110和編程結(jié)構(gòu)的概觀。可編程裝置100包含被組織成行和列的陣列110的多個(gè)CRAM單元。地址寄存器120包含一組線,每一條線對(duì)CRAM單元110的一列尋址。數(shù)據(jù)寄存器130包含要寫入CRAM單元110的一列或?qū)ζ渚幊痰臄?shù)據(jù),或已從CRAM單元110的一列讀回的數(shù)據(jù)。
當(dāng)數(shù)據(jù)被寫入CRAM單元110時(shí),配置控制器150從配置存儲(chǔ)器讀取或接受配置數(shù)據(jù),配置存儲(chǔ)器可以在采用配置裝置140的形式的單獨(dú)芯片上,或者可被包含在與可編程裝置100相同的芯片上。數(shù)據(jù)從配置存儲(chǔ)器中讀取并被提供給數(shù)據(jù)寄存器130。當(dāng)完整的一列數(shù)據(jù)可用時(shí),通過選通由地址寄存器120尋址的線之一來對(duì)一列編程。
在本發(fā)明的一個(gè)特定實(shí)施例中,地址寄存器120被預(yù)設(shè)為全0,且對(duì)單個(gè)1移位以選擇要編程的列。在其它變化中,地址寄存器可使用不同的編碼。可編程裝置可被排列成較小的地址或數(shù)據(jù)塊;數(shù)據(jù)可一次在單個(gè)比特或若干比特中讀取;以及其它可能的變化。
在寫入了CRAM單元之后,配置控制器150可周期性地讀回CRAM數(shù)據(jù)并檢查差錯(cuò)。配置控制器150再次順序通過一個(gè)或多個(gè)列并將數(shù)據(jù)讀回到數(shù)據(jù)寄存器130中。在讀取每一列之后,配置控制器150使用該數(shù)據(jù)來執(zhí)行檢錯(cuò)計(jì)算的某一步,這通常是通過將數(shù)據(jù)移位到配置控制器150中以執(zhí)行CRC校驗(yàn)來進(jìn)行的?;蛘?,它可計(jì)算構(gòu)成列或行中的數(shù)據(jù)的各個(gè)子集的CRAM單元的塊上的檢錯(cuò)或糾錯(cuò)碼?;蛘?,可橫跨任意數(shù)目的CRAM單元的行和列的CRAM單元塊也可包含檢錯(cuò)或糾錯(cuò)碼?;蛘撸瑓^(qū)域可跨多行和多列交錯(cuò)以使給定糾錯(cuò)塊中的CRAM單元不必是相鄰的。
如果檢測(cè)到差錯(cuò),則配置控制器150可引發(fā)一差錯(cuò)標(biāo)志152,該標(biāo)志可以是可編程裝置100內(nèi)部或外部的邏輯信號(hào)。監(jiān)視可編程裝置100的外部邏輯(未示出)可使用這一標(biāo)志來重新配置可編程裝置100。在檢測(cè)到差錯(cuò)的情況下,可編程裝置100的狀態(tài)不能被信任,因?yàn)椴恢雷詮陌l(fā)生差錯(cuò)及其檢測(cè)以來已經(jīng)過了多少時(shí)間,且因此可編程裝置100的狀態(tài)可能以不可預(yù)測(cè)的方式被破壞。重新配置和初始化可編程裝置100通常是這些情況下的唯一選擇。
示例可編程裝置100的其它變化還可包括用于內(nèi)部地糾正CRAM 110的內(nèi)容的糾錯(cuò)電路,但是這并沒有解決假肯定的問題。另外,某些配置控制器150還可提供讀回配置數(shù)據(jù)并將其驅(qū)離可編程裝置例如到線154上的能力。
再一次,如果軟差錯(cuò)是假肯定,即它是配置未使用電路的CRAM單元中的差錯(cuò),則該差錯(cuò)可被忽略。由此,不期望在檢測(cè)到其中差錯(cuò)是假肯定的差錯(cuò)之后重新配置裝置。因此,本發(fā)明的一個(gè)示例性實(shí)施例通過忽略不會(huì)顯著影響可編程裝置的操作的CRAM中的軟差錯(cuò)來減少對(duì)可編程裝置的不必要的重新配置。本發(fā)明的一個(gè)實(shí)施例首先使用檢錯(cuò)比特來檢測(cè)并定位可能會(huì)影響該裝置的操作的軟差錯(cuò)。在這之后,判斷該軟差錯(cuò)是否是會(huì)在不合需要的程度上顯著影響裝置性能的差錯(cuò),或者它是否是可被忽略的差錯(cuò)。
在本發(fā)明的一個(gè)實(shí)施例中,糾錯(cuò)碼(ECC)單元對(duì)儲(chǔ)存在CRAM中的配置數(shù)據(jù)的比特的塊或子集執(zhí)行檢錯(cuò)。盡管該子集可能是可編程裝置中的所有CRAM器件,但是典型的糾錯(cuò)碼只能糾正單個(gè)差錯(cuò),因此有利的是將可編程裝置劃分成多個(gè)較小的配置數(shù)據(jù)塊,每一塊可容許單個(gè)軟差錯(cuò)。
在本發(fā)明的一個(gè)實(shí)施例中,ECC單元能夠標(biāo)識(shí)單個(gè)差錯(cuò)的位置。其它實(shí)施例也能至少以高概率來標(biāo)識(shí)是否發(fā)生了一個(gè)以上差錯(cuò)。這允許可編程裝置容許許多軟差錯(cuò),只要每一塊中的軟差錯(cuò)的數(shù)目沒有超過ECC單元標(biāo)識(shí)差錯(cuò)的一個(gè)或多個(gè)位置的能力。
圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的可編程裝置的示例配置存儲(chǔ)器。該圖包括用于配置裝置的CRAM單元210、地址寄存器220、數(shù)據(jù)寄存器230和用于儲(chǔ)存檢錯(cuò)比特的CRAM單元240。
在本發(fā)明的該實(shí)施例中,CRAM單元210的每一塊具有相關(guān)聯(lián)的用于儲(chǔ)存檢錯(cuò)比特的一個(gè)或多個(gè)附加CRAM單元240的集合。這些CRAM單元240不用于控制可編程裝置的任何部分,而是用于儲(chǔ)存用于CRAM單元210的該塊的檢錯(cuò)比特。在本發(fā)明的一個(gè)實(shí)施例中,位置子集是CRAM單元210的列,而檢錯(cuò)比特垂直地?cái)U(kuò)展超過通常是列的末端之處。檢錯(cuò)比特被儲(chǔ)存在這些附加CRAM單元240中。其它變化也是可能的,且包括可有效地作為相關(guān)的數(shù)據(jù)塊來對(duì)待的CRAM單元的列的部分、一個(gè)以上列或任何區(qū)域。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的包括軟差錯(cuò)檢測(cè)單元和相關(guān)聯(lián)的電路的框圖。該圖包括FPGA或其它可編程裝置300,它們進(jìn)一步包括配置控制器310、糾錯(cuò)碼單元320、敏感度處理器330、可任選差錯(cuò)日志340以及敏感度數(shù)據(jù)數(shù)據(jù)庫或存儲(chǔ)器350,以及外部配置裝置360。
在配置期間,配置控制器310從配置裝置360中讀取配置數(shù)據(jù)。配置控制器310將配置數(shù)據(jù)寫入CRAM單元(未示出)中。在配置之后,周期性地對(duì)CRAM單元中的數(shù)據(jù)檢查軟差錯(cuò)。這可通過ECC單元320從CRAM單元讀取配置數(shù)據(jù)和檢錯(cuò)比特來完成。
如果檢測(cè)到軟差錯(cuò),則ECC單元320確定該差錯(cuò)的位置。某些類型的ECC計(jì)算能夠標(biāo)識(shí)一個(gè)以上差錯(cuò)位置,因此本公開內(nèi)容中對(duì)“位置”的引用應(yīng)當(dāng)被認(rèn)為是指一個(gè)或多個(gè)位置。在一個(gè)實(shí)施例中,由代碼指定的位置無需如失效比特的確切索引那樣精確,但是可以精確到足以提供充分地定位差錯(cuò)以便能夠在差錯(cuò)對(duì)應(yīng)于不影響用戶電路的操作的位置有良好的概率的意義上利用統(tǒng)計(jì)量的某些好處。
在本發(fā)明的一個(gè)實(shí)施例中,位置可以是特定的失效比特的確切索引。在另一實(shí)施例中,它可能是構(gòu)成一列的一組比特對(duì)的索引。由此,應(yīng)當(dāng)注意,在以上段落中描述了兩種不同的粒度水平(1)形成每一ECC計(jì)算中使用的塊大小的配置數(shù)據(jù)的量,(2)標(biāo)識(shí)塊內(nèi)發(fā)生軟差錯(cuò)的位置時(shí)的分辨率水平。在本發(fā)明的一個(gè)特定實(shí)施例中,差錯(cuò)的位置包括失效比特的塊號(hào)以及該比特在該塊內(nèi)的位置。
當(dāng)檢錯(cuò)電路對(duì)每一塊執(zhí)行差錯(cuò)計(jì)算時(shí),如果發(fā)生差錯(cuò),則它可在線332上引發(fā)一標(biāo)志。如上所述,當(dāng)發(fā)現(xiàn)差錯(cuò)時(shí),ECC單元320還確定差錯(cuò)的位置。在諸如Hamming碼等糾錯(cuò)碼的情況下,這自然可以是ECC計(jì)算的一部分。在CRC計(jì)算的情況下,可進(jìn)行進(jìn)一步的計(jì)算以確定差錯(cuò)的位置。ECC單元也可發(fā)信號(hào)通知是否超出ECC單元能夠標(biāo)識(shí)的能力發(fā)生了一個(gè)或多個(gè)差錯(cuò),例如只能標(biāo)識(shí)單個(gè)比特差錯(cuò)的位置但是能檢測(cè)雙差錯(cuò)的ECC單元中的雙比特差錯(cuò)。
在確定差錯(cuò)的位置之后,ECC單元320的一個(gè)實(shí)施例將該標(biāo)志和軟差錯(cuò)的位置傳遞給敏感度處理器330。敏感度處理器330訪問具有對(duì)應(yīng)于所檢測(cè)到的差錯(cuò)的位置的地址的敏感度數(shù)據(jù)存儲(chǔ)器350。所得的敏感度數(shù)據(jù)是指定用戶電路是否對(duì)指定位置中的差錯(cuò)敏感的值。
再一次,可使用各種準(zhǔn)則來定義敏感度。在本發(fā)明的一個(gè)特定實(shí)施例中,如果差錯(cuò)是對(duì)當(dāng)前配置的可編程裝置的操作十分有害,使得應(yīng)當(dāng)采取補(bǔ)救動(dòng)作且該差錯(cuò)不應(yīng)當(dāng)被忽略的差錯(cuò),則該差錯(cuò)被認(rèn)為是敏感的。由于不同的設(shè)計(jì)或應(yīng)用程序利用可編程裝置的不同部分,因此對(duì)于可編程裝置的敏感度數(shù)據(jù)也相應(yīng)地變化。在本發(fā)明的一個(gè)實(shí)施例中,敏感度數(shù)據(jù)由軟件結(jié)合對(duì)可編程裝置的配置數(shù)據(jù)的確定來預(yù)計(jì)算并被加載到敏感度數(shù)據(jù)存儲(chǔ)器中。在本發(fā)明的一個(gè)特定實(shí)施例中,敏感度數(shù)據(jù)的每一比特對(duì)應(yīng)于多個(gè)CRAM單元。當(dāng)該多個(gè)CRAM單元的任一個(gè)中的差錯(cuò)對(duì)該裝置的操作十分有害以致于應(yīng)采取補(bǔ)救動(dòng)作時(shí),將相應(yīng)的敏感度數(shù)據(jù)比特置位以指示該設(shè)計(jì)對(duì)這些CRAM單元之一中的軟差錯(cuò)敏感。
敏感度處理器330分析檢索到的敏感度數(shù)據(jù)以確定所檢測(cè)到的軟差錯(cuò)是否是敏感的,即,如當(dāng)前所配置的,該差錯(cuò)是否對(duì)可編程裝置的操作十分有害以致于需要補(bǔ)救動(dòng)作。敏感度處理器330然后可在線332上將一信號(hào)置為有效以指示敏感差錯(cuò)的存在。如果差錯(cuò)不是敏感的,則本發(fā)明的一可任選實(shí)施例將該差錯(cuò)記入到可任選差錯(cuò)日志存儲(chǔ)器340中的日志中,使得該差錯(cuò)的進(jìn)一步發(fā)生不會(huì)導(dǎo)致對(duì)同一敏感度數(shù)據(jù)的重復(fù)評(píng)估。在該實(shí)施例中,敏感度處理器330在訪問敏感度數(shù)據(jù)存儲(chǔ)器350之前參考差錯(cuò)日志340,且如果差錯(cuò)先前未被檢測(cè)到并輸入到差錯(cuò)日志存儲(chǔ)器340中,則敏感度處理器330僅訪問敏感度數(shù)據(jù)存儲(chǔ)器。
CRAM單元可用多種方式被映射到敏感度數(shù)據(jù)存儲(chǔ)器350中的數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,敏感度數(shù)據(jù)存儲(chǔ)器350對(duì)每一CRAM單元分配一敏感度比特。然而,這需要大量的敏感度數(shù)據(jù)存儲(chǔ)器350。因此,在本發(fā)明的其它實(shí)施例中,敏感度數(shù)據(jù)存儲(chǔ)器350對(duì)每一區(qū)域分配一敏感度比特,其中區(qū)域包括某些數(shù)目的CRAM單元。在本發(fā)明的該實(shí)施例中,敏感度數(shù)據(jù)存儲(chǔ)器350訪問是以CRAM單元地址的最高有效位來作出的。例如,ECC計(jì)算可標(biāo)識(shí)比特差錯(cuò)的精確位置,但是敏感度數(shù)據(jù)可對(duì)每一2*2的CRAM矩形儲(chǔ)存一敏感度比特,使得只需使用比特差錯(cuò)位置的一部分來確定其相關(guān)聯(lián)的敏感度數(shù)據(jù)的相應(yīng)位置。
在其它實(shí)施例中,與敏感度比特相關(guān)聯(lián)的區(qū)域的大小可以變化,并且可對(duì)應(yīng)于可編程裝置的特定組件,諸如可編程互連線或可編程邏輯元件。例如,與敏感度比特相關(guān)聯(lián)的區(qū)域可以是可編程邏輯元件的一部分,諸如可編程邏輯元件的查找表或寄存器部分。或者,區(qū)域可以是一個(gè)可編程邏輯元件或一組邏輯元件。其它區(qū)域可包括一個(gè)布線多路復(fù)用器或一組布線多路復(fù)用器,諸如與一邏輯陣列塊相關(guān)聯(lián)的所有布線多路復(fù)用器。在另外一些實(shí)施例中,可使用諸如樹或散列表等更精細(xì)的數(shù)據(jù)結(jié)構(gòu)來由敏感度數(shù)據(jù)表示配置存儲(chǔ)器的區(qū)域。
通常,如果使用邏輯元件中的一個(gè)CRAM比特,則該邏輯元件作為用戶設(shè)計(jì)的一部分被配置并且是需要的。在這一情況下,該邏輯元件中的每一CRAM比特是需要的。因此,在本發(fā)明的一個(gè)實(shí)施例中,對(duì)應(yīng)于一個(gè)或多個(gè)邏輯元件的粗粒度區(qū)域可用于使用用于敏感度數(shù)據(jù)的非常少量的存儲(chǔ)器來實(shí)現(xiàn)本發(fā)明,由此允許敏感度數(shù)據(jù)被儲(chǔ)存在芯片上,盡管在某些實(shí)施例中,該數(shù)據(jù)被儲(chǔ)存在芯片外,例如儲(chǔ)存在配置裝置360中。在本發(fā)明的一個(gè)特定實(shí)施例中,在可編程裝置中的每一邏輯塊或LAB包含使用的至少某些布線的假設(shè)下敏感度數(shù)據(jù)中可以不包括布線配置,使得將敏感度數(shù)據(jù)用于布線配置是冗余的。相反,可以有可利用敏感度信息的許多完全未使用的邏輯塊或LAB。
在本發(fā)明的另一實(shí)施例中,可任選差錯(cuò)日志340較佳地位于管芯上以減少訪問片外存儲(chǔ)器的需求,但是敏感度數(shù)據(jù)存儲(chǔ)器在相對(duì)少量的數(shù)據(jù)的情況下可位于片上,或者可位于片外,可能在配置裝置360中。
在其中軟差錯(cuò)位置可被標(biāo)識(shí)到單個(gè)比特的其它實(shí)施例中,或在允許重新配置可編程裝置CRAM的小區(qū)域的變體中,敏感度處理器可重新加載失效比特或比特區(qū)域的配置數(shù)據(jù)以修復(fù)該差錯(cuò),使得后續(xù)的差錯(cuò)不會(huì)超出系統(tǒng)的檢測(cè)能力。
具有冗余度的可編程裝置的實(shí)施例對(duì)于由ECC處理器描述的位置信息可具有至少兩種不同的效果。首先,差錯(cuò)位置可以對(duì)應(yīng)于邏輯位置而非物理位置,因?yàn)閿?shù)據(jù)可在對(duì)裝置編程的期間移位。例如,數(shù)據(jù)可按行移位以避開壞行,(行包括許多相鄰的LAB,通常是20到200)因此給定比特可以被物理地置于兩個(gè)LAB行之一中。在這一情況下,數(shù)據(jù)可以按與寫入相同的方式讀回,從而跳過壞行,因此該移位在數(shù)據(jù)流中不是可見的。
相反,冗余度的第二方面可使得數(shù)據(jù)被處理,以使配置數(shù)據(jù)中的比特可取決于缺陷位置被更改或移動(dòng),從而使CRAM的內(nèi)容不被容易地預(yù)測(cè)。例如,一個(gè)特定實(shí)施例取決于缺陷行的位置以及到該行的距離更改布線比特對(duì)的內(nèi)容。在這些裝置中,可使用大小至少是一對(duì)比特的區(qū)域。
本發(fā)明的實(shí)施例可以完全以可編程裝置上的硬邏輯(即,可編程裝置的專用的專門邏輯)或軟邏輯(即,使用可編程裝置的可編程邏輯資源創(chuàng)建的邏輯)或軟和硬邏輯的組合來實(shí)現(xiàn)。例如,一組合實(shí)施例可在硬邏輯中安排ECC邏輯標(biāo)識(shí)差錯(cuò)位置,并向編碼該信息的可編程裝置的核心提供信號(hào)。示例敏感度處理器330可從可編程裝置核心中的軟邏輯構(gòu)造,從而允許在從差錯(cuò)位置映射到敏感度數(shù)據(jù)存儲(chǔ)器地址時(shí)對(duì)算法進(jìn)行本質(zhì)上任意的選擇。通常,如果敏感度數(shù)據(jù)小到足以適合在嵌入式存儲(chǔ)器塊中,則它可以位于片上,或者它可以如上所述位于片外。敏感度處理器330可被增至三倍以避免可編程裝置中的軟差錯(cuò)導(dǎo)致檢錯(cuò)邏輯中的失效,并且敏感度數(shù)據(jù)可使用糾錯(cuò)來防止軟差錯(cuò)導(dǎo)致失效。
圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的檢測(cè)配置存儲(chǔ)器中的差錯(cuò)的方法的流程圖。在該方法中,裝置最初被配置。在配置之后,執(zhí)行對(duì)配置數(shù)據(jù)中的軟差錯(cuò)的檢查。這些檢查可在周期性或非周期性的基礎(chǔ)上執(zhí)行。當(dāng)檢測(cè)到差錯(cuò)時(shí),確定應(yīng)用程序是否對(duì)該差錯(cuò)敏感。如果應(yīng)用程序不對(duì)該差錯(cuò)敏感,則該差錯(cuò)被忽略。如果應(yīng)用程序?qū)υ摬铄e(cuò)敏感,則可取決于本發(fā)明的該實(shí)施例的確切實(shí)現(xiàn)執(zhí)行諸如提供標(biāo)志、糾正差錯(cuò)、或重新配置裝置等各種動(dòng)作。
具體地,在動(dòng)作400處,確定檢錯(cuò)比特,并在動(dòng)作402處,例如由軟件確定敏感度數(shù)據(jù)。在動(dòng)作410處,配置可編程裝置,并且在動(dòng)作412處,將檢錯(cuò)比特和敏感度數(shù)據(jù)儲(chǔ)存在可編程裝置上。該裝置可以是諸如可編程邏輯器件、現(xiàn)場(chǎng)可編程門陣列或其它裝置等可編程裝置。再一次,裝置通常通過將配置數(shù)據(jù)寫入多個(gè)CRAM單元來配置。在配置之后,可對(duì)儲(chǔ)存在CRAM單元中的數(shù)據(jù)檢查差錯(cuò)。這一檢查可以在定期或周期性的基礎(chǔ)上完成、它可以在某些事件之后完成、或者它可以遵循某一其它準(zhǔn)則來完成。在動(dòng)作420處,讀回配置數(shù)據(jù)的一部分。在動(dòng)作430處,讀回對(duì)應(yīng)的檢錯(cuò)比特。
在動(dòng)作440處,確定是否發(fā)生了軟差錯(cuò)。如果沒有發(fā)生軟差錯(cuò),則可在動(dòng)作420處讀回配置數(shù)據(jù)的下一部分。如果已發(fā)生了差錯(cuò),則在動(dòng)作450處讀取對(duì)應(yīng)的敏感度數(shù)據(jù)。該敏感度數(shù)據(jù)指示應(yīng)用程序是否對(duì)該軟差錯(cuò)敏感。在本發(fā)明的一個(gè)特定實(shí)施例中,如果差錯(cuò)發(fā)生在配置由應(yīng)用程序使用的電路的CRAM單元中,則該應(yīng)用程序?qū)υ摬铄e(cuò)敏感。
在動(dòng)作460處,確定應(yīng)用程序是否對(duì)該軟差錯(cuò)敏感。如果否,則該差錯(cuò)可被忽略,并且可在動(dòng)作420處讀回下一配置數(shù)據(jù)。在動(dòng)作480處,如果存在糾錯(cuò)電路,則如果可能,即使在應(yīng)用程序不敏感時(shí)也糾正該差錯(cuò)。這防止差錯(cuò)累積并導(dǎo)致其中應(yīng)用程序?qū)ζ涿舾械纳院蟮牟铄e(cuò)不能被糾正的情形。如果應(yīng)用程序?qū)Σ铄e(cuò)敏感,則取決于本發(fā)明的特定實(shí)現(xiàn),可進(jìn)行各種活動(dòng)。例如,可在動(dòng)作470處提供差錯(cuò)標(biāo)志。并且,或作為替換,可在動(dòng)作472處重新配置該裝置。并且,該可編程裝置可包括糾錯(cuò)電路。在這一情況下,可在動(dòng)作474處糾正差錯(cuò)。如果糾正了差錯(cuò),則該裝置可能無需在動(dòng)作472處被重新配置。
再一次,為節(jié)省讀取敏感度數(shù)據(jù)的時(shí)間,例如在動(dòng)作450處,可保持應(yīng)用程序?qū)ζ洳幻舾械囊阎洸铄e(cuò)的日志。這防止敏感度數(shù)據(jù)必須在每次檢查具有應(yīng)用程序?qū)ζ洳幻舾械囊阎洸铄e(cuò)的CRAM單元時(shí)被讀取,或在報(bào)告非敏感差錯(cuò)時(shí)重復(fù)報(bào)告同一差錯(cuò)。一個(gè)示例在以下流程圖中示出。
圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的檢測(cè)差錯(cuò)的方法的流程圖。再一次,裝置最初被配置。在配置之后,執(zhí)行對(duì)配置數(shù)據(jù)中的軟差錯(cuò)的檢查。當(dāng)檢測(cè)到差錯(cuò)時(shí),確定該差錯(cuò)先前是否已作為應(yīng)用程序?qū)ζ洳幻舾械囊阎洸铄e(cuò)被記入日志。如果它已被如此記入日志,則該差錯(cuò)可被忽略,且檢查可繼續(xù)進(jìn)行。如果它未被記入日志,則確定應(yīng)用程序是否對(duì)該差錯(cuò)敏感。如果應(yīng)用程序不對(duì)該差錯(cuò)敏感,則該差錯(cuò)被記入日志以供將來的參考,且可被另外忽略或可能被糾正。如果應(yīng)用程序?qū)υ摬铄e(cuò)敏感,則取決于本發(fā)明的實(shí)施例的確切實(shí)現(xiàn)可執(zhí)行諸如提供標(biāo)志、糾正差錯(cuò)、或重新配置裝置等各種動(dòng)作。
具體地,在動(dòng)作510處,配置可編程裝置。再一次,這可包括生成檢錯(cuò)比特、敏感度數(shù)據(jù)并將該信息和配置數(shù)據(jù)儲(chǔ)存在裝置上。在動(dòng)作520處,讀回配置數(shù)據(jù)的一部分。在動(dòng)作530處,讀回對(duì)應(yīng)的檢錯(cuò)比特。
在動(dòng)作540處,確定是否發(fā)生了軟差錯(cuò)。如果沒有發(fā)生軟差錯(cuò),則可在動(dòng)作520處讀回配置數(shù)據(jù)的下一部分。如果已發(fā)生了差錯(cuò),則在動(dòng)作550處確定該差錯(cuò)是否已作為應(yīng)用程序?qū)ζ洳幻舾械能洸铄e(cuò)被記入日志。如果它已被記入日志,則該差錯(cuò)可被忽略,并且檢錯(cuò)可在動(dòng)作520處繼續(xù)進(jìn)行。如果該軟差錯(cuò)未被記入日志,則在動(dòng)作560處,讀取對(duì)應(yīng)的敏感度數(shù)據(jù)。該敏感度數(shù)據(jù)指示應(yīng)用程序是否對(duì)該軟差錯(cuò)敏感。在動(dòng)作570處,確定應(yīng)用程序是否對(duì)該軟差錯(cuò)敏感。如果否,則該差錯(cuò)可在動(dòng)作590處被記入日志以供將來參考,且如果存在糾錯(cuò)電路,則該差錯(cuò)可能在動(dòng)作592處被糾正,盡管諸如當(dāng)多個(gè)比特發(fā)生差錯(cuò)時(shí)等某些差錯(cuò)不能被糾正。可在動(dòng)作520處讀回下一配置數(shù)據(jù)。如果應(yīng)用程序?qū)υ摬铄e(cuò)敏感,則取決于本發(fā)明的特定實(shí)現(xiàn),可進(jìn)行各種活動(dòng)。例如,可提供差錯(cuò)標(biāo)志580。并且,或者作為替換,可在動(dòng)作582處重新配置該裝置。如果包括了糾錯(cuò)電路,則可在動(dòng)作584處糾正該差錯(cuò),在這一情況下,裝置可能無需在動(dòng)作582處被重新配置。
圖6示出了其中可利用根據(jù)本發(fā)明的技術(shù)的示例性高密度可編程邏輯裝置或FPGA 600的簡(jiǎn)化局部框圖。PLD 600包括由變化的長(zhǎng)度和速度的列和行互連的網(wǎng)絡(luò)互連的可編程邏輯陣列塊(或LAB)602的二維陣列。LAB 602包括多個(gè)(例如,10個(gè))邏輯元件(或LE),LE是提供用戶定義的邏輯功能的有效實(shí)現(xiàn)的小邏輯單元。
PLD 600還包括分布式存儲(chǔ)器結(jié)構(gòu),包括遍及整個(gè)陣列設(shè)置的變化大小的RAM塊。RAM塊包括例如512位塊604、4K塊606以及提供512位的RAM的M塊608。這些存儲(chǔ)器塊還可包括移位寄存器和FIFO緩沖器。PLD 600還包括可實(shí)現(xiàn)例如具有加法或減法功能的乘法器的數(shù)字信號(hào)處理(DSP)塊610。
可以理解,PLD 600此處僅為說明的目的而描述,并且本發(fā)明可用許多不同類型的PLD、FPGA和其它類型的數(shù)字集成電路來實(shí)現(xiàn)。
盡管圖6所示的類型的PLD或FPGA提供了實(shí)現(xiàn)系統(tǒng)級(jí)解決方案所需的許多資源,但是本發(fā)明也可有益于其中PLD是若干組件之一的系統(tǒng)。
圖7示出了其中可實(shí)施本發(fā)明的示例性數(shù)字系統(tǒng)700的框圖。系統(tǒng)700可以是已編程的數(shù)字計(jì)算機(jī)系統(tǒng)、數(shù)字信號(hào)處理系統(tǒng)、專用數(shù)字交換網(wǎng)絡(luò)、或其它處理系統(tǒng)。此外,這些系統(tǒng)可為諸如電信系統(tǒng)、汽車系統(tǒng)、控制系統(tǒng)、消費(fèi)者電子產(chǎn)品、個(gè)人計(jì)算機(jī)、因特網(wǎng)通信和聯(lián)網(wǎng)以及其它等各種各樣的應(yīng)用而設(shè)計(jì)。此外,系統(tǒng)700可以被設(shè)置在單塊板上、多塊板上、或在多個(gè)外殼內(nèi)。
系統(tǒng)700包括通過一條或多條總線互連在一起的處理單元702、存儲(chǔ)器單元704以及輸入/輸出單元706。根據(jù)該示例性實(shí)施例,可編程邏輯裝置(PLD)708被嵌入在處理單元702中。PLD 708可為圖7的系統(tǒng)內(nèi)的許多不同的目的來服務(wù)。例如,PLD 708可以是處理單元702的邏輯構(gòu)件塊,從而支持其內(nèi)部和外部操作。PLD 708可被編程以實(shí)現(xiàn)在系統(tǒng)操作中扮演其特定角色所必需的邏輯功能。PLD708可以通過連接710特別耦合到存儲(chǔ)器704并通過連接712特別耦合到輸入/輸出單元706。
處理單元702可以將數(shù)據(jù)定向到適當(dāng)?shù)南到y(tǒng)組件以供處理或存儲(chǔ)、執(zhí)行儲(chǔ)存在存儲(chǔ)器704中的程序或經(jīng)由輸入/輸出單元706接收和發(fā)送數(shù)據(jù)、或其它類似的功能。處理單元702可以是中央處理單元(CPU)、微處理器、浮點(diǎn)協(xié)處理器、圖形協(xié)處理器、硬件控制器、微控制器、為用作控制器而編程的可編程邏輯裝置、網(wǎng)絡(luò)控制器等等。此外,在許多實(shí)施例中,通常無需CPU。
例如,代替CPU,一個(gè)或多個(gè)PLD 708可控制系統(tǒng)的邏輯操作。在一個(gè)實(shí)施例中kPLD 708用作可重新配置處理器,它可在需要時(shí)被重新編程以處理特定的計(jì)算任務(wù)?;蛘撸删幊踢壿嬔b置708本身可包括嵌入的微處理器。存儲(chǔ)器單元704可以是隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、固定或靈活盤介質(zhì)、PC卡閃速盤存儲(chǔ)器、磁帶、或任何其它存儲(chǔ)裝置、或這些存儲(chǔ)裝置的任何組合。
本發(fā)明的示例性實(shí)施例的以上描述是為了說明和描述的目的而提出的。它并不旨在窮盡本發(fā)明或?qū)⑵湎抻谒枋龅木_形式,并且鑒于以上的教導(dǎo),許多修改和變化都是可能的。選擇并描述這些實(shí)施例以最好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,由此使得本領(lǐng)域的其他技術(shù)人員能夠在各實(shí)施例中最好地利用本發(fā)明并在適合所構(gòu)想的特定使用時(shí)有各種修改。
權(quán)利要求
1.一種檢測(cè)可編程裝置的配置存儲(chǔ)器中的差錯(cuò)的方法,所述方法包括從所述配置存儲(chǔ)器讀取配置存儲(chǔ)器數(shù)據(jù);判斷所述配置存儲(chǔ)器數(shù)據(jù)中是否發(fā)生了差錯(cuò);以及響應(yīng)于已發(fā)生差錯(cuò)的判斷讀取對(duì)應(yīng)于發(fā)生差錯(cuò)的所述配置數(shù)據(jù)的敏感度數(shù)據(jù);分析所述敏感度數(shù)據(jù)以確定所述差錯(cuò)是否可被忽略;以及如果所述差錯(cuò)不可被忽略,則發(fā)起一補(bǔ)救活動(dòng);否則通過不發(fā)起補(bǔ)救活動(dòng)來忽略所述差錯(cuò)。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過不發(fā)起補(bǔ)救活動(dòng)來忽略所述差錯(cuò)的動(dòng)作還包括將所述差錯(cuò)的位置儲(chǔ)存在差錯(cuò)日志中。
3.如權(quán)利要求2所述的方法,其特征在于,對(duì)所述已發(fā)生差錯(cuò)的判斷的響應(yīng)還包括在讀取所述敏感度數(shù)據(jù)之前將所述位置與差錯(cuò)日志進(jìn)行比較;以及僅當(dāng)所述差錯(cuò)的位置先前未被儲(chǔ)存在所述差錯(cuò)日志中時(shí)才讀取所述敏感度數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,是否已發(fā)生差錯(cuò)是使用檢錯(cuò)比特來判斷的,所述配置存儲(chǔ)器被劃分成區(qū)域,并且檢錯(cuò)比特是對(duì)每一區(qū)域單獨(dú)確定的。
5.如權(quán)利要求1所述的方法,其特征在于,所述補(bǔ)救活動(dòng)包括糾正所述差錯(cuò)。
6.如權(quán)利要求1所述的方法,其特征在于,所述補(bǔ)救活動(dòng)包括重新配置所述可編程裝置。
7.如權(quán)利要求1所述的方法,其特征在于,所述敏感度數(shù)據(jù)是部分地基于由所述發(fā)生差錯(cuò)的配置數(shù)據(jù)配置的電路是否被運(yùn)行在所述可編程裝置上的應(yīng)用程序所使用而生成的。
8.一種檢查儲(chǔ)存在可編程裝置上的配置存儲(chǔ)器中的配置數(shù)據(jù)中的差錯(cuò)的方法,其中所述配置數(shù)據(jù)為第一應(yīng)用程序配置所述可編程裝置,所述方法包括從所述配置存儲(chǔ)器中讀取所述配置數(shù)據(jù)的一部分;讀取對(duì)應(yīng)于所述配置數(shù)據(jù)的所述部分的多個(gè)檢錯(cuò)比特的一部分;確定所述配置數(shù)據(jù)的所述部分中是否有差錯(cuò),以及如果有,則確定所述軟差錯(cuò)是否對(duì)所述第一應(yīng)用程序產(chǎn)生有害的影響,以及如果是,則提供已發(fā)生軟差錯(cuò)的指示;否則不提供所述已發(fā)生軟差錯(cuò)的指示。
9.如權(quán)利要求8所述的方法,其特征在于,確定所述軟差錯(cuò)是否會(huì)對(duì)所述第一應(yīng)用程序產(chǎn)生有害影響是通過從存儲(chǔ)器中讀取敏感度數(shù)據(jù)來完成的。
10.如權(quán)利要求8所述的方法,其特征在于,還包括在讀取所述配置數(shù)據(jù)的所述部分之前,從配置裝置讀取所述配置數(shù)據(jù)并將所述配置數(shù)據(jù)存儲(chǔ)在所述配置存儲(chǔ)器中。
11.如權(quán)利要求10所述的方法,其特征在于,還包括在從所述配置存儲(chǔ)器讀取所述配置數(shù)據(jù)之前,使用所述配置數(shù)據(jù)確定所述多個(gè)檢錯(cuò)比特。
12.如權(quán)利要求11所述的方法,其特征在于,還包括將所述多個(gè)檢錯(cuò)比特儲(chǔ)存在所述可編程裝置上。
13.如權(quán)利要求8所述的方法,其特征在于,還包括如果確定所述差錯(cuò)會(huì)對(duì)所述第一應(yīng)用程序產(chǎn)生有害影響,則糾正所述軟差錯(cuò)。
14.如權(quán)利要求8所述的方法,其特征在于,還包括如果確定所述差錯(cuò)會(huì)對(duì)所述第一應(yīng)用程序產(chǎn)生有害影響,則重新配置所述可編程裝置。
15.一種集成電路,包括儲(chǔ)存配置數(shù)據(jù)的第一多個(gè)存儲(chǔ)單元;儲(chǔ)存檢錯(cuò)比特的第二多個(gè)存儲(chǔ)單元;儲(chǔ)存敏感度數(shù)據(jù)的第三多個(gè)存儲(chǔ)單元;配置控制器,用于接收包括所述配置數(shù)據(jù)、檢錯(cuò)比特和敏感度數(shù)據(jù)的配置數(shù)據(jù)流,并將所述配置數(shù)據(jù)寫入所述第一多個(gè)存儲(chǔ)單元、將所述檢錯(cuò)比特寫入所述第二多個(gè)存儲(chǔ)單元、以及將所述敏感度數(shù)據(jù)寫入所述第三多個(gè)存儲(chǔ)單元;檢錯(cuò)電路,用于從所述第一多個(gè)存儲(chǔ)單元讀取配置數(shù)據(jù)并從所述第二多個(gè)存儲(chǔ)單元讀取檢錯(cuò)比特,以及確定所述配置數(shù)據(jù)中是否已發(fā)生了差錯(cuò),且如果是,則提供其中已發(fā)生了所述差錯(cuò)的第一存儲(chǔ)單元中的第一個(gè)的地址的至少一部分;敏感度處理器,用于接收所述地址的至少一部分,并接收對(duì)應(yīng)于所述地址的至少一部分的敏感度數(shù)據(jù),以及確定運(yùn)行在所述集成電路上的應(yīng)用程序是否對(duì)已發(fā)生的所述差錯(cuò)敏感。
16.如權(quán)利要求15所述的集成電路,其特征在于,當(dāng)發(fā)生差錯(cuò)且所述應(yīng)用程序?qū)λ霾铄e(cuò)敏感時(shí),數(shù)據(jù)被寫入其中發(fā)生所述差錯(cuò)的所述存儲(chǔ)單元中。
17.如權(quán)利要求16所述的集成電路,其特征在于,還包括糾正由所述檢錯(cuò)電路檢測(cè)到的差錯(cuò)的糾錯(cuò)電路。
18.如權(quán)利要求17所述的集成電路,其特征在于,無論所述應(yīng)用程序是否對(duì)已發(fā)生的所述差錯(cuò)敏感,所述糾錯(cuò)電路都糾正由所述檢錯(cuò)電路檢測(cè)到的差錯(cuò)。
19.如權(quán)利要求15所述的集成電路,其特征在于,當(dāng)發(fā)生差錯(cuò)且所述應(yīng)用程序?qū)λ霾铄e(cuò)敏感時(shí),重新配置所述集成電路。
20.如權(quán)利要求15所述的集成電路,其特征在于,所述多個(gè)敏感度比特是部分地基于所述可編程裝置的哪些部分被所述第一應(yīng)用程序所使用而確定的。
21.如權(quán)利要求15所述的集成電路,其特征在于,所述敏感度比特中的每一個(gè)是部分地基于所述可編程裝置的對(duì)應(yīng)部分是否被所述第一應(yīng)用程序所使用而確定的。
全文摘要
檢測(cè)所儲(chǔ)存的配置數(shù)據(jù)中發(fā)生的軟差錯(cuò)是否為可被忽略的假肯定以使不必執(zhí)行重新加載配置數(shù)據(jù)或其他補(bǔ)救措施的電路、方法和裝置。一個(gè)示例提供了包括檢錯(cuò)電路和敏感度處理器的集成電路。檢錯(cuò)電路檢測(cè)差錯(cuò)的存在。敏感度處理器判斷檢測(cè)到的差錯(cuò)是否可被忽略,或者是否應(yīng)發(fā)起諸如提供差錯(cuò)標(biāo)志、重新配置裝置或糾正差錯(cuò)等補(bǔ)救動(dòng)作。敏感度處理器可基于差錯(cuò)是否在配置未使用電路的存儲(chǔ)單元中發(fā)生來作出這一判斷。敏感度處理器可利用差錯(cuò)日志來跟蹤可被忽略的已知差錯(cuò),使得該判斷無需在每次檢查配置數(shù)據(jù)時(shí)進(jìn)行。
文檔編號(hào)G05B19/05GK101063948SQ200710101398
公開日2007年10月31日 申請(qǐng)日期2007年4月23日 優(yōu)先權(quán)日2006年4月21日
發(fā)明者D·劉易斯, N·D·尼格, A·L·李, J·黃 申請(qǐng)人:奧特拉股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
衡阳县| 友谊县| 兰西县| 莱阳市| 乌什县| 岳阳市| 平罗县| 板桥市| 蕲春县| 仪征市| 新营市| 周至县| 三明市| 通江县| 甘肃省| 凌云县| 景谷| 宁波市| 金门县| 兴隆县| 天祝| 翁牛特旗| 个旧市| 广德县| 札达县| 拜泉县| 唐河县| 民乐县| 大城县| 辽阳市| 尉氏县| 义马市| 桂林市| 黎平县| 县级市| 新龙县| 白朗县| 昌乐县| 武陟县| 滁州市| 泗阳县|