專利名稱:固態(tài)存儲裝置中的數(shù)據(jù)收集及壓縮的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般來說涉及存儲器裝置,且在特定實施例中本發(fā)明涉及非易失性存儲器
直O(jiān)
背景技術(shù):
在計算機或其它電子裝置中存儲器裝置可包括內(nèi)部半導體集成電路。存在許多不 同類型的存儲器,其包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、動態(tài)隨機存取存儲器 (DRAM)、靜態(tài)RAM(SRAM)、同步動態(tài)隨機存取存儲器(SDRAM)及快閃存儲器??扉W存儲器裝置已發(fā)展為用于寬廣范圍的電子應(yīng)用的非易失性存儲器的普遍源。 快閃存儲器裝置通常使用允許高存儲器密度、高可靠性及低功率消耗的單一晶體管存儲器 單元。快閃存儲器的常見用途包括個人計算機、個人數(shù)字助理(PDA)、數(shù)碼相機及蜂窩式電 話。例如基本輸入/輸出系統(tǒng)(BIOS)等程序碼及系統(tǒng)數(shù)據(jù)通常存儲于快閃存儲器裝置中 以供在個人計算機系統(tǒng)中使用??扉W存儲器裝置的一個缺點是,由于用于編程的物理過程,其通常僅正確操作有 限數(shù)量的擦除/編程循環(huán)。大多數(shù)快閃存儲器裝置可操作IOOk擦除/編程循環(huán)。另一缺點是與其它存儲器技術(shù)相比存儲每一位的成本相對高。因此,需要改善對 快閃存儲器陣列中的存儲器單元的管理以有效率地盡可能多的使用存儲器陣列以使得存 儲器區(qū)域不會空著。出于上文陳述的原因,且出于下文陳述的所屬領(lǐng)域的技術(shù)人員在閱讀及理解本說 明書之后將明了的其它原因,所屬技術(shù)領(lǐng)域中需要一種改善非易失性存儲器管理的方法。
圖1顯示存儲器系統(tǒng)的一個實施例的框圖,其并入有數(shù)據(jù)收集及數(shù)據(jù)壓縮方法的 一個實施例。圖2顯示根據(jù)圖1的存儲器陣列的非易失性存儲器陣列的一部分的一個實施例的 示意圖。圖3顯示用于執(zhí)行數(shù)據(jù)收集及數(shù)據(jù)收縮的方法的一個實施例的流程圖。圖4顯示用于讀取經(jīng)壓縮數(shù)據(jù)的方法的一個實施例的流程圖。
具體實施例方式
在本發(fā)明的以下詳細描述中,參照形成本發(fā)明的一部分且其中以圖解說明的方式 顯示可實施本發(fā)明的具體實施例的附圖。在所述圖式中,在全部若干視圖中相同編號描述 大致類似的組件。充分詳細地描述這些實施例以使所屬領(lǐng)域的技術(shù)人員能夠?qū)嵤┍景l(fā)明。 可利用其它實施例并可在不背離本發(fā)明范圍的情形下做出結(jié)構(gòu)、邏輯及電方面的改變。因 此,不應(yīng)以限制意義考慮以下詳細描述,且本發(fā)明的范圍僅由所附權(quán)利要求書及其等效物 界定。
圖1圖解說明包括固態(tài)存儲裝置100的存儲器系統(tǒng)120的功能性框圖。固態(tài)存儲 裝置100可以是非易失性存儲器100,例如快閃存儲器。固態(tài)存儲裝置100已被簡化以著 重于存儲器的有助于理解本編程實施例的特征。固態(tài)存儲裝置100耦合到外部系統(tǒng)控制器 110??刂破?10可以是微處理器或某其它類型的控制電路。固態(tài)存儲裝置100包括非易失性存儲器單元陣列130,例如在圖2中所圖解說明且 隨后論述的浮動柵極存儲器單元。存儲器陣列130布置成成排的存取線(例如,字線行) 及數(shù)據(jù)線(例如位線列)。在一個實施例中,存儲器陣列130的列由存儲器單元的串聯(lián)串組 成。如所屬技術(shù)領(lǐng)域中所眾所周知,單元到位線的連接確定陣列是NAND架構(gòu)、AND架構(gòu)還 是NOR架構(gòu)。可將存儲器陣列130組織成存儲器塊。存儲器塊的數(shù)量通常由存儲器裝置的大小 (即,512MB、Kffi)確定。在一個實施例中,每一存儲器塊由64個存儲器單元頁形成。每一 頁通常由2048個數(shù)據(jù)字節(jié)組成。存儲器控制電路170可包括壓縮/解壓縮塊190/與其協(xié)作以便可壓縮正被寫入 到陣列130的未被壓縮數(shù)據(jù)及可解壓縮從陣列130讀取的經(jīng)壓縮數(shù)據(jù)。壓縮/解壓縮190 可通過執(zhí)行這些任務(wù)的硬件電路來實現(xiàn)。替代實施例通過固件例行程序執(zhí)行壓縮/解壓縮 190。提供易失性存儲器區(qū)域(例如,DRAM) 191以暫時存儲數(shù)據(jù)??刂破?10使用易 失性存儲器來暫時存儲待寫入到存儲器陣列130的數(shù)據(jù),暫時存儲從存儲器陣列讀取的數(shù) 據(jù),及存儲由存儲器控制電路170使用的其它數(shù)據(jù)。舉例來說,如隨后所描述,壓縮/解壓 縮塊190可使用易失性存儲器191來存儲數(shù)據(jù)。提供地址緩沖器電路140以鎖存經(jīng)由I/O電路160提供的地址信號。由行解碼器 144及列解碼器146接收并解碼地址信號以存取存儲器陣列130。得益于本描述,所屬領(lǐng)域 的技術(shù)人員將了解,地址輸入連接的數(shù)目取決于存儲器陣列130的密度及架構(gòu)。也就是說, 所述地址的數(shù)目隨著存儲器單元計數(shù)的增加及庫與塊計數(shù)的增加而增加。固態(tài)存儲裝置100通過使用感測放大器電路150感測存儲器陣列列中的電壓或電 流改變來讀取存儲器陣列130中的數(shù)據(jù)。在一個實施例中,感測放大器電路150經(jīng)耦合以 讀取且鎖存來自存儲器陣列130的行數(shù)據(jù)。包含數(shù)據(jù)輸入及輸出緩沖器電路160以用于經(jīng) 由多個數(shù)據(jù)連接162與控制器110進行雙向數(shù)據(jù)通信以及地址通信。提供寫入電路155以 將數(shù)據(jù)寫入到存儲器陣列。存儲器控制電路170解碼從控制器110提供的控制連接172上的信號。這些信號 用于控制對存儲器陣列130的操作,包括數(shù)據(jù)讀取、數(shù)據(jù)寫入(編程)及擦除操作。存儲器 控制電路170可以是產(chǎn)生存儲器控制信號的狀態(tài)機、定序器或某其它類型的控制器??刂?電路170經(jīng)配置以執(zhí)行隨后論述的數(shù)據(jù)收集操作。另外,如果壓縮/解壓縮操作190是固 件例行程序,那么存儲器控制電路170經(jīng)配置以執(zhí)行壓縮/解壓縮以及圖3的方法的實施 例。圖2圖解說明NAND架構(gòu)存儲器陣列130的一部分的示意圖,其包含可對其操作隨 后論述的數(shù)據(jù)收集及壓縮/解壓縮的實施例的非易失性存儲器單元的串聯(lián)串。盡管隨后論 述參照NAND存儲器裝置,但本實施例并不限于此種架構(gòu),而是也可用于其它存儲器裝置架 構(gòu)中。
存儲器陣列由配置成列(例如,串聯(lián)串204、205)的非易失性存儲器單元130(例 如,浮動柵極)陣列組成。在每一串聯(lián)串204、205中,以漏極到源極的方式耦合單元130的 每一者。橫跨多個串聯(lián)串204、205的字線Wi)到WL31連接到行中的每一存儲器單元的控 制柵極以給所述行中的存儲器單元的控制柵極加偏壓。位線BL1、BL2最終連接到感測放大 器(未顯示),所述感測放大器通過感測特定位線上的電流來檢測每一單元的狀態(tài)。每一存儲器單元串聯(lián)串204、205通過源極選擇柵極216、217耦合到源極線206且 通過漏極選擇柵極212、213耦合到個別位線BL1、BL2。所述源極選擇柵極216、217由耦合 到其等控制柵極的源極選擇柵極控制線SG(S)218來控制。漏極選擇柵極212、213由漏極 選擇柵極控制線SG(D)214來控制。每一存儲器單元可作為單電平單元(SLC)或多電平單元(MLC)進行編程。每一單 元的閾值電壓(Vt)指示存儲于所述單元中的數(shù)據(jù)。舉例來說,在SLC中,0.5V的Vt可指示 經(jīng)編程單元而-0. 5V的Vt可指示經(jīng)擦除單元。MLC可具有多個Vt范圍,每一范圍指示不同 狀態(tài)。多電平單元可通過將位圖案指派給存儲于單元上的特定電壓范圍來利用傳統(tǒng)快閃單 元的模擬性質(zhì)。取決于被指派給單元的電壓范圍的數(shù)量,此技術(shù)準許每單元存儲兩個或更 多個位。數(shù)據(jù)壓縮(在所屬技術(shù)領(lǐng)域中也稱為源譯碼)是將原始數(shù)據(jù)串轉(zhuǎn)變成新數(shù)據(jù)串的 過程,所述新數(shù)據(jù)串包含與所述原始串相同或大致相同的信息,但其長度是減小的。數(shù)據(jù)壓 縮可以是有損的或者無損的。無損數(shù)據(jù)壓縮在使用較少位的同時保留相同原始信息。此類型的數(shù)據(jù)壓縮通常不 能實現(xiàn)與有損壓縮等量的壓縮,但用于如在程序源碼中那樣不能容忍數(shù)據(jù)損耗的情形中。 典型無損數(shù)據(jù)壓縮算法的實例包括Lempel-Ziv (LZ)壓縮、DEFLATE、PKZIP及GZIP。本發(fā)明 的實施例不受限于任一類型的壓縮/解壓縮。圖3圖解說明用于數(shù)據(jù)收集及壓縮的方法的一個實施例的流程圖。數(shù)據(jù)收集操作 確定哪些存儲器頁及/或存儲器塊僅部分編程301有有效數(shù)據(jù)(有效數(shù)據(jù)可以是實際上應(yīng) 編程于所述特定頁中且還未移動到另一位置的經(jīng)編程信息)。此可通過讀取頁/塊以確定 哪些僅部分地被編程來實現(xiàn)。在另一實施例中,所述經(jīng)部分編程的頁/塊可在來自所述頁 /塊的數(shù)據(jù)的部分被移動時被識別(例如,被用旗標標記)。在此實施例中,可在頁或塊狀 態(tài)寄存器中設(shè)定位,其指示所述頁/塊的僅一部分保留有效數(shù)據(jù)。稍后,讀取操作僅必須讀 取所述狀態(tài)位以找到經(jīng)部分編程的頁/塊。通常三種情況可導致存儲器頁及存儲器塊部分地被編程。導致經(jīng)部分編程的存儲 器頁的一個原因是未發(fā)生足夠?qū)懭霕I(yè)務(wù)來填充存儲器頁且控制器寫入其具有的數(shù)據(jù)以使 得存儲裝置可向系統(tǒng)發(fā)信號通知操作完成。導致經(jīng)部分編程的存儲器頁的另一原因是將一 片數(shù)據(jù)寫入到裝置上的邏輯塊,而相同邏輯塊已包含于先前經(jīng)寫入頁中。盡管先前經(jīng)寫入 塊現(xiàn)在是標記為“無效”,但由于所述頁現(xiàn)在在其內(nèi)具有可利用的空點且因此仍為數(shù)據(jù)收集 候選者。最后,較不常見情況是系統(tǒng)將命令發(fā)送到裝置,指令所述裝置使邏輯塊無效。如果 所述邏輯塊是先前填充頁的一部分,那么此頁現(xiàn)在是數(shù)據(jù)收集候選者。這些操作可留下僅用未被移動的有效數(shù)據(jù)部分編程的頁或塊。數(shù)據(jù)收集提供讀取 存儲器內(nèi)容的機會且使壓縮成為后臺任務(wù)。讀出這些經(jīng)部分編程的存儲器頁/塊中的有效數(shù)據(jù)302。將所讀取數(shù)據(jù)302輸入到壓縮塊且同時輸入到固態(tài)存儲裝置的DRAM。壓縮數(shù)據(jù)所述303且將其暫時存儲于DRAM 的不同區(qū)中??墒褂蒙衔乃枋龅膲嚎s例行程序的一者或可使用某其它壓縮例行程序???在硬件或者軟件中實現(xiàn)所述壓縮。在傳送完成時,評估所述壓縮以確定數(shù)據(jù)是否可壓縮304。如果數(shù)據(jù)是不可壓縮的 305,那么將未經(jīng)壓縮數(shù)據(jù)寫入到存儲器頁306。如果數(shù)據(jù)是可壓縮的305,那么將經(jīng)壓縮數(shù)據(jù)與其它經(jīng)壓縮數(shù)據(jù)組合以填充存儲 器頁307。在一個實施例中,一個存儲器頁可包含相當于兩頁的數(shù)據(jù)。將經(jīng)壓縮數(shù)據(jù)用旗標標記為經(jīng)壓縮308以便當對其進行讀取時,可將其識別為經(jīng) 壓縮數(shù)據(jù)以進行解壓縮。此種旗標可包括存儲器陣列的單獨存儲器位置(例如,DRAM翻譯 表)或是存儲器控制電路的部分的寄存器中的位指示。與經(jīng)壓縮數(shù)據(jù)相關(guān)聯(lián)的壓縮類型也 可由在存儲器位置/寄存器中的類似位或多位指示來指示。在另一實施例中,壓縮寫入到 存儲器陣列的所有數(shù)據(jù)以使得讀取操作解壓縮所有所讀取數(shù)據(jù)。圖4圖解說明用于從固態(tài)存儲裝置讀取數(shù)據(jù)的方法的一個實施例。首先從存儲器 單元讀取數(shù)據(jù)401。此可通過在以數(shù)字方式操作的存儲器陣列中從每一單元讀取數(shù)字圖案 或在以模擬方式操作的存儲器陣列中確定每一被讀取存儲器單元的閾值電壓來實現(xiàn)。接著確定所讀取數(shù)據(jù)在寫入時已被壓縮403還是所述數(shù)據(jù)已經(jīng)處于未經(jīng)壓縮格 式。如先前所論述,可假設(shè)所有所讀取數(shù)據(jù)處于壓縮格式,因此要求針對所有所讀取數(shù)據(jù)解 壓縮,或需要針對相關(guān)聯(lián)數(shù)據(jù)讀取壓縮指示位。在一個實施例中,也可確定所使用的壓縮算 法的類型,以便在解壓縮期間可使用相同解壓縮算法。如果數(shù)據(jù)已被壓縮405,那么接著根據(jù)用于壓縮其的壓縮算法解壓縮407,且將經(jīng) 解壓縮數(shù)據(jù)傳送到請求例行程序411。如果所述數(shù)據(jù)以未經(jīng)壓縮狀態(tài)存儲405,那么以與讀 取相同的形式傳送所讀取數(shù)據(jù)411。結(jié)論總的來說,一個或一個以上實施例通過讀取殘留于經(jīng)部分編程的存儲器塊中的有 效數(shù)據(jù)且將所述有效數(shù)據(jù)分組在一起來執(zhí)行數(shù)據(jù)收集,壓縮所述有效數(shù)據(jù),且將其存儲于 新存儲器塊中以使得所述新存儲器塊被填充。接著擦除所述經(jīng)部分編程塊且將其返回以供 將來使用。此有效數(shù)據(jù)的覆寫通常稱為寫入放大,因為與寫入到存儲器裝置中的原始數(shù)據(jù) 的量相比實際發(fā)生的寫入量被放大。所得增加的存儲器容量通過擴展由存儲器控制電路執(zhí) 行的耗損均衡來減小寫入放大。盡管本文已圖解說明及描述具體實施例,但所屬領(lǐng)域的技術(shù)人員將了解,任何經(jīng) 計算以達成相同目的的配置均可替代所示具體實施例。所屬領(lǐng)域的技術(shù)人員將明了本發(fā)明 的許多修改。因此,此申請案打算涵蓋本發(fā)明的任何修改或變化形式。本發(fā)明明確地打算 僅由以上權(quán)利要求書及其等效物限定。
權(quán)利要求
1.一種用于固態(tài)存儲裝置中的數(shù)據(jù)收集及壓縮的方法,所述方法包含從用有效數(shù)據(jù)部分編程的存儲器頁收集數(shù)據(jù);壓縮所述所收集的數(shù)據(jù);及將所述經(jīng)壓縮數(shù)據(jù)編程到所述固態(tài)存儲裝置。
2.根據(jù)權(quán)利要求1所述的方法,其中收集數(shù)據(jù)包含從經(jīng)部分編程的存儲器塊收集數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其中編程所述經(jīng)壓縮數(shù)據(jù)包含將所述經(jīng)壓縮數(shù)據(jù)編程 到所述固態(tài)存儲裝置的不同頁。
4.根據(jù)權(quán)利要求1所述的方法,且其進一步包含通過在存儲器位置中設(shè)定與所述經(jīng)壓 縮數(shù)據(jù)相關(guān)聯(lián)的位來識別所述經(jīng)壓縮數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,且其進一步包括從所述固態(tài)存儲裝置讀取數(shù)據(jù);及解壓縮所述數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其中編程所述經(jīng)壓縮數(shù)據(jù)包含進行編程以使得不發(fā)生 對存儲器頁的部分編程。
7.根據(jù)權(quán)利要求6所述的方法,其中壓縮所述所收集的數(shù)據(jù)包含使用GZIP算法來壓縮 所述所讀取數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,且其進一步包括從所述固態(tài)存儲裝置讀取所述經(jīng)壓縮 數(shù)據(jù)且使用Lempel-Ziv(LZ)壓縮、DEFLATE、PKZIP及GZIP中的一者來解壓縮所述經(jīng)壓縮 數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的方法,且其進一步包括識別在壓縮所述所收集的數(shù)據(jù)中使用 的壓縮算法的類型。
10.根據(jù)權(quán)利要求1所述的方法,且其進一步包括在從所述經(jīng)部分編程的存儲器頁讀 取所述數(shù)據(jù)之后擦除所述經(jīng)部分編程的存儲器頁。
11.根據(jù)權(quán)利要求1所述的方法,且其進一步包括當從第一存儲器頁移動數(shù)據(jù)時產(chǎn)生 僅用有效數(shù)據(jù)部分編程所述第一存儲器頁的指示。
12.根據(jù)權(quán)利要求1所述的方法,且其進一步包括在編程回到所述固態(tài)存儲裝置之前 將所述經(jīng)壓縮數(shù)據(jù)與其它經(jīng)壓縮數(shù)據(jù)組合。
13.一種存儲器裝置,其包含存儲器陣列,其組織成多個存儲器頁及塊;及存儲器控制電路,其耦合到所述存儲器陣列,所述存儲器控制電路用于控制所述存儲 器裝置的操作,所述存儲器控制電路經(jīng)配置以讀取所述存儲器陣列以找到經(jīng)部分編程的頁 或塊、從所述經(jīng)部分編程的頁或塊讀取數(shù)據(jù)、壓縮所述所讀取數(shù)據(jù)且將所述經(jīng)壓縮數(shù)據(jù)編 程到所述存儲器陣列的替代位置。
14.根據(jù)權(quán)利要求13所述的存儲器裝置,其中所述存儲器陣列為NAND架構(gòu)快閃存儲器 陣列。
15.根據(jù)權(quán)利要求13所述的存儲器裝置,其中每一存儲器塊由多個存儲器頁組成。
16.根據(jù)權(quán)利要求13所述的存儲器裝置,其中所述存儲器控制電路進一步經(jīng)配置以產(chǎn) 生所述所讀取數(shù)據(jù)已被壓縮的指示且將所述指示編程于存儲器中。
17.根據(jù)權(quán)利要求13所述的存儲器系統(tǒng),其中所述存儲器控制電路進一步經(jīng)配置以通 過響應(yīng)于對一個邏輯地址的寫入操作而將所述經(jīng)壓縮數(shù)據(jù)寫入到多個物理地址來執(zhí)行耗 損均衡。
18.根據(jù)權(quán)利要求13所述的存儲器系統(tǒng),其中所述存儲器控制電路進一步經(jīng)配置以擦 除所述經(jīng)部分編程的存儲器塊。
19.根據(jù)權(quán)利要求13所述的存儲器系統(tǒng),其中所述存儲器控制電路進一步經(jīng)配置以讀 取壓縮類型的指示且響應(yīng)于所述壓縮類型的所述指示而解壓縮所述經(jīng)壓縮數(shù)據(jù)。
全文摘要
本發(fā)明揭示用于將經(jīng)壓縮數(shù)據(jù)編程到存儲器陣列、存儲器裝置及存儲器系統(tǒng)的方法。在一個此種方法中,找到用有效數(shù)據(jù)部分編程的存儲器頁或塊。從這些經(jīng)部分編程的頁或塊收集所述數(shù)據(jù)且對所述數(shù)據(jù)進行壓縮。接著將所述經(jīng)壓縮數(shù)據(jù)編程回到所述存儲器裝置的所述存儲器陣列中的不同位置。
文檔編號G11C16/34GK102089828SQ200980126981
公開日2011年6月8日 申請日期2009年6月25日 優(yōu)先權(quán)日2008年7月10日
發(fā)明者迪安·克萊因 申請人:美光科技公司