跟蹤對非易失性存儲器的區域的讀訪問的制作方法
【專利說明】
[0001] 相關申請的交叉引用
[0002] 本申請要求于2012年12月14日提交的美國臨時申請第61/737,668號以及與 2013年2月1日提交的美國申請第13/756,946號的優先權。這些申請的每個的內容通過 全部引用特別合并于本文中。
技術領域
[0003] 本公開一般涉及跟蹤對非易失性存儲器的訪問。
【背景技術】
[0004] 諸如通用串行總線(USB)閃存設備或者可移除存儲卡的非易失性數據存儲設備 已經考慮到數據和軟件應用的增加的便攜性。閃存設備可以通過在每個閃存單元中存儲多 位來提高數據存儲密度。例如,多級單元(MLC)閃存設備提高每單元存儲3位、每單元存儲 4位或者更多來提供增加的存儲密度。盡管增加每單元的位數量以及降低存儲器特征尺寸 可以增加存儲器設備的存儲密度,但是存儲在存儲器設備處的數據的位錯誤率也增加。
[0005] 經常使用錯誤校正編碼(ECC)來校正出現在從存儲器設備讀取的數據中的錯誤。 在存儲之前,可以通過ECC編碼器將數據編碼以產生可以與數據一起存儲為ECC碼字的冗 余信息(例如,"奇偶校驗位")。隨著使用更多的奇偶校驗位,ECC的錯誤校正能力增加,并 且存儲編碼的數據所需的位數量也增加。
[0006] 在存儲器設備中存儲的數據中出現的一個錯誤源是由于存儲器設備的讀訪問。當 向閃存設備的字線和位線施加電壓以使能夠讀取在該字線處存儲的數據時,由于存儲器設 備內的單元間耦合,相鄰字線的閾值電壓被干擾(例如稍微增加)。讀干擾影響是累積的, 并且如果未被修正,則可能導致存儲的數據中的錯誤數量超過數據存儲設備的ECC錯誤校 正能力。
【發明內容】
[0007] 由一組計數器跟蹤對數據存儲設備的非易失性存儲器的區域的讀訪問。當計數器 值指示對由計數器跟蹤的具體區域的讀訪問的數量超過閾值量時,開始對在該具體區域中 存儲的數據的諸如數據刷新操作或者數據移動操作的修正動作。因此,可以在累積的讀干 擾影響超過數據存儲設備的校正能力之前經由刷新或者移動數據來校正對存儲器中存儲 的數據的讀干擾影響。將非易失性存儲器邏輯分區為用于讀訪問跟蹤的區域可以是可編程 的并且可以基于各種因素適應性地確定以在非易失性存儲器內容納對于讀干擾影響的變 換的敏感度。
【附圖說明】
[0008] 圖1是包括配置為跟蹤對存儲器的多個區域的讀訪問以開始修正動作的數據存 儲設備的系統的具體例示性實施例的框圖;
[0009] 圖2是例示可以并入圖1的數據存儲設備中的組件的具體實施例的框圖;
[0010] 圖3是例示圖1的存儲器的邏輯分區以及計數器到存儲器的區域的映射的總圖; 以及
[0011] 圖4是跟蹤對非易失性存儲器的區域的讀訪問的方法的具體例示性實施例的流 程圖。
【具體實施方式】
[0012] 參考圖1,系統100的一個具體實施例包括耦合到主機設備130的數據存儲設備 102。數據存儲設備102配置為跟蹤對非易失性存儲器104的多個區域的讀訪問并且基于 跟蹤的讀訪問開始修正動作。
[0013] 主機設備130可以配置為提供要在非易失性存儲器104處存儲的諸如用戶數據 132的數據或者請求要從存儲器104讀取的數據。例如,主機設備130可以包括移動電話、 音樂或視頻播放器、游戲控制臺、電子書閱讀器、個人數字助理(PDA)、諸如膝上型計算機、 筆記本計算機或者平板機的計算機、固態數據存儲驅動器、任何其他電子設備或其任意組 合。
[0014] 數據存儲設備102包括耦合到控制器120的非易失性存儲器104。非易失性存儲 器104可以是諸如NAND閃存的閃存。例如,數據存儲設備102可以是諸如安全數字SD? 卡、微SD?卡、迷你SD.TM卡(特拉華州化手段的SD-3CLLC的商標)、多媒體卡.TM(MMC. TM)卡(維吉尼亞阿靈頓的JEDEC固態技術協會的商標)或者緊湊快閃? (CF)卡(加利福 尼亞米爾皮塔司的SanDisk公司的商標)的存儲卡。作為另一例子,數據存儲設備102可 以配置為耦合到主機設備130作為嵌入式存儲器,比如作為例示性例子的eMMC(維吉尼亞 阿靈頓的JEDEC固態技術協會的商標)以及eSD。
[0015] 非易失性存儲器104包括多組存儲元件,比如包括多個MLC快閃單元的多級單元 (MLC)閃存中的字線。非易失性存儲器104還可以包括存儲元件的多個塊,比如閃存的在每 個擦除塊中包括多個字線的擦除塊。非易失性存儲器104被邏輯分區為包括第一區域(區 域1) 110和第N區域(區域N) 112的多個區域,其中N是大于1的整數。每個區域110-112 可以包括一個或多個字線、塊或者非易失性存儲器104的其他部分。為了例示,在其中非易 失性存儲器104包括多個陣列、多個平面、多個裸片或其任意組合的實現方式中,每個區域 110-112可以包括在單個陣列、平面或者裸片內的多個字線。作為另一例子,單個區域(例 如第一區域110)可以跨越多個陣列、平面、或者裸片、或其任意組合。為了例示,第一區域 110可以包括在第一裸片內的存儲元件以及在第二裸片內的存儲元件。
[0016] 控制器120配置為在數據存儲設備120操作地耦合到主機設備130時從主機設備 130接收數據和指令以及向主機設備130發送數據。控制器120進一步配置為向存儲器104 發送數據和命令以及從存儲器104接收數據。例如,控制器120配置為發送數據和寫命令 以指示非易失性存儲器104將該數據存儲到指定的地址。作為另一例子,控制器120配置 為發送讀命令以從非易失性存儲器104的指定地址讀取數據。
[0017] 控制器120可以包括配置為接收要被存儲到非易失性存儲器104的數據并產生碼 字的ECC引擎(未示出)。例如,ECC引擎可以包括配置為使用ECC編碼方案來編碼數據的 編碼器,比如里德所羅門編碼器、博斯-喬赫里-霍克文黑姆(BCH)編碼器、低密度奇偶校 驗(LDPC)編碼器、Turbo碼編碼器、配置為根據一個或多個其他ECC編碼方案來編碼數據 的編碼器、或其任意組合。ECC引擎可以包括配置為對從非易失性存儲器104讀取的數據解 碼以檢測并校正可能存在于數據中的位錯誤達ECC方案的錯誤校正能力的解碼器。
[0018] 控制器120包括配置為跟蹤對非易失性存儲器104進行的讀訪問的一組計數器 122。該組計數器122包括多個計數器,包括第一計數器(計數器1)140和第N計數器(計 數器N) 142。第一計數器140具有第一計數器值(值1) 160,該第一計數器值160可由控制 器120更新以跟蹤對第一區域110的存儲器訪問。第N計數器142具有也可由控制器120 更新以跟蹤對第N區域112的存儲器訪問的第N值162。
[0019] 控制器120包括存儲器管理引擎124。存儲器管理引擎124配置為從主機設備130 接收讀請求并確定與所請求的數據對應的讀取地址152。例如,讀取地址152可以對應于非 易失性存儲器104內的一個或多個字線的物理地址。為了例示,存儲器管理引擎124可以 接收存儲在非易失性存儲器104中的所請求的數據的邏輯地址并且可以進行地址翻譯以 產生物理讀取地址,比如讀取地址152。存儲器管理引擎124配置為產生從非易失性存儲器 104的讀取地址152讀取數據的讀命令150。另外,存儲器管理引擎124配置為將讀取地址 152提供給該組讀取訪問計數器122。
[0020] 響應于確定與要從非易失性存儲器104讀取的數據的物理地址對應的讀取地址 152,控制器120可以選擇與由該組計數器122中的具體計數器跟蹤的非易失性存儲器104 的區域對應的該具體計數器。例如,當讀取地址152對應于第一區域110中的數據時,控制 器120可以確定第一計數器140維持對第一區域110的讀訪問的計數,因此,第一值160可 以由第一計數器140更新。作為另一例子,當讀取地址152對應于由第N計數器142跟蹤 的第N區域112中的地址時,第N計數器142的第N值162可以被更新為指示讀取操作。
[0021] 與對由相應的計數器140-142跟蹤的具體區域的訪問的計數對應的值160-162的 每個與閾值170比較。響應于確定該值160-162中的一個或多個等于或者超過該閾值170, 可以產生標志154并將其提供給存儲器管理引擎124。存儲器管理引擎124可以接收該標 志154并且可以開始第非易失性存儲器104的相應區域的修正動作126。
[0022] 例如,當第一值160指示對第一區域110的讀訪問的計數等于或超過閾值170時, 控制器120可以配置為開始對該第一區域110的修正動作126。修正動作126可以包括指 示相應區域110中的數據移動到非易失性存儲器104的不同存儲器位置的數據移動操作。 作為另一例子,修正動作126可以包括數據刷新操作。該數據刷新操作可以包括從該區域 110的每個塊復制數據、擦除具體塊以及將該數