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

集成電路中的容錯(cuò)性的制作方法

文檔序號(hào):6348655閱讀:517來源:國(guó)知局
專利名稱:集成電路中的容錯(cuò)性的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路領(lǐng)域,具體地說,涉及集成電路中的容錯(cuò)性。
背景技術(shù)
現(xiàn)場(chǎng)可編程門陣列(“FPGA”)器件是具有嵌入互連導(dǎo)體矩陣的可配置邏輯塊陣列的集成電路,所述互連導(dǎo)體具有到彼此的可配置連接以及到邏輯塊的可配置連接。圖1中示出了可編程元件的單個(gè)分組,單個(gè)FPGA芯片中可存在許多這樣的分組。分組的大小將由 FPGA架構(gòu)的物理特性決定。中央結(jié)構(gòu)是數(shù)據(jù)存取寄存器布置100和尋址功能120,它們確定對(duì)哪些可編程元件140-157執(zhí)行操作。圖1中的這些結(jié)構(gòu)中的每個(gè)結(jié)構(gòu)由旨在加載一個(gè)或多個(gè)此類結(jié)構(gòu)的中央加載機(jī)制103饋入,并將饋送到可以校驗(yàn)這些結(jié)構(gòu)中的許多結(jié)構(gòu)的中央循環(huán)冗余校驗(yàn) (“CRC”)校驗(yàn)結(jié)構(gòu)104。數(shù)據(jù)存取寄存器布置100通過掃描連接101從中央加載機(jī)制饋送并通過掃描連接102饋送至中央CRC校驗(yàn)結(jié)構(gòu)104。每個(gè)可編程元件140-157包括兩個(gè)部分靜態(tài)隨機(jī)存取存儲(chǔ)器(“SRAM” )和可編程邏輯161。每個(gè)單元中的SRAM 160的大小由可編程邏輯161的可編程性的范圍確定。 SRAM 160的大小和進(jìn)行校驗(yàn)的期望速度將確定所執(zhí)行校驗(yàn)的范圍。尋址功能120將確定在任何給定周期內(nèi),哪個(gè)(哪些)可編程元件140-157將被加載或讀取到數(shù)據(jù)存取寄存器布置100。數(shù)據(jù)存取寄存器布置100通過數(shù)據(jù)總線110-115 連接到可編程元件140-157,數(shù)據(jù)總線110-115的寬度均與單個(gè)可編程元件140-157中的 SRAM 160的寬度相同。從尋址功能120到每個(gè)可編程元件的控制通過地址選擇信號(hào)130-135來連接。在此實(shí)例中,可以加載單個(gè)列中的多個(gè)可編程元件,如140、146和152。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)方面是一種確定集成電路中的容錯(cuò)性的系統(tǒng),所述系統(tǒng)可包括由所述集成電路承載的可編程邏輯器件。所述系統(tǒng)還可包括由所述可編程邏輯器件承載以控制所述可編程邏輯器件的一部分的功能和/或連接的可配置存儲(chǔ)器。所述系統(tǒng)還可包括由所述可編程邏輯器件承載并與用戶和/或所述可配置存儲(chǔ)器通信的用戶邏輯。所述用戶邏輯可根據(jù)變化的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。所述用戶邏輯可提供對(duì)可配置存儲(chǔ)器位和/或可配置存儲(chǔ)器校驗(yàn)器位的存取,以便為所述可配置存儲(chǔ)器提供檢錯(cuò)和/或糾錯(cuò)。經(jīng)由所述用戶邏輯和/或基于用戶選擇已損壞數(shù)據(jù)識(shí)別方案,可以將所述可編程邏輯器件的一部分選擇為校驗(yàn)器。所述系統(tǒng)還可包括所述可編程邏輯器件的一部分的行和/或列的捕獲鎖存器。所述捕獲鎖存器和所述用戶邏輯可協(xié)作以在所述可配置存儲(chǔ)器中具體定位任何已損壞數(shù)據(jù)。所述用戶邏輯可確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性和/或已損壞數(shù)據(jù)粒度。所述系統(tǒng)還可包括多路復(fù)用器,所述多路復(fù)用器與所述用戶邏輯通信以提供正確數(shù)據(jù)以便替換在所述可配置存儲(chǔ)器中識(shí)別的任何已損壞數(shù)據(jù)。所述可編程邏輯器件可包括復(fù)雜可編程邏輯器件和/或現(xiàn)場(chǎng)可編程門陣列。所述可配置存儲(chǔ)器可包括諸如靜態(tài)隨機(jī)存取存儲(chǔ)器和/或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器之類的易失性存儲(chǔ)器,和/或包括諸如閃存和磁性隨機(jī)存取存儲(chǔ)器之類的非易失性存儲(chǔ)器。本發(fā)明的另一方面是一種確定集成電路中的容錯(cuò)性的方法。所述方法可包括經(jīng)由可配置存儲(chǔ)器控制可編程邏輯器件的一部分的功能和連接中的至少一個(gè)。所述方法還可包括經(jīng)由與用戶和/或所述可編程邏輯器件通信的用戶邏輯且根據(jù)所選擇的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。所述方法可附加地包括存取可配置存儲(chǔ)器位和/或可配置存儲(chǔ)器校驗(yàn)器位,以便為所述可配置存儲(chǔ)器提供檢錯(cuò)和/或糾錯(cuò)。所述方法還可包括選擇所述可編程邏輯器件的一部分作為校驗(yàn)器和/或選擇已損壞數(shù)據(jù)識(shí)別方案。所述方法還可包括經(jīng)由所述可編程邏輯器件的一部分的行和列中的至少一個(gè)的捕獲鎖存器在所述可配置存儲(chǔ)器中定位任何已損壞數(shù)據(jù)。所述方法可附加地包括確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性和/或已損壞數(shù)據(jù)粒度中的至少一個(gè)。所述方法還可包括使用正確數(shù)據(jù)替換所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。


現(xiàn)在將僅通過實(shí)例的方式參考附圖描述本發(fā)明的各實(shí)施例,這些附圖是圖1是現(xiàn)有技術(shù)FPGA的示意性方塊圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的確定容錯(cuò)性的系統(tǒng)的示意性方塊圖;圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法方面的流程圖;圖4是示出根據(jù)圖3的方法的方法方面的流程圖;圖5是示出根據(jù)圖3的方法的方法方面的流程圖;圖6是示出根據(jù)圖3的方法的方法方面的流程圖;圖7是示出根據(jù)圖6的方法的方法方面的流程圖;圖8是示出根據(jù)圖6的方法的方法方面的流程圖;圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有用于用戶邏輯的新元件的可配置存儲(chǔ)器和關(guān)聯(lián)數(shù)據(jù)存取寄存器的示意性方塊圖;圖10是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于控制FPGA的可編程元件的SRAM的局部模式校正的進(jìn)行局部校驗(yàn)的新分接(tap)和多路復(fù)用插入點(diǎn)的示意性方塊圖;圖11是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的被添加以基于CRC執(zhí)行校驗(yàn)以及基于存儲(chǔ)的壓縮后的模式執(zhí)行局部校正以提供替換的局部校驗(yàn)的示意性方塊圖;圖12是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的被添加以基于存儲(chǔ)的ECC模式執(zhí)行校驗(yàn)以及基于相同的存儲(chǔ)的ECC模式執(zhí)行局部校正以提供替換的局部校驗(yàn)的示意性方塊圖;圖13是根據(jù)本發(fā)明的一個(gè)實(shí)施例的操作局部多路復(fù)用器控制線的流程圖。
具體實(shí)施例方式參考圖2,初始地描述確定集成電路12中的容錯(cuò)性的系統(tǒng)10。系統(tǒng)10包括例如由集成電路12承載的可編程邏輯器件14。在一個(gè)實(shí)施例中,可編程邏輯器件14包括復(fù)雜可編程邏輯器件、現(xiàn)場(chǎng)可編程門陣列,或本領(lǐng)域技術(shù)人員將理解的類似器件。在另一實(shí)施例中,系統(tǒng)10還包括例如由可編程邏輯器件14承載的可配置邏輯塊陣列。在一個(gè)實(shí)施例中,所述可配置邏輯塊陣列包括互連導(dǎo)體矩陣,所述互連導(dǎo)體具有到彼此的可配置連接以及到邏輯塊的可配置連接。系統(tǒng)10還包括由可編程邏輯器件14承載以控制所述可編程邏輯器件的功能和/ 或連接的可配置存儲(chǔ)器18a-18n。在一個(gè)實(shí)施例中,可編程邏輯器件14的一部分包括部分地包含可配置存儲(chǔ)器18a-18n的一個(gè)或多個(gè)可編程查找表(“LUT”)。在另一實(shí)施例中,可配置存儲(chǔ)器18a-18n包括SRAM、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器等。系統(tǒng)10還包括例如由所述可編程邏輯器件14承載并與用戶22和/或可配置存儲(chǔ)器18a-18n通信的用戶邏輯20a-20n。在一個(gè)實(shí)施例中,用戶邏輯20a-20n根據(jù)變化的用戶要求識(shí)別可配置存儲(chǔ)器18a-18n中的已損壞數(shù)據(jù)。在另一實(shí)施例中,可配置存儲(chǔ)器18a-18n 用于針對(duì)用戶邏輯20a-20n的一部分定義布爾邏輯控制狀態(tài)或“真值表”。用戶邏輯20a-20n提供對(duì)可配置存儲(chǔ)器位和/或可配置存儲(chǔ)器校驗(yàn)器位的存取, 以便例如為可配置存儲(chǔ)器18a-18n提供檢錯(cuò)和/或糾錯(cuò)。在一個(gè)實(shí)施例中,經(jīng)由用戶邏輯 20a-20n和/或基于用戶選擇已損壞數(shù)據(jù)識(shí)別方案而將可編程邏輯器件14的一部分選擇為校驗(yàn)器24。在另一實(shí)施例中,用戶邏輯20a-20n確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性和/或已損壞數(shù)據(jù)粒度。系統(tǒng)10還包括例如可編程邏輯器件14的一部分的行和/或列的捕獲鎖存器26。 在一個(gè)實(shí)施例中,捕獲鎖存器26和用戶邏輯20a-20n協(xié)作以在可配置存儲(chǔ)器18a-18n中具體定位任何已損壞數(shù)據(jù)。系統(tǒng)10還包括多路復(fù)用器觀,多路復(fù)用器觀與用戶邏輯20a-20n通信以提供正確數(shù)據(jù)四以便例如替換在可配置存儲(chǔ)器18a-18n中識(shí)別的任何已損壞數(shù)據(jù)。本發(fā)明的另一方面是一種確定集成電路中的容錯(cuò)性的方法,參考圖3的流程圖30 描述了該方法。所述方法始于塊32并可包括經(jīng)由可編程邏輯器件承載的可配置存儲(chǔ)器控制可編程邏輯器件的一部分的功能和連接中的至少一個(gè)(塊34)。所述方法還可包括經(jīng)由與用戶和所述可編程邏輯器件中的至少一個(gè)通信的用戶邏輯且根據(jù)所選擇的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)(塊36)。所述方法在塊38結(jié)束。在另一方法實(shí)施例(現(xiàn)在將參考圖4的流程圖40描述)中,所述方法始于塊42。 所述方法可以包括圖3的塊34和36處的步驟。所述方法還可包括存取可配置存儲(chǔ)器位和可配置存儲(chǔ)器校驗(yàn)器位中的至少一個(gè),以便為所述可配置存儲(chǔ)器提供檢錯(cuò)和糾錯(cuò)中的至少一個(gè)(塊44)。所述方法在塊46結(jié)束。在另一方法實(shí)施例(現(xiàn)在將參考圖5的流程圖50描述)中,所述方法始于塊52。 所述方法可以包括圖3的塊34和36處的步驟。所述方法還可包括經(jīng)由用戶邏輯并基于用戶選擇已損壞數(shù)據(jù)識(shí)別方案而將所述可編程邏輯器件的一部分選擇為校驗(yàn)器(塊M)。所述方法在塊56結(jié)束。在另一方法實(shí)施例(現(xiàn)在將參考圖6的流程圖60描述)中,所述方法始于塊62。 所述方法可以包括圖3的塊34和36處的步驟。所述方法還可包括經(jīng)由所述可編程邏輯器件的一部分的行和列中的至少一個(gè)的捕獲鎖存器在所述可配置存儲(chǔ)器中定位任何已損壞數(shù)據(jù)(塊64)。所述方法在塊66結(jié)束。
在另一方法實(shí)施例(現(xiàn)在將參考圖7的流程圖70描述)中,所述方法始于塊72。 所述方法可以包括圖6的塊34、36和64處的步驟。所述方法還可包括確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性以及已損壞數(shù)據(jù)粒度中的至少一個(gè)(塊74)。所述方法在塊76結(jié)
束ο在另一方法實(shí)施例(現(xiàn)在將參考圖8的流程圖80描述)中,所述方法始于塊82。 所述方法可以包括圖6的塊34、36和64處的步驟。所述方法還可包括使用糾正后的數(shù)據(jù)替換可配置存儲(chǔ)器中的已損壞數(shù)據(jù)(塊84)。所述方法在塊86結(jié)束。鑒于以上內(nèi)容,系統(tǒng)10確定集成電路中的容錯(cuò)性。此外,系統(tǒng)10描述了一種使用戶邏輯20a-20n存取FPGA配置存儲(chǔ)器狀態(tài)以實(shí)現(xiàn)低成本和低延遲配置存儲(chǔ)器邏輯檢錯(cuò)和糾錯(cuò)的裝置和方法。使得用戶邏輯20a-20n能夠配置為經(jīng)由關(guān)聯(lián)數(shù)據(jù)和地址存取寄存器與互連導(dǎo)體矩陣之間的可配置連接存取可配置存儲(chǔ)器18a-18n的陣列。數(shù)據(jù)存取寄存器處的可配置多路復(fù)用器(多個(gè))觀提供了定義對(duì)可配置存儲(chǔ)器18a-18n列數(shù)據(jù)的最小粒度存取的裝置。編譯軟件的用戶屬性(attribute)定義特定檢錯(cuò)和糾錯(cuò)算法(奇偶校驗(yàn)、糾錯(cuò)碼、 循環(huán)冗余校驗(yàn)(“CRC”)、校驗(yàn)和等),連同定義針對(duì)可配置存儲(chǔ)器18a-18n測(cè)試的用戶功能, 使得可以有效地映射這些功能并將基礎(chǔ)可配置存儲(chǔ)器18a-18n地址范圍、校驗(yàn)位以及與未使用的配置狀態(tài)有關(guān)的屏蔽位嵌入用戶應(yīng)用測(cè)試功能以便使用期望的校驗(yàn)和校正。用戶測(cè)試功能定期運(yùn)行以測(cè)試并校正目標(biāo)列段的任何錯(cuò)誤。如上所述,F(xiàn)PGA器件是具有嵌入互連導(dǎo)體矩陣的可配置邏輯塊陣列的集成電路芯片,所述互連導(dǎo)體具有到彼此的可配置連接以及到邏輯塊的可配置連接。有鑒于此,特殊輸入/輸出和鎖相環(huán)時(shí)鐘塊與可配置功能和連接一起集成在陣列周圍和集成在陣列中??膳渲眠壿媺K陣列均進(jìn)一步包括一個(gè)或多個(gè)可編程查找表(“LUT”)配置存儲(chǔ)器。 這些存儲(chǔ)器用于針對(duì)用戶應(yīng)用邏輯功能的一部分定義布爾邏輯控制狀態(tài)或“真值表”。但是,用戶功能自身不能直接存取此控制狀態(tài)。通常,存儲(chǔ)器使用密集的SRAM實(shí)現(xiàn)并且必須從存儲(chǔ)在芯片以外的狀態(tài)來初始化, 其中根據(jù)特定協(xié)議使數(shù)據(jù)按照時(shí)鐘脈沖進(jìn)入特殊管腳上的芯片寄存器。在累積足夠的配置數(shù)據(jù)之后,寄存的數(shù)據(jù)被載入配置存儲(chǔ)器列。配置存儲(chǔ)器易于受到由于環(huán)境輻射導(dǎo)致的邏輯混亂的影響,并且當(dāng)此類事件發(fā)生時(shí),其將在沒有指示的情況下改變用戶應(yīng)用邏輯的行為。此外,錯(cuò)誤的行為可導(dǎo)致用戶邏輯功能模仿不正確但可接受的行為,使得錯(cuò)誤在總體系統(tǒng)中不會(huì)引人注意,從而導(dǎo)致無記載數(shù)據(jù)損壞(“SDC”)。FPGA器件在芯片上并入了自校驗(yàn)機(jī)制以定期跨大型段或整個(gè)陣列采樣配置存儲(chǔ)器狀態(tài)并對(duì)照預(yù)期CRC進(jìn)行計(jì)算。如果檢測(cè)到錯(cuò)誤,則將向用戶應(yīng)用邏輯提供錯(cuò)誤指示信號(hào)。由于此過程是順序的并且FPGA陣列很大,錯(cuò)誤指示的延遲可以為若干毫秒,長(zhǎng)到足以在系統(tǒng)中出現(xiàn)一個(gè)或多個(gè)SDC事件。此自校驗(yàn)方案的變型具有與配置存儲(chǔ)器關(guān)聯(lián)的屏蔽寄存器以幫助寫入配置存儲(chǔ)器的特定部分以便校正檢測(cè)到的錯(cuò)誤。用于實(shí)時(shí)管理SDC問題的可接受操作由用戶應(yīng)用專門地負(fù)責(zé)并且無需輔助或識(shí)別基礎(chǔ)配置存儲(chǔ)器狀態(tài)。例如,在存在配置存儲(chǔ)器錯(cuò)誤的情況下復(fù)制(雙重或三重)和比較對(duì)SDC而言有傳導(dǎo)性(conductive)的用戶應(yīng)用功能。例如,加密/解密、壓縮、算術(shù)、存儲(chǔ)器管理以及檢錯(cuò)單元均具有此特性。這些方案的成本在FPGA器件利用率、功耗方面相當(dāng)高并因利用率而降低了整體定時(shí)。此外,這些檢測(cè)在不重新初始化芯片的情況下無法被校正,而重新初始化芯片的過程將需要許多毫秒并通常對(duì)整體系統(tǒng)而言太具破壞性。其他現(xiàn)有技術(shù)描述了與邏輯塊一起在芯片上實(shí)現(xiàn)的特殊檢錯(cuò)和糾錯(cuò)電路。這些普及的可靠性方案即使對(duì)于不需要或不使用的用戶應(yīng)用功能也需要顯著的面積和功率成本 (通常FPGA中30-50%的配置存儲(chǔ)器未被使用)。隨著FPGA器件通過使用密度不斷增大的技術(shù)GO納米及以下)而規(guī)模增大,配置存儲(chǔ)器的規(guī)模也增大,并且在此規(guī)模下,校驗(yàn)和初始化延遲更長(zhǎng),并且邏輯混亂率也增大。 此外,更密集的器件現(xiàn)在允許更廣泛地應(yīng)用于不太能夠容忍配置存儲(chǔ)器錯(cuò)誤特性的系統(tǒng)應(yīng)用。系統(tǒng)10提供對(duì)基礎(chǔ)可配置存儲(chǔ)器18a-18n的用戶邏輯20a-20n存取,以幫助用戶作為用戶應(yīng)用功能的一部分根據(jù)需要實(shí)現(xiàn)和管理配置存儲(chǔ)器檢錯(cuò)和糾錯(cuò),以便實(shí)現(xiàn)最短的延遲并在密集和功率方面具有最低成本。系統(tǒng)10的各實(shí)施例提供了一種裝置,借助該裝置,可實(shí)現(xiàn)配置個(gè)別可編程塊(如 LUT等)的SRAM的細(xì)粒度局部校驗(yàn)和校正。取決于完成目標(biāo)SRAM的校驗(yàn)的期望時(shí)間,將確定實(shí)現(xiàn)校驗(yàn)所需的最終結(jié)構(gòu)和附加結(jié)構(gòu)成本。在成本最低的實(shí)施例中,向現(xiàn)有機(jī)制添加了一系列分接點(diǎn)(tap point)和多路復(fù)用插入點(diǎn),以加載對(duì)于此類單個(gè)可編程實(shí)體而言僅在自然邊界處執(zhí)行配置的SRAM。在更積極的實(shí)施例中,對(duì)于此類單個(gè)可編程實(shí)體而言,可需要若干分接點(diǎn)和多路復(fù)用插入點(diǎn)。如果希望校驗(yàn)多個(gè)并行實(shí)體,則甚至可需要插入附加寄存器掃描鏈。配置可編程實(shí)體的SRAM的校驗(yàn)和校正過程可具有多個(gè)實(shí)施例。兩個(gè)將被著重指出的主要實(shí)施例是針對(duì)有效性的循環(huán)冗余校驗(yàn)或CRC校驗(yàn),其具有存儲(chǔ)的壓縮后的模式以便替換已損壞模式; 以及針對(duì)有效性的糾錯(cuò)碼或ECC校驗(yàn),其具有ECC校正以便替換已損壞模式。以上描述了一些優(yōu)選實(shí)施例;但是,要求保護(hù)的發(fā)明并不限于此類優(yōu)選實(shí)施例。基礎(chǔ)FPGA結(jié)構(gòu)的架構(gòu)、每個(gè)可編程實(shí)體中的配置SRAM的大小、完成校驗(yàn)SRAM的有效性的期望時(shí)間將針對(duì)每個(gè)應(yīng)用驅(qū)動(dòng)所需的特定實(shí)施例。為了更好地理解如何實(shí)現(xiàn)各實(shí)施例,請(qǐng)參閱本發(fā)明的附圖和具體實(shí)施方式
。例如,系統(tǒng)10涉及控制FPGA中的每個(gè)個(gè)體可編程元件的編程的SRAM的局部檢測(cè)和校正。這并非暗示在最終實(shí)施方式中存在將被任一特定校驗(yàn)和替換方法所覆蓋的特定數(shù)量的塊。在當(dāng)前說明中,提供了大量具體細(xì)節(jié)以提供對(duì)本發(fā)明的某些元件、結(jié)構(gòu)、方法以及能力的更詳細(xì)的理解。但是,將假定本領(lǐng)域技術(shù)人員可理解實(shí)現(xiàn)與本申請(qǐng)相同的效果的其他手段和方法。現(xiàn)在額外參考圖9描述預(yù)見的實(shí)例系統(tǒng)10。圖9示出了用于經(jīng)由行數(shù)據(jù)總線204 讀取和寫入可配置存儲(chǔ)器202列單元203的FPGA “幀”數(shù)據(jù)存取寄存器布置100,其中包括用于對(duì)同一特征的用戶邏輯存取的新元件301、310和300。數(shù)據(jù)存取寄存器布置100可被分成具有對(duì)用戶互連矩陣和用戶邏輯應(yīng)用的用戶可配置存取的一個(gè)或多個(gè)鎖存寄存器200子鏈。用戶邏輯可以將一個(gè)或多個(gè)配置存儲(chǔ)器列讀入數(shù)據(jù)存取寄存器,然后按照時(shí)鐘脈沖使子鏈串行數(shù)據(jù)通過連接300和互連資源到達(dá)用戶邏輯以計(jì)算檢錯(cuò)代碼,以及檢驗(yàn)所述代碼是否匹配在FPGA用戶代碼編譯時(shí)間內(nèi)針對(duì)同一數(shù)據(jù)預(yù)先計(jì)算的代碼。所述用戶代碼可校正配置數(shù)據(jù)中的檢測(cè)到的錯(cuò)誤并通過互連資源連接301和多路復(fù)用器310將校正后的數(shù)據(jù)移回?cái)?shù)據(jù)存取寄存器。然后可以經(jīng)由數(shù)據(jù)總線204將校正后的數(shù)據(jù)寫入選定列203。圖10示出了數(shù)據(jù)存取寄存器布置100中具有本發(fā)明的新元件的單個(gè)子鏈201,以便提供用于分接300局部校驗(yàn)的環(huán)的裝置以及將新的校正后的流301注入多路復(fù)用器插入點(diǎn)310的裝置。多路復(fù)用器插入點(diǎn)310受局部多路復(fù)用器控制線320的控制。在局部校驗(yàn)功能期間,僅使用分接功能300來提供執(zhí)行數(shù)據(jù)局部校驗(yàn)的能力。在檢測(cè)到已發(fā)生錯(cuò)誤后, 使用多路復(fù)用器插入點(diǎn)310將校正后的數(shù)據(jù)301提供給選定可編程元件140-157。圖11示出了特定可編程塊140-157的配置SRAM 160的局部校驗(yàn)和校正,其中使用用于校驗(yàn)的CRC功能和用于替換SRAM位160的存儲(chǔ)值。子鏈數(shù)據(jù)分接300提供局部校驗(yàn)邏輯,且來自子鏈201或子鏈200-202的位被饋入CRC生成邏輯400。在CRC比較邏輯402中將一個(gè)或多個(gè)子鏈的最終結(jié)果與CRC的已知良好存儲(chǔ)值 401相比較。來自CRC比較邏輯的結(jié)果被記憶在局部損壞事件檢測(cè)寄存器403中并稍后在執(zhí)行損壞的局部SRAM 160的重新加載時(shí)用于改變局部多路復(fù)用器控制線320的值。圖12示出了特定可編程塊140-157的配置SRAM 160的局部校驗(yàn)和校正,其中使用用于校驗(yàn)的ECC功能和用于替換SRAM位160的校正。子鏈分接300提供局部校驗(yàn)邏輯, 且來自子鏈201或子鏈200-202的位被饋入ECC校驗(yàn)功能500。從ECC模式存儲(chǔ)器501提供正確的ECC校驗(yàn)?zāi)J健CC檢測(cè)的結(jié)果被記憶在局部損壞事件檢測(cè)寄存器502中并稍后在執(zhí)行損壞的局部SRAM160的重新加載時(shí)用于改變局部多路復(fù)用器控制線320的值。ECC校正邏輯503經(jīng)由分接300從子鏈201接收數(shù)據(jù)以及接收所提供的ECC校正模式501,以便創(chuàng)建要提供給多路復(fù)用器插入點(diǎn)310的校正后的位數(shù)據(jù) 301。圖13示出了基于FPGA全局控制和局部結(jié)果確定多路復(fù)用器插入位置310處的局部多路復(fù)用器控制線320的控制的邏輯流程圖。在第一決策塊600處,指示正在加載FPGA 的全局控制信號(hào)有效,局部多路復(fù)用器插入位置310控制線320在結(jié)果塊610處為0值或默認(rèn)數(shù)據(jù)掃描鏈路徑。如果在決策塊600中的該信號(hào)無效,則繼續(xù)到?jīng)Q策塊602。在決策塊602中檢查此可編程塊140-157是否針對(duì)局部校正被啟用。如果否,則繼續(xù)到結(jié)果塊601,其中默認(rèn)多路復(fù)用器控制線被設(shè)置為0值。如果此可編程塊140-157針對(duì)局部校正被啟用,則繼續(xù)到?jīng)Q策塊603。如果未檢測(cè)到局部損壞事件403或502,則繼續(xù)到結(jié)果塊604,然后再次返回決策塊603。如果存在檢測(cè)到的局部損壞事件403或502,則繼續(xù)到操作塊605。在操作塊605,停止可編程邏輯塊140-157中的正常功能。一旦停止就繼續(xù)到?jīng)Q策塊606。在決策塊606,判定是否準(zhǔn)備好恢復(fù)和校正該可編程邏輯塊140-157中的SRAM值。如果否,則繼續(xù)到操作塊607,在操作塊607保持0值或默認(rèn)數(shù)據(jù)掃描鏈。在決策塊606處循環(huán),直到準(zhǔn)備好執(zhí)行恢復(fù)功能并繼續(xù)到操作塊608。在操作塊608中,開始通過上述兩種裝置之一生成正確的SRAM值以便載入局部可編程塊140-157。
—旦該過程開始就繼續(xù)到操作塊609,其中首先引入正確量的延遲,然后針對(duì)多路復(fù)用器控制線320上的校正后的數(shù)據(jù)鏈值和校正數(shù)據(jù)線302上的正確SRAM位流設(shè)置1值。 然后繼續(xù)到操作塊610,其中已將正確SRAM位流掃入子鏈201,之后在多路復(fù)用器控制線 320上設(shè)置0值或默認(rèn)數(shù)據(jù)掃描鏈,并使用此數(shù)據(jù)加載目標(biāo)可編程塊140-157SRAM 160。繼續(xù)到操作塊611,其恢復(fù)可編程邏輯塊140-157的正常工作并重置局部損壞事件403或502。然后返回決策塊602以校驗(yàn)局部SRAM 160的更多損壞錯(cuò)誤。在一個(gè)實(shí)施例中,可編程邏輯器件包括配置存儲(chǔ)器和關(guān)聯(lián)的數(shù)據(jù)存取寄存器,所述數(shù)據(jù)存取寄存器布置為移位寄存器,其每個(gè)級(jí)經(jīng)由關(guān)聯(lián)的陣列行數(shù)據(jù)總線讀取和寫入多個(gè)配置存儲(chǔ)器陣列列單元。所述可編程邏輯器件還包括至少一個(gè)行數(shù)據(jù)總線到可配置互連資源的用戶可配置耦合。所述可編程邏輯器件還包括用于控制行數(shù)據(jù)總線耦合的用戶可配置狀態(tài)位。在另一實(shí)施例中,所述可編程邏輯器件附加地包括進(jìn)一步布置有用戶可配置耦合的行數(shù)據(jù)總線,并且使關(guān)聯(lián)的幀數(shù)據(jù)移位寄存器級(jí)耦合到多路復(fù)用器第一輸入端,并且多路復(fù)用器輸出端耦合到下一級(jí)寄存器輸入端。多路復(fù)用器第二輸入端耦合到用戶可配置耦合,后者耦合到可配置互連資源,并且用戶可配置狀態(tài)位用于控制行數(shù)據(jù)總線耦合。當(dāng)配置存儲(chǔ)器單元輸出狀態(tài)不適用時(shí),從可編程寄存器得出用戶可配置狀態(tài)位的狀態(tài)。在另一實(shí)施例中,所述可編程邏輯器件還包括使用戶邏輯應(yīng)用邏輯存取配置存儲(chǔ)器和出于存儲(chǔ)配置存儲(chǔ)器狀態(tài)冗余副本的目的而未使用的關(guān)聯(lián)數(shù)據(jù)存取寄存器的手段。在一個(gè)實(shí)施例中,配置存儲(chǔ)器狀態(tài)的冗余副本具有使用無損編碼算法邏輯地壓縮的狀態(tài)。在另一實(shí)施例中,所述可編程邏輯器件還包括非用戶功能與用戶邏輯應(yīng)用之間的可配置信號(hào)以共享對(duì)配置存儲(chǔ)器和關(guān)聯(lián)數(shù)據(jù)存取寄存器的存取。所述可編程邏輯器件還可包括共享對(duì)配置存儲(chǔ)器和關(guān)聯(lián)數(shù)據(jù)存取寄存器的非用戶功能存取的裝置,并且非用戶功能斷言忙信號(hào)以指示用戶何時(shí)可存取。所述非用戶功能可以包括在用戶邏輯應(yīng)用與非用戶功能之間互斥地提供配置存儲(chǔ)器和關(guān)聯(lián)數(shù)據(jù)存取寄存器的檢錯(cuò)的裝置。另一實(shí)施例是用于配置存儲(chǔ)器容錯(cuò)的用戶邏輯應(yīng)用編譯方法,其中用戶邏輯具有聲明保護(hù)何種具體邏輯并與何種具體配置存儲(chǔ)器錯(cuò)誤管理邏輯關(guān)聯(lián)的屬性,所述管理邏輯具有指定的檢錯(cuò)算法、用于未使用配置位和錯(cuò)誤編碼校驗(yàn)位的預(yù)定變量,以及定義同一配置存儲(chǔ)器中何時(shí)可控制邏輯的映射偏好。所述方法包括以下步驟合成并映射特定保護(hù)的用戶邏輯以最小化對(duì)配置存儲(chǔ)器和關(guān)聯(lián)數(shù)據(jù)存取寄存器的存取模式;根據(jù)指定的映射偏好合成并映射特定錯(cuò)誤管理邏輯; 識(shí)別和編碼未使用的配置存儲(chǔ)器位;以及識(shí)別錯(cuò)誤編碼校驗(yàn)位。在另一實(shí)施例中,通過以下步驟說明通過用戶應(yīng)用邏輯的配置存儲(chǔ)器容錯(cuò)方法。 讀取配置存儲(chǔ)器列,包括忙于非用戶配置存儲(chǔ)器的非用戶功能,否則等待。寫入配置存儲(chǔ)器地址寄存器和數(shù)據(jù)多路復(fù)用控制狀態(tài)。斷言配置存儲(chǔ)器讀取信號(hào)。將讀取數(shù)據(jù)從配置存儲(chǔ)器讀取寄存器移位通過互連矩陣到達(dá)用戶應(yīng)用錯(cuò)誤管理器邏輯。驗(yàn)證讀取數(shù)據(jù),包括計(jì)算讀取數(shù)據(jù)的檢錯(cuò)碼(EDC)。將計(jì)算的EDC與編譯時(shí)計(jì)算的預(yù)期硬編碼EDC相比較。如果未檢測(cè)到錯(cuò)誤或者檢測(cè)到錯(cuò)誤但是錯(cuò)誤在未使用的配置存儲(chǔ)器位中,則前進(jìn)到下一地址,否則轉(zhuǎn)到步驟1。如果檢測(cè)到的錯(cuò)誤不可使用EDC校正,則向用戶應(yīng)用發(fā)信號(hào)通知不可校正的錯(cuò)誤,然后轉(zhuǎn)到不可校正的錯(cuò)誤狀態(tài),否則發(fā)信號(hào)通知可校正的檢錯(cuò)。校正錯(cuò)誤包括將校正后的數(shù)據(jù)通過互連矩陣移位到配置存儲(chǔ)器讀取寄存器。斷言配置存儲(chǔ)器寫入信號(hào),然后轉(zhuǎn)到步驟1。不可校正的錯(cuò)誤狀態(tài)包括停止用于數(shù)據(jù)記錄的用戶邏輯應(yīng)用并從冗余副本重新初始化配置存儲(chǔ)器。如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明可以體現(xiàn)為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。此外,本發(fā)明可以采取計(jì)算機(jī)可用存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品的形式,所述介質(zhì)中包含計(jì)算機(jī)可用程序代碼??梢允褂萌魏芜m合的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)。所述計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)例如可以是(但不限于)電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更具體的實(shí)例(非窮舉的列表)將包括以下項(xiàng)具有一條或多條線的電連接、便攜式計(jì)算機(jī)軟盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦寫可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式光盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備,或磁存儲(chǔ)設(shè)備。用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼可以以面向?qū)ο蟮木幊陶Z言(如Java 7、Smalltalk或C++)來編寫。但是,用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼也可以以傳統(tǒng)的過程編程語言(如“C”編程語言或類似編程語言)來編寫。所述程序代碼可以完全地在用戶計(jì)算機(jī)上、部分地在用戶計(jì)算機(jī)上、作為單獨(dú)的軟件包、部分地在用戶計(jì)算機(jī)上并部分地在遠(yuǎn)程計(jì)算機(jī)上或完全地在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后者的情況中,所述遠(yuǎn)程計(jì)算機(jī)可以通過局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)與所述用戶計(jì)算機(jī)相連,或者可以進(jìn)行與外部計(jì)算機(jī)的連接(例如,利用因特網(wǎng)服務(wù)提供商并通過因特網(wǎng))。參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和/或計(jì)算機(jī)程序產(chǎn)品的方塊圖和/或流程圖描述了本發(fā)明。將理解,所述方塊圖和/或流程圖的每個(gè)方塊以及所述方塊圖和/或流程圖中的方塊的組合可以由計(jì)算機(jī)程序指令來實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一種機(jī)器, 以便通過所述計(jì)算機(jī)和/或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的所述指令將創(chuàng)建用于實(shí)現(xiàn)所述方塊圖和/或流程圖方塊(多個(gè))中指定的功能/操作的裝置。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在能夠以特定方式引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置執(zhí)行功能的計(jì)算機(jī)可讀存儲(chǔ)器中,以便存儲(chǔ)在所述計(jì)算機(jī)可讀存儲(chǔ)器中的所述指令將產(chǎn)生一件包括實(shí)現(xiàn)在所述方塊圖和/或流程圖方塊(多個(gè))中指定的功能/操作的指令的制品。所述計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置上以導(dǎo)致將在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行一系列的操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程, 以便在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行的所述指令將提供用于實(shí)現(xiàn)在所述方塊圖和/ 或流程圖方塊(多個(gè))中指定的功能/操作的步驟。系統(tǒng)10的功能可以以軟件、固件、硬件或它們的某種組合實(shí)現(xiàn)。此處示出的流程圖只是實(shí)例。此處描述的這些圖或步驟(或操作)可以存在許多變型而不偏離本發(fā)明的范圍。例如,可以按不同的順序執(zhí)行所述步驟,或者可以添加、刪除或修改步驟。所有這些變型都被視為要求保護(hù)的本發(fā)明的一部分。此外,術(shù)語“一”、“一個(gè)” 等的使用并非表示數(shù)量限制,而是表示存在至少一個(gè)所引用的項(xiàng)。
雖然描述了本發(fā)明的優(yōu)選實(shí)施例,但是將理解,無論是現(xiàn)在還是未來,本領(lǐng)域技術(shù)人員均可做出落入以下權(quán)利要求的范圍內(nèi)的各種改進(jìn)和增強(qiáng)。這些權(quán)利要求應(yīng)被理解為維持對(duì)首先描述的本發(fā)明的正確保護(hù)。
權(quán)利要求
1.一種確定集成電路中的容錯(cuò)性的系統(tǒng),所述系統(tǒng)包括由所述集成電路承載的可編程邏輯器件;由所述可編程邏輯器件承載的可配置存儲(chǔ)器,用于控制所述可編程器件的一部分的功能和連接中的至少一個(gè);由所述可編程邏輯器件承載并與用戶和所述可配置存儲(chǔ)器中的至少一個(gè)通信的用戶邏輯,所述用戶邏輯用于根據(jù)變化的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。
2.如權(quán)利要求1的系統(tǒng),其中所述用戶邏輯提供對(duì)可配置存儲(chǔ)器位和可配置存儲(chǔ)器校驗(yàn)器位中的至少一個(gè)的存取,以便為所述可配置存儲(chǔ)器提供檢錯(cuò)和糾錯(cuò)中的至少一個(gè)。
3.如權(quán)利要求1或2的系統(tǒng),其中經(jīng)由所述用戶邏輯并基于用戶選擇已損壞數(shù)據(jù)識(shí)別方案而將所述可編程器件的第二部分選擇為校驗(yàn)器。
4.如任一上述權(quán)利要求的系統(tǒng),還包括所述可編程器件的第三部分的行和列中的至少一個(gè)的捕獲鎖存器,所述捕獲鎖存器和所述用戶邏輯協(xié)作以在所述可配置存儲(chǔ)器中具體定位任何已損壞數(shù)據(jù)。
5.如權(quán)利要求4的系統(tǒng),其中所述用戶邏輯確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性以及已損壞數(shù)據(jù)粒度中的至少一個(gè)。
6.如權(quán)利要求4的系統(tǒng),還包括多路復(fù)用器,所述多路復(fù)用器與所述用戶邏輯通信以提供正確數(shù)據(jù)以便替換在所述可配置存儲(chǔ)器中識(shí)別的任何已損壞數(shù)據(jù)。
7.如任一上述權(quán)利要求的系統(tǒng),其中所述可編程邏輯器件包括復(fù)雜可編程邏輯器件和現(xiàn)場(chǎng)可編程門陣列中的至少一種;并且其中所述可配置存儲(chǔ)器包括易失性存儲(chǔ)器和非易失性存儲(chǔ)器中的至少一種。
8.一種確定集成電路中的容錯(cuò)性的方法,所述方法包括經(jīng)由可配置存儲(chǔ)器控制可編程邏輯器件的一部分的至少一個(gè);以及經(jīng)由與用戶和所述可編程邏輯器件中的至少一個(gè)通信的用戶邏輯且根據(jù)所選擇的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。
9.如權(quán)利要求8的方法,還包括存取可配置存儲(chǔ)器位和可配置存儲(chǔ)器校驗(yàn)器位中的至少一個(gè),以便為所述可配置存儲(chǔ)器提供檢錯(cuò)和糾錯(cuò)中的至少一個(gè)。
10.如權(quán)利要求8或9的方法,還包括選擇所述可編程邏輯器件的第二部分作為校驗(yàn)器并選擇已損壞數(shù)據(jù)識(shí)別方案。
11.如權(quán)利要求8至10中的任一權(quán)利要求的方法,還包括經(jīng)由所述可編程器件的第三部分的行和列中的至少一個(gè)的捕獲鎖存器在所述可配置存儲(chǔ)器中定位任何已損壞數(shù)據(jù)。
12.如權(quán)利要求11的方法,還包括確定已損壞數(shù)據(jù)嚴(yán)重度、已損壞數(shù)據(jù)重要性以及已損壞數(shù)據(jù)粒度中的至少一個(gè)。
13.如權(quán)利要求11的方法,還包括使用正確數(shù)據(jù)替換所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。
14.一種體現(xiàn)在有形介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括耦合到所述有形介質(zhì)以確定集成電路中的容錯(cuò)性的計(jì)算機(jī)可讀程序代碼,所述計(jì)算機(jī)可讀程序代碼被配置為導(dǎo)致程序執(zhí)行如權(quán)利要求8至13中的任一權(quán)利要求的步驟。
全文摘要
一種確定集成電路中的容錯(cuò)性的系統(tǒng)可包括由所述集成電路承載的可編程邏輯器件。所述系統(tǒng)還可包括由所述可編程邏輯器件承載以控制所述可編程器件的一部分的功能和/或連接的可配置存儲(chǔ)器。所述系統(tǒng)還可包括由所述可編程邏輯器件承載并與用戶和/或所述可配置存儲(chǔ)器通信的用戶邏輯。所述用戶邏輯可根據(jù)變化的用戶要求識(shí)別所述可配置存儲(chǔ)器中的已損壞數(shù)據(jù)。
文檔編號(hào)G06F11/10GK102356383SQ201080012139
公開日2012年2月15日 申請(qǐng)日期2010年2月22日 優(yōu)先權(quán)日2009年3月17日
發(fā)明者A·蘭克, M·切克, R·特里梅因 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德江县| 永城市| 龙门县| 盐津县| 抚宁县| 思茅市| 边坝县| 宁晋县| 海南省| 马鞍山市| 甘谷县| 肃北| SHOW| 广南县| 淅川县| 方山县| 水富县| 洞头县| 铜川市| 余姚市| 陇川县| 临汾市| 高唐县| 当雄县| 湖州市| 改则县| 收藏| 永吉县| 漳平市| 菏泽市| 依安县| 同江市| 喜德县| 梓潼县| 临清市| 西昌市| 泽库县| 嘉兴市| 汾阳市| 吐鲁番市| 班戈县|