壞塊管理機制的制作方法
【專利摘要】一種系統(tǒng)包括非易失性隨機存取存儲器(NVRAM)設(shè)備和控制器邏輯,控制器邏輯檢測設(shè)備中的壞塊、引退壞塊并通過向替換塊指派壞塊的地址來用替換塊替換壞塊。
【專利說明】壞塊管理機制
【技術(shù)領(lǐng)域】
[0001]概括地說,本公開內(nèi)容涉及電子領(lǐng)域。更具體地說,本發(fā)明的一些實施例總地涉及用于面向塊的非易失性存儲器的壞塊管理。
【背景技術(shù)】
[0002]隨著處理器的處理能力的增強,人們的一個關(guān)注是存儲器可由處理器訪問的速度。例如,為了處理數(shù)據(jù),處理器可能需要首先從存儲器取回數(shù)據(jù)。在處理完成之后,結(jié)果可能需要存儲在存儲器中。因此,存儲器速度會對總體系統(tǒng)性能具有直接的影響。
[0003]另一個重要考慮是功耗。例如,在依賴電池供電的移動計算設(shè)備中,降低功耗以便允許設(shè)備在移動的同時進行操作是非常重要的。功耗對于非移動計算設(shè)備來說也是很重要的,因為過大的功耗會增加成本(例如,歸因于額外的功率使用而導(dǎo)致增加冷卻要求等?、縮短組件壽命、限制設(shè)備可使用的位置等等。
[0004]硬盤驅(qū)動器提供了相對低成本的存儲解決方案,并且用于大量計算設(shè)備以提供非易失性存儲。然而,由于磁盤驅(qū)動器需要相對高速地轉(zhuǎn)動其磁盤并相對于轉(zhuǎn)動的磁盤移動磁盤頭來讀丨寫數(shù)據(jù),因此當(dāng)與閃存相比時,磁盤驅(qū)動器使用大量功率。所有這種物理運動產(chǎn)生熱并增加功耗。為此,一些較高端移動設(shè)備正在向非易失性的閃存設(shè)備轉(zhuǎn)移。然而,閃存具有許多缺點,包括:例如,用于改變比特狀態(tài)所需要的相對大的電壓電平,由于電荷泵斜升的要求而導(dǎo)致的寫時間的延遲,一次必須擦除一個單元塊等等。
[0005]相變存儲器〔?00是另一種類型的非易失性存儲器,當(dāng)與閃存設(shè)備相比時,其可以提供更高的性能和/或持久性。例如,?(?允許改變單個比特而不必首先擦除整個單元塊,
結(jié)構(gòu)可以更慢地降級,?⑶數(shù)據(jù)狀態(tài)可以保持相對更長的時間段,并且更加可擴展。
【專利附圖】
【附圖說明】
[0006]圖1、圖4和圖5示出了可以用于實現(xiàn)本文中討論的各個實施例的計算系統(tǒng)的實施例的框圖。
[0007]圖2根據(jù)一些實施例示出了可以用于在3嫩和地址之間進行轉(zhuǎn)譯的組件的框圖。
[0008]圖3是示出壞塊管理的一個實施例的流程圖。
【具體實施方式】
[0009]在下面的描述中,闡述了大量具體細(xì)節(jié)以便提供各個實施例的透徹理解。然而,可以在不使用這些具體細(xì)節(jié)的情況下實施本發(fā)明的各個實施例。在其它實例中,沒有對公知的方法、過程、組件和電路進行詳細(xì)描述,以免模糊本發(fā)明的具體實施例。另外,本發(fā)明的實施例的各個方面可以使用各種裝置來執(zhí)行,諸如集成半導(dǎo)體電路(“硬件”)、組織成一個或多個程序的計算機可讀指令(“軟件”)、或者硬件和軟件的某種組合。為了本公開內(nèi)容的目的,對“邏輯”的提及應(yīng)該意指硬件、軟件、或者它們的某種組合。
[0010]一些實施例涉及對非易失性隨機存取存儲器(附狀1)設(shè)備(例如相變存儲器(戶⑶)?】設(shè)備)的元數(shù)據(jù)的管理和/或支持。然而,本文中討論的實施例并不局限于?⑶,并且可應(yīng)用于任何類型的位寫入(歡^仏111非易失性存儲器(例如,相變存儲器(口⑶)開關(guān)(口⑶幻)。因此,術(shù)語“?013”和“?⑶”在本文中可以是可互換的。?013包括真交叉點陣中用新使用的雙向閾值開關(guān)(013)分層的一個?(?元件。對?013的陣列進行分層或堆疊的能力提供了向更高存儲器密度的可擴展性,同時保持1^1的性能特性。在其它實施例中,本文中公開的構(gòu)思可以應(yīng)用于其它非易失性存儲器設(shè)備(例如,鐵電晶體管隨機存取存儲器(]----)、納米線等)。
[0011]?01設(shè)備利用硫族化物玻璃的行為,以使得利用由將該材料在晶態(tài)和非晶態(tài)之間進行切換的電流的通過而產(chǎn)生的熱量。在實施例中,設(shè)備訪問是通過地址間接尋址表(八11)轉(zhuǎn)譯的。在一些實施例中,?01的特定使用提升了使用由提供的獨特能力(例如其加載/存儲能力)的存儲解決方案的性能。例如,在混合存儲設(shè)備中,用于元數(shù)據(jù)存儲,而相對便宜的^^0存儲器用于數(shù)據(jù)存儲。
[0012]另外,可以在各種計算系統(tǒng)(例如,包括智能電話、平板設(shè)備、便攜式游戲控制臺、超移動個人計算機⑶等)中提供本文中討論的存儲器技術(shù),例如結(jié)合圖1-圖5所討論的技術(shù)。更具體地說,圖1根據(jù)本發(fā)明的實施例示出了計算系統(tǒng)100的框圖。系統(tǒng)100可以包括一個或多個處理器102-1至1024 (在本文中統(tǒng)稱為“多個處理器102”或“處理器102,。處理器102可以經(jīng)由互連或總線104通信。每個處理器可以包括各種組件,為了清楚起見,僅參照處理器102-1對這些組件中的一些進行討論。因此,其余處理器102-2至1024中的每個處理器可以包括與參照處理器102-1所討論的相同或相似的組件。
[0013]在實施例中,處理器102-1可以包括:一個或多個處理器內(nèi)核106-1至106-1 (在本文中被稱為“內(nèi)核106”,或者更加一般地稱為“內(nèi)核106”〉、高速緩存108 (在各個實施例中,其可以是共享高速緩存或?qū)S酶咚倬彺?、和/或路由器110。處理器內(nèi)核106可以在單個集成電路(10芯片上實現(xiàn)。另外,芯片可以包括一個或多個共享和/或?qū)S酶咚倬彺?例如,高速緩存108〉、總線或互連(例如,總線或互連112〉、存儲器控制器(例如,參照圖4和圖5所討論的那些)、或者其它組件。
[0014]在一個實施例中,路由器110可以用于在處理器102-1和/或系統(tǒng)100的各個組件之間進行通信。另外,處理器102-1可以包括一個以上的路由器110。另外,多個路由器110可以在通信中,以使數(shù)據(jù)能夠在處理器102-1內(nèi)部或外部的各個組件之間進行路由。
[0015]高速緩存108可以對由處理器102-1的一個或多個組件(例如內(nèi)核106)使用的數(shù)據(jù)(例如,包括指令)進行存儲。例如,高速緩存108可以對存儲在存儲器114中的數(shù)據(jù)進行本地緩存,以便由處理器102的組件更加快速地訪問。如圖1中所示,存儲器114可以經(jīng)由互連104與處理器102通信。在實施例中,高速緩存108 (其可以是共享的)可以具有不同的等級,例如,聞速緩存108可以是中間級聞速緩存和丨或末級聞速緩存([[(^)。另外,內(nèi)核106中的每一個內(nèi)核可以包括1級(11)高速緩存(116-1)(在本文中總稱為“11高速緩存116,。處理器102-1的各個組件可以直接、通過總線(例如,總線112)和/或存儲器控制器或集線器與高速緩存108通信。
[0016]如圖1中所示,存儲器114可以通過存儲器控制器120耦接到系統(tǒng)100的其它組件。在一個實施例中,存儲器114包括具有系統(tǒng)磁盤級存儲(除了例如運行時數(shù)據(jù))的被緩存子集的兩級存儲器“])。存儲器114包括第一級(可替代地在本文中被稱為“近存儲器”)和第二級(可替代地在本文中被稱為“遠(yuǎn)存儲器”),第一級包括例如由0狀1制成的較小較快的存儲器,第二級包括較大并且較慢(相對于近存儲器而言)的易失性存儲器(例如,01^1)或非易失性存儲器存儲(例如,閃存
[0017]在這樣的實施例中,存儲器114可以包括諸如一些實施例中的存儲器的非易失性存儲器。雖然存儲器控制器120示為耦接在互連102與存儲器114之間,但存儲器控制器120可以位于系統(tǒng)100中的其它位置處。例如,在一些實施例中,可以在處理器102中的一個處理器中提供存儲器控制器120或其一些部分。另外,在一些實施例中,系統(tǒng)100可以包括用于以最優(yōu)的方式向存儲器114發(fā)出讀或?qū)懻埱蟮倪壿?例如,控制器邏輯125〉。
[0018]在一些實施例中,可以作為存儲器來尋址,但由于其設(shè)備特有的有限寫持久性、讀漂移等等的特性,?01設(shè)備可能需要將軟件生成的系統(tǒng)存儲器地址(3嫩)重新映射到非易失性存儲器地址(奶疆0(在本文中也被稱為地址兄在實施例中使用地址間接尋址表(八11)來經(jīng)由控制器(例如,圖1的邏輯125)實現(xiàn)這種重新映射。在一個實施例中,八I丁中的每個條目包括與被重新映射的系統(tǒng)存儲器地址相對應(yīng)的XVI地址和元數(shù)據(jù)信息(例如,由軟件提供VI中存儲的信息由邏輯125訪問,以便提供對?⑶設(shè)備的最優(yōu)管理。
[0019]圖2根據(jù)一些實施例示出了可以用于在3嫩和地址之間進行轉(zhuǎn)譯的組件200的框圖。如所示的,與使用“0”元數(shù)據(jù)訪問3嫩2寫入以及避免對奶^/?】存儲器204訪問的對相同(3嫩2)讀取的重新映射相比較,示出了對訪問具有元數(shù)據(jù)的XVI (81/11)的重新映射。
[0020]在一個實施例中,存儲器204進一步劃分成塊和子塊。在這樣的實施例中,子塊是讀取和寫入訪問的訪問粒度。在另外的實施例中,2(1:(糾錯碼)保持在子塊的級另I」,從而使得子塊跨多個設(shè)備形成條帶,其中,異或0010值存儲在另一個設(shè)備中。因此,每當(dāng)讀取子塊時,都針對子塊執(zhí)行2(1:校驗。如果存在不可糾正的錯誤,那么乂01?內(nèi)容用于恢復(fù)。
[0021]在一個實施例中,元數(shù)據(jù)可由使用新指令集架構(gòu)(1^)的軟件來提供或者可替換地從當(dāng)前指令集架構(gòu)推導(dǎo)出來。可以從0^ 102 (在本文中也被可互換地稱為“處理器”)向使用八II 202對地址進行重新映射的?⑶控制器邏輯125發(fā)送元數(shù)據(jù)信息。元數(shù)據(jù)可以向邏輯125提供關(guān)于奶^/?】地址處的數(shù)據(jù)的一些語義,邏輯125可以用其做出關(guān)于設(shè)備管理的更優(yōu)決策。
[0022]由于具有相當(dāng)高的故障率,因此在將奶^/?】實現(xiàn)為兩級存儲器層次結(jié)構(gòu)的存儲器204的實現(xiàn)中存在問題。根據(jù)一個實施例,控制器邏輯25提供用于管理存儲器204中的壞塊的機制。在這樣的實施例中,展示可恢復(fù)或者大量的存儲器204子塊是隔離的,從而使得故障塊可以在其內(nèi)容變得不可恢復(fù)之前被識別出來。
[0023]在一個實施例中,在塊引退之前,將該塊的內(nèi)容復(fù)制到存儲器204中的另一個塊。隨后,向替換塊指派所引退的塊的原始系統(tǒng)地址。因此,故障塊向不同塊的移動與閃速設(shè)備磨損級別的移動非常類似,不同點在于子塊被引退并且無法重新使用。
[0024]根據(jù)一個實施例,控制器邏輯125包括自由塊列表220,實現(xiàn)該自由塊列表220以便選擇替換塊位置。自由塊列表220保持一組自由塊,該組自由塊連續(xù)填充以便彌補由于磨損級別或壞塊移動而引退的塊。在一個實施例中,自由塊是系統(tǒng)軟件沒有對其的訪問權(quán)的額外的塊。因此,系統(tǒng)軟件所見的塊的總數(shù)量將保持恒定。引退塊被移動到壞塊列表并且無法重新使用。
[0025]在另一個實施例中,由于過度使用而導(dǎo)致已經(jīng)磨損的塊的內(nèi)容也可以移動到來自自由塊列表220的新的塊。在一個實施例中,控制器邏輯25可以使用隨機算法來選擇新塊進入該列表。然而,其它實施例可以使用多種不同方法中的一種方法。
[0026]圖3是示出由用于執(zhí)行壞塊管理的控制器邏輯125實現(xiàn)的過程的一個實施例的流程圖。在處理框310處,檢測到壞塊。根據(jù)一個實施例,可以使用各種策略來確定塊是否變壞并且需要被引退。例如,如果2(1:錯誤的數(shù)量超過了預(yù)先確定的閾值、檢測到硬故障或者基于來自的錯誤狀況(例如,熱統(tǒng)計值),那么可以認(rèn)為塊是壞的。在替代實施例中,在預(yù)先確定的次數(shù)的訪問之后可以認(rèn)為塊是壞的。在這樣的實施例中,控制器邏輯125跟蹤對每個塊的訪問次數(shù),并且當(dāng)訪問次數(shù)達(dá)到預(yù)先確定的閾值時,將具有對塊的高訪問計數(shù)的塊與具有較低訪問計數(shù)的塊進行交換。這可以通過將高磨損塊移動通過自由塊列表220或者通過對高磨損塊和低磨損塊直接進行交換來實現(xiàn)。
[0027]在決策框320處,確定塊所駐留在的?⑶0111中的壞塊的數(shù)量是否已經(jīng)超過了預(yù)先確定的閾值。如果是,那么立即引退01麗,處理框330。否則,從自由塊列表220中選擇替換塊,處理框340。在處理框350處,將所引退的塊的內(nèi)容移動到替換塊。
[0028]在處理框360處,對八II 202進行更新以便將系統(tǒng)地址指向替換塊地址。在處理框370處,替換塊可用于被訪問。上述機制通過利用地址間接尋址表使得能夠?qū)??⑶存儲器子系統(tǒng)中的塊進行重新映射。
[0029]圖4根據(jù)本發(fā)明的實施例示出了計算系統(tǒng)400的框圖。計算系統(tǒng)400可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)404通信的一個或多個中央處理單元(0^)402或處理器。處理器402可包括通用處理器、網(wǎng)絡(luò)處理器(其對計算機網(wǎng)絡(luò)403上傳送的數(shù)據(jù)進行處理?、應(yīng)用處理器(例如在移動電話、智能電話等中使用的那些 ?、或者其它類型的處理器(包括精簡指令集計算機(8130處理器或復(fù)雜指令集計算機((^^))。各種類型的計算機網(wǎng)絡(luò)403可以使用,包括有線(例如,以太網(wǎng)、千兆網(wǎng)、光纖等)或無線網(wǎng)絡(luò)(諸如蜂窩、3(}(第三代移動電話技術(shù)或第三代無線格式⑶低功耗的嵌入式(…幻等X此外,處理器602可以具有單核或多核設(shè)計。具有多核設(shè)計的處理器402可以將不同類型的處理器內(nèi)核集成在同一個集成電路(10管芯上。此外,具有多核設(shè)計的處理器402可以實現(xiàn)為對稱或非對稱多處理器。
[0030]在實施例中,處理器402中的一個或多個處理器可以與圖1的處理器102相同或相似。例如,處理器402中的一個或多個處理器可以包括內(nèi)核106和/或高速緩存108中的一個或多個。另外,參照圖1-圖5所討論的操作可以由系統(tǒng)400的一個或多個組件來執(zhí)行。
[0031]芯片組406還可以與互連網(wǎng)絡(luò)404通信。芯片組406可以包括圖形和存儲器控制中心((^1(^) 4080 610? 408可以包括與存儲器114通信的存儲器控制器410 (其可以與實施例中的圖1的存儲器控制器120相同或相似,例如,包括邏輯125〉。存儲器114可以存儲數(shù)據(jù),其包括由0^ 402或計算系統(tǒng)400中包括的任何其它設(shè)備執(zhí)行的指令序列。在本發(fā)明的一個實施例中,存儲器114可以包括諸如以下的一個或多個易失性存儲(或存儲器)設(shè)備:隨機存取存儲器或其它類型的存儲設(shè)備。非易失性存儲器還可以被使用,諸如硬盤。諸如多個0^和/或多個系統(tǒng)存儲器的額外的設(shè)備可以經(jīng)由互連網(wǎng)絡(luò)604通信。
[0032]610? 408還可以包括與圖形加速器416通信的圖形接口 414。在本發(fā)明的一個實施例中,圖形接口 414可以經(jīng)由加速的圖形端口(八⑶)與圖形加速器416通信。在本發(fā)明的實施例中,顯示器417 (諸如平板顯示器、觸摸屏等)可以通過例如信號轉(zhuǎn)換器與圖形接口 414通信,該信號轉(zhuǎn)換器將存儲在存儲設(shè)備(諸如視頻存儲器或系統(tǒng)存儲器)中的圖像的數(shù)字表示轉(zhuǎn)譯成由顯示器解釋和顯示的顯示信號。由顯示設(shè)備產(chǎn)生的顯示信號在由顯示器417解釋并隨后在顯示器417上進行顯示之前可以通過各種控制設(shè)備。
[0033]集線器接口 418可以允許咖⑶408和輸入/輸出控制中心(1(?) 420進行通信。10? 420可以提供到與計算系統(tǒng)400通信的1/0設(shè)備的接口。1(? 420可以通過諸如外圍組件互連(9(:1)橋、通用串行總線⑶38)控制器或其它類型的外圍橋或控制器的外圍橋(或控制器)424與總線422通信。橋424可以提供0^ 402與外圍設(shè)備之間的數(shù)據(jù)路徑??梢允褂闷渌愋偷耐?fù)洹A硗?,多個總線可以例如通過多個橋或控制器與1(? 620通信。另夕卜,在本發(fā)明的各個實施例中,與1(? 420通信的其它外圍設(shè)備可以包括:集成驅(qū)動電子設(shè)備(102)或小型計算機系統(tǒng)接口(3(:31)硬盤驅(qū)動器、^88端口、鍵盤、鼠標(biāo)、并行端口、串行端口、軟盤驅(qū)動器、數(shù)字輸出支持(例如,數(shù)字視頻接口或其它設(shè)備。
[0034]總線422可以與音頻設(shè)備426、一個或多個磁盤驅(qū)動器428、以及網(wǎng)絡(luò)接口設(shè)備430(其例如經(jīng)由有線或無線接口與計算機網(wǎng)絡(luò)403通信)通信。如所示的,網(wǎng)絡(luò)接口設(shè)備430可以耦接到天線431以便以無線的方式(例如,經(jīng)由電氣和電子工程師協(xié)會(巧現(xiàn))802.11接口(包括12詘802.1 121/13/8/11等?、蜂窩接口、3141 等)與網(wǎng)絡(luò)403通信。其它設(shè)備可以經(jīng)由總線422通信。另外,在本發(fā)明的一些實施例中,各個組件(例如網(wǎng)絡(luò)接口設(shè)備
408通信。此外,處理器402 ^(--? 408可以組合形成單個芯片。另外,在本發(fā)明的其它實施例中,圖形加速器416可以包括在(--? 408中。
[0035]另外,計算系統(tǒng)400可以包括易失性和/或非易失性存儲器(或存儲例如,非易失性存儲器可以包括下列各項中的一個或多個:只讀存儲器(如…、可編程可擦除?肋1 (^01),電2?肋1 (詘?1仙0、磁盤驅(qū)動器(例如,628〉、軟盤、光盤(⑶-肋約、數(shù)字多功能盤(0701閃存、磁光盤、或者能夠存儲電子數(shù)據(jù)(例如包括指令)的其它類型的非易失性機器可讀介質(zhì)。
[0036]圖5根據(jù)本發(fā)明的實施例不出了布置在點對點(口!:?)配置中的計算系統(tǒng)500。具體而言,圖5示出了其中由多個點對點接口互連的處理器、存儲器和輸入/輸出設(shè)備的系統(tǒng)。參照圖1-圖6所討論的操作可以由系統(tǒng)700的一個或多個組件來執(zhí)行。
[0037]如圖5所示,系統(tǒng)500可以包括若干處理器,其中,為了清楚起見僅示出了其中的兩個處理器502和504。處理器502和704可以分別包括用于使能與存儲器510和512進行通信的本地存儲器控制器中心(1(?) 506和508。存儲器510和/或512可以存儲各種數(shù)據(jù),例如參照圖1和/或圖4的存儲器114討論的那些數(shù)據(jù)。另外,在一些實施例中,1(?506和508可以包括圖1的存儲器控制器120和/或邏輯125。
[0038]在實施例中,處理器502和504可以是參照圖4討論的處理器402中的一個。處理器502和504可以經(jīng)由點對點(9讓)接口 514分別使用?讓接口電路516和518來交換數(shù)據(jù)。另外,處理器502和504可以使用點對點接口電路526、528、730和532經(jīng)由個體的?七?接口 522和524分別與芯片組520交換數(shù)據(jù)。芯片組520還可以例如使用?切接口電路537經(jīng)由高性能圖形接口 536與高性能圖形電路534交換數(shù)據(jù)。如參照圖4所討論的,在一些實施例中,圖形接口 536可以耦接到顯示設(shè)備(例如,顯示器417
[0039]如圖5中所示,圖1的內(nèi)核106和/或高速緩存108中的一個或多個可以位于處理器502和504中。然而,本發(fā)明的其它實施例可以存在于其它電路、邏輯單元、或圖5的系統(tǒng)500中的設(shè)備中。另外,本發(fā)明的其它實施例可以貫穿若干個電路、邏輯單元或圖5中不出的設(shè)備而分布。
[0040]芯片組520可以使用?切接口電路541與總線540通信??偩€540可以具有與其通信的一個或多個設(shè)備,諸如總線橋542和1/0設(shè)備543。經(jīng)由總線544,總線橋543可以與諸如鍵盤/鼠標(biāo)545、通信設(shè)備546 (諸如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備或可以與計算機網(wǎng)絡(luò)403通信的其它通信設(shè)備,例如如參照網(wǎng)絡(luò)接口設(shè)備430討論的,包括經(jīng)由天線431與計算機網(wǎng)絡(luò)403通信》、音頻1/0設(shè)備和/或數(shù)據(jù)存儲設(shè)備548的其它設(shè)備通信。數(shù)據(jù)存儲設(shè)備548可以對可由處理器502和/或504執(zhí)行的代碼549進行存儲。
[0041]在本發(fā)明的各個實施例中,本文中(例如,參照圖1-圖5)討論的操作可以實現(xiàn)為硬件(例如,電路 ?、軟件、固件、微代碼或它們的組合,其可以提供為計算機程序產(chǎn)品,例如,包括其上存儲有用于對計算機進行編程以執(zhí)行本文所討論的過程的指令(或軟件程序)的有形(例如,非臨時性)機器可讀或計算機可讀介質(zhì)。另外,通過舉例的方式,術(shù)語“邏輯”可以包括軟件、硬件或硬件和軟件的組合。機器可讀介質(zhì)可以包括諸如針對圖1-圖5所討論的那些的存儲設(shè)備。
[0042]另外,這樣的有形計算機可讀介質(zhì)可以作為計算機程序產(chǎn)品下載,其中,程序可以經(jīng)由通信鏈路(例如,總線、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)通過數(shù)據(jù)信號(例如在載波或其它傳播介質(zhì)中)的方式從遠(yuǎn)程計算機(例如,服務(wù)器)傳輸?shù)桨l(fā)出請求的計算機(例如,客戶端
[0043]本說明書中提及的“一個實施例”或“實施例”意指結(jié)合可以包括在至少一種實現(xiàn)中的實施例描述的特定特征、結(jié)構(gòu)或特性。在本說明書的各個地方出現(xiàn)短語“在一個實施例中”可以是或者可以不是全部指的是相同的實施例。
[0044]另外,在說明書和權(quán)利要求書中,可以使用術(shù)語“耦接”和“連接”以及它們的派生詞。在本發(fā)明的一些實施例中,“連接”可以用于指示兩個或更多元件彼此直接物理或電接觸?!榜罱印笨梢砸庵竷蓚€或更多元件直接物理或電接觸。然而,“耦接”也可以意指兩個或更多元件可以并不彼此直接接觸,但仍可以協(xié)同操作或彼此交互。
[0045]因此雖然以特定于結(jié)構(gòu)特征和/或方法動作的語言對本發(fā)明的實施例進行了描述,但應(yīng)當(dāng)理解的是:要求保護的主題可以并不受限于所描述的具體特征或動作。相反,公開具體的特征和動作作為實現(xiàn)要求保護的主題的示例形式。
[0046]—種裝置包括具有開關(guān)的相變存儲器$(:13)控制器邏輯,其用于檢測?⑶設(shè)備中的壞塊、引退壞塊并通過向替換塊指派壞塊的地址來使用替換塊替換壞塊??刂破鬟壿嬙诠藟膲K之前將被弓I退塊的內(nèi)容移動到替換塊。
【權(quán)利要求】
1.一種裝置,其包括: 存儲器控制器邏輯,其用于檢測非易失性隨機存取存儲器(NVRAM)設(shè)備中的壞塊、引退所述壞塊并通過向替換塊指派所述壞塊的地址來使用所述替換塊替換所述壞塊。
2.根據(jù)權(quán)利要求1所述的裝置,其中,所述控制器邏輯在引退所述壞塊之前將被引退塊的內(nèi)容移動到所述替換塊。
3.根據(jù)權(quán)利要求1所述的裝置,還包括:用于存儲信息以便在系統(tǒng)存儲器地址和NVRAM地址之間進行轉(zhuǎn)譯的地址間接尋址表(AIT),其中,所述控制器邏輯使用所述AIT將所述壞塊的地址重新映射到所述替換塊。
4.根據(jù)權(quán)利要求3所述的裝置,還包括:包括可用于用作替換塊的塊的列表的自由塊列表。
5.根據(jù)權(quán)利要求4所述的裝置,其中,所述控制器邏輯從所述自由塊列表中選擇所述替換塊,并將所述壞塊的地址重新映射到所述替換塊。
6.根據(jù)權(quán)利要求1所述的裝置,其中,當(dāng)檢測到糾錯碼(ECC)錯誤的數(shù)量超過預(yù)先確定的閾值時,所述控制器邏輯檢測到塊是壞的。
7.根據(jù)權(quán)利要求1所述的裝置,其中,當(dāng)在所述NVRAM設(shè)備處檢測到硬故障時,所述控制器邏輯檢測到塊是壞的。
8.根據(jù)權(quán)利要求1所述的裝置,其中,當(dāng)在所述NVRAM設(shè)備處檢測到一個或多個錯誤狀況時,所述控制器邏輯檢測到塊是壞塊。
9.根據(jù)權(quán)利要求1所述的裝置,其中,所述控制器邏輯確定PCM設(shè)備中的壞塊的數(shù)量是否超過了預(yù)先確定的閾值。
10.根據(jù)權(quán)利要求8所述的裝置,其中,當(dāng)確定壞塊的數(shù)量超過了預(yù)先確定的閾值時,所述NVRAM設(shè)備被引退。
11.根據(jù)權(quán)利要求1所述的裝置,其中,所述NVRAM設(shè)備是具有開關(guān)的相變存儲器(PCMS)設(shè)備。
12.—種方法,其包括: 檢測非易失性隨機存取存儲器(NVRAM)中的壞塊; 選擇替換塊; 向所述替換塊指派所述壞塊的地址;以及 引退所述壞塊。
13.根據(jù)權(quán)利要求12所述的方法,還包括:在引退所述壞塊之前將所述壞塊的內(nèi)容移動到所述替換塊。
14.根據(jù)權(quán)利要求12所述的方法,其中,向所述替換塊指派所述壞塊的地址包括:使用地址間接尋址表(AIT)將所述壞塊的地址重新映射到所述替換塊。
15.根據(jù)權(quán)利要求12所述的方法,其中,所述替換塊是從包括可用于用作替換塊的塊的列表的自由塊列表中選擇的。
16.根據(jù)權(quán)利要求12所述的方法,其中,檢測壞塊包括:檢測糾錯碼(ECC)錯誤的數(shù)量超過預(yù)先確定的閾值。
17.根據(jù)權(quán)利要求12所述的方法,其中,檢測壞塊包括:當(dāng)在所述NVRAM設(shè)備處檢測到硬故障時,檢測到塊是壞的。
18.根據(jù)權(quán)利要求12所述的方法,其中,檢測壞塊包括:在所述NVRAM設(shè)備處檢測到一個或多個錯誤狀況。
19.根據(jù)權(quán)利要求12所述的方法,還包括:確定所述NVRAM設(shè)備中的壞塊的數(shù)量是否超過了預(yù)先確定的閾值。
20.根據(jù)權(quán)利要求19所述的方法,其中,當(dāng)確定所述壞塊的數(shù)量超過了所述預(yù)先確定的閾值時,所述NVRAM設(shè)備被引退。
21.—種系統(tǒng),其包括: 非易失性隨機存取存儲器(NVRAM)設(shè)備;以及 控制器邏輯,其用于檢測所述NVRAM設(shè)備中的壞塊、引退所述壞塊并通過向替換塊指派所述壞塊的地址來使用所述替換塊替換所述壞塊。
22.根據(jù)權(quán)利要求23所述的系統(tǒng),其中,所述控制器邏輯在引退所述壞塊之前將所述壞塊的內(nèi)容移動到所述替換塊。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),還包括:用于存儲信息以便在系統(tǒng)存儲器地址和NVRAM地址之間進行轉(zhuǎn)譯的地址間接尋址表(AIT),其中,所述控制器邏輯使用所述AIT將所述壞塊的地址重新映射到所述替換塊。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),還包括:包括可用于用作替換塊的塊的列表的自由塊列表。
25.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,當(dāng)檢測到糾錯碼(ECC)錯誤的數(shù)量超過預(yù)先確定的閾值時,所述控制器邏輯檢測到塊是壞的。
26.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,當(dāng)在所述NVRAM設(shè)備處檢測到硬故障時,所述控制器邏輯檢測到塊是壞的。
27.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,當(dāng)在所述NVRAM設(shè)備處檢測到一個或多個錯誤狀況時,所述控制器邏輯檢測到塊是壞塊。
28.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述控制器邏輯確定所述NVRAM設(shè)備中的壞塊的數(shù)量是否超過了預(yù)先確定的閾值。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,當(dāng)確定壞塊的數(shù)量超過了所述預(yù)先確定的閾值時,所述NVRAM設(shè)備被引退。
30.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述NVRAM設(shè)備是具有開關(guān)的相變存儲器(PCMS)設(shè)備。
【文檔編號】G06F11/07GK104380262SQ201380027884
【公開日】2015年2月25日 申請日期:2013年6月3日 優(yōu)先權(quán)日:2012年6月29日
【發(fā)明者】R.K.拉馬努簡, G.J.欣頓, D.J.齊默曼 申請人:英特爾公司