專利名稱:比特錯誤閾值和內容可尋址存儲器以尋址重映射存儲裝置的制作方法
技術領域:
所公開的本發明主題涉及對存儲裝置的重映射。
背景技術:
存儲裝置用于多種電子設備,例如計算機、蜂窩電話、PDA、數據記錄器和導航設 備,這里只給出一些示例。在這種電子設備中,可以采用多種類型的非易失性存儲裝置,例 如NAND或NOR閃存、SRAM、DRAM和相變存儲器,這里只給出一些示例。一般而言,可以使用 寫入或編程處理在這種存儲裝置中存儲信息,并可以使用讀取處理來獲取存儲的信息。這種非易失性存儲裝置可以包括存儲單元,存儲單元隨時間慢慢劣化,導致在對 這種存儲單元進行存取時可能發生讀取和/或寫入錯誤的可能性增大。雖然隨后可以在存 儲裝置內校正此類錯誤,但是隨著例如錯誤數目的增長,這種錯誤校正可能變得很困難或 不可能了。
發明內容
例如,為了解決上述技術問題,提供了一種系統,包括糾錯編碼ECC解碼器,接收 從存儲裝置讀取的表示數據的信號,并確定與所讀取的表示所述數據的信號相關聯的比特 錯誤率和/或比特錯誤數目,重映射控制器,至少部分地基于所述比特錯誤率和/或所述比 特錯誤的數目是否滿足或超出錯誤閾值,將所述存儲裝置的重映射地址提供給內容可尋址 存儲器CAM。
參照以下附圖,描述非限制性和非窮盡實施例,在附圖中,相同參考數字指代相同 部分,除非有特別說明。圖1是根據實施例的存儲器配置的示意圖;圖2是根據實施例的存儲器重映射處理的流程圖;圖3是根據另一實施例的存儲器重映射處理的流程圖;圖4是根據另一實施例的矢量重映射表的示意圖;圖5是根據實施例的存儲系統的示意框圖;圖6是根據另一實施例的存儲系統的示意框圖;圖7是根據實施例的計算系統和存儲裝置的示意框圖。
具體實施例方式在本說明書中,對“一個實施例”或“實施例”的引述意味著,結合該實施例描述的 具體特征、結構或特點包括在所要求保護的主題的至少一個實施例中。因此,在本說明書中 多處出現的短語“在一個實施例中”或“在實施例中”不一定全部是指同一實施例。此外, 具體特征、結構或特點可以結合在一個或更多實施例中。
4
在實施例中,存儲裝置可以包括存儲單元,存儲單元隨時間慢慢劣化,導致在對這 種存儲裝置進行讀取時可能發生一個或多個錯誤的可能性增大。例如,可以使用糾錯碼 (ECC)或其他此類算法,在計算系統內的若干區域內糾正這種錯誤。從系統角度來看,可 以確定是否要繼續使用這種易出錯的單元。如下要詳細說明的,這種確定可以至少部分地 基于此類錯誤的數目與錯誤閾值的比較,其中錯誤閾值可以在例如存儲裝置的設計階段定 義。在一種實施方式中,可以在特定存儲單元展示出過量錯誤之前,中斷對這些單元的使 用。換言之,如果易出錯的存儲單元產生的錯誤數目接近錯誤閾值,則可以中斷對這種存儲 單元的使用。例如,為了確定可以中斷對存儲單元的使用,不需要達到該閾值。因此,觀察 錯誤的數目接近錯誤閾值,這可以是預測特定的存儲單元可能很快產生太多錯誤的途徑, 從而可以例如在易出錯的存儲單元實際上開始臨界地發生故障之前,停止對這些易出錯存 儲單元的使用。如果要中斷對特定的存儲單元的使用,則可以按照保持存儲裝置總容量的 方式來選擇替代的存儲單元。因此,在一個實施例中,保持存儲裝置的尺寸容量的處理包括將易出錯的存儲位 置重映射到正常工作的存儲位置,而不損失總的系統存儲空間(例如,存儲裝置容量)。這 種重映射可以至少部分地基于與因從易出錯的存儲位置進行讀取而發生錯誤的量和/或 頻率有關的信息。這里,存儲位置是指例如可以使用標識存儲位置和/或部分的一個或多 個地址,經由讀取和/或寫入處理來訪問的存儲裝置的一部分。如下要詳細說明的,例如, ECC解碼器可以用于確定與讀取存儲器特定部分相關聯的比特錯誤率和/或比特錯誤數 目。隨后,可以將比特錯誤率和/或比特錯誤數目與錯誤閾值相比較,例如該錯誤閾值可以 包括到可接受錯誤數目的實質性限制。根據這種比較的結果,可以決定是否停用(retire) 產生錯誤的存儲器的特定部分,例如中斷對其的使用。在特定實施例中,停用存儲裝置的一部分的處理可以包括將存儲在存儲裝置的 要停用的一部分中的、代表數據的數字信號移動到存儲裝置的另一部分。在一種實施方式 中,可以將來自存儲裝置的停用部分的代表數據的數字信號重定位(relocate)到存儲裝 置的備用部分。例如,這種存儲器備用部分可以包括存儲裝置中初始沒有識別或考慮為存 儲裝置的整個容量的一部分的物理位置,如下要詳細說明的。停用存儲裝置的一部分的處 理也可以包括將存儲裝置的要停用部分的地址重映射成對應于存儲裝置的新的備用部分 的地址。這種重映射的地址可以例如存儲在內容可尋址存儲器(CAM)中,如下文詳細描述。 當然,這些處理僅僅是示例,本發明要保護的主題不限于此。在一個實施例中,例如上述處理可以涉及包括相變存儲(PCM)器件的存儲裝置。 因此,隨著PCM老化,由PCM的部分產生的比特錯誤率和/或比特錯誤數目可能增大。在一 定程度上,可以使用例如ECC解碼器和/或其他糾錯算法來糾正這些錯誤。但是,錯誤數目 可能增大,超出了這些糾錯技術的能力。因此,希望在指示這種存儲部分已經或正開始產生 過量錯誤的趨勢時,就停用這種存儲部分。例如上述實施例可能允許對存儲裝置的成功使用涉及到相對不可靠的技術。例 如,使用本文描述的實施例,可以利用先前認為是不可用的晶元(die)。此外,這些實施例可 能將存儲裝置的壽命延長到其大多數存儲單元的壽命,而不是其相對少量的存儲單元的壽 命。圖1是根據實施例的存儲器配置的示意圖。存儲裝置100可以劃分成主存儲器110和備用存儲器120。存儲裝置100可以包括NAND或NOR閃存、SRAM、DRAM或PCM,這里 只給出一些示例。存儲裝置100包括具有這種主和備用存儲部分以及/或者一個或多個其 他存儲部分的用戶可尋址存儲空間,這些存儲部分可以是或不是彼此鄰接的,可以駐留或 不駐留在單個裝置中。主存儲器110和備用存儲器120可以包括可獨立尋址的空間,這些 空間可通過例如讀取、寫入和/或擦除處理來訪問。根據實施例,存儲裝置100的一個或多個部分可以存儲表示由存儲裝置100的特 定狀態表達的數據和/或信息的信號。例如,可以通過影響或改變存儲裝置100的一部分 的狀態,將數據和/或信息表示為二進制信息(例如,1和0),來在存儲裝置100的該部分 中“存儲”表示數據和/或信息的電子信號。這樣,在特定實施方式中,改變存儲器的一部 分的狀態來存儲表示數據和/或信息的信號,這構成了將存儲裝置100變換到不同的狀態 或事物。存儲裝置100可以配置為初始包括與存儲裝置100的全部可用容量對應的主存儲 器110。這種初始配置可以額外地包括備用存儲器120,在確定存儲裝置容量時,不需要包 括備用存儲器120。但是,如果主存儲器的部分變得不可用或例如在讀取/寫入處理期間造 成過量的錯誤,則可以使用備用存儲器120來替代主存儲器110的部分。當然,這種存儲器 配置的細節僅僅是示例,本發明要保護的主題不限于此。圖2是根據實施例的存儲器讀取處理200的流程圖。在方框205,例如可以由系 統應用發起對存儲裝置的一部分進行讀取的讀取處理,該系統應用提供一個或多個讀取地 址,來分別標識要讀取所存儲數據的一個或多個存儲位置。在方框210,將一個或多個這種 讀取地址提供給CAM,例如在CAM中搜索與所提供的讀取地址相對應的可能重映射地址。在 一個實施方式中,CAM可以存儲數據庫和/或表,將原始地址與對應的重映射地址相關聯。 因此,通過搜索這種CAM,在方框230可以確定輸入的原始讀取地址是否與CAM中的對應 重映射地址相關聯。如果否,對于與特定原始讀取地址相關聯的重映射地址的搜索返回空 (null)結果,則讀取處理200進行到方框240,其中輸出原始讀取地址。結果,在方框250, 原始讀取地址可以用于從存儲裝置進行讀取。隨后,在方框260,將從存儲裝置的原始讀取 地址讀取的數據提供給錯誤校驗硬件和/或軟件,例如ECC解碼器和/或其他此類糾錯算 法。另一方面,如果在方框230確定輸入原始讀取地址具有對應的重映射地址,則讀 取處理200進行到方框245,其中可以發送與特定原始讀取地址相對應的重映射地址。結 果,在方框255,重映射讀取地址可以用于從存儲裝置的讀取。在一個實施方式中,如果使 用重映射地址,則可以從存儲裝置的備用部分進行讀取,這種限制僅作為示例。隨后,在方 框260,從存儲裝置的重映射讀取地址讀取的數據被提供給錯誤校驗硬件和/或軟件,例如 ECC解碼器和/或其他此類糾錯算法。當然,這種存儲器讀取處理的細節僅僅是示例,本發 明要保護的主題不限于此。圖3是根據實施例的存儲器讀取處理300的流程圖。在方框305,例如可以由系 統應用發起對表示存儲裝置的一部分中存儲的信息的信號進行讀取的讀取處理,該系統應 用提供一個或多個讀取地址,來分別標識要讀取所存儲信號的一個或多個存儲位置。例如 對讀取的數據進行奇偶校驗的ECC硬件和/或軟件可以用于校驗和/或校正讀取的數據中 的錯誤。隨后,如在方框310,將初始讀取的數據與校正后的讀取數據相比較,以確定存儲器讀取處理中已發生的錯誤數目。在一個實施方式中,該錯誤數目可以被表達成比特錯誤 率(BER),這可以包括例如錯誤比特的數目與讀取的比特的總數目之比。在方框320,從存 儲裝置的一部分讀取而造成的BER或錯誤數目可以與錯誤閾值相比較,該錯誤閾值可以包 括表示可接受的最大BER或可接受的最大錯誤數目的值,例如,超出該值的額外錯誤可能 無法被成功校正。該錯誤閾值可以包括表示對例如圖1所示的存儲裝置100等特定存儲裝 置而言可接受的錯誤的BER或錯誤數目的實質性上限的數目。在該錯誤閾值處或以下,ECC 硬件和/或軟件能夠校正讀取錯誤。但是在該錯誤閾值以上,可能無法校正所有讀取錯誤 的可能性相對較高。在方框330,至少部分地基于從存儲器的一部分的讀取是否造成過多錯誤,來決定 是否停用該存儲器部分。如果錯誤數目處于或在錯誤閾值以下,則讀取處理300可以前進 至方框340,在此,例如將讀取數據提供給請求該讀取數據的應用。另一方面,如果該錯誤 數目在錯誤閾值以上,則讀取處理300可以前進至方框350,在此,例如處理可以開始停用 這種導致過多錯誤的存儲器部分。在特定實施方式中,可以將這種易出錯的存儲器部分中 初始存儲的數據移動到已知是工作的和/或狀態良好的另一存儲器部分。這種新的存儲器 部分可以包括例如圖1所示的備用存儲器120等備用存儲器的一部分。在方框360,可以 將標識數據的原始存儲位置的存儲地址或多個存儲地址重映射為標識數據被重定位至的 新的存儲器部分。在一種實施方式中,重映射可以包括分配新地址,以經由例如矢量與原 始地址相對應,以便可以將對原始地址的調用重定向至指定了被重定位數據的位置的新地 址。然后,在方框370,可以將關于這種重映射地址的信息提供給CAM,其中如下詳細描述 的,CAM在矢量重映射表中保存這種信息。在對存儲器的易出錯部分進行重映射之后,讀取 處理300可以前進至方框340,其中例如可以將所讀取的數據提供給請求所讀取的數據的 應用。當然,這種存儲器讀取處理的細節僅僅是示例,本發明要保護的主題不限于此。圖4是根據實施例的矢量重映射表400的示意圖。在其他實施方式中,表400中 包括的信息不需要以表的形式格式化;例如,這種信息可以包括陣列或用于組織這種信息 的其他方式。這種信息可以在例如CAM中存儲為信號。欄410可以包括原始地址440的列 表,例如addrl,addr2, addr3等;狀態欄420可以包括與欄410中列出的對應原始地址是 否已經重映射有關的信息;以及欄430可以包括對應于欄410中列出的原始地址440的重 映射地址450的列表,例如addrl,,addr2,,addr3,等。在一種實施方式中,原始地址440可以包括應用和/或系統發出的讀取請求中包 括的一個或多個地址,該應用和/或系統詢問存儲裝置100中在該一個或多個地址處存儲 的信息。狀態欄420可以包括描述了原始地址440是否已被重映射的元數據。如果已發生 了這種重映射,則欄430可以包括對應于原始地址440的重映射地址450。為通過根據圖1 的示例來示出,addrl,addr5,addr7和addr8已經被分別重映射至addrl,,addr5,,addr7, 和addr8,,而addr2,addr3,addr4和addr6還未被重映射。這里,還未被重映射的原始地 址在欄430中不具有對應的重映射地址。在另一實施方式中,因為重映射地址450的存在 可能足以指示例如對于特定原始地址440是否已發生了重映射,所以表400不需要包括狀 態欄420。當然,這種矢量重映射表和存儲重映射信息的其他格式的細節僅僅是示例,本發 明要保護的主題不限于此。圖5是根據實施例的存儲系統500的框圖。控制器510可以配置為接收指示了讀取請求505的一個或多個信號,該讀取請求505包括指定了存儲裝置525中要讀取數據的 位置的地址。存儲裝置525可以包括主存儲器520和備用存儲器530,例如如上所述的。伴 隨讀取請求輸入的地址可以途經通過CAM 515,在此將地址與CAM 515中存儲的內容相比 較,CAM 515可以包括與原始地址相關聯的重映射地址。在一個特定實施方式中,進行重映 射處理,而不需要在系統級由用戶生成的特定指令和/或信號,以使伴隨讀取請求輸入的 地址可以始終包括原始地址。僅僅在CAM搜索之后,就可以將該地址與其關聯的重映射地 址相關聯。換言之,CAM 515可以提供從原始地址空間到重映射地址空間的轉換。這樣,控 制器510可以確定讀取請求505是否包含已被重映射的地址。根據該確定,控制器510可 以將讀取請求505定向至主存儲器520或備用存儲器530,以讀取數據。例如,如果讀取請 求505的地址還未被重映射,則控制器510可以將讀取請求轉發給主存儲器520,而如果該 地址已被重映射,則控制器510可以修改讀取請求505,以包括可以定向至備用存儲器530 的重映射地址。隨后,主存儲器520或備用存儲器530可以將讀取的數據535提供給錯誤 檢測塊540,錯誤檢測塊540可以包括例如錯誤計數器和/或ECC解碼器。在一個實施例 中,可以將包括ECC解碼器的錯誤檢測塊540放置在存儲裝置525的晶元元件中。在另一 實施例中,可以在系統級,例如在應用中,提供包括ECC解碼器的錯誤檢測塊540。錯誤檢測 塊540可以檢測和/或校正讀取數據535中存在的任何錯誤,并可以將檢測到的錯誤表達 成BER或比特錯誤數目。因此,錯誤檢測塊540可以將校正后的讀取數據545提供給例如 應用和/或主機系統等引入讀取請求505的實體。錯誤檢測塊540也可以向比較引擎550 提供與讀取數據535中存在的錯誤的數目有關的信息。在錯誤檢測塊540包括放置在存儲 裝置525的晶元元件中的ECC解碼器的情況下,這種錯誤信息對于系統級的比較引擎應用 而言是可訪問的。在一種實施方式中,例如,ECC解碼器可以包括可用于比較引擎550進行 訪問的錯誤信息寄存器,比較引擎550可以將檢測到的錯誤的數目與錯誤閾值比較。如上所述,該錯誤閾值可以包括對可接受最大BER或錯誤數目。比較引擎550可 以將該比較的結果560提供給控制器510。至少部分地基于該比較結果,控制器510可以 確定是否停用存儲裝置525的特定部分。如果該比較指示存儲裝置525的特定部分在例如 讀取處理期間已造成了過量的比特錯誤,則控制器510可以發起停用存儲器的易出錯部分 的處理。這種停用處理可以包括將存儲器的被停用部分中存儲的數據重定位至存儲器的 另一部分。例如,可以將數據從主存儲器520的特定部分中移動到備用存儲器530中。因 此,控制器810可以將標識存儲器的被停用部分的地址修改為標識要包含被重定位數據的 存儲器的新部分的地址。然后,這種修改后的重映射地址可以寫入CAM 515,在此如上所述, 可以將該地址與原始地址相關聯。例如,這種存儲器停用處理可以是相對于引入讀取請求 505的應用和/或主機系統而無縫進行的。當然,存儲系統的這種實施方式僅僅是示例,本 發明要保護的主題不限于此。圖6是根據實施例的存儲系統600的框圖。用戶應用610可以被配置成向驅動 器640提供讀取請求。在一個實施方式中,用戶應用610、CAM 625和/或驅動器640可以 包括軟件,例如可以由一個或多個專用處理器執行的指令以執行下文所述的一個或多個處 理。相反,存儲設備650可以包括硬件,盡管所要求保護的主題并不局限于此。在一個實施例中,用戶應用610可以提供被提供給CAM 625的原始讀取地址,CAM 625包括例如列出了原始讀取地址的扇區620和列出了對應重映射讀取地址的扇區630。因
8此,CAM 625至少部分地依據是否已經重映射了特定讀取地址來輸出包括原始讀取地址或 重映射的讀取地址的讀取請求。隨后,驅動器640將這種地址提供給PCM存儲設備650以 指定從中讀取數據的存儲設備的位置。如上所述,例如存儲設備650可以包括主PCM晶元 660和備用PCM晶元670。例如,可以至少部分地依據由驅動器640提供的地址來讀取PCM 存儲設備650的任意部分。隨后,主PCM晶元660或備用PCM晶元670可以向ECC引擎680提供讀取數據, ECC引擎680可以包括例如錯誤計數器和/或ECC解碼器。在一個實施例中,ECC引擎680 可以被設置在PCM存儲設備650的晶元單元中。ECC引擎680可以檢測和/或校正在讀取 數據中存在的任意錯誤,并將檢測到的這種錯誤表達為例如每代碼字和/或每數據訪問塊 的BER和/或比特錯誤的數目。因此,ECC引擎680可以將校正的讀取數據提供給用戶應用 610,并將有關讀取數據中存在的錯誤數目的信息提供給驅動器640.隨后,驅動器640可以 將檢測到錯誤的數目提供給例如用戶應用610。至少部分地基于這種錯誤的數目,用戶應用 610可以確定是否使用例如上述的一個或多個處理來停用PCM存儲設備650的特定部分。 當然,這種存儲系統的實施方式和配置僅作為示例,本發明要保護的主題并不局限于此。圖7是計算系統700的示例實施例的示意圖,計算系統700包括存儲裝置710,存 儲裝置710可以劃分成主部分和備用部分,例如如上所述的。計算裝置704可以代表可配 置為管理存儲裝置710的任何設備、電器和/或機器。存儲裝置710可以包括存儲器控制 器715和存儲器722。作為示例但非限制性地,計算裝置704可以包括一個或多個計算設 備和/或平臺,例如臺式計算機、膝上型計算機、工作站、服務器設備等;一個或多個個人計 算或通信裝置或設備,例如個人數字助理、移動通信設備等;計算系統和/或關聯的服務提 供商功能裝置,例如數據庫或數據存儲服務提供商/系統;以及/或者其任意組合。應該認識到,可以通過使用或包括硬件、固件、軟件或其任意組合,來實現系統700 中所示的多種裝置的全部或一部分、以及這里進一步描述的處理和方法。因此,作為示例但 非限制性地,計算裝置704可以包括至少一個處理單元720,通過總線740操作性地耦合 至存儲器722 ;以及主機或存儲器控制器715。處理單元720代表可配置為執行數據計算 過程或處理的至少一部分的一個或多個電路。作為示例但非限制性地,處理單元720可以 包括一個或多個處理器、控制器、微處理器、微控制器、專用集成電路、數字信號處理器、可 編程邏輯器件、現場可編程門陣列等、以及其任意組合。處理單元720可以與存儲器控制器 715通信,以處理例如讀取、寫入和/或擦除等存儲器相關操作,以及如上所述的存儲器分 區處理。處理單元720可以包括配置為與存儲器控制器715通信的操作系統。這種操作系 統例如可以生成要經由總線740發送至存儲器控制器715的命令。這種命令可以包括例如 如下指令對存儲器722的至少一部分進行分區;將一個或多個屬性與特定部分相關聯;以 及至少部分地基于要編程和存儲的數據的類型對特定分區進行編程。存儲器722代表任何數據存儲機構。存儲器722可以包括例如主存儲器724和/ 或次存儲器726。在特定實施例中,如上所述,存儲器722可以包括至少部分地基于存儲器 的一個或多個屬性和/或存儲器管理處理而被分區的存儲器。主存儲器724可以包括例如 隨機存取存儲器、只讀存儲器等。雖然該示例中示出了主存儲器724是與處理單元720分 離的,但是應該理解,主存儲器724的全部或部分可以提供在處理單元720內或者與處理單 元720協同定位/耦合。
9
次存儲器726可以包括例如與主存儲器相同或類似類型的存儲器、以及/或者一 個或多個數據存儲裝置或系統,例如盤驅動、光盤驅動、磁帶驅動、固態存儲器驅動等。在特 定實施方式中,次存儲器726可以是操作性地能容納計算機可讀介質728,或者可配置為與 計算機可讀介質728耦合。計算機可讀介質728可以包括例如能夠攜帶針對系統700中一 個或多個裝置的數據、代碼和/或指令的任何介質、和/或使得這些數據、代碼和/或指令 可訪問的任何介質。計算裝置704可以包括例如輸入/輸出732。輸入/輸出732代表可配置為接受 或引入人類和/或機器輸入的一個或多個裝置或特征、可配置為傳遞或提供人類和/或機 器輸出的一個或多個裝置或特征。作為示例但非限制性地,輸入/輸出設備732可以包括 操作性配置的顯示器、揚聲器、鍵盤、鼠標、軌跡球、觸摸屏、數據端口等。在以上詳細描述中,給出了多種特定細節,以提供對本發明要保護的主題的全面 理解。但是,本領域技術人員會理解,可以在不需要這些特定細節的情況下實施本發明要保 護的主題。在其他情況下,沒有具體描述普通技術人員已知的方法、裝置或系統,以避免使 本發明要保護的主題不清楚。以上詳細描述的一些部分是從存儲在專用設備或專用計算裝置或平臺的存儲器 內、對二進制數字信號的操作的算法或符號化表示方面來呈現的。在本特定說明書的上下 文中,屬于專用設備等包括只要編程為執行根據來自程序軟件的指令的特定操作的通用計 算機。算法描述或符號化表示是信號處理或相關領域普通技術人員用來將其工作的實質內 容傳遞給其他技術人員的技術的示例。這里以及一般而言,算法被認為是引導至所需結果 的操作或類似信號處理的前后一致的序列。在該情況下,操作或處理包括對物理量的物理 操作。典型地,雖然不是必需的,這種量可以采用能夠被存儲、傳送、組合、比較或處理的電 或磁信號的形式。已經多次證明了,主要由于普遍使用,很方便將此類信號引用為比特、數 據、值、元素、符號、字符、術語、號碼、數字等。但是,應該理解,這些或類似術語全部要與合 適的物理量關聯,并僅僅是方便的標簽。除非專門聲明,從以下論述中明顯可見,在本說明 書描述中,使用“處理”、“計算”、“運算”、“確定”等術語是指例如專用計算機或類似專用電 子計算設備的專用設備的動作或處理。在一個示例中,這種專用計算機或類似專用電子計 算設備可以包括利用執行一個或多個特定功能的指令編程的通用計算機。因此,在本說明 書的上下文中,專用計算機或類似專用電子計算設備能夠操作或變換典型地以電或磁物理 量表示的信號,這些電或磁物理量在該專用計算機或類似專用電子計算設備的存儲器、寄 存器、或其他信息存儲裝置、傳輸裝置或顯示裝置內。這里使用的屬于“和”、“和/或”和“或”可以包括多種含義,這至少部分地取決于 其所應用的上下文。典型地,如果用于關聯列表,例如A、B或C,則“和/或”和“或”表示 A、B和C,這里是包含性含義,以及A、B或C,這里是排他性含義。本說明書中對“一個實施 例”或“實施例”的引述意味著,結合該實施例描述的具體特征、結構或特點包括在所要求保 護的主題的至少一個實施例中。因此,在本說明書中多處出現的短語“在一個實施例中”或 “在實施例中”不一定全部是指同一實施例。此外,具體特征、結構或特點可以結合在一個 或更多實施例中。這里描述的實施例可以包括使用數字信號進行操作的機器、裝置、引擎或 設備。這種信號可以包括電信號、光信號、電磁信號或在位置之間提供信息的任何形式的能 量。
10
雖然示出并描述了當前認為的示例實施例,但是本領域技術人員會理解,在不背 離本發明要保護的主題的前提下,可以進行多種其他修改并替換等同物。此外,在不背離這 里所述的中心思想的前提下,可以進行多種修改來使特定情況適應本發明要保護的主題的 教義。因此,本發明要保護的主題不限于公開的特定實施例,而是也可以包括在所附權利要 求及其等同物范圍內的所有實施例。
權利要求
一種系統,包括糾錯編碼ECC解碼器,接收從存儲裝置讀取的表示數據的信號,并確定與所讀取的表示所述數據的信號相關聯的比特錯誤率和/或比特錯誤數目,重映射控制器,至少部分地基于所述比特錯誤率和/或所述比特錯誤的數目是否滿足或超出錯誤閾值,將所述存儲裝置的重映射地址提供給內容可尋址存儲器CAM。
2.根據權利要求1所述的系統,其中,所述CAM適于接收讀取地址,并至少部分地響應 于所述讀取地址是否對應于存儲在所述CAM中的所述重映射地址來發送信號。
3.根據權利要求2所述的系統,還包括選擇部分,選擇所述讀取地址或所述重映射地址來用作從所述存儲裝置中讀取的地 址,其中所述選擇至少部分地基于所述信號。
4.根據權利要求1所述的系統,其中,所述存儲裝置包括主存儲部分和備用存儲部分, 其中所述重映射地址對應于所述備用存儲部分中的存儲位置。
5.根據權利要求4所述的系統,其中,所述存儲裝置還包括所述ECC解碼器和相變存儲 部分。
6.根據權利要求1所述的系統,其中,所述比特錯誤率和/或所述比特錯誤的數目至少 部分地響應于所述存儲器的物理劣化。
7.一種方法,包括確定與從存儲裝置讀取的表示所述數據的信號相關聯的比特錯誤率和/或比特錯誤 數目,至少部分地基于所述比特錯誤率和/或所述比特錯誤的數目是否滿足或超出錯誤閾 值,將所述存儲裝置的重映射地址提供給內容可尋址存儲器CAM ;以及在所述CAM中存儲表示所述重映射地址的信號。
8.根據權利要求7所述的方法,還包括接收讀取地址;以及至少部分地響應于所述讀取地址是否對應于存儲在所述CAM中的所述重映射地址來 發送信號。
9.根據權利要求8所述的方法,還包括選擇所述讀取地址或所述重映射地址來用作從所述存儲裝置中讀取的地址,其中所述 選擇至少部分地基于所發送的信號。
10.根據權利要求7所述的方法,還包括停用與所述重映射地址相對應的所述存儲裝 置的部分。
11.根據權利要求10所述的方法,其中所述停用所述存儲裝置的所述部分包括將由電子信號表示的信息從所述存儲裝置的所述部分重定位到所述存儲裝置的另一部分。
12.根據權利要求7所述的方法,其中,所述存儲裝置包括主存儲部分和備用存儲部 分,其中所述重映射地址對應于所述備用存儲部分中的存儲位置。
13.根據權利要求12所述的方法,其中,所述存儲裝置還包括所述ECC解碼器和相變存 儲部分。
14.根據權利要求7所述的方法,其中,所述比特錯誤率和/或所述比特錯誤的數目至少部分地響應于所述存儲器的物理劣化。
15.一種系統,包括處理器,用于發送讀取請求;糾錯編碼ECC解碼器,接收從存儲裝置讀取的表示數據的信號,并響應于所述讀取請 求,確定與所讀取的表示所述數據的信號相關聯的比特錯誤率和/或比特錯誤數目,重映射控制器,至少部分地基于所述比特錯誤率和/或所述比特錯誤的數目是否滿足 或超出錯誤閾值,將所述存儲裝置的重映射地址提供給內容可尋址存儲器CAM。
16.根據權利要求15所述的系統,其中,所述CAM適于從所述處理器接收讀取地址,并 至少部分地響應于讀取地址是否對應于存儲在所述CAM中的所述重映射地址來發送信號。
17.根據權利要求16所述的系統,還包括選擇部分,選擇所述讀取地址或所述重映射地址來用作從所述存儲裝置中進行讀取的 地址,其中所述選擇至少部分地基于所述信號。
18.根據權利要求15所述的系統,其中,所述存儲裝置包括主存儲部分和備用存儲部 分,其中所述重映射地址對應于所述備用存儲部分中的存儲位置。
19.根據權利要求18所述的系統,其中,所述存儲裝置還包括所述ECC解碼器和相變存 儲部分。
20.根據權利要求15所述的系統,其中,所述比特錯誤率和/或所述比特錯誤的數目至 少部分地響應于所述存儲器的物理劣化。
全文摘要
所公開的本發明主題涉及對存儲裝置的重映射。
文檔編號G11C29/42GK101937725SQ20101021834
公開日2011年1月5日 申請日期2010年6月28日 優先權日2009年6月30日
發明者古爾吉拉特·比林, 斯蒂芬·博沃斯 申請人:恒憶有限責任公司