專利名稱:局部重配置電路的制作方法
技術(shù)領(lǐng)域:
本文涉及集成電路,并且更具體地涉及用于對諸如可編程集成電路的集成電路執(zhí)行局部重配置的電路。
背景技術(shù):
可編程集成電路是一種用戶可以對其編程以實現(xiàn)所期望的定制邏輯功能的集成電路。在通常情況下,邏輯設(shè)計者利用計算機輔助設(shè)計工具設(shè)計定制邏輯電路。當(dāng)設(shè)計過程完成時,計算機輔助設(shè)計工具產(chǎn)生配置數(shù)據(jù)。該配置數(shù)據(jù)被加載到存儲器元件中以配置該器件,從而執(zhí)行定制邏輯電路的功能。常常利用隨機訪問存儲器(RAM)單元形成存儲器元件。因為在器件編程過程中將配置數(shù)據(jù)加載到RAM單元中,所以有時將RAM單元稱為配置存儲器或者配置隨機訪問存儲器單元(CRAM)。在可編程器件正常工作過程中,已加載的CRAM單元產(chǎn)生靜態(tài)輸出信號,這些信號被施加到晶體管(例如傳輸晶體管)的柵極。CRAM輸出信號將一些晶體管打開并且將其他晶體管關(guān)閉。這種選擇性激活可編程器件上的某些晶體管定制化可編程器件的工作,使得該可編程器件執(zhí)行其計劃中的功能。可以將配置數(shù)據(jù)按配置比特流的形式供應(yīng)給可編程器件。在將第一配置比特流加載到可編程器件后,可以在稱為重配置的過程中,通過加載不同的配置比特流重配置該可編程器件。在重配置的過程中,常常加載整組配置數(shù)據(jù)。然而,利用稱為局部重配置的過程,僅僅重配置配置比特中的一部分,這有時可以是有利的。
發(fā)明內(nèi)容
提供了 一種集成電路,其包括存儲器元件與局部重配置電路,局部重配置電路用于重配置存儲器元件中選定的部分。存儲器元件可以按行和列布置并且可以統(tǒng)稱為存儲器陣列。局部重配置(PR)電路可以包括PR主電路(host circuit)、PR控制電路、地址寄存器以及第一、第二和第三數(shù)據(jù)寄存器。PR主電路可以用于與PR控制電路執(zhí)行握手過程,以初始化PR控制電路,并且可以給PR控制電路提供一系列局部重配置指令。在一些實施例中,PR指令可以是壓縮的和/或加密的。在此情況下,PR控制電路可以包括可操作用于解壓縮和/或解密指令的電路。PR控制電路可以包括錯誤檢驗電路,其被配置為確定每個PR指令是否包含錯誤。如果當(dāng)前的PR指令是錯誤的,則錯誤檢驗電路可以給PR主電路提供有效的錯誤信號,以提醒主電路這個錯誤。當(dāng)主電路接收到有效的錯誤信號時,主電路可以重新發(fā)送錯誤的指令,或者可以重新發(fā)送整個系列的PR指令。如果當(dāng)前PR指令不包括任何錯誤,則錯誤檢驗電路可以給PR主電路提供無效的錯誤信號,并且可以執(zhí)行當(dāng)前指令。PR控制電路可以引導(dǎo)地址寄存器在存儲器陣列中選擇期望的行(或者幀)用于讀訪問或者寫訪問。在一系列說明性的操作中,可以讀取選定行的存儲器元件并且將其存儲在第一數(shù)據(jù)寄存器中。第一數(shù)據(jù)寄存器隨后可以并行加載其內(nèi)容到第二數(shù)據(jù)寄存器中。接著,可以將第二數(shù)據(jù)寄存器的內(nèi)容串行移出到PR控制電路中?;诋?dāng)前PR指令中提供的數(shù)據(jù)比特,PR控制電路可以修改移位的數(shù)據(jù)內(nèi)容(例如,可以利用特定的邏輯功能來處理來自第二數(shù)據(jù)寄存器的數(shù)據(jù)比特和當(dāng)前指令中的數(shù)據(jù)比特,以產(chǎn)生修改的數(shù)據(jù)比特)。接著,修改的內(nèi)容可以串行移回到第二數(shù)據(jù)寄存器中。接著,可以將第二數(shù)據(jù)寄存器的內(nèi)容并行移位到第三數(shù)據(jù)寄存器中。接著,可以將第三數(shù)據(jù)寄存器的內(nèi)容加載到選定行的存儲器元件中。接著,地址寄存器可以用于選擇不同行的存儲器元件以便進行重配置。本發(fā)明的進一步特征、其本質(zhì)與各種優(yōu)點將會從附圖與下列詳細說明中變得更清晰。
圖1是根據(jù)本發(fā)明實施例的說明性可編程集成電路的圖示。圖2是根據(jù)本發(fā)明實施例示出了配置數(shù)據(jù)是如何由邏輯設(shè)計系統(tǒng)生成并且加載入可編程器件中從而配置器件以便在系統(tǒng)中工作的圖示。圖3是根據(jù)本發(fā)明實施例的說明性存儲器元件的電路圖。圖4是根據(jù)本發(fā)明實施例的說明性集成電路的圖示,該集成電路具有存儲器元件陣列,以及可以用于對存儲器元件陣列執(zhí)行局部重配置的局部重配置電路。圖5是根據(jù)本發(fā)明實施例的一系列說明性的局部重配置指令的圖示。圖6是根據(jù)本發(fā)明實施例的說明性局部重配置指令類型的表格。圖7是根據(jù)本發(fā)明實施例的說明性局部重配置幀類型的表格。圖8是根據(jù)本發(fā)明實施例用于操作圖4的局部重配置電路的說明性步驟的流程圖。圖9A與9B是根據(jù)本發(fā)明實施例示出了在圖4的局部重配置電路的工作過程中,控制信號與關(guān)聯(lián)的數(shù)據(jù)流的行為的時序圖。圖10是根據(jù)本發(fā)明實施例示出了可以如何對局部重配置指令進行壓縮和/或加密的圖示。圖11是根據(jù)本發(fā)明實施例的說明性局部重配置控制電路的圖示,該控制電路具有解密電路、解壓縮電路與錯誤檢驗電路。
具體實施例方式本發(fā)明實施例涉及集成電路,并且更具體地涉及具有存儲器元件的集成電路。包括存儲器元件的集成電路可以包括存儲器芯片、數(shù)字信號處理電路、微處理器、專用集成電路(ASIC)、專用標準產(chǎn)品(application specific standard productXASSP)、可編程集成電路,或者其他合適的集成電路,可編程集成電路是例如可編程門陣列(PAL)、可編程邏輯陣列(PLA)、現(xiàn)場可編程邏輯陣列(FPLA)、電可編程邏輯器件(EPLD)、電可擦除可編程邏輯器件(EEPLD)、邏輯單元陣列(LCA)、現(xiàn)場可編程門陣列(FPGA)等。諸如可編程集成電路的集成電路利用可編程存儲器元件存儲配置數(shù)據(jù)。在對可編程集成電路進行編程的過程中,加載配置數(shù)據(jù)進入存儲器元件中。在可編程集成電路的正常工作期間,每個存儲器元件提供靜態(tài)輸出信號。存儲器元件供應(yīng)的靜態(tài)輸出信號用作控制信號。這些控制信號被施加于在集成電路上的可編程邏輯以定制可編程邏輯,從而執(zhí)行所期望的邏輯功能。存儲器元件可以被組織為具有數(shù)個行和列的陣列。例如,存儲器陣列電路可以在可編程邏輯器件集成電路上形成為數(shù)百或者數(shù)千的行和列。圖1的可編程集成電路10是在其上可以形成存儲器陣列電路的說明性集成電路的示例。如圖1中所示,可編程集成電路10可以具有輸入輸出電路12,其用于通過輸入輸出引腳14驅(qū)動走器件10的信號并且接收來自其他器件的信號??梢允褂弥T如全局和局部垂直和水平導(dǎo)線與總線的互連資源16來路由器件10上的信號?;ミB資源16包括固定互連(導(dǎo)線)和可編程互連(即,各固定互連之間的可編程互連)??删幊踢壿?8可以包括組合和時序邏輯電路??梢耘渲每删幊踢壿?8以執(zhí)行定制邏輯功能。可編程集成電路10包括存儲器元件20,其可以利用引腳14和輸入輸出電路12加載有配置數(shù)據(jù),也稱為編程數(shù)據(jù)。一旦加載了數(shù)據(jù),每個存儲器元件提供對應(yīng)的靜態(tài)控制輸出信號,其控制可編程邏輯18中的關(guān)聯(lián)的邏輯部件的狀態(tài)。存儲器元件輸出信號通常用于控制金屬氧化物半導(dǎo)體(MOS)晶體管的柵極。一些晶體管可以是P溝道金屬氧化物半導(dǎo)體(PMOS)晶體管。在諸如多路復(fù)用器的可編程部件中,很多這些晶體管可以是η通道金屬氧化物半導(dǎo)體(NMOS)傳輸晶體管。當(dāng)存儲器元件輸出是高電平時,將打開由該存儲器元件控制的NMOS傳輸晶體管,以將邏輯信號從其輸入傳輸?shù)狡漭敵觥.?dāng)存儲器元件輸出是低電平時,傳輸晶體管被關(guān)閉并且不傳輸邏輯信號。典型的存儲器元件20由被配置為形成交叉耦合反相器的數(shù)個晶體管形成。也可以利用其他布置,例如具有更多分布式類反相器電路的單元。通過一種合適的方法,互補金屬氧化物半導(dǎo)體(CMOS)集成電路技術(shù)用于形成存儲器元件20,所以本文將對基于CMOS的存儲器元件實現(xiàn)作為示例進行描述。在可編程集成電路的背景中,存儲器元件存儲配置數(shù)據(jù)并且因此有時稱為配置隨機訪問存儲器(CRAM)單元。圖2中示出了用于器件10的說明性系統(tǒng)環(huán)境。器件10可以安裝在系統(tǒng)38中的板36上。通常情況下,可編程邏輯器件10可以接收來自編程設(shè)備或者來自其他合適設(shè)備或者器件的配置數(shù)據(jù)。在圖2的示例中,可編程邏輯器件10是如下類型的可編程邏輯器件,其接收來自關(guān)聯(lián)的集成電路40的配置數(shù)據(jù)。在這種類型的布置中,如果期望的話,電路40可以被安裝在與可編程邏輯器件10相同的板36上。電路40可以是可擦除可編程只讀存儲器(EPROM)芯片,具有內(nèi)建存儲器的可編程邏輯器件配置數(shù)據(jù)加載芯片(有時稱為配置器件),或者其他合適的電路。當(dāng)系統(tǒng)38啟動時(或者在另一個合適的時間),用于配置可編程邏輯器件的配置數(shù)據(jù)可以從器件40供應(yīng)給可編程邏輯器件,如路徑42示意示出的。供應(yīng)給可編程邏輯器件的配置數(shù)據(jù)可以被存儲于可編程邏輯器件中的配置隨機訪問存儲器元件20中。系統(tǒng)38可以包括處理電路44、存儲裝置46和其他與器件10通信的系統(tǒng)部件48。系統(tǒng)38的部件可以位于諸如板36的一個或者更多板上,或者在其他合適安裝結(jié)構(gòu)或者外殼上,并且可以通過總線和其他電氣路徑50進行互連。配置器件40可以經(jīng)由諸如路徑52的路徑供應(yīng)用于器件10的配置數(shù)據(jù)。例如,配置器件40可以從配置數(shù)據(jù)加載裝置54或者其他合適的在配置器件40中存儲該數(shù)據(jù)的設(shè)備接收配置數(shù)據(jù)。器件40可以在安裝到板36之前或者之后加載數(shù)據(jù)。設(shè)計與實現(xiàn)可編程邏輯器件中的期望的邏輯電路會是費力任務(wù)。因此邏輯設(shè)計者通常利用基于計算機輔助設(shè)計工具(CAD)的邏輯設(shè)計系統(tǒng)來輔助其設(shè)計電路。邏輯設(shè)計系統(tǒng)可以幫助邏輯設(shè)計者設(shè)計與測試系統(tǒng)的復(fù)雜電路。當(dāng)設(shè)計完成時,邏輯設(shè)計系統(tǒng)可以用于產(chǎn)生配置數(shù)據(jù),用于對合適的可編程邏輯器件進行電編程。如圖2所示,邏輯設(shè)計系統(tǒng)56所產(chǎn)生的配置數(shù)據(jù)可以經(jīng)由諸如路徑58的路徑提供給設(shè)備54。設(shè)備54將配置數(shù)據(jù)提供給器件40,使得器件40可以稍后將該配置數(shù)據(jù)經(jīng)由路徑42提供給可編程邏輯器件10。系統(tǒng)56可以基于一個或更多計算機和一個或更多軟件程序。一般情況下,軟件和數(shù)據(jù)可以被存儲于系統(tǒng)56中的任意計算機可讀介質(zhì)(存儲裝置),并且在圖2中示意示為存儲器60。在通常情況下,邏輯設(shè)計者利用邏輯設(shè)計系統(tǒng)56生成定制電路設(shè)計。系統(tǒng)56產(chǎn)生對應(yīng)的配置數(shù)據(jù),這些配置數(shù)據(jù)被提供給配置器件40。通電后,可編程邏輯器件10上的配置器件40和數(shù)據(jù)加載電路用于將配置數(shù)據(jù)加載到器件10的CRAM單元20中。接著,器件10可以用于系統(tǒng)38的正常工作中。圖3是CRAM單元20的電路圖。如圖1所示,單元20可以包括一對交叉耦合反相器(例如鎖存器)和兩個存取晶體管。鎖存器可以包括反相器INVl和INV2。反相器INVl可以具有耦合到反相器INV2的輸入的輸出,而反相器INV2可以具有耦合到反相器INVl的輸入的輸出。按此方式交叉耦合的反相器INVl和INV2形成了單元20的存儲部分。單元20的存儲部分可以是被配置為在第一和第二數(shù)據(jù)存儲節(jié)點(即,第一數(shù)據(jù)存儲節(jié)點X和第二數(shù)據(jù)存儲節(jié)點Y)上存儲數(shù)據(jù)的雙穩(wěn)態(tài)元件。反相器INVl的輸出可以耦合到第二數(shù)據(jù)存儲節(jié)點Y,而反相器INV2的輸出可以耦合到第一數(shù)據(jù)存儲節(jié)點X (例如參看圖3)。諸如存取晶體管TAl和TA2的存取晶體管可以連接到存儲器單元20的存儲部分,以執(zhí)行讀和寫操作。如圖3所示,存取晶體管TAl可以耦合在諸如第一數(shù)據(jù)線72-1的第一數(shù)據(jù)線(例如,在其上傳遞真實數(shù)據(jù)信號D的真實數(shù)據(jù)線)和第一數(shù)據(jù)存儲節(jié)點X之間,而存取晶體管TA2可以耦合在諸如第二數(shù)據(jù)線72-2的第二數(shù)據(jù)線(例如,在其上傳遞互補數(shù)據(jù)信號nD的互補數(shù)據(jù)線)和第二數(shù)據(jù)存儲節(jié)點Y之間。晶體管TAl和TA2可以各自具有耦合到在其上傳遞地址信號ADD的地址線70 (有時稱為字線)的柵極。因此,有時晶體管TAl和TA2可以稱為地址晶體管。在正常工作過程中(例如,單元20維持配置數(shù)據(jù)的正常工作模式),使地址信號ADD有效(例如,將地址信號ADD拉低),以關(guān)閉存取晶體管TAl和TA2,使得單元20的存儲部分在數(shù)據(jù)存儲節(jié)點X和Y上維持已存儲的數(shù)據(jù)值。例如,維持“O”的單元20可以具有處于邏輯“I”的第一數(shù)據(jù)存儲節(jié)點X以及處于邏輯“O”的第二數(shù)據(jù)存儲節(jié)點Y。
在讀操作過程中,可以對數(shù)據(jù)線72-1和72-2進行預(yù)充電(例如,可以將數(shù)據(jù)信號D和nD預(yù)充電到高電壓)。接著,可以使地址信號ADD有效(例如,可以將地址信號ADD升高),以使存取晶體管TAl和TA2能夠從單元20中讀取數(shù)據(jù)。具有耦合到數(shù)據(jù)線72-1和72_2的感測電路(例如感測放大器74)可以用于確定單元20是否存儲“O”(例如,存儲節(jié)點Y是否存儲“O”)或者“I”(例如,存儲節(jié)點Y是否存儲“I”)。在寫操作過程中,可以將期望的數(shù)據(jù)值呈現(xiàn)在數(shù)據(jù)線72-1和72-2上,同時使地址信號ADD有效,以使存取晶體管TAl和TA2能夠?qū)⑵谕臄?shù)據(jù)值寫入單元20。例如,可以將線72-1上的數(shù)據(jù)D驅(qū)動到邏輯“I”而可以將線72-2上的信號nD驅(qū)動到邏輯“0”,以將“O”寫入單元20中。供應(yīng)給存儲器元件20的信號有時可以統(tǒng)稱為控制信號。在特定的背景中,這些信號中的一些可以稱為電源信號、清零信號、數(shù)據(jù)信號、地址信號等。這些不同的信號種類不互相排斥。每個存儲單元20可以在對應(yīng)的輸出路徑64上供應(yīng)對應(yīng)的輸出信號。輸出路徑64可以耦合到數(shù)據(jù)存儲節(jié)點Y。每個輸出信號是靜態(tài)輸出控制信號,其可以用于配置諸如晶體管62的對應(yīng)的晶體管(例如,輸出信號可以用于控制對應(yīng)的晶體管62的柵極)或者在關(guān)聯(lián)的可編程邏輯電路中的其他電路元件。晶體管62有時可以稱為傳輸晶體管或者傳輸門。晶體管62的狀態(tài)(關(guān)閉或者開啟)控制是否允許信號在其源漏端子之間傳輸。圖3中所示的存儲器單元20僅僅是說明性的。存儲器單元20的存儲部分可以具有多于兩個的交叉耦合反相器,或者可以利用任意合適數(shù)量的形成鎖存器的晶體管形成。如果期望,存儲器單元20可以利用單端讀/寫方案實現(xiàn),可以包括清零晶體管(例如,可以全局使能以清除器件10上的存儲器單元的內(nèi)容的晶體管)等。在器件10初始地加載有一組配置數(shù)據(jù)后(例如,利用與圖2相關(guān)描述的配置器件40),可以通過加載不同的一組配置數(shù)據(jù)來重配置器件10。有時會期望經(jīng)由有時稱為局部重配置的過程,重配置器件10上的僅一部分存儲器單元。由于存儲器單元通常地按陣列布置,因此可以通過將新數(shù)據(jù)值僅寫入到陣列中的選定的矩形區(qū)域來執(zhí)行局部重配置。圖4是集成電路10的圖示,該集成電路10包括諸如存儲器陣列99的存儲器單元20陣列。一般情況下,存儲器陣列99中可以有數(shù)百或者數(shù)千行和列。存儲器陣列99可以是器件10上的數(shù)個存儲器陣列中的一個,可以是更大的陣列中的一部分的子陣列,或者可以是任意其他合適的一組存儲器單元20的一部分。如圖4所示,器件10可以包括耦合到存儲器陣列99的局部重配置電路100。局部重配置電路100可以用于重配置存儲器陣列99中的選定的部分,而使陣列99中除選定的部分外的部分處于其原來的配置狀態(tài)。局部重配置電路(PR)電路100可以包括局部重配置主電路102、局部重配置控制電路104、地址寄存器106、第一數(shù)據(jù)寄存器(本文有時稱為數(shù)據(jù)寄存器A (DRA))、第二數(shù)據(jù)寄存器(本文有時稱為數(shù)據(jù)寄存器B (DRB))和第三數(shù)據(jù)寄存器(本文有時稱為先行(look-ahead)數(shù)據(jù)寄存器(DRLA))。在本發(fā)明另一個合適的實施例中,PR主電路102可以在器件10外部并且可以用作單獨的部件,用于在局部重配置操作期間與控制電路104接口連接。陣列99內(nèi)的一行存儲器單元中的每個存儲器單元20可以耦合到關(guān)聯(lián)的地址線70,經(jīng)由該關(guān)聯(lián)的地址線70提供對應(yīng)的地址信號ADD。例如,第一行存儲器單元中的每個存儲器單元20可以耦合到在其上供應(yīng)地址信號ADDl的第一地址線;第二行存儲器單元中的每個存儲器單元20可以耦合到在其上供應(yīng)地址信號ADD2的第二地址線;…,和第η行存儲器單元中的每個存儲器單元20可以耦合到在其上供應(yīng)地址信號ADDn的第η地址線。耦合到公共地址線的存儲器單元20 (例如,來自陣列99內(nèi)的同一行的存儲器單元)可以統(tǒng)稱為“幀”(frame)、存儲器的幀或者存儲器幀。每個不同的地址線70可以耦合到地址寄存器106 (如路徑70'所示)。可以配置地址寄存器106以供應(yīng)期望的地址信號(即,地址信號ADDl-ADDn)給陣列99中相應(yīng)的存儲幀。地址寄存器106可以在任意時間點僅僅在地址線中選定的一個上供應(yīng)單個有效的地址信號(例如,地址寄存器106被配置為在某個時間選擇一個巾貞)。例如,地址寄存器106可以是由一系列觸發(fā)器形成的移位寄存器,每個觸發(fā)器用于在其輸出提供對應(yīng)的地址信號。該一系列觸發(fā)器中僅單個給定的觸發(fā)器存儲邏輯“1”,而除給定的觸發(fā)器外的觸發(fā)器存儲邏輯零。如果期望,邏輯“ I”可以被移位到該一系列觸發(fā)器中的任意其他觸發(fā)器,只要僅有一個觸發(fā)器存儲邏輯“I”(即有效的地址信號)。陣列99內(nèi)的一列存儲器單元中的每個存儲器單元20可以耦合到一對關(guān)聯(lián)的數(shù)據(jù)線72 (例如數(shù)據(jù)線72-1和72-2)。數(shù)據(jù)線72有時可以稱為位線。例如,第一列存儲器單元中的每個存儲器單元20可以耦合到第一對數(shù)據(jù)線;第二列存儲器單元中的每個存儲器單元20可以耦合到第二對數(shù)據(jù)線;....,而第m列存儲器單元中的每個存儲器單元20可以耦合到第m對數(shù)據(jù)線。寄存器DRB可以經(jīng)由寫驅(qū)動器電路耦合到相應(yīng)的一列存儲器單元(如路徑126所示)??梢耘渲眉拇嫫鱀RB以存儲要被利用寫驅(qū)動器電路寫入存儲器陣列99中的選定的幀的數(shù)據(jù)值。例如,寄存器DRB可以包括第一存儲元件、第二存儲元件、第三存儲元件等,其中第一存儲元件將第一數(shù)據(jù)值通過第一寫驅(qū)動器供應(yīng)給第一列存儲器單元中的選定的存儲器單元,第二存儲元件將第二數(shù)據(jù)值通過第二寫驅(qū)動器供應(yīng)給第二列存儲器單元中的選定的存儲器單元,第三存儲元件將第三數(shù)據(jù)值供應(yīng)給第三列存儲器單元中的選定的存儲器單元等。按此方式布置,寄存器DRB可以用作存儲在局部重配置操作期間可以被加載進入選定的存儲器幀中的數(shù)據(jù)比 特。每一列存儲器單元可以通過關(guān)聯(lián)的讀感測電路耦合到寄存器DRLA中相應(yīng)的存儲器元件(如路徑124所示)??梢耘渲眉拇嫫鱀RLA以存儲利用讀感測電路(參看例如圖3的感測放大器74)從存儲器陣列99中的選定的幀中讀出的數(shù)據(jù)值。例如,寄存器DRLA可以包括第一存儲元件、第二存儲元件、第三存儲元件等,其中第一存儲元件可操作用于經(jīng)由第一感測放大器74接收來自第一列存儲器單元中的選定的存儲器單元的第一讀取值,第二存儲元件可操作用于經(jīng)由第二感測放大器74接收來自第二列存儲器單元中的選定的存儲器單元的第二讀取值,第三存儲元件可操作用于經(jīng)由第三感測放大器74接收來自第三列存儲器單元中的選定的存儲器單元的第三讀取值,以此類推。按此方式布置,寄存器DRLA可以用作存儲在局部重配置操作期間從選定的存儲幀中讀出的數(shù)據(jù)比特。術(shù)語“行”和“列”僅代表引用存儲器陣列99中具體的多組單元20的一種方式,并且有時可以交換使用。如果期望,可以在存儲器陣列99中使用其他圖案的線。例如,可以使用不同數(shù)量的電源信號、數(shù)據(jù)信號和地址信號。寄存器DRA可以耦合在寄存器DRLA和寄存器DRB之間。在局部重配置期間的一個合適的步驟中,地址寄存器106可以用于選擇要讀出的存儲器的幀。選定的幀的讀數(shù)據(jù)值可以被存儲于寄存器DRLA中。在另一個合適的步驟中,可以將寄存器DRLA的內(nèi)容轉(zhuǎn)移到寄存器DRA (例如,可以將存儲于寄存器DRLA中的數(shù)據(jù)比特并行地移位入寄存器DRA中)。在另一個合適的步驟中,可以基于由PR主電路192提供的新數(shù)據(jù)值修改寄存器DRA的內(nèi)容。在另一個合適的步驟中,可以將寄存器DRA的已修改內(nèi)容轉(zhuǎn)移到寄存器DRB (例如,可以將存儲于寄存器DRA中的數(shù)據(jù)比特并行地移位入寄存器DRB中)。接著,可以利用關(guān)聯(lián)的寫驅(qū)動器將已移位入寄存器DRB中的已修改的數(shù)據(jù)值寫入選定的幀。一般地,存儲器陣列99內(nèi)的僅一部分幀按此方式重配置(例如,當(dāng)前用戶邏輯的僅一個或更多部分被重配置,而不影響其他不需要改變的邏輯部分)。如果期望,可以利用此方法重配置整個存儲器陣列99。地址寄存器106、寄存器DRA、寄存器DRB和寄存器DRLA的操作可以利用諸如時鐘信號Clk和控制信號Vctrl的信號控制,這些信號由PR控制電路104通過路徑122提供。圖4中利用三個數(shù)據(jù)寄存器DRA、DRB和DRLA的示例僅僅是說明性的,并且不用作限定本發(fā)明的范圍。如果期望,局部重配置電路100可以包括少于三個數(shù)據(jù)寄存器,多于三個數(shù)據(jù)寄存器,并且可以包括地址解碼器而不是移位寄存器。主電路102可 以被配置為通過路徑114提供局部重配置比特流Bpr給控制電路104??梢酝ㄟ^輸入輸出引腳14從片外源(例如,從圖2的配置器件40)提供比特流Bpr給主電路102。比特流Bpr可以包括一系列指令,每條指令包括在局部重配置操作期間用于引導(dǎo)控制電路104操作的有用信息。在發(fā)送流Bpr之前,電路102可以通過路徑110與電路104交換握手信號VHAmsHAKE。此握手過程用作將電路102和104初始化到期望的開始狀態(tài),并且例如,可以配置地址寄存器以使與陣列99中的第一幀關(guān)聯(lián)的地址信號(例如,可以在握手過程完成后即選擇第一幀)??刂齐娐?04可以包括錯誤檢驗電路108,其配置為接收流Bpr并且檢驗流Bpr中的指令是否包含任何錯誤。圖5是由一系列指令形成的說明性比特流Bpr的圖示。如圖5所示,每個PR指令可以至少包括具體說明將要執(zhí)行的操作類型的作業(yè)碼(或者操作碼)、與該特定類型操作關(guān)聯(lián)的數(shù)據(jù)比特以及循環(huán)冗余檢驗(CRC)位。不同指令可以包括不同比特長度的數(shù)據(jù)??梢詸z測出的錯誤的數(shù)量由錯誤檢驗電路108所用的錯誤檢驗機制的類型確定。例如,可以利用等式(I)中所示的16位多項式實現(xiàn)錯誤檢驗電路108。G(x) =x16+x15+x2+l(I)可以通過給定指令中的原始數(shù)據(jù)(例如,操作碼和對應(yīng)的數(shù)據(jù)比特)除以多項式G (X),來計算給定指令中的CRC位。在等式(I)的示例中,多項式G (X)可以具有等于11000000000000101的數(shù)字表示。CRC位可以等于得到的多項式除法的余數(shù)。一般情況下,原始數(shù)據(jù)的長度大于CRC多項式的長度。在接收來自主電路102的指令后,控制電路104可以重新計算CRC位(有時稱為檢驗值),以確定原始數(shù)據(jù)是否無意地被損壞。錯誤檢驗電路108可以產(chǎn)生對應(yīng)的錯誤信號Veeeoe并通過路徑112回到主電路192。如果重新計算的檢驗值匹配給定指令中附著的CRC位,則錯誤檢驗電路108可以保持VE_K無效。如果重新計算的檢驗值不匹配給定指令中附著的CRC位,則檢測出錯誤,并且錯誤檢驗電路108可以使信號Vekkot有效。電路108可以對每個指令基執(zhí)行錯誤檢驗。為了防止不期望地損壞存儲器陣列99,可以不執(zhí)行示出錯誤的指令(例如,將不履行使VE_K有效的指令)。主電路102可以通過監(jiān)測使信號νΕ.κ有效的頻率來追蹤成功執(zhí)行的指令的數(shù)量。當(dāng)檢測出錯誤時,主電路102可以重新發(fā)送整個比特流Bpr,或者可以僅重新發(fā)送失敗的指令,而不必重新發(fā)送整個比特列Bpr。如果期望,電路108還可以被配置為校正錯誤指令。按此方式操作,可以允許PR控制電路104執(zhí)行校正后的PR指令,而不必重新發(fā)送整個比特流Bpr。當(dāng)期望將新數(shù)據(jù)加載進入選定的幀時,錯誤檢驗電路108可以提供從當(dāng)前指令的“數(shù)據(jù)”部分中提取的局部重配置數(shù)據(jù)Dpr??刂齐娐?04可以包括諸如布爾(Boolean)邏輯電路116的可配置邏輯電路。數(shù)據(jù)Dold (例如,存儲于寄存器DRA中的舊數(shù)據(jù)比特)和Dpr按串聯(lián)形式分別饋送到邏輯電路116的第一和第二輸入。可配置邏輯電路116可以被配置為提供期望的布爾邏輯功能,例如邏輯與(AND)功能,邏輯或(OR)功能,邏輯異或(XOR)功能,邏輯與非(NAND)功能,邏輯或非(NOR)功能,邏輯異或非(XNOR)功能,和/或其他合適邏輯功能。例如,考慮第一情形,在其中邏輯電路116被配置為兩輸入邏輯與門。邏輯與門116可以在其第一輸入上接收通過路徑120從寄存器DRA輸出移位出的數(shù)據(jù)比特Dold,可以在其第二輸入上接收從錯誤檢驗電路108移位出的數(shù)據(jù)比特Dpr,并且可以在其輸出上產(chǎn)生數(shù)據(jù)比特Dnew,其通過路徑118移位回到寄存器DRA的輸入,其中數(shù)據(jù)比特Dnew等于當(dāng)前已接收到的Dold和Dpr的邏輯與的積。如另一個示例,考慮第二情形,在其中邏輯電路116被配置為兩輸入邏輯異或門。邏輯異或門116可以在其第一輸入上接收通過路徑120從寄存器DRA輸出移位出的數(shù)據(jù)比特Dold,可以在其第二輸入上接收從錯誤檢驗電路108移位出的數(shù)據(jù)比特Dpr,并且可以在其輸出上產(chǎn)生數(shù)據(jù)比特Dnew,其通過路徑118移位回到寄存器DRA的輸入,其中數(shù)據(jù)比特Dnew等于當(dāng)前已接收到的Dold和Dpr的邏輯異或的積。因此,可以基于其舊數(shù)據(jù)Dold的內(nèi)容、從主電路102提供的數(shù)據(jù)Dpr的內(nèi)容和邏輯電路116當(dāng)前實現(xiàn)的布爾邏輯功能,按循序移位的方式修改寄存器DRA。因此,修改后的寄存器DRA的內(nèi)容可以代表將被加載入存儲器陣列99中對應(yīng)的幀的重配置比特。圖6是可以分配給每個PR指令操作碼部分的說明性指令類型的表格。如圖6所示,不同種類的指令可以至少包括:SKIP_LEFT、SKIP_RIGHT、CLEAR_AR、SELECT_FRAMEO、LOAD_FIRST_PR_FRAME、WRITE_LAST_PR_FRAME、AND、0R、X0R、SCRUB 和 PR_D0NE。SKIP_LEFT指令可以使電路104產(chǎn)生控制信號(例如,控制信號Clk和/或Vctrl),這些信號通過左移地址指針,引導(dǎo)地址寄存器106跳過當(dāng)前幀。與SKIP_LEFT指令關(guān)聯(lián)的數(shù)據(jù)比特可以指示要被移位的幀的數(shù)量(例如,地址指針可以左移一個量,這個量與關(guān)聯(lián)的數(shù)據(jù)比特值成比例)。SKIP_RIGHT指令可以使電路104產(chǎn)生控制信號,這些信號通過右移地址指針,引導(dǎo)地址寄存器106跳過當(dāng)前幀。與SKIP_RIGHT指令關(guān)聯(lián)的數(shù)據(jù)比特可以指示要被移位的幀的數(shù)量(例如,地址指針可以右移一個量,這個量與關(guān)聯(lián)的數(shù)據(jù)比特值成比例)。CLEAR_AR指令可以使電路104產(chǎn)生控制信號,該信號導(dǎo)致清除地址寄存器106的內(nèi)容,使得沒有幀被選擇。例如,可以復(fù)位寄存器106中的每個觸發(fā)器,以存儲默認值零。SELECT_FRAME0指令可以使電路104產(chǎn)生控制信號,該信號引導(dǎo)地址寄存器106選擇存儲器陣列99的第一幀。例如,可以將邏輯“I”移位進入地址寄存器106中的首個(第一)觸發(fā)器,其供應(yīng)第一地址信號給陣列99中的第一行存儲器單元20。SELECT_FRAME0指令通常跟在CLEAR_AR指令后執(zhí)行。
LOAD_FIRST_PR_FRAME指令可以引導(dǎo)電路104產(chǎn)生控制信號,該信號將寄存器DRLA加載來自存儲器陣列99中局部重配置區(qū)域的第一幀的讀數(shù)據(jù)。局部重配置區(qū)域可以指代存儲器陣列99內(nèi)的在局部重配置操作期間應(yīng)該被重配置的一系列連續(xù)幀(例如,參看圖4中的局部重配置區(qū)域101)。如圖4所示,PR區(qū)域101的第一幀不需要是與存儲器陣列99中的第一幀相同的幀。區(qū)域101可以包括單個框、兩個連續(xù)幀或者多于兩個的連續(xù)幀。在區(qū)域101僅包括單個幀的情形中,第一 PR幀等同于單個幀。如果期望,存儲器陣列99可以包括多個非重疊PR區(qū)域101,這些區(qū)域在局部重配置過程期間被修改(例如,可以利用局部重配置電路100對多組連續(xù)幀進行重配置)。WRITE_LAST_PR_FRAME指令可以引導(dǎo)電路104產(chǎn)生控制信號,這些信號將寄存器DRB的內(nèi)容加載進入PR區(qū)域101中的最后一個幀。在區(qū)域101僅包括單個幀的情形中,最后的PR幀等同于該單個幀。邏輯與指令可以將邏輯電路116配置為實現(xiàn)邏輯與功能(例如,產(chǎn)生于邏輯電路116輸出上的比特Dnew可以等于在其第一輸入上接收的比特Dold和在其第二輸入上接收的比特Dpr的邏輯與的積)。邏輯或指令可以將邏輯電路116配置為實現(xiàn)邏輯或功能(例如,產(chǎn)生于邏輯電路116輸出上的比特Dnew可以等于在其第一輸入上接收的比特Dold和在其第二輸入上接收的比特Dpr的邏輯或的積)。邏輯異或指令可以將邏輯電路116配置為實現(xiàn)邏輯異或功能(例如,產(chǎn)生于邏輯電路116輸出上的比特Dnew可以等于在其第一輸入上接收的比特Dold和在其第二輸入上接收的比特Dpr的邏輯異或的積)。SCRUB指令可以將比特Dnew簡單地設(shè)置為在錯誤檢驗電路108輸出上提供的比特Dpr (例如,根據(jù)用戶指定數(shù)據(jù)Dpr對Dnew進行刷新,而不管現(xiàn)有的數(shù)據(jù)Dold)。如果期望,控制邏輯電路116可以支持除圖6表格中所列舉類型外的布爾指令。可以將在邏輯電路116的第二輸入上接收的數(shù)據(jù)比特Dpr包括在具有指令類型202的每個指令的數(shù)據(jù)部分中(參看圖6)。 當(dāng)指令類型等于可用的邏輯操作202中的一種時,操作碼可以進一步包括PR幀類型。如圖7所示,不同類型的PR幀可以至少包括:SINGLEPR幀類型標示符、FIRST PR幀類型標示符、LAST PR巾貞類型標示符和RE⑶LAR PR巾貞類型標示符。SINGLE PR巾貞類型標示符指示PR區(qū)域僅包括單個巾貞,并且該單個巾貞是當(dāng)前選定的巾貞。FIRST PR巾貞類型標示符指示當(dāng)前選定的幀是包括至少兩個連續(xù)幀的PR區(qū)域中的第一幀。LAST PR幀類型標示符指示當(dāng)前選定的幀是具有至少兩個連續(xù)幀的PR區(qū)域中的最后一個幀。REGULAR PR幀類型標示符指示當(dāng)前選定的幀是具有至少三個連續(xù)幀的PR區(qū)域中的一個幀,但這個幀既不是第一幀,也不是最后一個中貞。PR_D0NE指令可以指示完成了存儲器陣列99的局部重配置。與圖6和7相關(guān)描述的不同指令類型和PR幀類型僅僅是說明性的,并且不用作限定本發(fā)明的范圍。如果期望,PR主電路102和控制電路104可以被配置為處理任意合適的指令類型和PR幀類型。圖8是用于操作局部重配置電路100的說明性步驟的流程圖。可以將陣列99置于空閑狀態(tài)300 (例如,利用陣列99控制的邏輯電路可以臨時地置于空閑模式中)。為了初始化局部重配置操作,主電路102可以通過經(jīng)由路徑110傳遞控制信號Vhandshake來與控制電路204執(zhí)行握手過程(步驟302)。一旦握手完成,PR主電路102可以開始通過路徑114發(fā)送指令比特流Bpr給PR控制電路104。在步驟304中,控制電路104可以檢查最近未讀的指令的操作碼。如果操作碼指示 SKIP (即,SKIP_LEFT 或者 SKIP_RIGHT)、CLEAR_AR 或者 SELECT_FRAMEO 指令類型,則可以配置地址寄存器106來選擇合適的幀(步驟306)。例如,地址寄存器306可以左移或者右移有效的地址信號期望的量,可以被復(fù)位以均存儲邏輯零,或者可以被配置為選擇陣列99的第一幀。如果操作碼指示LOAD_FIRST_PR_FRAME指令類型,則可以將選定的幀從陣列99讀入先行寄存器DRLA中(步驟310)。如果操作碼指示W(wǎng)RITE_LAST_PR_FRAME指令類型,則可以將寄存器DRB的內(nèi)容寫入存儲器陣列99中的選定的幀中(步驟320)。如果操作碼指示邏輯操作202中的一個并且具有SINGLE或者FIRST局部重配置幀類型,則可以根據(jù)指定的邏輯功能計算數(shù)據(jù)Dnew,并且可以利用關(guān)于圖4中所述的循環(huán)移位機制將該數(shù)據(jù)Dnew移位入寄存器DRA中(步驟312)。如果操作碼指示邏輯操作202中的一個并且具有RE⑶LAR或者LAST局部重配置幀類型,則可以將寄存器DRB的內(nèi)容寫入存儲器陣列99中的選定的幀中(步驟318)。步驟312可以緊接著步驟318。在步驟312完成之后,處理可以繼續(xù)到步驟314和316中的一個。如果操作碼指示RE⑶LAR或者FIRST幀類型,則可以將選定的幀從陣列99讀入先行寄存器DRLA中,并且可以將寄存器DRA的內(nèi)容并行地移位進入寄存器DRB中(步驟314)。如果操作碼指示SINGLE或者LAST幀類型,則可以將寄存器DRA的內(nèi)容并行地移位進入寄存器DRB中,而不必向寄存器DRLA加載讀數(shù)據(jù)(步驟316)。當(dāng)步驟306、310、314、316或者320中任意一個完成時,錯誤檢驗電路108可以用于執(zhí)行CRC錯誤檢驗(步驟308)。如果當(dāng)前指令不包含任何錯誤,則信號VE_K可以保持無效,并且處理可以循環(huán)回到步驟304,以評估比特流Bpr中隨后的指令(如路徑326所示)。如果當(dāng)前指令包含至少一個錯誤,則可以使信號Vekkqk有效,并且PR主電路102可以現(xiàn)在重新發(fā)送當(dāng)前指令(或者可選地在稍后時間),或者可以重新發(fā)送整個PR比特流Bpr(步驟324)。接著,處理可以循環(huán)回到步驟304如路徑326所示。圖9Α和9Β是時序圖,其示出了控制信號和關(guān)聯(lián)的數(shù)據(jù)流在局部重配置電路100的操作期間的行為。在時間tl之前,可以執(zhí)行CLEAR_AR指令(例如,參看圖9A)。在時間tl處,可以執(zhí)行SELECT_FIRST_FraME指令(例如,通過將邏輯“I”移位進入地址寄存器106中的首個觸發(fā)器,地址寄存器指針可以指向存儲器陣列99中的第一幀)。在時間t2處,可以執(zhí)行LOAD_FIRST_PR_FRAME指令。具體地,可以將第一幀的內(nèi)容讀入寄存器DRLA中。在時間t3處,可以使用具有第一幀類型的指令和關(guān)聯(lián)的邏輯操作<oper>計算Dnew。操作<oper>可以是布爾邏輯功能202中選定的任意一個(如圖6)。具體地,將寄存器DRLA的內(nèi)容并行地移位進入寄存器DRA中,接著利用關(guān)于圖4所述的循環(huán)移位機制對寄存器DRA的內(nèi)容進行修改并且將其重新寫入寄存器DRA中。按此方式將已修改的數(shù)據(jù)比特填入寄存器DRA,這有時可以稱為執(zhí)行讀改寫(RMW)。在時間t4處,地址寄存器指針右移一位,以指向陣列99的第二幀,并且將第二幀加載進入寄存器DRLA中。在該指令結(jié)束時,可以將寄存器DRA的內(nèi)容移位進入寄存器DRB中。在時間t5處,可以使用具有RE⑶LAR巾貞類型的指令和關(guān)聯(lián)的<oper>計算Dnew。在該時間處,可以通過暫時左移地址指針一位,將寄存器DRB的內(nèi)容寫入“前一個”幀(例如,第一幀)。接著,將寄存器DRLA的內(nèi)容并行地移位進入寄存器DRA,并且基于選定的〈oper〉利用讀改寫重新填入寄存器DRA。接著,可以通過將指針右移兩位,寄存器DRLA繼續(xù)讀“下一個”幀(即,存儲器陣列99中的第三幀)。
接著,可以評估并且執(zhí)行具有RE⑶LAR幀類型的一系列指令。在具有RE⑶LAR幀類型的該一系列指令之后可以是具有LAST幀類型的指令(參看,圖9B中的時間t6)。在最后一個RE⑶LAR指令結(jié)束時,可以將寄存器DRA中的已修改內(nèi)容(當(dāng)前存儲了用于第n_l幀的重配置比特)并行地移位進入寄存器DRB中。在時間t6處,可以將當(dāng)前存儲重配置比特的DRB的已修改內(nèi)容寫入第η-1幀,同時寄存器DRLA將從第η幀讀取的內(nèi)容加載到要利用與LAST指令關(guān)聯(lián)的〈oper〉進行修改的寄存器DRA中。在LAST指令結(jié)束時,可以將寄存器DRA中的已修改內(nèi)容(當(dāng)前存儲用于第η幀的重配置比特)并行地移位進入寄存器DRB中。在時間t7處,可以執(zhí)行WRITE_LAST_PR_FRAME指令。具體地,地址指針可以指向第η幀(S卩,PR區(qū)域101中的最后一幀),并且可以將寄存器DRB的內(nèi)容加載到第η幀。接著,在WRITE_LAST_PR_FRAME指令之后可以是SKIP指令,以重配置另一個目標PR區(qū)域,或者可以是PR_D0NE,從而表示局部重配置過程的完成。如果期望,主電路102可以在器件10的操作期間的任意時間點處初始化局部重配置,以重配置陣列99的任意期望的部分。圖9A和9B (在其中多于兩個連續(xù)幀被重配置)中所示的指令序列僅僅是說明性的。考慮PR區(qū)域101僅包括兩個幀的另一個示例。對于該情形,合適的指令比特流可以包括按下列順序排列的指令:LOAD_FIRST_PR_FRAME 、FIRST_〈oper>、LAST_〈oper>、WRITE—LAST_PR_FRAME和PR_D0NE (或者SKIP,如果有另一個非相鄰PR區(qū)域要被重配置的話)??紤]PR區(qū)域101僅包括單個幀的另一個示例。對于該情形,合適的指令比特流可以包括按下列順序排列的指令:LOAD_FIRST_PR_FRAME、SINGLE_〈oper>、WRITE_LAST_PR_FRAME 和 PR_DONE(或者SKIP)。一般情況下,器件10中任意數(shù)量的存儲器陣列99可以利用本文所述的說明性方法進行局部重配置。在本發(fā)明的一些實施例中,可以對比特流Bpr進行壓縮和/或加密(例如參看圖10)??梢岳脡嚎s算法對指令進行壓縮,例如LZ77算法、霍夫曼編碼(Huffmanencoding)、基于算術(shù)編碼的算法或者其他已知的數(shù)據(jù)壓縮算法??梢岳眉用芩惴▽χ噶钸M行加密,例如高級加密標準(AES)128算法或者AES 256算法(作為示例)。在一個合適的布置中,可以對比特流Bpr進行壓縮和加密。在另一個合適的布置中,可以僅對比特流Bpr進行壓縮。在另一個合適的布置中,可以僅對比特流Bpr進行加密。如圖11所示,控制電路104可以包括(除了錯誤檢驗電路108之外)的解密電路(例如解密電路400)和解壓縮電路(例如解壓縮電路402)。解密電路400可以用于對已加密的Bpr執(zhí)行解密。解壓縮電路402可以用于對已壓縮的Bpr執(zhí)行解壓縮。在指令流Bpr同時被壓縮和加密的情形中,可以將流Bpr傳輸通過電路400和402兩者(例如,電路400和402可以均被激活)。在指令流Bpr僅被壓縮但沒被加密的情形中,流Bpr可以僅傳輸通過電路402而繞過電路400(例如,電路402可以轉(zhuǎn)換到使用狀態(tài)而電路400可以轉(zhuǎn)換離開使用狀態(tài))。在指令流Bpr僅被加密但沒有被壓縮的情形中,流Bpr可以僅傳輸通過電路400而繞過電路402 (例如,電路400可以轉(zhuǎn)換到使用狀態(tài)而電路402可以轉(zhuǎn)換離開使用狀態(tài))。附加實施例:附加實施例1.一種集成電路,包括:存儲器元件陣列;和局部重配置電路,其耦合到所述存儲器元件陣列,其中所述局部重配置電路包括:控制電路;和數(shù)據(jù)寄存器電路,其可操作用于存儲從所述存儲器元件陣列中的選定行的存儲器元件中讀取的數(shù)據(jù),并且修改讀取的數(shù)據(jù)以產(chǎn)生已修改的數(shù)據(jù),其中所述控制電路可操作用于將來自所述數(shù)據(jù)寄存器電路的所述已修改的數(shù)據(jù)加載到所述存儲器元件陣列中的所述選定行的存儲器元件中。附加實施例2.根據(jù)附加實施例1中所述的集成電路,其中所述局部重配置電路進一步包括:地址寄存器,其由所述控制電路控制,其中所述地址寄存器可操作用于產(chǎn)生對應(yīng)于所述選定行的存儲器元件的有效的地址信號。附加實施例3.根據(jù)附加實施例1中所述的集成電路,其中所述局部重配置電路進一步包括:主電路,其可操作用于提供多個局部重配置指令給所述控制電路。附加實施例4.根據(jù)附加實施例1中所述的集成電路,其中所述控制電路進一步可操作用于接收多個局部重配置指令,并且其中所述控制電路包括錯誤檢驗電路,所述錯誤檢驗電路可操作用于確定所述多個局部重配置指令中的每個指令是否包括錯誤并且校正所述局部重配置指令中的所述錯誤。附加實施例5.根據(jù)附加實施例1中所述的集成電路,其中所述控制電路進一步可操作用于接收多個局部重配置指令,并且其中所述控制電路包括可配置邏輯電路,所述可配置邏輯電路可操作用于基于所述多個局部重配置指令中的給定的局部重配置指令產(chǎn)生所述已修改的數(shù)據(jù)。附加實施例6.根據(jù)附加實施例5中所述的集成電路,其中所述可配置邏輯電路包括:第一輸入,其可操作用于接收來自所述數(shù)據(jù)寄存器電路的輸出的所述讀取的數(shù)據(jù);第二輸入,其可操作用于接收從所述給定的局部重配置指令中提取的新數(shù)據(jù);和輸出,在所述輸出上將所述已修改的數(shù)據(jù)提供給所述數(shù)據(jù)寄存器電路的輸入。附加實施例7.根據(jù)附加實施例5中所述的集成電路,其中所述數(shù)據(jù)寄存器電路包括:第一數(shù)據(jù)寄存器,其可操作用于存儲所述讀取的數(shù)據(jù);第二數(shù)據(jù)寄存器,其可操作用于接收來自所述第一數(shù)據(jù)寄存器的所述讀取的數(shù)據(jù),其中所述控制電路被配置為修改所述讀取的數(shù)據(jù),以在所述第二數(shù)據(jù)寄存器中產(chǎn)生所述已修改的數(shù)據(jù);和第三數(shù)據(jù)寄存器,其可操作用于接收來自所述第二數(shù)據(jù)寄存器的所述已修改的數(shù)據(jù),其中所述控制電路被配置為將來自所述第三數(shù)據(jù)寄存器的所述已修改的數(shù)據(jù)加載到所述存儲器元件陣列中的所述選定行的存儲器元件中,并且其中所述可配置邏輯電路進一步可操作用于實現(xiàn)選自如下群組中的邏輯功能:邏輯與功能,邏輯或功能,邏輯異或功能,邏輯與非功能,邏輯或非功能和邏輯異或非功能。附加實施例8.根據(jù)附加實施例1中所述的集成電路,其中所述控制電路進一步可操作用于接收至少一個已壓縮的局部重配置指令,并且其中所述控制電路包括解壓縮電路,所述解壓縮電路可操作用于解壓縮所述至少一個已壓縮的局部重配置指令。附加實施例9.根據(jù)附加實施例1中所述的集成電路,其中所述控制電路進一步可操作用于接收至少一個已加密的局部重配置指令,并且其中所述控制電路包括解密電路,所述解密電路可操作用于解密所述至少一個已加密的局部重配置指令。附加實施例10.—種操作局部重配置電路的方法,所述局部重配置電路耦合到存儲器元件陣列,其中所述局部重配置電路和所述存儲器元件陣列形成在集成電路上,并且其中所述局部重配置電路包括控制電路、地址寄存器和數(shù)據(jù)寄存器電路,所述方法包括:用所述控制電路接收多個局部重配置指令,其中所述多個局部重配置指令中的給定的局部重配置指令包括局部重配置存儲器數(shù)據(jù);從所述存儲器元件陣列中的選定行的存儲器元件中讀取數(shù)據(jù),并且將讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中;至少部分基于所述讀取的數(shù)據(jù)和所述局部重配置存儲器數(shù)據(jù),對存儲于所述數(shù)據(jù)寄存器電路中的所述讀取的數(shù)據(jù)進行修改;和將已修改的數(shù)據(jù)加載到所述選定行的存儲器元件中。附加實施例11.根據(jù)附加實施例10中所述的方法,其中將所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中包括將所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中的第一數(shù)據(jù)寄存器,所述方法進一步包括:將來自所述第一數(shù)據(jù)寄存器的所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中的第二數(shù)據(jù)寄存器。附加實施例12.根據(jù)附加實施例11中所述的方法,其中所述控制電路包括可配置邏輯電路,并且其中對存儲于所述數(shù)據(jù)寄存器電路中的所述讀取的數(shù)據(jù)進行修改包括:用所述可配置邏輯電路產(chǎn)生所述已修改的數(shù)據(jù);和將由所述邏輯電路產(chǎn)生的所述已修改的數(shù)據(jù)串行移位到所述第二數(shù)據(jù)寄存器中。附加實施例13.根據(jù)附加實施例12中所述的方法,其中所述可配置邏輯電路具有第一輸入和第二輸入,所述方法進一步包括:用所述可配置邏輯電路的所述第一輸入,串行接收來自所述第二數(shù)據(jù)寄存器的輸出的所述讀取的數(shù)據(jù);和用所述可配置邏輯電路的所述第二輸入,串行接收所述局部重配置存儲器數(shù)據(jù)。附加實施例14.根據(jù)附加實施例13中所述的方法,其中產(chǎn)生所述已修改的數(shù)據(jù)包括:利用所述可配置邏輯電路實現(xiàn)選自以下群組中的邏輯功能:邏輯與功能,邏輯或功能,邏輯異或功能,邏輯與非功能,邏輯或非功能和邏輯異或非功能;和通過對接收到的讀取的數(shù)據(jù)和接收到的局部重配置存儲器數(shù)據(jù)執(zhí)行選定的邏輯功能,以此來產(chǎn)生所述已修改的數(shù)據(jù)。附加實施例15.根據(jù)附加實施例10中所述的方法,其中所述局部重配置電路進一步包括主電路,并且其中接收所述多個局部重配置指令包括:用所述控制電路接收來自所述主電路的所述多個局部重配置指令。附加實施例16.根據(jù)附加實施例10中所述的方法,其中所述控制電路包括具有輸出的錯誤檢驗電路,所述方法進一步包括:用所述錯誤檢驗電路,確定所述給定的局部重配置指令是否包括錯誤;和響應(yīng)于確定所述給定的局部重配置指令是錯誤的,在所述錯誤檢驗電路的所述輸出上使錯誤信號有效。附加實施例17.根據(jù)附加實施例10中所述的方法,其中所述多個局部重配置指令包括一系列已加密的指令,并且其中所述控制電路包括解密電路,所述方法進一步包括:用所述解密電路解密所述一系列已加密的指令。附加實施例18.根據(jù)附加實施例10中所述的方法,其中所述多個局部重配置指令包括一系列已壓縮的指令,并且其中所述控制電路包括解壓縮電路,所述方法進一步包括:用所述解壓縮電路解壓縮所述一系列已壓縮的指令。附加實施例19.一種操作局部重配置電路的方法,所述局部重配置電路耦合到存儲器元件陣列并且包括控制電路,其中所述局部重配置電路和所述存儲器元件陣列形成在集成電路上,所述方法包括:用所述控制電路接收一系列局部重配置指令;用所述控制電路中的錯誤檢驗電路,確定所述一系列局部重配置指令中的給定的局部重配置指令是否包含錯誤;和響應(yīng)于確定所述給定的局部重配置指令是錯誤的,阻止所述給定的局部重配置指令在所述存儲器元件陣列上執(zhí)行。附加實施例20.根據(jù)附加實施例19中所述的方法,其中所述局部重配置電路進一步包括主電路,所述方法進一步包括:用所述主電路提供所述一系列局部重配置指令給所述控制電路;和響應(yīng)于確定所述給定的局部重配置指令是錯誤的,利用所述控制電路來提供有效的錯誤信號給所述主電路。附加實施例21.根據(jù)附加實施例20中所述的方法,其中所述一系列局部重配置指令包括已加密且已壓縮的局部重配置指令,并且其中所述控制電路包括解密電路和解壓縮電路,所述方法進一步包括:用所述解密電路解密所述局部重配置指令;和用所述解壓縮電路解壓縮所述局部重配置指令。上述僅僅是說明本發(fā)明的原理,并且在不背離本發(fā)明的范圍和精神的情況下,本領(lǐng)域技術(shù)人員可以進行各種修改。上述實施例可以單獨實施,或者以任意組合方式實施。
權(quán)利要求
1.一種集成電路,包括: 存儲器元件陣列;和 局部重配置電路,其耦合到所述存儲器元件陣列,其中所述局部重配置電路包括: 控制電路;和 數(shù)據(jù)寄存器電路,其可操作用于存儲從所述存儲器元件陣列中的選定行的存儲器元件中讀取的數(shù)據(jù),并且修改讀取的數(shù)據(jù)以產(chǎn)生已修改的數(shù)據(jù),其中所述控制電路可操作用于將來自所述數(shù)據(jù)寄存器電路的所述已修改的數(shù)據(jù)加載到所述存儲器元件陣列中的所述選定行的存儲器元件中。
2.根據(jù)權(quán)利要求1中所述的集成電路,其中所述局部重配置電路進一步包括: 地址寄存器,其由所述控制電路控制,其中所述地址寄存器可操作用于產(chǎn)生對應(yīng)于所述選定行的存儲器元件的有效的地址信號。
3.根據(jù)權(quán)利要求1中所述的集成電路,其中所述局部重配置電路進一步包括: 主電路,其可操作用于提供多個局部重配置指令給所述控制電路。
4.根據(jù)權(quán)利要求1中所述的集成電路,其中所述控制電路進一步可操作用于接收多個局部重配置指令,并且其中所述控制電路包括錯誤檢驗電路,所述錯誤檢驗電路可操作用于確定所述多個局部重配置指令中的每個指令是否包括錯誤并且校正所述局部重配置指令中的所述錯誤。
5.根據(jù)權(quán)利要求1中所述的集成電路,其中所述控制電路進一步可操作用于接收多個局部重配置指令,并且其中所述控制電路包括可配置邏輯電路,所述可配置邏輯電路可操作用于基于所述多個局部重配置指令中的給定的局部重配置指令產(chǎn)生所述已修改的數(shù)據(jù)。
6.根據(jù)權(quán)利要求5中所述的集成電路,其中所述可配置邏輯電路包括:第一輸入,其可操作用于接收來自所述數(shù)據(jù)寄存器電路的輸出的所述讀取的數(shù)據(jù);第二輸入,其可操作用于接收從所述給定的局部重配置指令中提取的新數(shù)據(jù);和輸出,在所述輸出上將所述已修改的數(shù)據(jù)提供給所述數(shù)據(jù)寄存器電路的輸入。
7.根據(jù)權(quán)利要求5中所述的集成電路,其中所述數(shù)據(jù)寄存器電路包括: 第一數(shù)據(jù)寄存器,其可操作用于存儲所述讀取的數(shù)據(jù); 第二數(shù)據(jù)寄存器,其可操作用于接收來自所述第一數(shù)據(jù)寄存器的所述讀取的數(shù)據(jù),其中所述控制電路被配置為修改所述讀取的數(shù)據(jù),以在所述第二數(shù)據(jù)寄存器中產(chǎn)生所述已修改的數(shù)據(jù);和 第三數(shù)據(jù)寄存器,其可操作用于接收來自所述第二數(shù)據(jù)寄存器的所述已修改的數(shù)據(jù),其中所述控制電路被配置為將來自所述第三數(shù)據(jù)寄存器的所述已修改的數(shù)據(jù)加載到所述存儲器元件陣列中的所述選定行的存儲器元件中,并且其中所述可配置邏輯電路進一步可操作用于實現(xiàn)選自如下群組中的邏輯功能:邏輯與功能,邏輯或功能,邏輯異或功能,邏輯與非功能,邏輯或非功能和邏輯異或非功能。
8.根據(jù)權(quán)利要求1中所述的集成電路,其中所述控制電路進一步可操作用于接收至少一個已壓縮的局部重配置指令,并且其中所述控制電路包括解壓縮電路,所述解壓縮電路可操作用于解壓縮所述至少一個已壓縮的局部重配置指令。
9.根據(jù)權(quán)利要求1中所述的集成電路,其中所述控制電路進一步可操作用于接收至少一個已加密的局部重配置指令,并且其中所述控制電路包括解密電路,所述解密電路可操作用于解密所述至少一個已加密的局部重配置指令。
10.一種操作局部重配置電路的方法,所述局部重配置電路耦合到存儲器元件陣列,其中所述局部重配置電路和所述存儲器元件陣列形成在集成電路上,并且其中所述局部重配置電路包括控制電路、地址寄存器和數(shù)據(jù)寄存器電路,所述方法包括: 用所述控制電路接收多個局部重配置指令,其中所述多個局部重配置指令中的給定的局部重配置指令包括局部重配置存儲器數(shù)據(jù); 從所述存儲器元件陣列中的選定行的存儲器元件中讀取數(shù)據(jù),并且將讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中; 至少部分基于所述讀取的數(shù)據(jù)和所述局部重配置存儲器數(shù)據(jù),對存儲于所述數(shù)據(jù)寄存器電路中的所述讀取的數(shù)據(jù)進行修改;和 將已修改的數(shù)據(jù)加載到所述選定行的存儲器元件中。
11.根據(jù)權(quán)利要求10中所述的方法,其中將所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中包括將所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中的第一數(shù)據(jù)寄存器,所述方法進一步包括: 將來自所述第一數(shù)據(jù)寄存器的所述讀取的數(shù)據(jù)加載到所述數(shù)據(jù)寄存器電路中的第二數(shù)據(jù)寄存器。
12.根據(jù)權(quán)利要求11中所述的方法,其中所述控制電路包括可配置邏輯電路,并且其中對存儲于所述數(shù)據(jù)寄存器電路中的所述讀取的數(shù)據(jù)進行修改包括: 用所述可配置邏輯電路產(chǎn)生所述已修改的數(shù)據(jù);和 將由所述邏輯電路產(chǎn)生的 所述已修改的數(shù)據(jù)串行移位到所述第二數(shù)據(jù)寄存器中。
13.根據(jù)權(quán)利要求12中所述的方法,其中所述可配置邏輯電路具有第一輸入和第二輸入,所述方法進一步包括: 用所述可配置邏輯電路的所述第一輸入,串行接收來自所述第二數(shù)據(jù)寄存器的輸出的所述讀取的數(shù)據(jù);和 用所述可配置邏輯電路的所述第二輸入,串行接收所述局部重配置存儲器數(shù)據(jù)。
14.根據(jù)權(quán)利要求13中所述的方法,其中產(chǎn)生所述已修改的數(shù)據(jù)包括: 利用所述可配置邏輯電路實現(xiàn)選自以下群組中的邏輯功能:邏輯與功能,邏輯或功能,邏輯異或功能,邏輯與非功能,邏輯或非功能和邏輯異或非功能;和 通過對接收到的讀取的數(shù)據(jù)和接收到的局部重配置存儲器數(shù)據(jù)執(zhí)行選定的邏輯功能,以此來產(chǎn)生所述已修改的數(shù)據(jù)。
15.根據(jù)權(quán)利要求10中所述的方法,其中所述局部重配置電路進一步包括主電路,并且其中接收所述多個局部重配置指令包括: 用所述控制電路接收來自所述主電路的所述多個局部重配置指令。
16.根據(jù)權(quán)利要求10中所述的方法,其中所述控制電路包括具有輸出的錯誤檢驗電路,所述方法進一步包括: 用所述錯誤檢驗電路,確定所述給定的局部重配置指令是否包括錯誤;和 響應(yīng)于確定所述給定的局部重配置指令是錯誤的,在所述錯誤檢驗電路的所述輸出上使錯誤信號有效。
17.根據(jù)權(quán)利要求10中所述的方法,其中所述多個局部重配置指令包括一系列已加密的指令,并且其中所述控制電路包括解密電路,所述方法進一步包括: 用所述解密電路解密所述一系列已加密的指令。
18.根據(jù)權(quán)利要求10中所述的方法,其中所述多個局部重配置指令包括一系列已壓縮的指令,并且其中所述控制電路包括解壓縮電路,所述方法進一步包括: 用所述解壓縮電路解壓縮所述一系列已壓縮的指令。
19.一種操作局部重配置電路的方法,所述局部重配置電路耦合到存儲器元件陣列并且包括控制電路,其中所述局部重配置電路和所述存儲器元件陣列形成在集成電路上,所述方法包括: 用所述控制電路接收一系列局部重配置指令; 用所述控制電路中的錯誤檢驗電路,確定所述一系列局部重配置指令中的給定的局部重配置指令是否包含錯誤;和 響應(yīng)于確定所述給定的局部重配置指令是錯誤的,阻止所述給定的局部重配置指令在所述存儲器元件陣列上執(zhí)行。
20.根據(jù)權(quán)利要求19中所述的方法,其中所述局部重配置電路進一步包括主電路,所述方法進一步包括: 用所述主電路提供所述一系列局部重配置指令給所述控制電路;和 響應(yīng)于確定所述給定的局 部重配置指令是錯誤的,利用所述控制電路來提供有效的錯誤信號給所述主電路。
21.根據(jù)權(quán)利要求20中所述的方法,其中所述一系列局部重配置指令包括已加密且已壓縮的局部重配置指令,并且其中所述控制電路包括解密電路和解壓縮電路,所述方法進一步包括: 用所述解密電路解密所述局部重配置指令;和 用所述解壓縮電路解壓縮所述局部重配置指令。
全文摘要
本發(fā)明涉及局部重配置電路。集成電路可以包括局部重配置(PR)電路,其用于重配置存儲器陣列的一部分。PR電路可以包括主電路、控制電路、地址寄存器以及第一、第二和第三數(shù)據(jù)寄存器。主電路可以發(fā)送一系列PR指令給控制電路??刂齐娐房梢园ㄓ糜诮鈮嚎s已壓縮的指令的解壓縮電路,用于解密已加密的指令的解密電路,用于檢測指令中的錯誤的錯誤檢驗電路,以及邏輯電路。地址寄存器可以選擇期望的幀??梢詫⑦x定的幀加載進入第三數(shù)據(jù)寄存器中??梢詫⒌谌龜?shù)據(jù)寄存器的內(nèi)容移位進入第一數(shù)據(jù)寄存器中。第一數(shù)據(jù)寄存器的內(nèi)容可以根據(jù)期望的邏輯功能利用邏輯電路進行修改,移位進入第二數(shù)據(jù)寄存器中,并且寫入選定的幀中。
文檔編號G06F17/50GK103177152SQ201210559868
公開日2013年6月26日 申請日期2012年12月20日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者B·瑪加班度, D·A·瑞斯, L·M·毛戈, N·D·納谷 申請人:阿爾特拉公司