專(zhuān)利名稱(chēng):存儲(chǔ)數(shù)據(jù)的方法和存儲(chǔ)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計(jì)算機(jī)存儲(chǔ)器,并且更具體地涉及增加異構(gòu)存儲(chǔ)元件的存儲(chǔ)容量。
背景技術(shù):
術(shù)語(yǔ)“異構(gòu)存儲(chǔ)元件”表示具有不同物理特性的各個(gè)存儲(chǔ)器元件,其中不同的物理 特性影響該元件可存儲(chǔ)的信息的類(lèi)型和數(shù)量。由此,取決于其特定的物理特性,每個(gè)元件可 以存儲(chǔ)不同類(lèi)型和數(shù)量的信息。具有異構(gòu)存儲(chǔ)元件的存儲(chǔ)器系統(tǒng)的一個(gè)示例是相變存儲(chǔ)器 (PCM)系統(tǒng),其中對(duì)于不同的PCM單元,可以設(shè)置的阻抗值的范圍是不同的。在PCM中,每個(gè) 單元支持不同范圍的阻抗水平,這影響該單元所能支持的水平范圍(數(shù)據(jù)量)和絕對(duì)水平 值(數(shù)據(jù)類(lèi)型)二者。一般來(lái)說(shuō),元件的異構(gòu)性會(huì)在將信息存儲(chǔ)到存儲(chǔ)器方面以及從存儲(chǔ) 器獲取信息方面引起錯(cuò)誤。具體而言,在向存儲(chǔ)器寫(xiě)入數(shù)據(jù)時(shí),寫(xiě)入者可能不再?lài)L試將信息 存儲(chǔ)在無(wú)法支持該信息的單元中。一種用于降低異構(gòu)存儲(chǔ)元件環(huán)境中的錯(cuò)誤的方法是找到所有存儲(chǔ)器元件的共同 物理特性的范圍,繼而存儲(chǔ)信息,使得可以在該共同物理特性范圍內(nèi)獲取該信息。作為一個(gè) 示例,在PCM存儲(chǔ)單元中,可能存在可以跨所有PCM存儲(chǔ)器元件來(lái)設(shè)置的阻抗值的范圍。繼 而,僅使用該共同阻抗值范圍來(lái)存儲(chǔ)信息。另一方法是將不可寫(xiě)單元值視作錯(cuò)誤,并且使用 糾錯(cuò)碼(ECC)來(lái)修正數(shù)據(jù)。這兩種方法的不足之處在于,其可能導(dǎo)致存儲(chǔ)容量的損失。另一種用于降低異構(gòu)存儲(chǔ)元件環(huán)境中錯(cuò)誤的方法是假設(shè)存儲(chǔ)器塊或者個(gè)體存儲(chǔ) 器元件為有缺陷的或者為無(wú)缺陷的,繼而在數(shù)據(jù)讀取和/或?qū)懭肫陂g試圖規(guī)避有缺陷的塊 或者元件。這些方法的缺點(diǎn)在于這些方法假設(shè)塊或者個(gè)體元件只能處于兩個(gè)狀態(tài)之一,因 此這些方法不是針對(duì)一般的異構(gòu)性而設(shè)計(jì)的。
發(fā)明內(nèi)容
一個(gè)示例性實(shí)施方式是一種用于存儲(chǔ)數(shù)據(jù)的方法,包括向存儲(chǔ)器進(jìn)行寫(xiě)入的寫(xiě)入 過(guò)程以及從存儲(chǔ)器進(jìn)行讀取的讀取過(guò)程。存儲(chǔ)器中存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù) 水平(data level)集合。寫(xiě)入過(guò)程在向存儲(chǔ)器寫(xiě)入時(shí)將不同的數(shù)據(jù)水平集合納入考慮。讀 取過(guò)程首先獲得存儲(chǔ)器中的數(shù)據(jù),并隨后確定如何解釋該數(shù)據(jù)。另一實(shí)施方式是用于從存儲(chǔ)器進(jìn)行讀取的方法。該方法包括從一組存儲(chǔ)器單元接 收讀取字,其中該存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù)水平集合。將讀取字分割為兩個(gè) 或者更多虛擬讀取向量。對(duì)于每個(gè)虛擬讀取向量,標(biāo)識(shí)在生成該虛擬讀取向量時(shí)曾使用的 碼本,并且生成部分讀取數(shù)據(jù)向量。該生成包括將該虛擬讀取向量與表示碼本的矩陣相乘。 將部分讀取數(shù)據(jù)向量合并成讀取消息,并且輸出該讀取消息。又一示例性實(shí)施方式是一種存儲(chǔ)器系統(tǒng),其包括存儲(chǔ)器、測(cè)試器和編碼器。存儲(chǔ)器 包括一組存儲(chǔ)器單元,其中存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù)水平集合。測(cè)試器確定 存儲(chǔ)器單元的物理特性。編碼器與存儲(chǔ)器和測(cè)試器連接,并且使用至少一個(gè)碼本。編碼器接收將要寫(xiě)入該組存儲(chǔ)器單元的寫(xiě)入消息,并且響應(yīng)于物理特性來(lái)標(biāo)識(shí)與該組存儲(chǔ)器單元 相關(guān)聯(lián)的虛擬存儲(chǔ)器。對(duì)于每個(gè)虛擬存儲(chǔ)器,生成描述該虛擬存儲(chǔ)器中的虛擬單元的約束 向量。約束向量的生成響應(yīng)于物理存儲(chǔ)器單元的物理特性,響應(yīng)于先前生成的約束向量,以 及響應(yīng)于先前生成的虛擬寫(xiě)入向量。而且,針對(duì)每個(gè)虛擬存儲(chǔ)器,計(jì)算虛擬寫(xiě)入向量。該計(jì) 算響應(yīng)于碼本、約束向量和寫(xiě)入消息。將虛擬寫(xiě)入向量合并成寫(xiě)入字,并且將寫(xiě)入字輸出到 該組存儲(chǔ)器單元。另一示例性實(shí)施方式是一種用于對(duì)異構(gòu)存儲(chǔ)器進(jìn)行寫(xiě)入的方法。該方法包括接 收寫(xiě)入消息以及與一組存儲(chǔ)器單元相對(duì)應(yīng)的寫(xiě)入地址,其中至少兩個(gè)存儲(chǔ)器單元支持不同 的數(shù)據(jù)水平;確定存儲(chǔ)器單元的物理特性;以及響應(yīng)于該物理特性來(lái)標(biāo)識(shí)與該組存儲(chǔ)器單 元相關(guān)聯(lián)的虛擬存儲(chǔ)器。針對(duì)每個(gè)虛擬存儲(chǔ)器執(zhí)行以下動(dòng)作生成描述該虛擬存儲(chǔ)器中的 虛擬單元的約束向量,該生成響應(yīng)于物理存儲(chǔ)器單元的物理特性、響應(yīng)于先前生成的約束 向量以及響應(yīng)于先前生成的虛擬寫(xiě)入向量;以及響應(yīng)于約束向量和寫(xiě)入數(shù)據(jù)來(lái)計(jì)算虛擬寫(xiě) 入向量,該計(jì)算包括逐位、按序地將寫(xiě)入數(shù)據(jù)寫(xiě)入虛擬存儲(chǔ)器中,跳過(guò)由約束向量指示的、 已知為固定在特定值的位置。將虛擬寫(xiě)入向量合并成寫(xiě)入字,并且將寫(xiě)入字輸出到該組存 儲(chǔ)器單元。又一示例性實(shí)施方式是一種用于從異構(gòu)存儲(chǔ)器進(jìn)行讀取的方法。該方法包括從 一組存儲(chǔ)器單元接收讀取字,其中至少兩個(gè)存儲(chǔ)器單元支持不同的數(shù)據(jù)水平;確定存儲(chǔ)器 單元的物理特性;響應(yīng)于該物理特性來(lái)標(biāo)識(shí)與該組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ)器;以及 將讀取字分割為多個(gè)虛擬讀取向量,該分割響應(yīng)于虛擬存儲(chǔ)器。對(duì)于每個(gè)虛擬讀取向量,執(zhí) 行以下動(dòng)作生成描述虛擬存儲(chǔ)器中的虛擬單元的約束向量,該生成響應(yīng)于物理存儲(chǔ)器單 元的物理特性、響應(yīng)于先前生成的約束、以及響應(yīng)于先前生成的部分讀取向量;以及響應(yīng)于 約束向量和虛擬讀取向量來(lái)生成部分讀取數(shù)據(jù)向量,該生成包括逐位、按序地讀取虛擬寫(xiě) 入向量,并且丟棄由約束向量指示的、已知為固定的位。將部分讀取數(shù)據(jù)向量合并成讀取消 息,并且輸出該讀取消息。附加的特征和優(yōu)點(diǎn)通過(guò)本實(shí)施方式的技術(shù)來(lái)實(shí)現(xiàn)。其他實(shí)施方式和方面在此進(jìn)行 描述,并認(rèn)為其是要求保護(hù)的發(fā)明的一部分。為了更好地理解本發(fā)明的優(yōu)點(diǎn)和特征,將參考 描述和附圖。
在說(shuō)明書(shū)隨附的權(quán)利要求書(shū)中,具體指出并清楚地要求保護(hù)被認(rèn)為是本發(fā)明的主 題。通過(guò)以下詳細(xì)描述并結(jié)合附圖,本發(fā)明的上述以及其他特征和優(yōu)點(diǎn)將是易見(jiàn)的,其中圖1示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于寫(xiě)入數(shù)據(jù)的過(guò)程;圖2示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于讀取數(shù)據(jù)的過(guò)程;圖3示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在異構(gòu)存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的系 統(tǒng)的框圖;圖4示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在相變存儲(chǔ)器(PCM)中存儲(chǔ)數(shù)據(jù) 的系統(tǒng)的框圖;圖5示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在PCM中寫(xiě)入數(shù)據(jù)的系統(tǒng)的框 圖6示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于從PCM存儲(chǔ)器中讀取數(shù)據(jù)的系統(tǒng) 的框圖;圖7示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器到多個(gè)虛擬二進(jìn)制存儲(chǔ) 器的概念性分解;圖8示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬二進(jìn)制存 儲(chǔ)器集合的等效約束的概念性分解;圖9示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬二進(jìn)制存 儲(chǔ)器集合的等效約束的概念性分解;圖10示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬非二進(jìn)制 存儲(chǔ)器集合的等效約束的概念性分解;圖11示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的二進(jìn)制寫(xiě)入字計(jì)算器和二進(jìn)制字解 碼器的框圖;圖12示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的字寫(xiě)入器的框圖;圖13示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的PCM數(shù)據(jù)二進(jìn)制化器的框圖;圖14示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的二進(jìn)制存儲(chǔ)器約束計(jì)算器的框圖;圖15示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于計(jì)算二進(jìn)制約束的過(guò)程;圖16示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的使用隨機(jī)二進(jìn)制以及低密度奇偶校 驗(yàn)(LDPC)碼和高斯消元的二進(jìn)制寫(xiě)入字計(jì)算器的框圖;圖17示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的使用盧比變換(LT)碼和剝離 (peeling)的二進(jìn)制寫(xiě)入字計(jì)算器、以及使用線(xiàn)性規(guī)劃的非二進(jìn)制寫(xiě)入字計(jì)算器;圖18示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的使用級(jí)聯(lián)碼的寫(xiě)入字計(jì)算器的框 圖;圖19示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的一個(gè)過(guò)程,其中寫(xiě)入過(guò)程編碼器嘗 試預(yù)定義矩陣序列來(lái)找到如下矩陣,該矩陣生成對(duì)消息進(jìn)行編碼并且滿(mǎn)足異構(gòu)存儲(chǔ)器約束 的碼字;圖20示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的一個(gè)過(guò)程,其中寫(xiě)入過(guò)程編碼器使 用偽隨機(jī)函數(shù)生成器和碼矩陣,以便生成圖19中所繪的預(yù)定義矩陣序列;圖21示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在讀取和寫(xiě)入過(guò)程二者都可以 測(cè)量每個(gè)單元所支持的阻抗水平時(shí)在PCM存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的系統(tǒng)的框圖;圖22示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在讀取和寫(xiě)入過(guò)程二者都可以 測(cè)量每個(gè)單元所支持的阻抗水平時(shí)向PCM存儲(chǔ)器寫(xiě)入數(shù)據(jù)的系統(tǒng)的框圖;圖23示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在讀取和寫(xiě)入過(guò)程二者都可以 測(cè)量每個(gè)單元所支持的阻抗水平時(shí)從PCM存儲(chǔ)器讀取數(shù)據(jù)的系統(tǒng)的框圖;圖24示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在帶噪聲的異構(gòu)存儲(chǔ)器中存儲(chǔ) 數(shù)據(jù)的二進(jìn)制字計(jì)算器和二進(jìn)制字解碼器;圖25示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)多維存儲(chǔ)器約束到等效一維約 束的轉(zhuǎn)換;以及圖26示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的從多維存儲(chǔ)器約束獲得的等效一維 約束到對(duì)虛擬二進(jìn)制存儲(chǔ)器集合的等效約束的分解。
具體實(shí)施例方式本發(fā)明的示例性實(shí)施方式通過(guò)在寫(xiě)入數(shù)據(jù)之前和/或讀取數(shù)據(jù)之后測(cè)量每個(gè)存 儲(chǔ)器元件的相關(guān)物理特性以及通過(guò)使用編碼技術(shù)來(lái)利用該知識(shí),來(lái)增加具有異構(gòu)元件的存 儲(chǔ)器的存儲(chǔ)容量。在示例性實(shí)施方式中,存儲(chǔ)器由相變存儲(chǔ)器(PCM)單元構(gòu)成,并且寫(xiě)入過(guò) 程通過(guò)在寫(xiě)入之前應(yīng)用RESET (重置)和SET (置位)脈沖來(lái)測(cè)量每個(gè)單元的阻抗范圍。接 下來(lái),對(duì)可以存儲(chǔ)在每個(gè)單元上的阻抗水平進(jìn)行量化,將量化索引轉(zhuǎn)換為二進(jìn)制,并且使用 可以在每個(gè)單元上存儲(chǔ)數(shù)據(jù)而不會(huì)違反單元阻抗限制的二進(jìn)制碼集合。在另一示例性實(shí)施 方式中,讀取過(guò)程在讀取之后額外通過(guò)應(yīng)用RESET和SET脈沖測(cè)量每個(gè)單元的物理特性并 繼而重寫(xiě)原始數(shù)據(jù)。所測(cè)量的物理特性繼而由讀取過(guò)程用來(lái)輔助對(duì)由編碼器寫(xiě)入的數(shù)據(jù)進(jìn) 行解碼。一個(gè)示例性實(shí)施方式包括PCM,并且假設(shè)所有PCM具有共同的最大(RESET)阻抗水 平和可變的最小(SET)水平。在此實(shí)施方式中,寫(xiě)入過(guò)程包括步驟使用適當(dāng)?shù)木幊堂}沖將 一組單元中的每個(gè)單元編程為其SET水平,以及測(cè)量SET阻抗水平?;诖诵畔?,使用適當(dāng) 的碼將待寫(xiě)入數(shù)據(jù)變換為與單元阻抗范圍相兼容的阻抗水平集合。在另一示例性實(shí)施方式 中,每個(gè)PCM單元的最大阻抗水平和最小阻抗水平二者都是可變的。寫(xiě)入過(guò)程包括步驟使 用適當(dāng)?shù)木幊堂}沖將一組單元中的每個(gè)單元編程為其SET和RESET水平,以及測(cè)量SET和 RESET阻抗水平。基于此信息,使用適當(dāng)?shù)拇a將待寫(xiě)入的數(shù)據(jù)變換為與單元阻抗范圍相兼容 的阻抗水平集合。在一個(gè)示例性實(shí)施方式中,變換步驟如下執(zhí)行。首先將阻抗水平轉(zhuǎn)換為二進(jìn)制值。 每個(gè)位面(bitplane)用來(lái)存儲(chǔ)不同的數(shù)據(jù)消息。對(duì)于給定的位面,通過(guò)由讀取過(guò)程和寫(xiě)入 過(guò)程共享的二進(jìn)制矩陣(“H”)的輔助來(lái)生成將要寫(xiě)入存儲(chǔ)器的二進(jìn)制字。特別地,找到二 進(jìn)制向量“c”,使得Hc等于待存儲(chǔ)的二進(jìn)制消息,并且使得c滿(mǎn)足由存儲(chǔ)器單元異構(gòu)性所施 加的二進(jìn)制約束集合。將該二進(jìn)制向量寫(xiě)入到該位面。讀取過(guò)程通過(guò)計(jì)算Hc來(lái)重建消息。在另一示例性實(shí)施方式中,實(shí)現(xiàn)阻抗水平向二進(jìn)制值的轉(zhuǎn)換,使得每個(gè)單元對(duì)于 給定的水平具有不同的二進(jìn)制化。這有助于跨位面的編碼率的均衡,從而降低系統(tǒng)中要求 的二進(jìn)制矩陣(H)的數(shù)目,這繼而可以降低存儲(chǔ)/硬件復(fù)雜性。在另一示例性實(shí)施方式中, 通過(guò)表示為整數(shù)的阻抗水平的二進(jìn)制化的固定置換(permutation),來(lái)實(shí)現(xiàn)阻抗水平向二 進(jìn)制值的轉(zhuǎn)換。在另一示例性實(shí)施方式中,通過(guò)由讀取過(guò)程和寫(xiě)入過(guò)程共享的非二進(jìn)制矩 陣H的輔助來(lái)生成待編碼的數(shù)據(jù),來(lái)執(zhí)行上述變換步驟。特別地,找到向量c,使得Hc等于 待存儲(chǔ)的非二進(jìn)制消息,并且使得c滿(mǎn)足由存儲(chǔ)器異構(gòu)性所施加的約束集合。將向量c寫(xiě) 入該存儲(chǔ)器。讀取過(guò)程通過(guò)計(jì)算Hc來(lái)重建消息。在此使用的術(shù)語(yǔ)“數(shù)據(jù)水平”表示與單元的物理特性值的預(yù)先指定范圍相對(duì)應(yīng) (或者“由其表示”)的特定數(shù)據(jù)值。為了支持給定的數(shù)據(jù)水平,可以將單元的物理特性設(shè) 置為取對(duì)應(yīng)于該數(shù)據(jù)水平的范圍內(nèi)的值。在使用PCM的異構(gòu)示例中,取得阻抗的物理特性, 0-10歐姆的單元阻抗可以對(duì)應(yīng)于數(shù)據(jù)值=1,10-20歐姆的單元阻抗可以對(duì)應(yīng)于數(shù)據(jù)值= 2,以此類(lèi)推。由此,如果可將單元的阻抗置為0-10歐姆范圍內(nèi),則該單元支持?jǐn)?shù)據(jù)水平1。圖1示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于寫(xiě)入數(shù)據(jù)的過(guò)程。在框102,接收 (例如,接收到編碼器中)寫(xiě)入數(shù)據(jù)(也稱(chēng)為寫(xiě)入消息)以及對(duì)應(yīng)于一組異構(gòu)存儲(chǔ)器單元的地址。在框104,標(biāo)識(shí)與該組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ)器,并且將寫(xiě)入數(shù)據(jù)分割為多個(gè) 部分寫(xiě)入數(shù)據(jù)向量,其中每一個(gè)向量與一個(gè)虛擬存儲(chǔ)器相關(guān)聯(lián)。虛擬存儲(chǔ)器的數(shù)目取決于 該組存儲(chǔ)器單元的物理特性。例如,PCM單元的物理特性可以包括阻抗水平。如果阻抗水 平可以具有最多4個(gè)值,則虛擬存儲(chǔ)器的數(shù)目為2 (也即,2的2次冪是4,因此2位可以支 持4個(gè)值)。備選地,如果阻抗水平可以具有5到8個(gè)值,則虛擬存儲(chǔ)器的數(shù)目為3 (也即, 2的3次冪是8,因此3位可以支持8個(gè)值)。在圖1中的框106,針對(duì)步驟104中標(biāo)識(shí)的每個(gè)虛擬存儲(chǔ)器執(zhí)行一個(gè)過(guò)程。生成描 述虛擬存儲(chǔ)器中的虛擬單元的約束向量。用于生成約束向量的輸入是存儲(chǔ)器單元的物理特 性,針對(duì)該組存儲(chǔ)器單元(例如,針對(duì)其他虛擬存儲(chǔ)器)的任何先前生成的約束向量,以及 針對(duì)該組存儲(chǔ)器單元的任何先前生成的虛擬寫(xiě)入向量。由此,寫(xiě)入過(guò)程感知到存儲(chǔ)器單元 的物理特性。接下來(lái),基于該約束向量的內(nèi)容以及基于該組存儲(chǔ)器單元中的存儲(chǔ)器單元的 數(shù)目來(lái)選擇碼本。在備選示例性實(shí)施方式中,碼本是固定的并且對(duì)于讀取和寫(xiě)入過(guò)程二者 都是先驗(yàn)已知的,在這種情況下,不需要選擇步驟。碼本可以指定線(xiàn)性碼和非線(xiàn)性碼二者。 基于碼本、約束向量和寫(xiě)入數(shù)據(jù)來(lái)計(jì)算用于虛擬存儲(chǔ)器的虛擬寫(xiě)入向量。在碼本非固定的 情況下,存儲(chǔ)與碼本相關(guān)聯(lián)的標(biāo)識(shí)符,從而可以在讀取該組存儲(chǔ)器單元時(shí)使用該標(biāo)識(shí)符。碼 索引可以稱(chēng)為元數(shù)據(jù)。類(lèi)似地,碼本也可以稱(chēng)為元數(shù)據(jù)。元數(shù)據(jù)可以存儲(chǔ)于各種位置,包括 但不限于以可靠的方式存儲(chǔ)在不同的非異構(gòu)存儲(chǔ)器中或者異構(gòu)存儲(chǔ)器中,諸如存儲(chǔ)在存 儲(chǔ)器的特定的預(yù)先測(cè)試過(guò)的區(qū)域中,或者通過(guò)使用僅向所有單元都支持的水平進(jìn)行寫(xiě)入的 方案來(lái)存儲(chǔ)。如果碼本是固定的,則無(wú)需存儲(chǔ)元數(shù)據(jù)。在框108,將虛擬寫(xiě)入向量合并成寫(xiě) 入字。在框110,將寫(xiě)入字輸出到將要被寫(xiě)入的該組存儲(chǔ)器單元。圖2示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于讀取數(shù)據(jù)的過(guò)程。在此示例中, 假設(shè)讀取過(guò)程所使用的解碼器不知道(也即,不了解)該組異構(gòu)存儲(chǔ)器單元的物理特性。 解碼器知道該物理特性的范圍(例如,阻抗水平在0到4之間)并且知道對(duì)該組的最后寫(xiě) 入過(guò)程期間所使用的碼本。在框202,從一組異構(gòu)存儲(chǔ)器單元讀取數(shù)據(jù)(也即,“讀取字”)。 在框204,基于物理值的范圍將讀取字分割為虛擬讀取向量。例如,如果該范圍涵蓋4個(gè)值, 則將讀取字分割為2個(gè)虛擬讀取向量。在框206,針對(duì)每個(gè)虛擬讀取向量執(zhí)行處理。首先, 接收碼本標(biāo)識(shí)符(例如,從存儲(chǔ)位置接收,備選地,其可以是固定的或者預(yù)先指定的碼本)。 碼本標(biāo)識(shí)符標(biāo)識(shí)在向存儲(chǔ)器寫(xiě)入數(shù)據(jù)時(shí)由編碼器使用的碼本。接下來(lái),通過(guò)使用所標(biāo)識(shí)的 碼本來(lái)生成部分讀取數(shù)據(jù)向量。在一個(gè)示例性實(shí)施方式中,碼本是線(xiàn)性碼,并且通過(guò)將虛擬 讀取向量與代表所標(biāo)識(shí)碼本的矩陣相乘來(lái)生成部分讀取數(shù)據(jù)向量。在框208,將部分讀取數(shù) 據(jù)向量合并成讀取數(shù)據(jù)(也稱(chēng)為讀取消息)。在框210,輸出讀取數(shù)據(jù)(例如,輸出給讀取 請(qǐng)求者)。圖3示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在異構(gòu)存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的系 統(tǒng)的框圖。圖3中所繪的系統(tǒng)包括異構(gòu)存儲(chǔ)器302,其包括多組存儲(chǔ)器單元;測(cè)試器304, 用于確定存儲(chǔ)器單元的物理特性;編碼器306,用于接收寫(xiě)入數(shù)據(jù)以及生成寫(xiě)入字以便存 儲(chǔ)在存儲(chǔ)器單元中;以及解碼器308,用于從存儲(chǔ)器接收讀取字以及生成讀取數(shù)據(jù)。諸如參 考圖1描述的示例性寫(xiě)入過(guò)程312使用測(cè)試器304、編碼器306以及由寫(xiě)入過(guò)程312和讀取 過(guò)程314 二者使用的共享碼310 (例如,碼本標(biāo)識(shí)符和碼本)。諸如參考圖2描述的示例性 讀取過(guò)程314使用解碼器308和共享碼310。
圖4示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在相變存儲(chǔ)器(PCM)中存儲(chǔ)數(shù)據(jù) 的系統(tǒng)的框圖。圖4中所繪的系統(tǒng)包括異構(gòu)PCM存儲(chǔ)器402,其包括多組存儲(chǔ)器單元;阻 抗范圍測(cè)試器404,用于確定與存儲(chǔ)器單元相關(guān)聯(lián)的阻抗水平(也即,此例中的物理特性是 阻抗水平);編碼器406,用于接收寫(xiě)入數(shù)據(jù)以及生成PCM寫(xiě)入字以便存儲(chǔ)在存儲(chǔ)器單元中; 以及解碼器408,用于從PCM存儲(chǔ)器402接收PCM讀取字以及生成讀取數(shù)據(jù)。對(duì)PCM存儲(chǔ)器 的示例性寫(xiě)入過(guò)程412使用阻抗范圍測(cè)試器404、編碼器406以及由寫(xiě)入過(guò)程412和讀取過(guò) 程414 二者使用的共享碼410。對(duì)PCM存儲(chǔ)器402的示例性讀取過(guò)程414使用解碼器408 和共享碼410。在另一實(shí)施方式中,可以利用阻抗測(cè)試器來(lái)替換阻抗范圍測(cè)試器,所述阻抗 測(cè)試器在阻抗水平集合是不連續(xù)集的情況下,確定每個(gè)集合所支持的阻抗水平集合。在一個(gè)備選實(shí)施方式中,存儲(chǔ)器是閃存,并且存儲(chǔ)器單元是閃存單元。在此實(shí)施方 式中,用來(lái)存儲(chǔ)信息的物理特性是浮柵(floatinggate)電荷。閃存中的異構(gòu)性源自閃存單 元的電荷存儲(chǔ)特性的變化。圖5示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在PCM存儲(chǔ)器402中存儲(chǔ)數(shù)據(jù)的 系統(tǒng)的框圖。圖5描繪了可由示例性實(shí)施方式實(shí)現(xiàn)的示例性編碼器406的更為詳細(xì)的視圖。 示例性編碼器406包括二進(jìn)制存儲(chǔ)器約束計(jì)算器502、碼選擇器506、二進(jìn)制寫(xiě)入字計(jì)算器 508、數(shù)據(jù)二進(jìn)制化器510以及PCM字寫(xiě)入器504。數(shù)據(jù)二進(jìn)制化器510接收寫(xiě)入數(shù)據(jù)并將 其分割為多個(gè)部分寫(xiě)入數(shù)據(jù)向量,其中的每一個(gè)部分寫(xiě)入數(shù)據(jù)向量與一個(gè)虛擬存儲(chǔ)器相關(guān) 聯(lián)。在一個(gè)示例性實(shí)施方式中,寫(xiě)入數(shù)據(jù)是二進(jìn)制的,并且數(shù)據(jù)二進(jìn)制化器將其分割為多個(gè) 二進(jìn)制向量,其中第i個(gè)二進(jìn)制向量中的位的數(shù)目是通過(guò)確定可被寫(xiě)入第i個(gè)虛擬存儲(chǔ)器 中的位的數(shù)目來(lái)確定的。這是根據(jù)由二進(jìn)制存儲(chǔ)器約束計(jì)算器502所計(jì)算的存儲(chǔ)器約束來(lái) 計(jì)算的。在另一示例性實(shí)施方式中,寫(xiě)入數(shù)據(jù)是非二進(jìn)制的,并且數(shù)據(jù)二進(jìn)制化器510將 其轉(zhuǎn)換為二進(jìn)制的,繼而將其劃分為多個(gè)二進(jìn)制向量。在圖5所示的實(shí)施方式中,將虛擬存 儲(chǔ)器表示為虛擬存儲(chǔ)器向量。在一個(gè)示例性實(shí)施方式中,虛擬存儲(chǔ)器的數(shù)目取決于由阻抗 范圍測(cè)試器404所測(cè)量的PCM單元中的可能阻抗值的數(shù)目。二進(jìn)制存儲(chǔ)器約束計(jì)算器502 接收該組存儲(chǔ)器單元中每個(gè)單元的所支持阻抗水平?;谧杩顾椒秶?,二進(jìn)制存儲(chǔ)器約 束計(jì)算器502標(biāo)識(shí)與虛擬存儲(chǔ)器相關(guān)聯(lián)的約束。碼選擇器506基于該組中的存儲(chǔ)器單元的 數(shù)目以及針對(duì)虛擬存儲(chǔ)器的約束來(lái)為每個(gè)虛擬存儲(chǔ)器選擇碼本。在一個(gè)備選實(shí)施方式中, 碼本是固定的并且對(duì)于讀取和寫(xiě)入過(guò)程二者都是先驗(yàn)已知的,因此不需要碼選擇器。二進(jìn) 制寫(xiě)入字計(jì)算器508計(jì)算虛擬寫(xiě)入向量。在一個(gè)示例性實(shí)施方式中,碼本是向虛擬寫(xiě)入向 量指派校正子(syndrome)的線(xiàn)性碼,并且針對(duì)給定的部分寫(xiě)入數(shù)據(jù)向量的虛擬寫(xiě)入向量 是通過(guò)計(jì)算以下向量來(lái)計(jì)算得到的,該向量與針對(duì)虛擬存儲(chǔ)器而生成的約束向量相符、并 且其校正子等于部分寫(xiě)入向量。由此,通過(guò)在考慮針對(duì)虛擬存儲(chǔ)器的約束下求解方程Hc = m中的c來(lái)計(jì)算虛擬寫(xiě)入向量;其中H是與針對(duì)虛擬存儲(chǔ)器的選定線(xiàn)性碼對(duì)應(yīng)的碼矩陣, “m”是與虛擬存儲(chǔ)器對(duì)應(yīng)的部分寫(xiě)入數(shù)據(jù)向量,而乘積Hc是與c對(duì)應(yīng)的校正子。一般而言, 方程Hc = m中的c具有多個(gè)可能解,每個(gè)可能解均是部分寫(xiě)入向量m的一個(gè)表示;期望的 表示是滿(mǎn)足虛擬存儲(chǔ)器約束的解向量c。PCM字寫(xiě)入器504將虛擬寫(xiě)入向量合并成將要寫(xiě) 入PCM存儲(chǔ)器402的寫(xiě)入字。圖6示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于從PCM存儲(chǔ)器402讀取數(shù)據(jù)的系統(tǒng)的框圖。圖6描繪了可由實(shí)施方式實(shí)現(xiàn)的示例性解碼器408的較為詳細(xì)的視圖。示例性 解碼器408包括PCM字讀取器602、數(shù)據(jù)二進(jìn)制化器604、二進(jìn)制字解碼器606和讀取數(shù)據(jù) 生成器608。PCM字讀取器602讀取由讀地址指定的一組單元中的每個(gè)單元。數(shù)據(jù)二進(jìn)制 化器604接收讀取字,基于可能阻抗值的范圍將讀取字分為多個(gè)虛擬讀取向量。將每個(gè)虛 擬讀取向量發(fā)送至獨(dú)立的二進(jìn)制字解碼器606。二進(jìn)制字解碼器606具有對(duì)在將該讀取字 寫(xiě)入PCM 402時(shí)使用的碼本的索引或者其他標(biāo)識(shí)符的訪問(wèn)權(quán)。在線(xiàn)性碼的情況下,二進(jìn)制 字解碼器606將與所標(biāo)識(shí)碼本相對(duì)應(yīng)的碼矩陣乘以虛擬讀取向量的內(nèi)容,以創(chuàng)建部分讀取 數(shù)據(jù)向量。讀取數(shù)據(jù)生成器608將部分讀取數(shù)據(jù)向量合并成讀取數(shù)據(jù)。繼而輸出讀取數(shù)據(jù) (例如,向數(shù)據(jù)請(qǐng)求者輸出)。圖7示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器到多個(gè)虛擬二進(jìn)制存儲(chǔ) 器的概念性分解。圖7所繪的示例包括存儲(chǔ)器塊702,其具有5個(gè)異構(gòu)存儲(chǔ)器單元。存儲(chǔ)器 單元的阻抗范圍水平具有4個(gè)值(0、1、2、3),并且因此阻抗范圍的物理特性可以在兩個(gè)位 面704中表示。單元阻抗水平的二進(jìn)制化中的每個(gè)位面對(duì)應(yīng)于虛擬存儲(chǔ)器(也稱(chēng)為“二進(jìn) 制存儲(chǔ)器”)之一。圖7描繪了二進(jìn)制存儲(chǔ)器1708和二進(jìn)制存儲(chǔ)器2 710。原始存儲(chǔ)器塊 702的異構(gòu)性以對(duì)虛擬存儲(chǔ)器單元的約束的形式來(lái)表現(xiàn)本身;具體地,單元3和單元4不能 存儲(chǔ)水平“10”和“11”,由此在二進(jìn)制存儲(chǔ)器2 710中,相應(yīng)的位置固定為“0”;也即,其值 不能變?yōu)椤?”。在一個(gè)示例性實(shí)施方式中,對(duì)虛擬存儲(chǔ)器的約束表示為約束向量。例如,針 對(duì)二進(jìn)制存儲(chǔ)器2 710的約束向量可以表示為BP2 :b = (3,4), ν = (0,0) 0圖8示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬二進(jìn)制存 儲(chǔ)器集合的等效約束的概念性分解。圖8類(lèi)似于圖7 存在存儲(chǔ)器塊802,并且其需要兩個(gè)位 面804來(lái)描述存儲(chǔ)器塊802的物理特性。在此示例中,單元2和單元5不能存儲(chǔ)水平“11”, 因此如果二進(jìn)制存儲(chǔ)器1 808中的單元2和/或單元5是“1”,則二進(jìn)制存儲(chǔ)器2 810中的 相應(yīng)單元固定為“0”。此示例說(shuō)明針對(duì)二進(jìn)制存儲(chǔ)器2 810的約束可以取決于存儲(chǔ)在二 進(jìn)制存儲(chǔ)器1 808中的二進(jìn)制數(shù)據(jù)。圖9示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬二進(jìn)制存 儲(chǔ)器集合的等效約束的概念性分解。圖9與圖7和圖8類(lèi)似存在存儲(chǔ)器塊902,并且其需 要兩個(gè)位面904來(lái)描述存儲(chǔ)器塊902的物理特性。在此示例中,如果位面1 908中的單元 5等于“1”,則位面2 910中的單元5固定在“0”。而且,如果位面1 908中的單元5等于 “0”,則位面2 910中的單元5固定為“1”。針對(duì)其來(lái)計(jì)算這種約束的虛擬存儲(chǔ)器可以是非二進(jìn)制的,可以證明例如非二進(jìn)制 的虛擬存儲(chǔ)器有利于降低需要計(jì)算的虛擬寫(xiě)入向量的數(shù)目。圖10示出了可由一個(gè)示例性 實(shí)施方式實(shí)現(xiàn)的異構(gòu)存儲(chǔ)器約束到對(duì)虛擬三進(jìn)制存儲(chǔ)器集合的等效約束的概念性分解。圖 10所繪的示例包括存儲(chǔ)器塊1002,其具有5個(gè)異構(gòu)存儲(chǔ)器單元。存儲(chǔ)器單元的阻抗范圍水 平具有9個(gè)值(0、1、2、3、4、5、6、7、8和9),因此阻抗范圍的物理特性可以在兩個(gè)三進(jìn)制符 號(hào)面(symbol-plane) 1004中表示。每個(gè)三進(jìn)制符號(hào)面對(duì)應(yīng)于虛擬存儲(chǔ)器(也稱(chēng)為“三進(jìn)制 存儲(chǔ)器”)之一。圖10描繪了三進(jìn)制存儲(chǔ)器1 1008和三進(jìn)制存儲(chǔ)器2 1010。原始存儲(chǔ)器 塊1002的異構(gòu)性以關(guān)于虛擬存儲(chǔ)器單元的約束的形式來(lái)表現(xiàn)本身;例如,單元5不能支持 大于水平1(三進(jìn)制中的“01”)的任何水平,因此三進(jìn)制存儲(chǔ)器1 1008中的相應(yīng)虛擬單元 被約束為小于2,并且三進(jìn)制存儲(chǔ)器2 1010中的相應(yīng)單元固定為0。類(lèi)似地,三進(jìn)制存儲(chǔ)器
122 1010中的虛擬單元2固定為0,因?yàn)閱卧?無(wú)法支持大于水平2(三進(jìn)制中的“02”)的任 何水平。作為另一示例,單元3僅支持水平“00,,、“01,,、“02,,、“ 10 ”和“ 11”。由此,如果將 要寫(xiě)入三進(jìn)制存儲(chǔ)器1 1008的位置3的符號(hào)是“0”或者“1”,則三進(jìn)制存儲(chǔ)器2 1010中的 虛擬單元3被約束為“0”或“1” ;否則其固定為“0”。圖11示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的二進(jìn)制寫(xiě)入字計(jì)算器1106和二進(jìn)制 字解碼器1110的框圖。寫(xiě)入過(guò)程生成針對(duì)第i個(gè)虛擬存儲(chǔ)器的寫(xiě)入數(shù)據(jù)C,其也稱(chēng)為虛擬 寫(xiě)入向量。寫(xiě)入過(guò)程包括二進(jìn)制存儲(chǔ)器約束計(jì)算器1102、碼選擇器1104和二進(jìn)制寫(xiě)入字 計(jì)算器1106。二進(jìn)制存儲(chǔ)器約束計(jì)算器1102從測(cè)試器接收物理特性以及與先前寫(xiě)入的虛 擬存儲(chǔ)器相對(duì)應(yīng)的虛擬寫(xiě)入向量,并生成描述針對(duì)位面之一的固定位置和固定值的約束向 量。將約束向量輸入碼選擇器1104,其基于約束向量的內(nèi)容以及該組存儲(chǔ)器單元中的存儲(chǔ) 器單元的數(shù)目來(lái)選擇碼本(在本例中,由二進(jìn)制碼矩陣表示)。此外,碼選擇器1104將約束 向量傳遞至二進(jìn)制字寫(xiě)入計(jì)算器1106。二進(jìn)制寫(xiě)入字計(jì)算器1106被輸入碼矩陣H、包括b 和ν的約束向量、以及寫(xiě)入數(shù)據(jù)m,以計(jì)算虛擬寫(xiě)入向量C。通過(guò)在滿(mǎn)足由約束向量指定的 約束的同時(shí)求解Hc = m中的“C”來(lái)計(jì)算虛擬寫(xiě)入向量C。將虛擬寫(xiě)入向量輸入PCM字寫(xiě)入 器,以便將針對(duì)該組的虛擬寫(xiě)入向量合并成寫(xiě)入字。此外,將該虛擬寫(xiě)入向量輸入二進(jìn)制存 儲(chǔ)器約束計(jì)算器1102,以用于獲得針對(duì)下一虛擬存儲(chǔ)器的約束向量。如圖11所繪的示例性實(shí)施方式中所描述的,讀取過(guò)程使用數(shù)據(jù)二進(jìn)制化器1108 和二進(jìn)制字解碼器1110。在數(shù)據(jù)二進(jìn)制化器1108處接收來(lái)自PCM字讀取器的讀取字。數(shù) 據(jù)二進(jìn)制化器將讀取字分割為多個(gè)虛擬讀取向量。將虛擬讀取向量之一隨同先前將該數(shù)據(jù) 寫(xiě)入該存儲(chǔ)器塊時(shí)所使用的碼本一起輸入到二進(jìn)制字解碼器1110。通過(guò)將虛擬讀取向量與 碼本相乘來(lái)生成部分讀取數(shù)據(jù)向量(也稱(chēng)作二進(jìn)制消息)。將部分讀取數(shù)據(jù)向量發(fā)送至讀 取字生成器,其將來(lái)自存儲(chǔ)器塊中每個(gè)虛擬存儲(chǔ)器的部分讀取數(shù)據(jù)向量合并成讀取數(shù)據(jù)。圖11所繪示例可以一般化為使用非二進(jìn)制存儲(chǔ)器約束和碼矩陣的情況。圖12示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的字寫(xiě)入器(諸如PCM字寫(xiě)入器504) 的框圖。PCM字寫(xiě)入器504將虛擬寫(xiě)入向量(c1···+··^合并成將要寫(xiě)入PCM存儲(chǔ)器402 的寫(xiě)入字(W1···^)?!癒”是一組存儲(chǔ)器單元中的單元數(shù)目,而“B”是該組存儲(chǔ)器單元中的虛 擬存儲(chǔ)器數(shù)目。圖12描繪了確定寫(xiě)入字內(nèi)容的示例方式,也可以實(shí)現(xiàn)合并虛擬寫(xiě)入向量以 創(chuàng)建寫(xiě)入字的其他方式。注意,生成虛擬寫(xiě)入向量的方式(具體地,其與虛擬存儲(chǔ)器約束的 相符性)確保了寫(xiě)入字中的每個(gè)符號(hào)是其將被寫(xiě)入的單元所支持的水平。這確保了向異構(gòu) 存儲(chǔ)器進(jìn)行正確寫(xiě)入。圖13示出了可由一個(gè)實(shí)施方式實(shí)現(xiàn)的PCM數(shù)據(jù)二進(jìn)制化器(諸如數(shù)據(jù)二進(jìn)制化 器604)的框圖。PCM字讀取器602從PCM存儲(chǔ)器接收讀取存儲(chǔ)器讀取地址處的讀取字(W1··· Wk),并將讀取字分割為多個(gè)虛擬讀取向量((^…(^…(^)。圖13描繪了確定寫(xiě)入字的內(nèi)容的 示例方式,也可以實(shí)現(xiàn)執(zhí)行分割的其他方式。圖14示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的二進(jìn)制存儲(chǔ)器約束計(jì)算器(諸如二 進(jìn)制存儲(chǔ)器約束計(jì)算器502)的框圖。圖14示出了針對(duì)與單元“i ”相對(duì)應(yīng)的“B”個(gè)虛擬存 儲(chǔ)器的約束(固定位和值)的約束的計(jì)算。由阻抗范圍測(cè)試器404測(cè)量的阻抗范圍用來(lái)確 定單元“i”所支持的整數(shù)值阻抗水平索引的集合。基于該集合以及在虛擬存儲(chǔ)器1到k-1 中的位置“i”寫(xiě)入的位,可以確定二進(jìn)制存儲(chǔ)器“k”中的位置“i”是否是固定的(以及如果是,固定值是什么)。圖15示出了可由圖14所繪框圖來(lái)實(shí)現(xiàn)的用于計(jì)算二進(jìn)制約束的過(guò)程。在圖15 所繪的示例中,單元“i ”可以支持由索引1、2、3、4和5表示的阻抗水平。該信息被輸入到 二進(jìn)制化器1502,其創(chuàng)建與單元水平索引相對(duì)應(yīng)的二進(jìn)制化索引。因?yàn)镻CM存儲(chǔ)器中存在 5個(gè)或者更多阻抗水平,因此存在至少三個(gè)虛擬存儲(chǔ)器(也稱(chēng)為二進(jìn)制存儲(chǔ)器)。圖15示 出了如何計(jì)算與三個(gè)虛擬存儲(chǔ)器的每一個(gè)中的位置“i”相對(duì)應(yīng)的存儲(chǔ)器約束。將二進(jìn)制化 的索引輸入到二進(jìn)制存儲(chǔ)器1約束計(jì)算器1504,其確定二進(jìn)制化索引的最低有效位中包含 什么值。在此示例中,其包括“0”和“1” 二者,因此二進(jìn)制存儲(chǔ)器1中的位置“i”是非固定 的。在框1506,將值“0”寫(xiě)入二進(jìn)制存儲(chǔ)器1中的位“i”。該寫(xiě)入的輸入包括與二進(jìn) 制存儲(chǔ)器1相關(guān)聯(lián)的約束向量,該約束指定二進(jìn)制存儲(chǔ)器1中的位“i”是非固定的,因此可 以寫(xiě)入任何值。過(guò)程繼續(xù)到二進(jìn)制存儲(chǔ)器2約束計(jì)算器1508,其中輸入包括寫(xiě)入二進(jìn)制存 儲(chǔ)器1中的位“i”的數(shù)據(jù)值。假設(shè)“0”被寫(xiě)入二進(jìn)制存儲(chǔ)器1中的位“i”,計(jì)算其余的兼容 水平。如二進(jìn)制存儲(chǔ)器2約束計(jì)算器1508中所繪,其余兼容水平是(010和100),因?yàn)椤?” 位于最低有效位中(也即,二進(jìn)制存儲(chǔ)器1中)。二進(jìn)制存儲(chǔ)器2約束計(jì)算器確定二進(jìn)制 存儲(chǔ)器2位置中的“i”是非固定的。在框1510,使用來(lái)自二進(jìn)制存儲(chǔ)器2約束計(jì)算器1508的約束向量作為輸入,將值 “ 1”寫(xiě)入二進(jìn)制存儲(chǔ)器2中的位“i”。接下來(lái),處理繼續(xù)到二進(jìn)制存儲(chǔ)器3約束計(jì)算器1512, 其中輸入包括寫(xiě)入到二進(jìn)制存儲(chǔ)器1和2中的位“i”的數(shù)據(jù)值。假設(shè)在二進(jìn)制存儲(chǔ)器1中 的位“i”寫(xiě)入了“0”并在二進(jìn)制存儲(chǔ)器2中的位“i”寫(xiě)入了“1”,計(jì)算其余兼容水平。如二 進(jìn)制存儲(chǔ)器3約束計(jì)算器1512中所繪,其余兼容水平是(010)。二進(jìn)制存儲(chǔ)器3約束計(jì)算 器1512確定二進(jìn)制存儲(chǔ)器3中的位置“i”固定為“0”。該約束信息被輸入到二進(jìn)制存儲(chǔ)器 3字寫(xiě)入過(guò)程。在一個(gè)實(shí)施方式中,為了計(jì)算虛擬寫(xiě)入向量,需要求解方程Hc = m,使得c滿(mǎn)足特 定地固定位置約束。這可以通過(guò)多種方法來(lái)實(shí)現(xiàn),包括文獻(xiàn)中已知的多個(gè)方法。在一個(gè)示 例性實(shí)施方式中,通過(guò)計(jì)算非正則低密度奇偶校驗(yàn)(LDPC)的奇偶校驗(yàn)矩陣來(lái)計(jì)算矩陣H, 并且寫(xiě)入過(guò)程使用高斯消元來(lái)計(jì)算向量。在另一示例性實(shí)施方式中,通過(guò)計(jì)算從有限字母 表均勻取得的隨機(jī)矩陣來(lái)計(jì)算矩陣H,并且寫(xiě)入過(guò)程使用高斯消元來(lái)計(jì)算向量。在另一示例 性實(shí)施方式中,通過(guò)計(jì)算盧比變換(LT)碼的生成器矩陣的轉(zhuǎn)置來(lái)計(jì)算矩陣H,并且寫(xiě)入過(guò) 程使用剝離來(lái)計(jì)算虛擬寫(xiě)入向量“c ”。在另一實(shí)施方式中,矩陣H表示卷積碼,并且編碼算 法使用基于柵格(trellis)的代價(jià)最小化來(lái)計(jì)算虛擬寫(xiě)入向量“c ”,其中與每個(gè)柵格路徑 相關(guān)聯(lián)的代價(jià)是每個(gè)單元的阻抗水平和將寫(xiě)入該單元的值的函數(shù)。在另一實(shí)施方式中,通 過(guò)計(jì)算諸如BCH或者Reed-Solomon碼的代數(shù)碼的生成器矩陣或者奇偶校驗(yàn)矩陣來(lái)計(jì)算矩 陣H。在另一示例性實(shí)施方式中,寫(xiě)入過(guò)程求解線(xiàn)性規(guī)劃以找到向量c,該向量c滿(mǎn)足由虛 擬存儲(chǔ)器中的每個(gè)存儲(chǔ)器單元的可采取的阻抗值的范圍施加的、對(duì)每個(gè)分量Ci值的線(xiàn)性約 束,使得矩陣H與c的乘積是將要編碼的寫(xiě)入向量m。圖16示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的使用隨機(jī)二進(jìn)制和LDPC碼以及高斯 消元的二進(jìn)制寫(xiě)入字計(jì)算器的框圖。術(shù)語(yǔ)“第i個(gè)二進(jìn)制存儲(chǔ)器”表示虛擬存儲(chǔ)器之一。第 i個(gè)虛擬存儲(chǔ)器中的固定位置表示為b,其具有相應(yīng)值V。所使用的碼本稱(chēng)作H。第i個(gè)二進(jìn)制消息“m”涉及將要寫(xiě)入第i個(gè)虛擬存儲(chǔ)器的那部分寫(xiě)入數(shù)據(jù)。圖17示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的使用盧比變換(LT)碼和剝離的二進(jìn) 制寫(xiě)入字計(jì)算器以及使用線(xiàn)程規(guī)劃的非二進(jìn)制寫(xiě)入字計(jì)算器的框圖。在一個(gè)示例性實(shí)施方式中,如下計(jì)算滿(mǎn)足虛擬存儲(chǔ)器約束的虛擬寫(xiě)入向量C。對(duì) 于每個(gè)虛擬存儲(chǔ)器,寫(xiě)入過(guò)程和讀取過(guò)程共享生成器矩陣G和奇偶校驗(yàn)矩陣H,使得GHt = 0。首先,找到向量u,使得Hu = m。接下來(lái),找到向量v,使得向量Gv+m滿(mǎn)足虛擬存儲(chǔ)器約 束(其中“ + ”表示模2加)。繼而根據(jù)c = Gv+m計(jì)算C。在該示例性實(shí)施方式中,通過(guò)從 所設(shè)計(jì)的概率分布選擇列的權(quán)重來(lái)構(gòu)建矩陣G,使得可以使用剝離算法來(lái)計(jì)算向量ν。在另 一示例性實(shí)施方式中,矩陣G是代數(shù)碼的生成器矩陣或者奇偶校驗(yàn)矩陣。一般而言,對(duì)于選定的碼矩陣、向量m和給定約束,方程Hc = m不可解的概率存在 非零情況。圖18示出了可由一個(gè)實(shí)施方式實(shí)現(xiàn)以降低此概率的使用級(jí)聯(lián)碼的寫(xiě)入字計(jì)算 器的框圖。在此示例性實(shí)施方式中,對(duì)于每個(gè)虛擬存儲(chǔ)器,計(jì)算在寫(xiě)入過(guò)程和讀取過(guò)程間共 享的兩個(gè)二進(jìn)制矩陣Hl和H2。對(duì)于給定的虛擬存儲(chǔ)器,寫(xiě)入過(guò)程找到這樣的向量cl和c2, 其使得Hlcl = c2并且H2c2等于將要存儲(chǔ)在存儲(chǔ)器中的消息。將字cl寫(xiě)入存儲(chǔ)器。讀取 過(guò)程通過(guò)計(jì)算H2Hlcl來(lái)重建消息。這種級(jí)聯(lián)編碼可以用來(lái)降低無(wú)法找到滿(mǎn)足存儲(chǔ)器約束 并且可從其恢復(fù)消息的適當(dāng)虛擬寫(xiě)入向量c的概率。在一個(gè)備選示例性實(shí)施方式中,寫(xiě)入過(guò)程和讀取過(guò)程共享多個(gè)H矩陣及其預(yù)定的 順序次序。如果寫(xiě)入過(guò)程所使用的第一 H矩陣無(wú)法得到與存儲(chǔ)器異構(gòu)性相符的向量c,則寫(xiě) 入過(guò)程利用第二 H矩陣重試。這繼續(xù)進(jìn)行,直到計(jì)算出與存儲(chǔ)器異構(gòu)性相符的向量C。寫(xiě)入 成功的步驟的索引成為要存儲(chǔ)的元數(shù)據(jù)的一部分。圖19示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的一個(gè)過(guò)程,其中寫(xiě)入過(guò)程編碼器嘗 試預(yù)定義矩陣序列來(lái)找到以下矩陣,該矩陣生成對(duì)消息進(jìn)行編碼并且滿(mǎn)足異構(gòu)存儲(chǔ)器約束 的碼字。用來(lái)創(chuàng)建c的矩陣索引是元數(shù)據(jù),可以如前所述那樣對(duì)其存儲(chǔ)。讀取過(guò)程解碼器 具有對(duì)相同序列矩陣的訪問(wèn)權(quán),并且使用元數(shù)據(jù)碼索引來(lái)確定使用哪個(gè)矩陣用于解碼。使用可以具有較大數(shù)目的條目的多個(gè)碼矩陣對(duì)于空間或者時(shí)間復(fù)雜性而言可能 是不利的。這可以通過(guò)以下方式來(lái)解決通過(guò)對(duì)單個(gè)矩陣應(yīng)用一系列函數(shù)(其可以是偽隨 機(jī)的)來(lái)生成多個(gè)矩陣。圖20示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的過(guò)程,其中寫(xiě)入過(guò)程 編碼器使用偽隨機(jī)函數(shù)生成器和碼矩陣來(lái)生成圖19所繪的預(yù)定義矩陣序列。解碼器共享 相同的偽隨機(jī)生成器??梢允褂玫暮瘮?shù)的示例是置換H的列的函數(shù)。由此,每個(gè)函數(shù)對(duì)應(yīng) 于H的列的不同的偽隨機(jī)列置換。在此實(shí)施方式中,寫(xiě)入過(guò)程和讀取過(guò)程共享H矩陣,并且 共享H矩陣的列置換的偽隨機(jī)或預(yù)定順序次序。寫(xiě)入過(guò)程最初使用通過(guò)H矩陣的第一列置 換生成的矩陣。如果這得到了與存儲(chǔ)器異構(gòu)性不相符的向量c,則寫(xiě)入過(guò)程利用通過(guò)H矩陣 的第二列置換生成的矩陣來(lái)重寫(xiě)數(shù)據(jù)。這繼續(xù)進(jìn)行,直到計(jì)算出與存儲(chǔ)器異構(gòu)性相符的向 量C。寫(xiě)入成功的步驟的索引稱(chēng)為要存儲(chǔ)的元數(shù)據(jù)的一部分。在一個(gè)示例性實(shí)施方式中,每個(gè)存儲(chǔ)器單元支持相同數(shù)目的阻抗水平(假定為 η),但是阻抗水平的范圍隨單元而變化。在這種情況下,寫(xiě)入過(guò)程通過(guò)計(jì)算單元i所支持的 水平1使得1模η = d,來(lái)編碼單元i中的數(shù)據(jù)值d(0 <= d<=n-l)。將該水平寫(xiě)入該 單元。讀取過(guò)程將數(shù)據(jù)值重構(gòu)為d = 1模η。在一個(gè)示例性實(shí)施方式中,讀取過(guò)程還可以通過(guò)執(zhí)行破壞性讀取來(lái)確定單元的狀
15態(tài)。這包括步驟在讀取數(shù)據(jù)之后,使用適當(dāng)?shù)木幊堂}沖將一組單元中的每個(gè)單元編程至其 SET和RESET水平,以及測(cè)量SET和RESET阻抗水平。此后將數(shù)據(jù)重寫(xiě)回單元中。在一個(gè)實(shí) 施方式中,寫(xiě)入過(guò)程使用阻抗水平的二進(jìn)制分解,以便按照與單元異構(gòu)性相符的方式將數(shù) 據(jù)寫(xiě)入存儲(chǔ)器單元。讀取過(guò)程使用其關(guān)于單元狀態(tài)的知識(shí)來(lái)正確地解釋所寫(xiě)入的數(shù)據(jù)。圖21示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于當(dāng)讀取和寫(xiě)入過(guò)程二者都可以 測(cè)量每個(gè)單元所支持的阻抗水平時(shí)在PCM存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的系統(tǒng)的框圖。圖21中所繪 的系統(tǒng)包括異構(gòu)PCM存儲(chǔ)器2102,其包括多組存儲(chǔ)器單元;阻抗范圍測(cè)試器2104,用于 在向存儲(chǔ)器2102進(jìn)行寫(xiě)入時(shí)確定阻抗水平;編碼器2106,用于接收寫(xiě)入數(shù)據(jù)以及生成PCM 寫(xiě)入字以存儲(chǔ)在存儲(chǔ)器2102中;解碼器2112,用于從PCM存儲(chǔ)器2102接收PCM讀取字以及 生成讀取數(shù)據(jù);以及阻抗范圍測(cè)試器2110,用于在讀取時(shí)確定阻抗范圍。對(duì)PCM存儲(chǔ)器的 示例性寫(xiě)入過(guò)程2108使用阻抗范圍測(cè)試器2104和編碼器2106。對(duì)PCM存儲(chǔ)器2102的示 例性讀取過(guò)程2114使用解碼器2112和阻抗范圍測(cè)試器2110。在一個(gè)示例性實(shí)施方式中, 阻抗范圍測(cè)試器2104和2110是合并的。圖22示出了用于當(dāng)讀取和寫(xiě)入過(guò)程二者都可以測(cè)試每個(gè)單元所支持的阻抗水平 時(shí)向PCM存儲(chǔ)器2102寫(xiě)入數(shù)據(jù)的系統(tǒng)的框圖。圖22示出了可由一個(gè)示例性實(shí)施方式實(shí) 現(xiàn)的編碼器2106的較為詳細(xì)的視圖。示例性編碼器2106包括二進(jìn)制存儲(chǔ)器約束計(jì)算器 2202、寫(xiě)入消息位塊2204、數(shù)據(jù)二進(jìn)制化器2208以及PCM字寫(xiě)入器2206??捎蓤D22的系 統(tǒng)實(shí)現(xiàn)的一個(gè)示例性寫(xiě)入過(guò)程包括接收寫(xiě)入數(shù)據(jù)以及與一組異構(gòu)存儲(chǔ)器單元相對(duì)應(yīng)的寫(xiě) 入地址。確定存儲(chǔ)器單元的物理特性。將寫(xiě)入數(shù)據(jù)分割為多個(gè)部分寫(xiě)入數(shù)據(jù)向量,其中的 每一個(gè)部分寫(xiě)入數(shù)據(jù)向量與一個(gè)虛擬存儲(chǔ)器相關(guān)聯(lián)。這可以基于針對(duì)每個(gè)虛擬存儲(chǔ)器而標(biāo) 識(shí)的存儲(chǔ)器約束來(lái)完成。針對(duì)每個(gè)虛擬存儲(chǔ)器執(zhí)行以下步驟生成描述虛擬存儲(chǔ)器中的存 儲(chǔ)器單元的約束向量(例如,由二進(jìn)制存儲(chǔ)器約束計(jì)算器2202來(lái)執(zhí)行),該生成響應(yīng)于存儲(chǔ) 器單元的物理特性、響應(yīng)于針對(duì)一組存儲(chǔ)器單元的任何先前生成的約束向量、以及響應(yīng)于 針對(duì)該組存儲(chǔ)器單元的任何先前生成的虛擬寫(xiě)入向量;以及響應(yīng)于約束向量和部分寫(xiě)入數(shù) 據(jù)來(lái)計(jì)算虛擬寫(xiě)入向量(例如,由寫(xiě)入消息位塊2204來(lái)執(zhí)行)。通過(guò)簡(jiǎn)單地將部分寫(xiě)入數(shù) 據(jù)的位按順序?qū)懭胩摂M存儲(chǔ)器、跳過(guò)固定為某值的每個(gè)虛擬存儲(chǔ)器單元,來(lái)生成虛擬寫(xiě)入 向量。PCM字寫(xiě)入器2206將虛擬寫(xiě)入向量合并成寫(xiě)入字,該寫(xiě)入字被輸出到該組存儲(chǔ)器單兀。圖23示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在讀取和寫(xiě)入過(guò)程二者都可以 測(cè)量每個(gè)單元所支持的阻抗水平時(shí)從PCM存儲(chǔ)器2102讀取數(shù)據(jù)的系統(tǒng)的框圖。圖23示出 了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的示例性解碼器2112的較為詳細(xì)的視圖。示例性解碼器 2112包括PCM字讀取器/重寫(xiě)器2306、數(shù)據(jù)二進(jìn)制化器2304、二進(jìn)制存儲(chǔ)器約束計(jì)算器 2302、讀取消息位塊2308以及讀取數(shù)據(jù)生成器2310??捎蓤D23的系統(tǒng)實(shí)現(xiàn)的一個(gè)示例性 讀取過(guò)程包括從一組存儲(chǔ)器單元接收讀取字(例如,由PCM字讀取器/重寫(xiě)器2306來(lái)執(zhí) 行),以及確定存儲(chǔ)器單元的物理特性(例如,由阻抗范圍測(cè)試器2110來(lái)執(zhí)行)?;谖锢?屬性將讀取字分割為多個(gè)虛擬讀取向量(例如,由二進(jìn)制存儲(chǔ)器約束計(jì)算器2302來(lái)執(zhí)行)。 針對(duì)每個(gè)虛擬存儲(chǔ)器執(zhí)行以下步驟生成描述虛擬存儲(chǔ)器中的存儲(chǔ)器單元的約束向量,該 生成響應(yīng)于存儲(chǔ)器單元的物理特性、響應(yīng)于針對(duì)該組存儲(chǔ)器單元的任何先前生成的約束向 量以及響應(yīng)于針對(duì)該組存儲(chǔ)器單元的任何先前生成的虛擬讀取向量;以及響應(yīng)于約束向量來(lái)生成部分讀取數(shù)據(jù)向量(例如,由讀取消息位塊2308來(lái)執(zhí)行)。該部分讀取向量是通過(guò) 簡(jiǎn)單地從虛擬存儲(chǔ)器按序讀取位并且丟棄從每個(gè)虛擬存儲(chǔ)器單元讀取的固定為某值的位 來(lái)生成的。部分讀取數(shù)據(jù)向量由讀取數(shù)據(jù)生成器2310合并成讀取數(shù)據(jù),并且該讀取數(shù)據(jù)被 輸出。在一個(gè)示例性實(shí)施方式中,每個(gè)單元具有水平的子集,其可以被寫(xiě)入,但是在寫(xiě)入 時(shí)間和功率方面的代價(jià)增加。在一個(gè)示例性實(shí)施方式中,寫(xiě)入過(guò)程執(zhí)行圖1中描述的方法, 但是如果得到的向量c與其他水平不相符,則使用加強(qiáng)的代價(jià)水平。在另一示例性實(shí)施方 式中,寫(xiě)入過(guò)程針對(duì)給定的代價(jià)約束來(lái)計(jì)算進(jìn)行寫(xiě)入的最優(yōu)水平集合,并繼而使用圖1的 方法來(lái)將數(shù)據(jù)寫(xiě)入這些水平。在這兩個(gè)實(shí)施方式中,讀取過(guò)程使用圖2的方法。在一個(gè)示例性實(shí)施方式中,除了異構(gòu)之外,單元水平還是有噪聲的。如本領(lǐng)域中 已知的,噪聲表示存儲(chǔ)器的物理特性隨時(shí)間的改變。寫(xiě)入過(guò)程可以如圖1中所述采用二進(jìn) 制虛擬存儲(chǔ)器集合來(lái)執(zhí)行單元水平的二進(jìn)制化。隨后,寫(xiě)入過(guò)程使用嵌套碼來(lái)向每個(gè)虛擬 存儲(chǔ)器進(jìn)行寫(xiě)入。在一個(gè)示例性實(shí)施方式中,寫(xiě)入和讀取過(guò)程共享矩陣Hl和H,使得Ht = [H1T|H2T]。這里,Ht表示矩陣H的轉(zhuǎn)置。寫(xiě)入過(guò)程計(jì)算向量c,使得H2c是待存儲(chǔ)的消息、 c滿(mǎn)足存儲(chǔ)器的異構(gòu)性并且Hlc為0。給定噪聲向量C’,讀取過(guò)程計(jì)算向量c,使得c接近 C’(例如在漢明距離方面)并且Hlc = 0。繼而讀取過(guò)程將消息重建為H2c。矩陣Hl和H2 可以是這樣的H是用于諸如BCH或者Reed-Solomon碼之類(lèi)的代數(shù)碼的生成器矩陣或者奇 偶校驗(yàn)矩陣。圖24示出了可由一個(gè)示例性實(shí)施方式實(shí)現(xiàn)的用于在噪聲異構(gòu)存儲(chǔ)器中存儲(chǔ)數(shù)據(jù) 的二進(jìn)制字計(jì)算器和二進(jìn)制字解碼器。圖24所繪的解碼器使用矩陣H1來(lái)執(zhí)行錯(cuò)誤修正并 獲取C。繼而,根據(jù)m = H2c計(jì)算消息m。在一個(gè)示例性實(shí)施方式中,寫(xiě)入過(guò)程生成的要存儲(chǔ)在存儲(chǔ)器中的元數(shù)據(jù)包括關(guān)于 矩陣H的部分信息。作為一個(gè)示例,寫(xiě)入過(guò)程可以選擇使用多個(gè)可能的H矩陣之一,并且部 分信息包含這樣的數(shù)據(jù),該數(shù)據(jù)允許讀取過(guò)程辨別寫(xiě)入過(guò)程使用了哪個(gè)H矩陣。作為另一 示例,部分信息包含這樣的數(shù)據(jù),該數(shù)據(jù)允許接收者重建由寫(xiě)入過(guò)程使用的H矩陣,其中H 矩陣是由讀取和寫(xiě)入過(guò)程二者偽隨機(jī)生成的。在一個(gè)示例性實(shí)施方式中,用來(lái)存儲(chǔ)信息的物理特性是多維的。在一個(gè)示例性實(shí) 施方式中,使用多個(gè)電壓測(cè)量來(lái)讀取存儲(chǔ)在PCM存儲(chǔ)器元件中的信息,并且元件阻抗對(duì)于 不同電壓是不同的。跨多個(gè)電壓信號(hào)的合并單元響應(yīng)形成一個(gè)多維值,其被用來(lái)存儲(chǔ)信息。 存儲(chǔ)器是異構(gòu)的,這是因?yàn)槊總€(gè)維度中的每個(gè)單元所支持的值范圍對(duì)于不同單元來(lái)說(shuō)是 不同的。圖25和圖26示出了可以如何將異構(gòu)多維存儲(chǔ)器約束分解為對(duì)虛擬二進(jìn)制存儲(chǔ)器 集合的等效一維約束的示例性實(shí)施方式。在此示例中,在圖25中示出了一個(gè)具有5個(gè)單元 的存儲(chǔ)器塊2502,其中表征每個(gè)單元的阻抗值是二維的。單元1在第一維中支持3個(gè)水平, 并且在第二維中支持1個(gè)水平。單元2在第一維中支持1個(gè)水平,并且在第二維中支持2 個(gè)水平。單元3在第一維中支持2個(gè)水平,并且在第二維中支持2個(gè)水平。單元4在第一 維中支持4個(gè)水平,并且在第二維中支持2個(gè)水平。單元5在第一維中支持4個(gè)水平,并且 在第二維中支持1個(gè)水平??梢酝ㄟ^(guò)選擇覆蓋所有2D值的任何二維值排序,來(lái)將多維值的 整個(gè)范圍轉(zhuǎn)換為等效的一維范圍。示例性排序在表2504中示出。繼而每個(gè)單元支持來(lái)自 等效的ID水平范圍的水平集合。表2506示出了當(dāng)轉(zhuǎn)換為表2504中描述的ID值時(shí),異構(gòu)
17存儲(chǔ)器塊2502的每個(gè)單元所支持的水平。應(yīng)當(dāng)注意,一個(gè)集合所支持的ID水平集合可以 是非連續(xù)的或者連續(xù)的。例如,單元1支持ID水平0、2和4,其是非連續(xù)的水平集合。在 圖26中,示出了如何將這一具有多維值的異構(gòu)存儲(chǔ)器分解為虛擬二進(jìn)制存儲(chǔ)器,該分解是 利用對(duì)這些虛擬存儲(chǔ)器的虛擬單元的已計(jì)算出的約束進(jìn)行的。由于存在總計(jì)8個(gè)ID水平, 因此需要3個(gè)二進(jìn)制存儲(chǔ)器。二進(jìn)制存儲(chǔ)器12602中的虛擬單元1和5被約束為固定為0。 二進(jìn)制存儲(chǔ)器22604中的虛擬單元2被約束為固定為0 ;二進(jìn)制存儲(chǔ)器2中的其他單元不 受約束。在二進(jìn)制存儲(chǔ)器32606中,虛擬單元1、2和3具有各種約束。一旦已經(jīng)計(jì)算出這 些約束,則使用先前描述的技術(shù)在該存儲(chǔ)器中有效地存儲(chǔ)信息。在一個(gè)示例性實(shí)施方式中,關(guān)于單元物理特性的信息僅部分可獲得。例如,如果只 有所有單元的子集的物理特性可獲得,則情況可能如此。在這種情況下,使用上文描述的技 術(shù),使得被寫(xiě)入存儲(chǔ)器的數(shù)據(jù)向量滿(mǎn)足從已知的部分單元信息導(dǎo)出的約束。在一個(gè)示例性實(shí)施方式中,由存儲(chǔ)器單元異構(gòu)性施加的約束集合的表現(xiàn)形式是對(duì) 可以存儲(chǔ)在給定單元中或者給定單元的給定位面中的字母(二進(jìn)制或非二進(jìn)制)的限制, 并且該限制跨不同的單元以及跨不同的位面而變化。當(dāng)存儲(chǔ)器元件使用不同于阻抗的物理特性來(lái)存儲(chǔ)信息、并且所述物理特性展現(xiàn)出 跨不同存儲(chǔ)器元件的變化性時(shí),也可以使用上文描述的技術(shù)。這些技術(shù)還可以用來(lái)提高存 儲(chǔ)器芯片的產(chǎn)率,因?yàn)槠湓试S在具有某些或者全部異構(gòu)單元的存儲(chǔ)器中的有效數(shù)據(jù)存儲(chǔ)。 在原來(lái)的(naive)系統(tǒng)中,可能需要丟棄具有的不支持特定的預(yù)先指定的存儲(chǔ)器水平范圍 的單元超過(guò)特定比例的任何存儲(chǔ)器芯片。這可能壓低產(chǎn)率。反之,使用在此描述的技術(shù),不 支持預(yù)先指定的存儲(chǔ)器水平范圍的單元仍然可以用來(lái)存儲(chǔ)信息。由此,需要丟棄的芯片很 少,從而提高產(chǎn)率。技術(shù)效果和益處包括以下能力在具有影響每個(gè)單元可存儲(chǔ)的數(shù)據(jù)類(lèi)型和數(shù)據(jù)量 的任何類(lèi)型的異構(gòu)性所表征的元件的任何存儲(chǔ)器中存儲(chǔ)信息。與試圖在部分損壞的存儲(chǔ)器 中存儲(chǔ)數(shù)據(jù)的先前方法相比,這提供了增強(qiáng)的靈活性。示例性實(shí)施方式通過(guò)增加可存儲(chǔ)的 信息量而允許非常有效的存儲(chǔ)器存儲(chǔ)。示例性實(shí)施方式還可以用來(lái)提高存儲(chǔ)器產(chǎn)率,這是 通過(guò)允許在具有展示出不完美的可變物理特性的單元的存儲(chǔ)器上進(jìn)行有效數(shù)據(jù)存儲(chǔ)、而不 是丟棄這種芯片而得到的。在此使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施方式的目的,而并非意在限制本發(fā)明。 在此使用的單數(shù)形式“一個(gè)”、“一種”、“該”同樣意在包括復(fù)數(shù)形式,除非上下文另行明確指 明。還將理解,當(dāng)說(shuō)明書(shū)中使用術(shù)語(yǔ)“包括”和/或“包含”時(shí),其指定所記載特征、整數(shù)、步 驟、操作、元件和/或組件的存在,但是并不排除一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元 件組件和/或其群組的存在或增加。所附權(quán)利要求書(shū)中所有裝置或方法加功能元素的相應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等效項(xiàng) 意在包括如特別要求保護(hù)的、與其他要求保護(hù)的元件相結(jié)合來(lái)執(zhí)行所述功能的任何結(jié)構(gòu)、 材料或者動(dòng)作。出于說(shuō)明和描述的目的,已經(jīng)給出了對(duì)本發(fā)明的描述,但在并非意在窮舉或 者將本發(fā)明限于所公開(kāi)的形式。在不脫離本發(fā)明范圍和精神的情況下,多種修改和變形對(duì) 于本領(lǐng)域普通技術(shù)人員而言是顯而易見(jiàn)的。選擇和描述實(shí)施方式是為了最好地闡釋本發(fā)明 的原理以及可實(shí)踐應(yīng)用,并使本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,以用于適合預(yù) 期特定用途的、具有各種修改的各種實(shí)施方式。
在此描繪的流程圖僅僅是一個(gè)示例。在不脫離本發(fā)明精神的情況下,可以對(duì)該圖 或步驟(或操作)進(jìn)行各種變形。例如,可以按照不同的順序來(lái)執(zhí)行步驟,并且可以添加、 刪除或者修改步驟。所有這些變形都認(rèn)為是所要求保護(hù)的發(fā)明的部分。如上所述,本發(fā)明的實(shí)施方式可以通過(guò)計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程以及用于實(shí)踐這些過(guò)程 的裝置的形式來(lái)具體化。本發(fā)明的實(shí)施方式還可以通過(guò)包含在有形介質(zhì)中具體化的指令的 計(jì)算機(jī)程序代碼的形式來(lái)具體化,其中有形介質(zhì)諸如軟盤(pán)、CD-ROM、硬盤(pán)驅(qū)動(dòng)器或者任何其 他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中當(dāng)計(jì)算機(jī)程序代碼被載入計(jì)算機(jī)并由計(jì)算機(jī)執(zhí)行時(shí),該計(jì)算 機(jī)變?yōu)橛糜趯?shí)踐本發(fā)明的裝置。本發(fā)明還可以通過(guò)計(jì)算機(jī)程序代碼的形式來(lái)具體化,該計(jì) 算機(jī)程序代碼例如存儲(chǔ)在存儲(chǔ)介質(zhì)中、被載入計(jì)算機(jī)和/或由計(jì)算機(jī)來(lái)執(zhí)行或者通過(guò)某些 傳輸媒介(諸如通過(guò)電線(xiàn)路或線(xiàn)纜、通過(guò)光纖或者經(jīng)由電磁輻射)來(lái)傳輸,其中當(dāng)計(jì)算機(jī)程 序代碼被載入計(jì)算機(jī)并由計(jì)算機(jī)執(zhí)行時(shí),該計(jì)算機(jī)變?yōu)橛糜趯?shí)踐本發(fā)明的裝置。當(dāng)在通用 微處理器上實(shí)現(xiàn)時(shí),計(jì)算機(jī)程序代碼段配置該微處理器來(lái)創(chuàng)建特定的邏輯電路。盡管已經(jīng)描述了本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)該理解的是,本領(lǐng)域技術(shù)人員目前和 將來(lái)都可以進(jìn)行落入所附權(quán)利要求范圍內(nèi)的各種改進(jìn)和增強(qiáng)。這些權(quán)利要求應(yīng)當(dāng)被認(rèn)為維 持對(duì)前面描述的本發(fā)明的適當(dāng)保護(hù)。
權(quán)利要求
一種用于存儲(chǔ)數(shù)據(jù)的方法,所述方法包括向存儲(chǔ)器進(jìn)行寫(xiě)入的寫(xiě)入過(guò)程,其中所述存儲(chǔ)器中存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù)水平集合,以及所述寫(xiě)入過(guò)程在向所述存儲(chǔ)器寫(xiě)入時(shí)將所述不同的數(shù)據(jù)水平集合納入考慮;以及從所述存儲(chǔ)器進(jìn)行讀取的讀取過(guò)程,所述讀取過(guò)程首先獲得所述存儲(chǔ)器中的數(shù)據(jù),并隨后確定如何解釋所述數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述寫(xiě)入過(guò)程使用至少一個(gè)碼本,并且包括接收將要寫(xiě)入所述存儲(chǔ)器中的一組存儲(chǔ)器單元的寫(xiě)入消息;確定所述組中的存儲(chǔ)器單元的物理特性;響應(yīng)于所述物理特性,標(biāo)識(shí)與所述一組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ)器;針對(duì)所述虛擬存儲(chǔ)器中的每個(gè)虛擬存儲(chǔ)器,執(zhí)行生成描述所述虛擬存儲(chǔ)器中的虛擬單元的約束向量,所述生成響應(yīng)于所述存儲(chǔ)器單元 的所述物理特性、響應(yīng)于先前生成的約束向量以及響應(yīng)于先前生成的虛擬寫(xiě)入向量;以及響應(yīng)于碼本、所述約束向量以及所述寫(xiě)入消息,計(jì)算虛擬寫(xiě)入向量;將所述虛擬寫(xiě)入消息合并成寫(xiě)入字;以及將所述寫(xiě)入字輸出到所述一組存儲(chǔ)器單元。
3.根據(jù)權(quán)利要求2所述的方法,其中所述執(zhí)行進(jìn)一步包括基于所述約束向量的內(nèi)容 以及基于所述一組存儲(chǔ)器單元中的存儲(chǔ)器單元的數(shù)目,從多個(gè)碼本中選擇一個(gè)碼本;以及 存儲(chǔ)碼本標(biāo)識(shí)符以標(biāo)識(shí)用來(lái)計(jì)算所述虛擬寫(xiě)入向量的碼本。
4.根據(jù)權(quán)利要求2所述的方法,其中所述約束向量描述所述虛擬單元的位置和所支持 的水平。
5.根據(jù)權(quán)利要求2所述的方法,其中所述寫(xiě)入消息被分割為多個(gè)部分寫(xiě)入向量,每個(gè) 部分寫(xiě)入向量對(duì)應(yīng)于一個(gè)虛擬存儲(chǔ)器,碼本是向虛擬寫(xiě)入向量指派校正子的線(xiàn)性碼,并且 所述計(jì)算包括計(jì)算如下虛擬寫(xiě)入向量,所述虛擬寫(xiě)入向量與針對(duì)所述虛擬存儲(chǔ)器而生成的 約束向量相符,并且所述虛擬寫(xiě)入向量的校正子是與所述虛擬存儲(chǔ)器相對(duì)應(yīng)的部分寫(xiě)入向量。
6.根據(jù)權(quán)利要求2所述的方法,其中所述計(jì)算包括以下一個(gè)或多個(gè)高斯消元、剝離以 及基于柵格的解碼,并且碼本由以下一個(gè)或多個(gè)來(lái)定義隨機(jī)二進(jìn)制矩陣、二進(jìn)制低密度奇 偶校驗(yàn)(LDPC)校驗(yàn)矩陣、二進(jìn)制盧比變換(LT)矩陣、代數(shù)碼以及卷積碼。
7.根據(jù)權(quán)利要求2所述的方法,其中所述一組存儲(chǔ)器單元是相變存儲(chǔ)器(PCM),并且所 述物理特性包括每個(gè)存儲(chǔ)器單元的阻抗水平范圍。
8.根據(jù)權(quán)利要求2所述的方法,其中所述一組存儲(chǔ)器單元是PCM,所述物理特性包括每 個(gè)存儲(chǔ)器單元的阻抗水平范圍,所述約束向量描述所述虛擬存儲(chǔ)器單元的位置和所支持的 水平,并且所述寫(xiě)入字包括將要寫(xiě)入每個(gè)PCM存儲(chǔ)器單元的阻抗水平。
9.根據(jù)權(quán)利要求2所述的方法,其中碼本由矩陣來(lái)表示,并且使用線(xiàn)性規(guī)劃來(lái)計(jì)算所 述虛擬寫(xiě)入向量。
10.根據(jù)權(quán)利要求2所述的方法,其中碼本由級(jí)聯(lián)碼來(lái)表示。
11.根據(jù)權(quán)利要求2所述的方法,其中所述一組存儲(chǔ)器單元是閃存,并且所述物理特性 包括每個(gè)存儲(chǔ)器單元的閾值電壓特性。
12.根據(jù)權(quán)利要求2所述的方法,其中所述計(jì)算的步驟可能失敗,并且其中所述虛擬寫(xiě) 入向量通過(guò)以下計(jì)算應(yīng)用一個(gè)或多個(gè)碼本,直到找到一個(gè)使得所述計(jì)算不失敗的碼本為止。
13.根據(jù)權(quán)利要求2所述的方法,其中所述存儲(chǔ)器單元受到噪聲影響,并且所述計(jì)算包 括選擇所述虛擬寫(xiě)入向量,使得所述虛擬寫(xiě)入向量還屬于第二碼本。
14.根據(jù)權(quán)利要求2所述的方法,其中所述物理特性包括多維水平,并且其中所述寫(xiě)入 過(guò)程進(jìn)一步包括通過(guò)使用覆蓋所有多維水平的排序,將所述多維水平轉(zhuǎn)換為一維水平。
15.一種用于從存儲(chǔ)器進(jìn)行讀取的方法,所述方法包括從一組存儲(chǔ)器單元接收讀取字,其中所述組中的存儲(chǔ)器單元的物理特性支持不同的數(shù) 據(jù)水平集合;將所述讀取字分割為多個(gè)虛擬讀取向量; 針對(duì)所述虛擬讀取向量中的每個(gè)虛擬讀取向量,執(zhí)行 標(biāo)識(shí)曾用于生成所述虛擬讀取向量的碼本;以及生成部分讀取數(shù)據(jù)向量,所述生成包括將所述虛擬讀取向量與表示所述碼本的矩陣相乘;將所述部分讀取數(shù)據(jù)向量合并成讀取消息;以及 輸出所述讀取消息。
16.根據(jù)權(quán)利要求15所述的方法,其中所述一組存儲(chǔ)器單元是相變存儲(chǔ)器(PCM),并且 所述物理特性包括每個(gè)存儲(chǔ)器單元的阻抗水平范圍。
17.根據(jù)權(quán)利要求15所述的方法,其中所述存儲(chǔ)器單元是有噪聲的,并且所述執(zhí)行包 括標(biāo)識(shí)供所述生成用來(lái)補(bǔ)償所述噪聲的第二碼本。
18.一種存儲(chǔ)器系統(tǒng),包括存儲(chǔ)器,其包括一組存儲(chǔ)器單元,其中所述存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù)水平;測(cè)試器,其確定所述存儲(chǔ)器單元的物理特性;編碼器,其與所述存儲(chǔ)器和所述測(cè)試器連接,并且使用至少一個(gè)碼本接收將要寫(xiě)入所述一組存儲(chǔ)器單元的寫(xiě)入消息;響應(yīng)于所述物理特性來(lái)標(biāo)識(shí)與所述一組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ)器; 針對(duì)所述虛擬存儲(chǔ)器中的每個(gè)虛擬存儲(chǔ)器,執(zhí)行生成描述所述虛擬存儲(chǔ)器中的虛擬單元的約束向量,所述生成響應(yīng)于物理存儲(chǔ)器單元 的所述物理特性、響應(yīng)于先前生成的約束向量以及響應(yīng)于先前生成的虛擬寫(xiě)入向量;以及 響應(yīng)于碼本、所述約束向量和所述寫(xiě)入消息,計(jì)算虛擬寫(xiě)入向量; 將所述虛擬寫(xiě)入向量合并成寫(xiě)入字;以及 將所述寫(xiě)入字輸出到所述一組存儲(chǔ)器單元。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括存儲(chǔ)位置,其中針對(duì)所述虛擬存儲(chǔ)器中 的每個(gè)虛擬存儲(chǔ)器的所述執(zhí)行進(jìn)一步包括基于所述約束向量的內(nèi)容以及基于所述一組存儲(chǔ)器單元中的存儲(chǔ)器單元的數(shù)目,從多 個(gè)碼本中選擇所述碼本;以及在所述存儲(chǔ)位置中存儲(chǔ)碼本標(biāo)識(shí)符,以標(biāo)識(shí)用來(lái)計(jì)算所述虛擬寫(xiě)入向量的所述碼本。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括 連接至所述存儲(chǔ)器的解碼器從所述存儲(chǔ)器中的第二組存儲(chǔ)器單元接收讀取字; 將所述讀取字分割為多個(gè)虛擬讀取向量; 對(duì)于每個(gè)所述虛擬讀取向量,執(zhí)行 標(biāo)識(shí)曾用于生成所述虛擬讀取向量的碼本;以及生成部分讀取數(shù)據(jù)向量,所述生成包括將所述虛擬讀取向量與表示已標(biāo)識(shí)的碼本的矩 陣相乘;將所述部分讀取數(shù)據(jù)向量合并成讀取消息;以及 輸出所述讀取消息。
21.一種用于對(duì)異構(gòu)存儲(chǔ)器進(jìn)行寫(xiě)入的方法,所述方法包括接收寫(xiě)入消息以及與一組存儲(chǔ)器單元相對(duì)應(yīng)的寫(xiě)入地址,其中至少兩個(gè)存儲(chǔ)器單元支 持不同的數(shù)據(jù)水平;確定所述存儲(chǔ)器單元的物理特性;響應(yīng)于所述物理特性,標(biāo)識(shí)與所述一組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ)器; 對(duì)于所述虛擬存儲(chǔ)器中的每個(gè)虛擬存儲(chǔ)器,執(zhí)行生成描述所述虛擬存儲(chǔ)器中的虛擬單元的約束向量,所述生成響應(yīng)于物理存儲(chǔ)器單元 的所述物理特性、響應(yīng)于先前生成的約束向量以及響應(yīng)于先前生成的虛擬寫(xiě)入向量;以及響應(yīng)于所述約束向量和所述寫(xiě)入消息來(lái)計(jì)算虛擬寫(xiě)入向量,所述計(jì)算包括逐位、按序 地將所述寫(xiě)入消息寫(xiě)入所述虛擬存儲(chǔ)器,跳過(guò)由所述約束向量指示的、已知為固定在特定 值的位置;將所述虛擬寫(xiě)入向量合并成寫(xiě)入字;以及 將所述寫(xiě)入字輸出到所述一組存儲(chǔ)器單元。
22.根據(jù)權(quán)利要求21所述的方法,其中所述一組存儲(chǔ)器單元是PCM,并且所述物理特性 包括每個(gè)存儲(chǔ)器單元的阻抗水平范圍。
23.一種用于從異構(gòu)存儲(chǔ)器進(jìn)行讀取的方法,所述方法包括從一組存儲(chǔ)器單元接收讀取字,所述存儲(chǔ)器單元中的至少兩個(gè)存儲(chǔ)器單元支持不同的 數(shù)據(jù)水平;確定所述存儲(chǔ)器單元的物理特性;響應(yīng)于所述物理特性,標(biāo)識(shí)與所述一組存儲(chǔ)器單元相關(guān)聯(lián)的虛擬存儲(chǔ); 將所述讀取字分割為多個(gè)虛擬讀取向量,所述分割響應(yīng)于所述虛擬存儲(chǔ)器; 對(duì)于所述虛擬讀取向量中的每個(gè)虛擬讀取向量,執(zhí)行生成描述所述虛擬存儲(chǔ)器中的虛擬單元的約束向量,所述生成響應(yīng)于物理存儲(chǔ)器單元 的所述物理特性、響應(yīng)于先前生成的約束向量以及響應(yīng)于先前生成的部分讀取向量;以及響應(yīng)于所述約束向量和所述虛擬讀取向量來(lái)生成部分讀取數(shù)據(jù)向量,所述生成包括逐 位、按序地讀取所述虛擬寫(xiě)入向量,并且丟棄由所述約束向量指示的、已知為固定的位; 將所述部分讀取數(shù)據(jù)向量合并成讀取消息;以及 輸出所述讀取消息。
24.根據(jù)權(quán)利要求23所述的方法,其中所述一組存儲(chǔ)器單元是PCM,并且所述物理特性包括每個(gè)存儲(chǔ)器單元的阻抗水平范圍。
全文摘要
本發(fā)明涉及存儲(chǔ)數(shù)據(jù)的方法和存儲(chǔ)器系統(tǒng)。具體地,提供了在異構(gòu)存儲(chǔ)元件中的增加的容量,包括一種用于存儲(chǔ)數(shù)據(jù)的方法,其包括向存儲(chǔ)器進(jìn)行寫(xiě)入的寫(xiě)入過(guò)程以及從存儲(chǔ)器進(jìn)行讀取的讀取過(guò)程。存儲(chǔ)器中的存儲(chǔ)器單元的物理特性支持不同的數(shù)據(jù)水平集合。寫(xiě)入過(guò)程在向存儲(chǔ)器寫(xiě)入時(shí)將不同的數(shù)據(jù)水平集合納入考慮。讀取過(guò)程首先獲得存儲(chǔ)器中的數(shù)據(jù),并隨后確定如何解釋該數(shù)據(jù)。
文檔編號(hào)G06F12/08GK101944067SQ201010171078
公開(kāi)日2011年1月12日 申請(qǐng)日期2010年4月28日 優(yōu)先權(quán)日2009年4月30日
發(fā)明者A·雅格莫漢, I·M·埃爾法德?tīng)? L·A·拉斯特拉斯-蒙塔諾, M·M·弗蘭瑟斯奇尼, M·沙爾瑪 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司