相關(guān)申請的交叉引用
本申請要求于2015年11月16日提交的名稱為“映射數(shù)據(jù)壓縮”的第62/255,794號美國臨時專利申請的優(yōu)先權(quán),通過引用以其整體并入于此。
本公開總體上涉及數(shù)據(jù)存儲設(shè)備,并且更具體地涉及用于在存儲設(shè)備中管理地址映射數(shù)據(jù)的系統(tǒng)和方法。
背景技術(shù):
許多電子設(shè)備已被用于數(shù)據(jù)存儲,例如硬盤驅(qū)動器(hdd)和固態(tài)硬盤(ssd)。與hdd相比,ssd通常具有更少的機(jī)械故障和更低的能量損耗。進(jìn)一步地,在一些情況下ssd執(zhí)行讀寫操作比hdd更快。
上面的描述是作為對本領(lǐng)域中的相關(guān)技術(shù)的一般概述,并且其所包括的任何信息不應(yīng)該被理解為承認(rèn)構(gòu)成針對本專利申請的現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
提供了一種方法、裝置和數(shù)據(jù)存儲設(shè)備的示例。在示例方法中,對地址映射數(shù)據(jù)進(jìn)行壓縮。地址映射數(shù)據(jù)指示從存儲設(shè)備的非易失性存儲器的邏輯地址到物理地址的映射。針對經(jīng)壓縮的地址映射數(shù)據(jù)生成錯誤檢測與糾正(ecc)數(shù)據(jù)。ecc數(shù)據(jù)和經(jīng)壓縮的地址映射數(shù)據(jù)被存儲在存儲設(shè)備中。
示例裝置包括配置為壓縮地址映射數(shù)據(jù)的處理系統(tǒng)。該裝置還包括存儲設(shè)備,該存儲設(shè)備包括非易失性存儲器。地址映射數(shù)據(jù)指示從非易失性存儲器的邏輯地址到物理地址的映射。該存儲設(shè)備還包括配置為針對經(jīng)壓縮的地址映射數(shù)據(jù)生成錯誤檢測與糾正(ecc)數(shù)據(jù)的控制器單元。該控制器單元進(jìn)一步被配置為向該存儲設(shè)備寫入ecc數(shù)據(jù)和經(jīng)壓縮的地址映射數(shù)據(jù)。
示例數(shù)據(jù)存儲設(shè)備包括非易失性存儲器和控制器單元。該控制器單元被配置為壓縮地址映射數(shù)據(jù),其中該地址映射數(shù)據(jù)指示從非易失性存儲器的邏輯地址到物理地址的映射。該控制器單元還被配置為針對經(jīng)壓縮的地址映射數(shù)據(jù)生成錯誤檢測與糾正(ecc)數(shù)據(jù)。該控制器單元進(jìn)一步被配置為向該存儲設(shè)備寫入ecc數(shù)據(jù)和經(jīng)壓縮的地址映射數(shù)據(jù)。
附圖說明
圖1為根據(jù)本公開實(shí)施例的圖示示例存儲系統(tǒng)的框圖。
圖2描繪根據(jù)本公開實(shí)施例在數(shù)據(jù)存儲設(shè)備中存儲地址映射數(shù)據(jù)的示例。
圖3描繪根據(jù)本公開實(shí)施例在數(shù)據(jù)存儲設(shè)備中檢索映射地址數(shù)據(jù)的示例。
圖4為根據(jù)本公開實(shí)施例的描繪用于在數(shù)據(jù)存儲設(shè)備中管理地址映射數(shù)據(jù)的存儲的示例方法的操作的流程圖。
具體實(shí)施方式
本公開涉及存儲設(shè)備,尤其是利用指示從存儲器(例如,非易失性存儲器)的邏輯地址到物理地址的映射的地址映射數(shù)據(jù)(例如,閃存轉(zhuǎn)換層(ftl)地址映射數(shù)據(jù))的存儲設(shè)備。如下文進(jìn)一步詳細(xì)描述的,在本公開實(shí)施例中,地址映射數(shù)據(jù)被壓縮。壓縮地址映射數(shù)據(jù)使得更強(qiáng)級別的錯誤保護(hù)能夠被應(yīng)用到地址映射數(shù)據(jù)中(例如,大量的錯誤檢測與糾正(ecc)字節(jié)可以被存儲用于地址映射數(shù)據(jù)的給定單元)。更強(qiáng)級別的錯誤保護(hù)有助于防止地址映射數(shù)據(jù)的丟失或損壞。本公開的這些方面和其他部分在下面被進(jìn)一步詳細(xì)描述。
圖1為根據(jù)本公開實(shí)施例的圖示示例存儲系統(tǒng)的框圖。圖1中的示例存儲系統(tǒng)包括數(shù)據(jù)存儲設(shè)備108(例如,固態(tài)硬盤(ssd))數(shù)據(jù)存儲設(shè)備108包括控制器單元110(例如,閃存控制器等)、易失性存儲器112和非易失性存儲器114。在一些實(shí)施例中,用戶數(shù)據(jù)被存儲在非易失性存儲器114上,以使得在電源故障時用戶數(shù)據(jù)將不會被丟失。進(jìn)一步地,在一些實(shí)施例中,易失性存儲器112包括一個或多個動態(tài)隨機(jī)存取存儲(dram)設(shè)備,并且非易失性存儲器114包括一個或多個閃存設(shè)備(例如,一個或多個nand閃存)。在一些實(shí)施例中,非易失性存儲器114被劃分為存儲模塊,并且每個存儲模塊包括多個頁。在這些實(shí)施例中,對非易失性存儲器114進(jìn)行讀取和編程基于每頁來被執(zhí)行,擦除基于每塊來被執(zhí)行。
在一些實(shí)施例中,控制器單元110執(zhí)行針對非易失性存儲器114的存儲器管理功能,而且還具有執(zhí)行算法(例如,軟件、固件等)的能力。在實(shí)施例中,下面被詳細(xì)描述的存儲器管理功能包括:壓縮地址映射數(shù)據(jù)、向數(shù)據(jù)應(yīng)用錯誤糾正編碼和解碼以及向非易失性存儲器114寫入數(shù)據(jù)等。控制器單元110可以是管理存儲器訪問的任何類型的存儲器控制器,包括但不限于閃存磁盤控制器、或者一個或多個處理單元(例如,處理器、包括一個或多個內(nèi)部緩存的中央處理單元(cpu)等)。進(jìn)一步地,在一些實(shí)施例中,使用計算機(jī)邏輯、狀態(tài)機(jī)、asic、fpga、dsp、其它集成電路等來實(shí)現(xiàn)控制器單元110。
在圖1的示例中,控制器單元110被耦合至數(shù)據(jù)存儲設(shè)備108的內(nèi)部處理系統(tǒng)102。在一些實(shí)施例中,內(nèi)部處理系統(tǒng)102是主機(jī)系統(tǒng)的一部分,該主機(jī)系統(tǒng)可以是使用非易失性存儲器114的任何類型的電子設(shè)備,包括但不限于計算機(jī)、嵌入式設(shè)備,或手持設(shè)備,諸如手機(jī)、智能手機(jī)、相機(jī)、游戲系統(tǒng)、監(jiān)視器、或個人數(shù)字助理(pda)。在實(shí)施例中,內(nèi)部處理系統(tǒng)102包括一個或多個處理單元、集成電路、計算機(jī)邏輯、狀態(tài)機(jī)、asic、fpga、dsp等。內(nèi)部處理系統(tǒng)102、控制器單元110、易失性存儲器112和非易失性存儲器114可以被實(shí)現(xiàn)為例如單獨(dú)的芯片、芯片組、或者片上系統(tǒng)(soc)。
內(nèi)部處理系統(tǒng)102執(zhí)行將非易失性存儲器114中的邏輯塊映射到物理塊的轉(zhuǎn)換管理。為此,內(nèi)部處理系統(tǒng)102維護(hù)非易失性存儲器114中的頁的邏輯地址和物理地址之間的邏輯到物理轉(zhuǎn)換圖。在一些實(shí)施例中,內(nèi)部處理系統(tǒng)102將轉(zhuǎn)換表作為一個或多個表或數(shù)據(jù)結(jié)構(gòu)存儲在易失性存儲器112和/或非易失性存儲器114中。當(dāng)內(nèi)部處理系統(tǒng)102接收到與邏輯地址相關(guān)聯(lián)的存儲器訪問請求(例如,讀命令、寫命令)時,內(nèi)部處理系統(tǒng)102使用邏輯到物理轉(zhuǎn)換數(shù)據(jù)來確定與邏輯地址對應(yīng)的非易失性存儲器114的物理地址。這使得能夠從非易失性存儲器114讀取所請求的數(shù)據(jù)以及將數(shù)據(jù)寫入非易失性存儲器114。在一些實(shí)施例中,內(nèi)部處理系統(tǒng)102執(zhí)行軟件和/或固件以執(zhí)行上述轉(zhuǎn)換管理功能。
在圖1的示例中,內(nèi)部處理系統(tǒng)102從不是存儲設(shè)備108的一部分的外部處理系統(tǒng)101接收用于訪問非易失性存儲器114的命令。該命令包括讀命令和寫命令,每個命令都與邏輯地址相關(guān)聯(lián)。如上所述,內(nèi)部處理系統(tǒng)102使用邏輯到物理地址映射數(shù)據(jù)以從由外部處理系統(tǒng)101提供的邏輯地址獲得非易失性存儲器114的物理地址。如圖1所示,對于讀命令,使用所獲得的物理地址,將所請求的非易失性存儲器114的數(shù)據(jù)返回到外部處理系統(tǒng)101。對于寫命令,使用所獲得的物理地址,將外部處理系統(tǒng)101的數(shù)據(jù)寫入到非易失性存儲器114。
在一些實(shí)施例中,數(shù)據(jù)存儲設(shè)備108實(shí)現(xiàn)閃存轉(zhuǎn)換層(ftl)以用于管理設(shè)備108中的數(shù)據(jù)存儲。ftl是在執(zhí)行包括上述邏輯地址到物理地址轉(zhuǎn)換的許多功能中被使用的內(nèi)部軟件層。在實(shí)施例中,ftl也在執(zhí)行以下的功能中被使用:用于回收非易失性存儲器114的經(jīng)使用的塊的垃圾收集以及用于增加非易失性存儲器114的壽命的損耗均衡。為了實(shí)現(xiàn)這些功能,一個或多個數(shù)據(jù)結(jié)構(gòu)用于ftl,諸如地址映射表(例如,包括地址映射數(shù)據(jù))、空閑塊的池、以及垃圾塊的一個或多個具有擦除計數(shù)的列表。這些數(shù)據(jù)結(jié)構(gòu)存儲可以稱為“ftl元數(shù)據(jù)”的數(shù)據(jù)。內(nèi)部處理系統(tǒng)102和/或控制器單元110利用ftl元數(shù)據(jù)來執(zhí)行上述功能。
在一些實(shí)施例中,地址映射數(shù)據(jù)和其他ftl元數(shù)據(jù)被存儲在易失性存儲器112和/或非易失性存儲器114中。一種方法是在數(shù)據(jù)存儲操作期間將所有ftl元數(shù)據(jù)(例如,包括地址映射數(shù)據(jù))加載到易失性存儲器112中,并且在系統(tǒng)關(guān)閉時將ftl元數(shù)據(jù)存儲回到非易失性存儲器114上。然而,在一些實(shí)施例中,易失性存儲器112具有有限的大小。因為ftl元數(shù)據(jù)的大小與數(shù)據(jù)存儲設(shè)備108的總?cè)萘砍杀壤?,在某些情況下將整個ftl元數(shù)據(jù)加載到易失性存儲器112是不可行的。進(jìn)一步地,在某些情況下,將所有地址映射數(shù)據(jù)(例如,整個地址映射表)存儲到易失性存儲器112中是不可行的。例如,在一些實(shí)施例中,1gb的邏輯空間使用1mb的地址映射數(shù)據(jù),將1mb的地址映射數(shù)據(jù)存儲到易失性存儲器112中是不可行的。
在一些實(shí)施例中,在將所有地址映射數(shù)據(jù)存儲到易失性存儲器112上不可行的情況下,ftl在易失性存儲器112和非易失性存儲器114之間動態(tài)地移動地址映射數(shù)據(jù)。例如,地址映射數(shù)據(jù)從非易失性存儲器114被傳送到易失性存儲器112中,并且同樣地從易失性存儲器112被傳送到非易失性存儲器114中。當(dāng)?shù)刂酚成鋽?shù)據(jù)以這種方式在存儲器112和114之間被動態(tài)交換時,存在丟失或損壞地址映射數(shù)據(jù)的風(fēng)險。地址映射數(shù)據(jù)的丟失或損壞是不希望的。例如,在實(shí)施例中,丟失地址映射數(shù)據(jù)的一個4kib單元導(dǎo)致丟失存儲在非易失性存儲114上的4mib數(shù)據(jù)。
一種防止地址映射數(shù)據(jù)丟失的方法是通過錯誤檢測與糾正編碼(例如,錯誤檢測與糾正(ecc)編碼,低密度奇偶校驗(ldpc)編碼等)的使用。在將這種錯誤檢測與糾正編碼應(yīng)用于地址映射數(shù)據(jù)中,與地址映射數(shù)據(jù)對應(yīng)的冗余或校驗位(例如,ecc位或字節(jié))被生成。該冗余或校驗位使得地址映射數(shù)據(jù)中一定數(shù)量的位錯誤能夠被糾正,其中能夠被糾正的錯誤數(shù)量隨所使用的冗余或校驗位的數(shù)量增加而增加。因此,通過使用大量的冗余或校驗位(例如,大量的ecc數(shù)據(jù)字節(jié)),更強(qiáng)的錯誤保護(hù)被提供。例如,對于地址映射數(shù)據(jù)的2kb單元,添加64個ecc字節(jié)添加大約32位糾正能力。在本公開中,全文引用“ecc數(shù)據(jù)字節(jié)”。然而,要注意的是,本公開實(shí)施例使用其他類型的冗余和校驗位(例如,經(jīng)由ldpc編碼生成的冗余或校驗位等)。
在一些實(shí)施例中,提高eec數(shù)據(jù)字節(jié)數(shù)的能力受到非易失性存儲器114的參數(shù)的限制。如上所述,基于每頁向非易失性存儲器114進(jìn)行寫入,其中每頁都具有預(yù)定的頁大小(例如,16kib)。在一些實(shí)施例中,提高eec數(shù)據(jù)字節(jié)數(shù)的能力受到非易失性存儲器114的頁大小的限制。具體地,在一些實(shí)施例中,下列條件限制提高eec數(shù)據(jù)字節(jié)數(shù)的能力:[(地址映射的數(shù)據(jù)單元的大小)+(ecc數(shù)據(jù)字節(jié))]≤非易失性存儲器114的頁大小。要指出的是,上述條件僅為示例,并且其他條件應(yīng)用于其他實(shí)施例中。例如,在其他實(shí)施例中,地址映射數(shù)據(jù)單元大小和ecc數(shù)據(jù)字節(jié)的和必須小于或等于非易失性存儲器114的頁大小的某倍數(shù)(例如,兩倍或三倍頁大小等)。
從上述示例條件可以看出,如果地址映射數(shù)據(jù)單元的大小等于非易失性存儲器114的頁大小,不存在用于任何ecc數(shù)據(jù)字節(jié)的空間。同樣地,如果地址映射的數(shù)據(jù)單元的大小近似等于頁大小,僅存在用于少量ecc數(shù)據(jù)字節(jié)的空間。如果不使用ecc數(shù)據(jù)字節(jié)或者僅使用少量ecc字節(jié),不提供錯誤保護(hù)或者只提供微弱的錯誤保護(hù)。如上所述,應(yīng)當(dāng)避免地址映射數(shù)據(jù)的丟失,并且因此無法提供較強(qiáng)的ecc保護(hù)是不希望的。傳統(tǒng)系統(tǒng)和方法具有無法提供較強(qiáng)ecc保護(hù)的缺陷。
本公開的技術(shù)方案消除或減輕傳統(tǒng)方法的這種不足。具體地,使用本文所描述的系統(tǒng)和方法,與傳統(tǒng)系統(tǒng)和方法相比更強(qiáng)的錯誤保護(hù)被應(yīng)用到地址映射數(shù)據(jù)。在本公開的技術(shù)下,為了將更強(qiáng)的錯誤保護(hù)應(yīng)用到地址映射數(shù)據(jù)(例如,使用大量的ecc數(shù)據(jù)字節(jié)),地址映射數(shù)據(jù)被壓縮。在實(shí)施例中,由內(nèi)部處理系統(tǒng)102和/或控制器單元110來壓縮地址映射數(shù)據(jù)。然后,錯誤糾正編碼(例如,ecc碼等)被應(yīng)用到經(jīng)壓縮的地址映射數(shù)據(jù),以生成用于經(jīng)壓縮的數(shù)據(jù)的ecc數(shù)據(jù)字節(jié)。在一些實(shí)施例中,這種錯誤糾正編碼由內(nèi)部處理系統(tǒng)102和/或控制器單元110執(zhí)行。因為地址映射數(shù)據(jù)被壓縮,更多ecc數(shù)據(jù)字節(jié)可以被使用,從而提供更高級別的錯誤保護(hù)(例如,更強(qiáng)的ecc保護(hù))。
經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)字節(jié)被存儲在數(shù)據(jù)存儲設(shè)備108中,例如,易失性存儲器112和/或非易失性存儲器114中。隨后,ecc數(shù)據(jù)字節(jié)和經(jīng)壓縮的地址映射數(shù)據(jù)從存儲設(shè)備被讀取,使用適合的解碼方案被解碼,以及被解壓縮。如上所述,經(jīng)解壓縮的地址映射數(shù)據(jù)被內(nèi)部處理系統(tǒng)102用于執(zhí)行邏輯地址到物理地址轉(zhuǎn)換。使用經(jīng)由地址轉(zhuǎn)換程序獲得的物理地址來訪問(例如,針對讀操作或?qū)懖僮鱽碓L問)非易失性存儲器114。關(guān)于壓縮、編碼、解碼和解壓縮操作的附加細(xì)節(jié)在下文被提供。
圖2描繪根據(jù)本公開實(shí)施例的在數(shù)據(jù)存儲設(shè)備(例如,圖1中的數(shù)據(jù)存儲設(shè)備108)存儲地址映射數(shù)據(jù)(例如,ftl元數(shù)據(jù)等)的示例。如上所述,該地址映射數(shù)據(jù)指示從存儲設(shè)備的非易失性存儲器(例如,圖1中的非易失性存儲器114)的邏輯地址到物理地址的映射。在地址映射數(shù)據(jù)的存儲中,用于將地址映射數(shù)據(jù)寫入到數(shù)據(jù)存儲設(shè)備108的命令從內(nèi)部處理系統(tǒng)102被傳送到控制單元110。在一些實(shí)施例中,該命令包括要被存儲的地址映射數(shù)據(jù)。進(jìn)一步地,在一些實(shí)施例中,該地址映射數(shù)據(jù)在被傳送到控制單元110之前由內(nèi)部處理系統(tǒng)102壓縮。在這些實(shí)施例中,內(nèi)部處理系統(tǒng)102執(zhí)行壓縮算法(例如,經(jīng)由軟件、固件等)以壓縮地址映射數(shù)據(jù)。
在其他實(shí)施例中,在沒有軟件干預(yù)的情況下動態(tài)地(on-the-fly)執(zhí)行壓縮。在這些其他實(shí)施例中,內(nèi)部處理系統(tǒng)102將未壓縮的地址映射數(shù)據(jù)和適當(dāng)?shù)拿?例如,指示向存儲設(shè)備108“寫16kib地址映射數(shù)據(jù)”的命令等)傳送到控制單元110。該控制單元110隨后壓縮地址映射數(shù)據(jù)(例如,由內(nèi)部處理系統(tǒng)102在沒有軟件協(xié)助的情況下執(zhí)行)。在一些實(shí)施例中采用的由控制器單元110執(zhí)行的地址映射數(shù)據(jù)的壓縮被圖示在圖2中的操作202處。要指出的是,在本公開實(shí)施例中,地址映射數(shù)據(jù)的壓縮在控制器單元110中被執(zhí)行,或者在控制器單元110的外部被執(zhí)行(例如,如上所述,由內(nèi)部處理系統(tǒng)執(zhí)行壓縮軟件)。
在操作204處,控制器單元110選擇多個編碼方案中的編碼方案,以用于針對經(jīng)壓縮的地址映射數(shù)據(jù)生成錯誤檢測與糾正數(shù)據(jù)。如本文所述,在實(shí)施例中,該編碼方案是錯誤檢測與糾正(ecc)編碼、低密度奇偶校驗(ldpc)編碼或者適合于生成錯誤檢測與糾正數(shù)據(jù)的其他編碼方案(例如,冗余或校驗位,諸如ecc位或字節(jié)等)。
在一些實(shí)施例中,基于地址映射數(shù)據(jù)被壓縮的程度來選擇編碼方案。例如,在一個實(shí)施例中,第一編碼方案是基于確定地址映射數(shù)據(jù)被高度地壓縮(例如,數(shù)據(jù)被確定為“可壓縮的”)而選擇的,第二編碼方案是基于確定地址映射數(shù)據(jù)被最低程度地壓縮(例如,數(shù)據(jù)被確定為“不可壓縮的”)而選擇的。第一編碼方案不同于第二編碼方案。在這個實(shí)施例的示例中,如果地址映射數(shù)據(jù)的4kb單元被壓縮到小于或等于(4kib-128字節(jié))的大小,則地址映射數(shù)據(jù)的該4kb單元被確定為“被高度地壓縮的”(例如,可壓縮的)。如果地址映射數(shù)據(jù)的4kb單元被壓縮到大于(4kib-128字節(jié))的大小,則地址映射數(shù)據(jù)的該4kb單元被確定為“被最低程度地壓縮”(例如,不可壓縮的)。
在該實(shí)施例的示例中,向地址映射數(shù)據(jù)應(yīng)用第一編碼方案導(dǎo)致針對地址映射數(shù)據(jù)生成相對大量的的ecc數(shù)據(jù)字節(jié)。相反地,向地址映射數(shù)據(jù)應(yīng)用第二編碼方案導(dǎo)致針對地址映射數(shù)據(jù)生成相對少量的ecc數(shù)據(jù)字節(jié)。這是因為當(dāng)?shù)刂酚成鋽?shù)據(jù)被高度地壓縮時,存在用于存儲ecc數(shù)據(jù)字節(jié)的更多空間,并且因此被配置為生成大量ecc數(shù)據(jù)字節(jié)(例如,更強(qiáng)級別的ecc保護(hù))的編碼方案被利用。相反地,當(dāng)?shù)刂酚成鋽?shù)據(jù)被最低程度地壓縮時,存在用于存儲ecc數(shù)據(jù)字節(jié)的更少空間,并且因此被配置為生成少量ecc數(shù)據(jù)字節(jié)(例如,較弱級別的ecc保護(hù))的編碼方案被利用。地址映射數(shù)據(jù)是典型高度地可壓縮的,使得更強(qiáng)的ecc保護(hù)的益處被經(jīng)常獲得。
在一些實(shí)施例中,所選擇的編碼方案的指示被保存在數(shù)據(jù)存儲設(shè)備108中(例如,易失性存儲器112或非易失性存儲器114中)。稍后,當(dāng)要讀出地址映射數(shù)據(jù)時,基于所存儲的指示來選擇用于解碼地址映射數(shù)據(jù)的解碼方案。基于所存儲的指示對解碼方案的選擇在下文結(jié)合圖3進(jìn)行進(jìn)一步地詳細(xì)描述。
在由控制器單元206執(zhí)行的操作206處,通過向經(jīng)壓縮的地址映射數(shù)據(jù)應(yīng)用錯誤糾正編碼來生成ecc數(shù)據(jù)字節(jié)。然后,在由控制器單元110執(zhí)行的操作208處,將經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)字節(jié)寫入到數(shù)據(jù)存儲設(shè)備108。在一些實(shí)施例中,經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)字節(jié)被寫入到易失性存儲器112中。在另一些實(shí)施例中,經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)字節(jié)被寫入到非易失性存儲器114中。如上所述,地址映射數(shù)據(jù)在易失性存儲器112和非易失性存儲器114之間的交換是典型的,使得數(shù)據(jù)可以最終駐存在存儲器112和114兩者之一上。在本公開的一些實(shí)施例中,經(jīng)壓縮的地址映射數(shù)據(jù)的單元和與其對應(yīng)的ecc數(shù)據(jù)的經(jīng)組合的大小小于或等于非易失性存儲器114的頁大小。如本文所述,通過壓縮地址映射數(shù)據(jù),eec數(shù)據(jù)字節(jié)數(shù)可以比傳統(tǒng)方法中的更大,同時仍然使得地址映射數(shù)據(jù)和ecc數(shù)據(jù)能夠容納在非易失性存儲器114的頁內(nèi)。
圖3描繪根據(jù)本公開實(shí)施例在數(shù)據(jù)存儲設(shè)備中檢索映射地址數(shù)據(jù)的示例。在將經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)存儲到存儲設(shè)備108(例如,如以上參照圖2所述)之后,為了執(zhí)行邏輯地址到物理地址轉(zhuǎn)換,可能有必要檢索地址映射數(shù)據(jù)(例如,讀取地址映射數(shù)據(jù))。例如,在一些實(shí)施例中,內(nèi)部處理系統(tǒng)102接收用于訪問非易失性存儲器114的命令,其中該命令為與邏輯地址相關(guān)聯(lián)的讀命令或?qū)懨?。在?shí)施例中,從外部處理系統(tǒng)101或另一組件接收讀命令或?qū)懨?。如圖3所示,響應(yīng)于接收到該命令,內(nèi)部處理系統(tǒng)102向控制器單元110傳輸針對地址映射數(shù)據(jù)的請求。隨后,在操作302處,控制器單元101從數(shù)據(jù)存儲設(shè)備108讀取經(jīng)壓縮的地址映射數(shù)據(jù)和其對應(yīng)的ecc數(shù)據(jù)。在實(shí)施例中,經(jīng)壓縮的地址映射數(shù)據(jù)和其對應(yīng)的ecc數(shù)據(jù)可以被存儲在易失性存儲器112或非易失性存儲器114中,使得控制器110從這兩個存儲器112和114之一讀取數(shù)據(jù)。
在操作304處,控制器單元110選擇多個解碼方案中的解碼方案,以用于解碼從數(shù)據(jù)存儲設(shè)備108中讀取的數(shù)據(jù)。如上所述,在一些實(shí)施例中,當(dāng)?shù)刂酚成鋽?shù)據(jù)被編碼時,所選擇的編碼方案的指示被存儲在數(shù)據(jù)存儲設(shè)備108中。相應(yīng)地,在這些實(shí)施例中,控制器單元110檢索所存儲的指示并且基于所存儲的指示來選擇適當(dāng)?shù)慕獯a方案。例如,如果所存儲的指示指示特定的ecc代碼被用于編碼地址映射數(shù)據(jù),則基于該指示選擇適合于解碼利用該特定的ecc代碼而編碼的數(shù)據(jù)的解碼方案。要指出的是,即使在用于編碼地址映射數(shù)據(jù)的編碼方案未知的情況下(例如,代碼選擇信息丟失、損壞或者從未被存儲等),仍能選擇一個適當(dāng)?shù)慕獯a方案。例如,如果編碼方案未知,第一解碼方案被選擇并被應(yīng)用。如果第一解碼方案在解碼地址映射數(shù)據(jù)中失敗,第二解碼方案被選擇并被應(yīng)用。解碼方案被選擇并被應(yīng)用直到地址映射數(shù)據(jù)被成功解碼。
在操作306處,錯誤糾正解碼被應(yīng)用于從數(shù)據(jù)存儲設(shè)備108檢索到的經(jīng)壓縮的地址映射數(shù)據(jù)和ecc數(shù)據(jù)。根據(jù)操作304中所選擇的解碼方案來應(yīng)用該錯誤糾正解碼。繼而,在操作308處,經(jīng)壓縮的地址映射數(shù)據(jù)被解碼。在一些實(shí)施例中,地址映射數(shù)據(jù)的解碼由控制器單元110執(zhí)行。在這些實(shí)施例中,在操作310處,經(jīng)解壓縮的地址映射數(shù)據(jù)從控制器單元110被傳送到內(nèi)部處理系統(tǒng)102,因此使得內(nèi)部處理系統(tǒng)102能夠執(zhí)行上述邏輯地址到物理地址轉(zhuǎn)換。在其他實(shí)施例中,地址映射數(shù)據(jù)的解碼由內(nèi)部處理系統(tǒng)102執(zhí)行。在這些其他實(shí)施例中,在應(yīng)用錯誤糾正解碼以后,控制器單元110向內(nèi)部處理系統(tǒng)102傳輸經(jīng)解碼的、經(jīng)壓縮的地址映射數(shù)據(jù),并且內(nèi)部處理系統(tǒng)102解壓縮該數(shù)據(jù)。地址映射數(shù)據(jù)從控制器單元110向內(nèi)部處理系統(tǒng)102的傳送(例如,以壓縮或解壓縮的形式)被圖示在圖3中。
在地址映射數(shù)據(jù)被解壓縮以后(例如,如上所述由內(nèi)部處理系統(tǒng)102或控制器單元110),經(jīng)解壓縮的數(shù)據(jù)被用于獲得與讀命令或?qū)懨畹倪壿嫷刂废鄬?yīng)的非易失性存儲器114的物理地址。使用所獲得的物理地址訪問非易失性存儲器114以完成所請求的讀操作或?qū)懖僮鳌?/p>
圖4為根據(jù)本公開實(shí)施例的描繪用于在數(shù)據(jù)存儲設(shè)備中管理地址映射數(shù)據(jù)的存儲的示例方法的操作的流程圖。為了便于理解,參照圖1對圖4進(jìn)行描述,但是圖4的過程也適用于其他配置(例如,硬件和/或軟件配置等)。在402,地址映射數(shù)據(jù)被壓縮。在圖1的示例中,地址映射數(shù)據(jù)的壓縮由內(nèi)部處理系統(tǒng)102和/或控制器單元110執(zhí)行。地址映射數(shù)據(jù)指示從存儲設(shè)備的非易失性存儲器(例如,圖1中的存儲設(shè)備108的非易失性存儲器114)的邏輯地址到物理地址的映射。在404,針對壓縮的地址映射數(shù)據(jù)生成錯誤檢測與糾正(ecc)數(shù)據(jù)。在圖1的示例中,eec數(shù)據(jù)的生成由內(nèi)部處理系統(tǒng)102和/或控制器單元110執(zhí)行。在406,經(jīng)壓縮的地址映射數(shù)據(jù)和eec數(shù)據(jù)被存儲在存儲設(shè)備(例如,存儲設(shè)備108的易失性存儲器112和/或非易失性存儲器114)中。
本申請使用示例來說明本發(fā)明。本發(fā)明的可授權(quán)范圍還包括其他示例。