亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

高速暫存區(qū)塊的制作方法

文檔序號(hào):6553259閱讀:162來源:國(guó)知局
專利名稱:高速暫存區(qū)塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般來說涉及非易失性快閃存儲(chǔ)系統(tǒng)的操作,且更具體地說,涉及在非易失性快閃存儲(chǔ)器內(nèi)對(duì)數(shù)據(jù)進(jìn)行編程的更有效方法。
背景技術(shù)
當(dāng)今正使用多種商業(yè)上成功的非易失性存儲(chǔ)器產(chǎn)品,尤其是以小型化卡的形式,其使用形成于一個(gè)或一個(gè)以上集成電路芯片上的快閃EEPROM(電可擦除且可編程只讀存儲(chǔ)器)單元陣列。存儲(chǔ)控制器(通常但未必位于單獨(dú)集成電路芯片上)與主機(jī)介接,所述卡可移除地連接到所述主機(jī),且所述存儲(chǔ)控制器控制所述卡內(nèi)的存儲(chǔ)器陣列的操作。此類控制器通常包括微處理器、某一非易失性只讀存儲(chǔ)器(ROM)、易失性隨機(jī)存取存儲(chǔ)器(RAM)和一個(gè)或一個(gè)以上專用電路,例如在編程和讀取數(shù)據(jù)期間當(dāng)數(shù)據(jù)穿過控制器時(shí)從所述數(shù)據(jù)計(jì)算誤差校正碼(ECC)的電路。一些市售卡為CompactFlashTM(CF)卡、多媒體卡(MMC)、安全數(shù)字(SD)卡、個(gè)人標(biāo)簽(personal tag,P-Tag)和存儲(chǔ)棒卡。主機(jī)包括個(gè)人計(jì)算機(jī)、筆記本計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、各種數(shù)據(jù)通信裝置、數(shù)碼相機(jī)、蜂窩電話、便攜式音頻播放器、汽車音響系統(tǒng)和類似類型的設(shè)備。在某些系統(tǒng)中,可移除卡不包括控制器,且主機(jī)控制所述卡中存儲(chǔ)器陣列的操作。此類型的存儲(chǔ)系統(tǒng)的實(shí)例包括智能媒體卡(Smart Media card)和xD卡。因此,對(duì)存儲(chǔ)器陣列的控制可由卡中控制器上的軟件來實(shí)現(xiàn)或由主機(jī)中的控制軟件來實(shí)現(xiàn)。除存儲(chǔ)卡實(shí)施方案外,這種類型的存儲(chǔ)器可替代地嵌入到各種類型的主機(jī)系統(tǒng)中。在可移除應(yīng)用和嵌入式應(yīng)用兩者中,主機(jī)數(shù)據(jù)可根據(jù)存儲(chǔ)器控制軟件所實(shí)施的存儲(chǔ)機(jī)制而存儲(chǔ)在存儲(chǔ)器陣列中。
兩種常用存儲(chǔ)單元陣列結(jié)構(gòu)已找到商業(yè)應(yīng)用,即或非和與非。在典型的或非陣列中,存儲(chǔ)單元連接在相鄰的位線源與在列方向上延伸的漏極擴(kuò)散之間,其中控制柵極連接到沿單元的行延伸的字線。存儲(chǔ)單元包括至少一個(gè)存儲(chǔ)元件,所述存儲(chǔ)元件定位在源極與漏極之間的單元通道區(qū)的至少一部分上方。存儲(chǔ)元件上的已編程電荷電平因此控制所述單元的操作特征,接著可通過向所尋址的存儲(chǔ)單元施加恰當(dāng)電壓來讀取所述操作特征。此類單元、其在存儲(chǔ)系統(tǒng)中的使用和制造所述單元的方法的實(shí)例在第5,070,032號(hào)、第5,095,344號(hào)、第5,313,421號(hào)、第5,315,541號(hào)、第5,343,063號(hào)、第5,661,053號(hào)和第6,222,762號(hào)美國(guó)專利中給出。這些專利連同此申請(qǐng)案中所參考的所有其它專利和專利申請(qǐng)案全文均以引用的方式并入本文中。
與非陣列利用兩個(gè)以上存儲(chǔ)單元(例如16或32個(gè))的串聯(lián)串,所述兩個(gè)以上存儲(chǔ)單元連同一個(gè)或一個(gè)以上選擇晶體管連接在個(gè)別位線與參考電位之間以形成單元的列。字線越過這些列中的較大數(shù)目的列內(nèi)的單元而延伸。在編程期間,通過使所述串中的剩余單元較難接通以使得流經(jīng)串的電流依賴于存儲(chǔ)在被尋址單元中的電荷的電平,來讀取和檢驗(yàn)列內(nèi)的個(gè)別單元。與非結(jié)構(gòu)陣列和其作為存儲(chǔ)系統(tǒng)的一部分的操作的實(shí)例可參閱第5,570,315號(hào)、第5,774,397號(hào)、第6,046,935號(hào)和第6,522,580號(hào)美國(guó)專利。
如在前面參考的專利中所論述,當(dāng)前快閃EEPROM陣列的電荷存儲(chǔ)元件是最常見的導(dǎo)電浮動(dòng)?xùn)艠O,其通常由導(dǎo)電摻雜多晶硅材料形成。快閃EEPROM系統(tǒng)中可用的替代類型的存儲(chǔ)單元利用非導(dǎo)電介電材料代替導(dǎo)電浮動(dòng)?xùn)艠O來以非易失性方式存儲(chǔ)電荷。由氧化硅、氮化硅和氧化硅形成的三層電介質(zhì)(ONO)夾在導(dǎo)電控制柵極與存儲(chǔ)單元通道上方的半導(dǎo)電襯底的表面之間。通過將來自單元通道的電子注射到氮化物中來對(duì)所述單元進(jìn)行編程,在所述氮化物中所述電子被俘獲并存儲(chǔ)在受限區(qū)中,且通過將熱空穴注射到氮化物來擦除所述單元。在Harari等人的第2003/0109093號(hào)美國(guó)專利申請(qǐng)公開案中描述使用介電存儲(chǔ)元件的若干特定單元結(jié)構(gòu)和陣列。
如在幾乎所有集成電路應(yīng)用中那樣,快閃EEPROM存儲(chǔ)單元陣列還存在縮小實(shí)施某一集成電路功能所需要的硅襯底區(qū)域的壓力。仍然需要增加可存儲(chǔ)在硅襯底的給定區(qū)域中的數(shù)字?jǐn)?shù)據(jù)的量,以便增加給定尺寸存儲(chǔ)卡和其它類型封裝的存儲(chǔ)容量,或增加容量并減小尺寸。一種用以增加數(shù)據(jù)存儲(chǔ)密度的方法是在每個(gè)存儲(chǔ)單元和/或每個(gè)存儲(chǔ)單位或元件中存儲(chǔ)一個(gè)以上數(shù)據(jù)位。這通過將存儲(chǔ)元件電荷電平電壓范圍的窗口劃分為兩個(gè)以上狀態(tài)來完成。使用四個(gè)此類狀態(tài)允許每個(gè)單元均存儲(chǔ)兩個(gè)數(shù)據(jù)位,八個(gè)狀態(tài)在每個(gè)存儲(chǔ)元件中存儲(chǔ)三個(gè)數(shù)據(jù)位,等等。在第5,043,940號(hào)和第5,172,338號(hào)美國(guó)專利中描述使用浮動(dòng)?xùn)艠O的多狀態(tài)快閃EEPROM結(jié)構(gòu)和其操作,且在前述第2003/0109093號(hào)美國(guó)專利申請(qǐng)公開案中描述使用介電浮動(dòng)?xùn)艠O的結(jié)構(gòu)。多狀態(tài)存儲(chǔ)單元陣列的選定部分還可出于多種原因而以第5,930,167號(hào)和第6,456,528號(hào)美國(guó)專利中描述的方式,以兩種狀態(tài)(二進(jìn)制)進(jìn)行操作,所述美國(guó)專利連同此申請(qǐng)案中所引用的所有專利和專利申請(qǐng)案全文以引用的方式并入本文中。
典型的快閃EEPROM陣列的存儲(chǔ)單元被劃分成一起擦除的離散單元區(qū)塊(擦除區(qū)塊)。也就是說,擦除區(qū)塊是擦除單位,即可同時(shí)擦除的最小數(shù)目的單元。每一擦除區(qū)塊通常存儲(chǔ)一個(gè)或一個(gè)以上數(shù)據(jù)頁(yè)面,所述頁(yè)面是最小的編程和讀取單位,盡管可在不同子陣列或平面中并行編程或讀取一個(gè)以上頁(yè)面。每個(gè)頁(yè)面通常存儲(chǔ)一個(gè)或一個(gè)以上數(shù)據(jù)扇區(qū),其中扇區(qū)大小由主機(jī)系統(tǒng)界定。實(shí)例性扇區(qū)包括512個(gè)字節(jié)的用戶數(shù)據(jù),隨后是由磁盤驅(qū)動(dòng)器建立的標(biāo)準(zhǔn),加上關(guān)于用戶數(shù)據(jù)和/或其中存儲(chǔ)用戶數(shù)據(jù)的擦除區(qū)塊的某一數(shù)目的字節(jié)的開銷信息。此類存儲(chǔ)器通常在每個(gè)擦除區(qū)塊內(nèi)配置有16個(gè)、32個(gè)或更多頁(yè)面,且每個(gè)頁(yè)面均存儲(chǔ)一個(gè)或僅幾個(gè)主機(jī)數(shù)據(jù)扇區(qū)。
為了增加將用戶數(shù)據(jù)編程到存儲(chǔ)器陣列中且從存儲(chǔ)器陣列讀取用戶數(shù)據(jù)期間的并行度,通常將所述陣列劃分為若干子陣列(通常稱為平面),其含有其自己的數(shù)據(jù)寄存器和其它電路以允許并行操作,以使得可將若干數(shù)據(jù)扇區(qū)同時(shí)編程到若干或所有所述平面中的每一者或同時(shí)從若干或所有所述平面中的每一者讀取若干數(shù)據(jù)扇區(qū)。可將單個(gè)集成電路上的陣列物理地劃分成若干平面,或每個(gè)平面可由單獨(dú)的一個(gè)或一個(gè)以上集成電路芯片形成。在第5,798,968號(hào)和第5,890,192號(hào)美國(guó)專利中描述此類存儲(chǔ)器實(shí)施方案的實(shí)例。
為了進(jìn)一步有效管理存儲(chǔ)器,可將擦除區(qū)塊鏈接在一起,以形成虛擬區(qū)塊或元區(qū)塊。也就是說,每個(gè)元區(qū)塊均被界定為包括來自每個(gè)平面的一個(gè)擦除區(qū)塊。在第6,763,424號(hào)美國(guó)專利中描述元區(qū)塊的使用。元區(qū)塊由主機(jī)邏輯區(qū)塊地址標(biāo)識(shí)為用于編碼和讀取數(shù)據(jù)的目的地。類似地,元區(qū)塊的所有擦除區(qū)塊被一起擦除??梢栽?yè)面為單位來對(duì)元區(qū)塊進(jìn)行編程,所述元頁(yè)面包含來自元區(qū)塊中每個(gè)擦除區(qū)塊的一個(gè)頁(yè)面。以此類大區(qū)塊和/或元區(qū)塊進(jìn)行操作的存儲(chǔ)系統(tǒng)中的控制器執(zhí)行許多功能,包括從主機(jī)接收到的邏輯區(qū)塊地址(LBA)與存儲(chǔ)單元陣列內(nèi)的物理區(qū)塊編號(hào)(PBN)之間的轉(zhuǎn)譯。擦除區(qū)塊內(nèi)的個(gè)別頁(yè)面通常由區(qū)塊地址內(nèi)的偏移量來標(biāo)識(shí)。地址轉(zhuǎn)譯通常涉及使用邏輯區(qū)塊編號(hào)(LBN)和邏輯頁(yè)面的中間項(xiàng)。在使用元區(qū)塊的存儲(chǔ)系統(tǒng)中,元區(qū)塊可以是存儲(chǔ)器陣列的最小有效擦除單位。因此,視存儲(chǔ)器結(jié)構(gòu)而定,最小擦除單位(區(qū)塊)可以是擦除區(qū)塊或元區(qū)塊。視結(jié)構(gòu)而定,術(shù)語(yǔ)“區(qū)塊”可指代擦除區(qū)塊或元區(qū)塊。類似地,術(shù)語(yǔ)“頁(yè)面”可指代存儲(chǔ)系統(tǒng)的最小編程單位。視存儲(chǔ)系統(tǒng)的結(jié)構(gòu)而定,術(shù)語(yǔ)“頁(yè)面”可以是單個(gè)擦除區(qū)塊內(nèi)的頁(yè)面或者可以是越過若干擦除區(qū)塊而延伸的元頁(yè)面。
存儲(chǔ)在元區(qū)塊中的數(shù)據(jù)通常得到更新,更新的可能性隨著元區(qū)塊的數(shù)據(jù)容量的增加而增加。通常將一個(gè)元區(qū)塊的已更新扇區(qū)寫入到另一元區(qū)塊。作為同一編程操作的一部分,通常還將未改變的扇區(qū)從原始元區(qū)塊復(fù)制到新的元區(qū)塊,以合并所述數(shù)據(jù)?;蛘?,未改變的數(shù)據(jù)可保留在原始元區(qū)塊中,直到稍后與已更新數(shù)據(jù)再次合并到單個(gè)元區(qū)塊中為止。用于將當(dāng)前數(shù)據(jù)合并到新區(qū)塊且擦除僅含有廢棄數(shù)據(jù)的區(qū)塊的操作通常被稱為“垃圾收集(garbage collection)”操作。
通常用保存在已擦除區(qū)塊池(erased block pool)中的某些額外區(qū)塊來操作大區(qū)塊或元區(qū)塊系統(tǒng)。當(dāng)正更新少于區(qū)塊容量的一個(gè)或一個(gè)以上數(shù)據(jù)頁(yè)面時(shí),通常將已更新頁(yè)面寫入到來自所述池的已擦除區(qū)塊,且接著將未改變頁(yè)面的數(shù)據(jù)從原始區(qū)塊復(fù)制到擦除池區(qū)塊。在前述第6,763,424號(hào)美國(guó)專利中描述此項(xiàng)技術(shù)的變化。隨著時(shí)間過去,由于主機(jī)數(shù)據(jù)文件被重新寫入并更新,因而許多區(qū)塊可在其頁(yè)面中相對(duì)較少數(shù)目的頁(yè)面含有有效數(shù)據(jù)且剩余頁(yè)面含有不再是當(dāng)前的數(shù)據(jù)的情況下結(jié)束。為了能夠有效使用陣列的數(shù)據(jù)存儲(chǔ)容量,邏輯上相關(guān)的有效數(shù)據(jù)的數(shù)據(jù)頁(yè)面不時(shí)地從多個(gè)區(qū)塊間的片段聚集在一起,且一起合并到較少數(shù)目的區(qū)塊中。這個(gè)過程通常被命名為“垃圾收集”。
在一些存儲(chǔ)系統(tǒng)中,物理存儲(chǔ)單元還被分組成兩個(gè)或兩個(gè)以上區(qū)。區(qū)可以是物理存儲(chǔ)器或存儲(chǔ)系統(tǒng)的任何分割子集,指定范圍的邏輯區(qū)塊地址被映射到所述子集中。舉例來說,可將能夠存儲(chǔ)64兆字節(jié)的數(shù)據(jù)的存儲(chǔ)系統(tǒng)分割成四個(gè)區(qū),每個(gè)區(qū)存儲(chǔ)16兆字節(jié)的數(shù)據(jù)。接著將邏輯區(qū)塊地址范圍也劃分為四個(gè)群組,一個(gè)群組被分配到所述四個(gè)區(qū)中每一者的物理區(qū)塊。在典型實(shí)施方案中,邏輯區(qū)塊地址受到限制,以使得每一者的數(shù)據(jù)永遠(yuǎn)不會(huì)寫入在邏輯區(qū)塊地址映射到其中的單個(gè)物理區(qū)的外部。在劃分為若干平面(子陣列)(其每一者均具有其自己的尋址、編程和讀取電路)的存儲(chǔ)單元陣列中,每個(gè)區(qū)均優(yōu)選地包括來自多個(gè)平面的區(qū)塊,通常來自平面中每一者的區(qū)塊的數(shù)目相同。區(qū)主要用于簡(jiǎn)化地址管理,例如邏輯到物理轉(zhuǎn)譯,從而導(dǎo)致轉(zhuǎn)譯表較小、保存這些表所需的RAM存儲(chǔ)器較少且用以尋址當(dāng)前有效存儲(chǔ)區(qū)的存取時(shí)間較快,但由于其限制性本質(zhì)可導(dǎo)致欠佳損耗均衡。
個(gè)別快閃EEPROM單元在代表一個(gè)或一個(gè)以上數(shù)據(jù)位的電荷存儲(chǔ)元件或單位中存儲(chǔ)一定量的電荷。存儲(chǔ)元件的電荷電平控制其存儲(chǔ)單元的閾值電壓(通常標(biāo)注為Vt),所述閾值電壓被用作讀取所述單元的存儲(chǔ)狀態(tài)的基礎(chǔ)。閾值電壓窗口通常被劃分為許多范圍,一個(gè)范圍對(duì)應(yīng)于存儲(chǔ)單元的兩個(gè)或兩個(gè)以上存儲(chǔ)狀態(tài)中的每一者。這些范圍由安全帶分開,所述安全帶包括允許確定個(gè)別單元的存儲(chǔ)狀態(tài)的標(biāo)稱感測(cè)電平。這些存儲(chǔ)電平的確由于電荷干擾在相鄰或其它相關(guān)存儲(chǔ)單元、頁(yè)面或區(qū)塊中執(zhí)行的編程、讀取或擦除操作而發(fā)生移位。因此,誤差校正碼(ECC)通常由控制器來計(jì)算且與正被編程的主機(jī)數(shù)據(jù)一起存儲(chǔ),并在讀取期間用于檢驗(yàn)所述數(shù)據(jù)且在必要時(shí)執(zhí)行某一等級(jí)的數(shù)據(jù)校正。而且,在干擾操作致使電荷電平完全從其界定范圍移位出來且因此導(dǎo)致錯(cuò)誤數(shù)據(jù)被讀取之前,移位電荷電平可不時(shí)恢復(fù)到所述電荷電平的狀態(tài)范圍的中央。在第5,532,962號(hào)和第5,909,449號(hào)美國(guó)專利中描述這個(gè)過程,其被命名為數(shù)據(jù)刷新或清理。
在一些存儲(chǔ)器陣列中,頁(yè)面可由擦除區(qū)塊中可保存多個(gè)數(shù)據(jù)扇區(qū)的一部分組成。一旦頁(yè)面已被寫入,不可能在不破壞已經(jīng)寫入的數(shù)據(jù)的情況下進(jìn)行進(jìn)一步寫入。對(duì)于使用此類系統(tǒng)的存儲(chǔ)器陣列來說,頁(yè)面可由一組連接到同一字線的存儲(chǔ)單元來界定。在接收到小于頁(yè)面尺寸的量的數(shù)據(jù)的情況下,可低效地對(duì)此類存儲(chǔ)器陣列進(jìn)行編程。舉例來說,在一次一個(gè)扇區(qū)地接收到數(shù)據(jù)的情況下,可僅將一個(gè)扇區(qū)編程到頁(yè)面。在沒有破壞已經(jīng)保存在那里的數(shù)據(jù)扇區(qū)的風(fēng)險(xiǎn)的情況下,不可能將任何額外數(shù)據(jù)編程到頁(yè)面。有時(shí),可接收到一連串單個(gè)扇區(qū),其中在所述扇區(qū)之間具有某一延遲。在此情況下,將每個(gè)扇區(qū)寫入到存儲(chǔ)器陣列的單獨(dú)頁(yè)面。因此,以低效地使用存儲(chǔ)器陣列中的空間的方式來存儲(chǔ)所述扇區(qū)。在使用多級(jí)邏輯的情況下,存儲(chǔ)單元對(duì)于附近單元的稍后編程的影響特別敏感。另外,編程多級(jí)單元一般是通過用第一數(shù)據(jù)頁(yè)面對(duì)單元群組進(jìn)行編程且稍后用第二數(shù)據(jù)頁(yè)面對(duì)所述單元進(jìn)行編程來完成的。在某些情況下,對(duì)第二數(shù)據(jù)頁(yè)面進(jìn)行編程可造成對(duì)第一數(shù)據(jù)頁(yè)面的破壞。因此,需要一種更有效的方法來在具有多扇區(qū)頁(yè)面的存儲(chǔ)器陣列接收到小于頁(yè)面的量的數(shù)據(jù)時(shí),在所述存儲(chǔ)器陣列中存儲(chǔ)數(shù)據(jù)。還需要一種用以在對(duì)多級(jí)單元群組進(jìn)行編程時(shí),防止在對(duì)隨后頁(yè)面進(jìn)行編程期間破壞第一頁(yè)面的數(shù)據(jù)的方法。

發(fā)明內(nèi)容
在擦除單位為區(qū)塊的存儲(chǔ)器陣列中,可將一個(gè)或一個(gè)以上區(qū)塊指定為高速暫存區(qū)塊,且可將其用于改進(jìn)存儲(chǔ)系統(tǒng)的性能。高速暫存區(qū)塊可作為緩沖器而操作,以使得數(shù)據(jù)以低并行度寫入到高速暫存區(qū)塊且接著以高并行度復(fù)制到所述存儲(chǔ)器陣列內(nèi)的另一位置。數(shù)據(jù)可在高速暫存區(qū)塊中累積,直到所述數(shù)據(jù)可更有效地寫入到另一位置為止。在具有多扇區(qū)頁(yè)面的存儲(chǔ)器中,扇區(qū)可累積,直到可使用所述系統(tǒng)的最大并行性來寫入完整頁(yè)面為止。在多級(jí)單元存儲(chǔ)器中,下層頁(yè)面可存儲(chǔ)在高速暫存區(qū)塊中,直到上層頁(yè)面可用為止,以使得上層頁(yè)面和下層頁(yè)面被一起存儲(chǔ)。
特定程序操作的并行度與一起被編程的數(shù)據(jù)位的數(shù)目成比例。因此,對(duì)較大量的數(shù)據(jù)一起進(jìn)行編程被視作具有高并行性的寫入,而對(duì)較小量的數(shù)據(jù)一起編程進(jìn)行被視作低并行性。在使用小于一頁(yè)面的并行性的情況下,浪費(fèi)了存儲(chǔ)器陣列中的空間,且此浪費(fèi)的空間意味著必須更頻繁地執(zhí)行垃圾收集,從而不利地影響存儲(chǔ)系統(tǒng)的效率。有時(shí),較小量的數(shù)據(jù)必須存儲(chǔ)在存儲(chǔ)系統(tǒng)中。通過將這些小寫入(small write)寫入在一個(gè)位置(高速暫存區(qū)塊)中,且稍后以較高并行性將所述小寫入一起寫入到另一位置,可改進(jìn)存儲(chǔ)系統(tǒng)的效率。
本發(fā)明揭示一種在具有由多個(gè)數(shù)據(jù)扇區(qū)組成的頁(yè)面作為最小編程單位的存儲(chǔ)系統(tǒng)中存儲(chǔ)以少于一個(gè)頁(yè)面的量接收的數(shù)據(jù)的方法。被指定為高速暫存區(qū)塊的區(qū)塊用于存儲(chǔ)所接收到的扇區(qū),直到可將完整的頁(yè)面寫入到快閃存儲(chǔ)器陣列為止。第一扇區(qū)存儲(chǔ)在高速暫存區(qū)塊的第一頁(yè)面中。隨后接收到的扇區(qū)可存儲(chǔ)在高速暫存區(qū)塊的額外頁(yè)面中。個(gè)別地接收到的扇區(qū)或扇區(qū)群組在被接收時(shí)保存在高速暫存區(qū)塊的新頁(yè)面中。來自高速暫存區(qū)塊中其它頁(yè)面的先前存儲(chǔ)的扇區(qū)可連同新數(shù)據(jù)一起被復(fù)制到最新頁(yè)面。因此,只要高速暫存區(qū)塊的頁(yè)面中存在少于完整頁(yè)面的新數(shù)據(jù),就在高速暫存區(qū)塊中累積數(shù)據(jù)扇區(qū)??梢缘陀趨^(qū)塊的最大可用并行性的并行度將扇區(qū)寫入到高速暫存區(qū)塊。可在將扇區(qū)存儲(chǔ)在高速暫存區(qū)塊中的同時(shí)更新所述扇區(qū)。當(dāng)接收到導(dǎo)致完整數(shù)據(jù)頁(yè)面可用于編程的新數(shù)據(jù)扇區(qū)時(shí),可將所述新扇區(qū)和先前存儲(chǔ)在高速暫存區(qū)塊中的扇區(qū)一起編程到存儲(chǔ)器陣列的另一區(qū)塊中的同一頁(yè)面。此頁(yè)面完全由數(shù)據(jù)填充且以最大可用并行性進(jìn)行寫入。接著,可將存儲(chǔ)在高速暫存區(qū)塊中的數(shù)據(jù)標(biāo)記為廢棄,且可在適宜時(shí)間將其擦除。因此,更有效地使用了快閃存儲(chǔ)器中的空間,且降低了垃圾收集操作的頻率。
在具有多級(jí)單元的存儲(chǔ)器中,高速暫存區(qū)塊可存儲(chǔ)還被寫入到現(xiàn)用區(qū)塊的數(shù)據(jù)頁(yè)面。所存儲(chǔ)的頁(yè)面可保存在高速暫存區(qū)塊中,直到接收到另一數(shù)據(jù)頁(yè)面為止,以使得所述兩個(gè)數(shù)據(jù)頁(yè)面可一起寫入到其在現(xiàn)用區(qū)塊中的目的地。可使用高并行度將所述兩個(gè)數(shù)據(jù)頁(yè)面作為上層頁(yè)面和下層頁(yè)面一起寫入,且這樣做破壞數(shù)據(jù)的風(fēng)險(xiǎn)低于將所述兩個(gè)數(shù)據(jù)頁(yè)面單獨(dú)寫入時(shí)的風(fēng)險(xiǎn)。高速暫存區(qū)塊還可用于在對(duì)相關(guān)聯(lián)的上層頁(yè)面進(jìn)行編程期間保留先前編程的下層頁(yè)面的副本,以使得在存在電力喪失的情況下,可從高速暫存區(qū)塊恢復(fù)下層頁(yè)面中的數(shù)據(jù)。
高速暫存區(qū)塊可允許臨時(shí)存儲(chǔ)待寫入到另一位置的數(shù)據(jù)??稍诟聟^(qū)塊的數(shù)據(jù)扇區(qū)期間,將數(shù)據(jù)存儲(chǔ)在高速暫存區(qū)塊中。在區(qū)塊內(nèi)的頁(yè)面含有來自不同文件的數(shù)據(jù)扇區(qū)的情況下,在更新任一區(qū)塊時(shí)更新所述頁(yè)面。使用常規(guī)方法來存儲(chǔ)來自所述兩個(gè)文件的已更新數(shù)據(jù)可能需要一個(gè)以上區(qū)塊,因?yàn)榭赡苄枰辔募?yè)面的兩個(gè)副本。使用高速暫存區(qū)塊允許存儲(chǔ)來自一個(gè)文件的頁(yè)面的一部分,直到(來自另一文件的)頁(yè)面的剩余部分可用為止。接著,使用最大并行性將完整的已更新頁(yè)面編程到其目的地。
高速暫存區(qū)塊可含有不相關(guān)的數(shù)據(jù)扇區(qū)。主機(jī)數(shù)據(jù)扇區(qū)和控制數(shù)據(jù)扇區(qū)兩者均可存儲(chǔ)在高速暫存區(qū)塊中。主機(jī)數(shù)據(jù)扇區(qū)和控制數(shù)據(jù)扇區(qū)兩者均可存儲(chǔ)在高速暫存區(qū)塊內(nèi)的同一頁(yè)面中。來自兩個(gè)不同文件或來自同一文件的邏輯上遙遠(yuǎn)部分的扇區(qū)可存儲(chǔ)在高速暫存區(qū)塊的同一頁(yè)面中。這可允許以最大并行性來對(duì)高速暫存區(qū)塊進(jìn)行編程,以使得在接收數(shù)據(jù)時(shí)維持高速度。在以低速度接收數(shù)據(jù)的情況下,頁(yè)面中的額外空間可由含有控制數(shù)據(jù)的扇區(qū)占用。這可允許較不頻繁地更新控制數(shù)據(jù)結(jié)構(gòu),從而降低垃圾收集的頻率。
高速暫存可由標(biāo)記扇區(qū)來標(biāo)識(shí),以使得控制器可容易地識(shí)別所述高速暫存。存儲(chǔ)在高速暫存區(qū)塊中的數(shù)據(jù)的索引可保存在索引扇區(qū)中,所述索引扇區(qū)本身存儲(chǔ)在高速暫存區(qū)塊中。當(dāng)將新扇區(qū)存儲(chǔ)在高速暫存區(qū)塊中時(shí),通過用新索引扇區(qū)代替舊索引扇區(qū)來更新索引扇區(qū)。類似地,當(dāng)將高速暫存區(qū)塊中的扇區(qū)復(fù)制到其它位置時(shí),可更新索引扇區(qū)來指示高速暫存區(qū)塊中的這些扇區(qū)是廢棄的。


圖1A和1B分別是一起操作的非易失性存儲(chǔ)器和主機(jī)系統(tǒng)的方框圖。
圖2說明圖1A的存儲(chǔ)器陣列的第一實(shí)例性組織。
圖3展示存儲(chǔ)在圖1A的存儲(chǔ)器陣列中的具有開銷數(shù)據(jù)的實(shí)例性主機(jī)數(shù)據(jù)扇區(qū)。
圖4說明圖1A的存儲(chǔ)器陣列的第二實(shí)例性組織。
圖5說明圖1A的存儲(chǔ)器陣列的第三實(shí)例性組織。
圖6展示圖1A的存儲(chǔ)器陣列的第三實(shí)例性組織的擴(kuò)展。
圖7是在一個(gè)特定配置中的圖1A的陣列的存儲(chǔ)單元群組的電路圖。
圖8展示存儲(chǔ)器陣列(例如圖1A的存儲(chǔ)器陣列)的區(qū)塊中的數(shù)據(jù)扇區(qū)的存儲(chǔ)。
圖9展示存儲(chǔ)器陣列(例如圖1A的存儲(chǔ)器陣列)的區(qū)塊中的數(shù)據(jù)扇區(qū)的替代性存儲(chǔ)。
圖10A展示在垃圾收集操作期間在復(fù)制到另一區(qū)塊之后的圖8或9的數(shù)據(jù)扇區(qū)。
圖10B展示在第二垃圾收集操作期間在復(fù)制到另一區(qū)塊之后的圖10A的數(shù)據(jù)扇區(qū)。
圖10C展示在接收到更多數(shù)據(jù)扇區(qū)之后的圖10B的區(qū)塊。
圖11A展示使用兩個(gè)擦除區(qū)塊(現(xiàn)用區(qū)塊和高速暫存區(qū)塊)來存儲(chǔ)圖10A和10B的數(shù)據(jù)扇區(qū)的替代性存儲(chǔ)布置。
圖11B展示使用兩個(gè)元區(qū)塊(現(xiàn)用區(qū)塊和高速暫存區(qū)塊)來存儲(chǔ)圖10A和10B的數(shù)據(jù)扇區(qū)的替代性存儲(chǔ)布置。
圖12A展示兩個(gè)區(qū)塊(現(xiàn)用區(qū)塊和高速暫存區(qū)塊),其用于存儲(chǔ)數(shù)據(jù)扇區(qū),以使得可在存儲(chǔ)的同時(shí)更新所述數(shù)據(jù)扇區(qū),而不觸發(fā)垃圾收集操作。
圖12B展示圖12A的存儲(chǔ)系統(tǒng)的替代性存儲(chǔ)系統(tǒng),其允許頁(yè)面的所有扇區(qū)均在存儲(chǔ)的同時(shí)得到更新,而不觸發(fā)垃圾收集。
圖13展示用于在多級(jí)單元中存儲(chǔ)兩個(gè)數(shù)據(jù)位的四個(gè)閾值電壓范圍。
圖14展示兩個(gè)具有多級(jí)單元的區(qū)塊(現(xiàn)用區(qū)塊和高速暫存區(qū)塊),其中所述高速暫存區(qū)塊保存現(xiàn)用區(qū)塊的下層頁(yè)面的副本。
圖15展示來自存儲(chǔ)在區(qū)塊中的兩個(gè)文件的數(shù)據(jù)扇區(qū)和在更新所述兩個(gè)文件時(shí)隨后存儲(chǔ)所述數(shù)據(jù)扇區(qū)需要存儲(chǔ)器陣列中一個(gè)以上區(qū)塊的空間。
圖16展示更新圖15的數(shù)據(jù)扇區(qū)的替代性系統(tǒng),其中在將一些扇區(qū)復(fù)制到現(xiàn)用區(qū)塊之前,高速暫存區(qū)塊存儲(chǔ)所述扇區(qū)。
圖17展示在同一頁(yè)面中存儲(chǔ)不相關(guān)數(shù)據(jù)扇區(qū)的高速暫存區(qū)塊和隨后將此數(shù)據(jù)復(fù)制到不同位置。
圖18展示存儲(chǔ)經(jīng)歷多次更新的不相關(guān)數(shù)據(jù)扇區(qū)的高速暫存區(qū)塊。
圖19展示由標(biāo)記扇區(qū)標(biāo)識(shí)的高速暫存區(qū)塊。
圖20展示存儲(chǔ)扇區(qū)群組和索引扇區(qū)的圖1 9的高速暫存區(qū)塊。
圖21展示存儲(chǔ)第二扇區(qū)群組和取代第一索引扇區(qū)的第二索引扇區(qū)的圖20的高速暫存區(qū)塊。
圖22展示存儲(chǔ)第三扇區(qū)群組和取代第二索引扇區(qū)的第三索引扇區(qū)的圖21的高速暫存區(qū)塊。
圖23展示具有在將群組復(fù)制到另一區(qū)塊時(shí)取代第三索引扇區(qū)的第四索引扇區(qū)的圖22的高速暫存區(qū)塊。
具體實(shí)施例方式
存儲(chǔ)器結(jié)構(gòu)和其操作首先參照?qǐng)D1A,快閃存儲(chǔ)器包括存儲(chǔ)單元陣列和控制器。在所示實(shí)例中,兩個(gè)集成電路裝置(芯片)11和13包括存儲(chǔ)單元陣列15和各種邏輯電路17。所述邏輯電路17通過數(shù)據(jù)、命令和狀態(tài)電路與單獨(dú)芯片上的控制器19介接,且還向陣列13提供尋址、數(shù)據(jù)傳送和感測(cè)以及其它支持。存儲(chǔ)器陣列芯片的數(shù)目可從一到許多,視所提供的存儲(chǔ)容量而定。控制器和部分或整個(gè)陣列可替代性地組合到單個(gè)集成電路芯片上,但這在當(dāng)前不是經(jīng)濟(jì)的替代方案。
典型的控制器19包括微處理器21、主要用于存儲(chǔ)固件的只讀存儲(chǔ)器(ROM)23和主要用于臨時(shí)存儲(chǔ)寫入到存儲(chǔ)器芯片11和13或從存儲(chǔ)器芯片11和13讀取的用戶數(shù)據(jù)的緩沖存儲(chǔ)器(RAM)25。電路27與存儲(chǔ)器陣列芯片介接,且電路29通過連接31而與主機(jī)介接。在此實(shí)例中,通過用電路33計(jì)算ECC來確定數(shù)據(jù)的完整性,所述電路33專用于計(jì)算代碼。當(dāng)將用戶數(shù)據(jù)從主機(jī)傳送到快閃存儲(chǔ)器陣列以供存儲(chǔ)時(shí),所述電路從所述數(shù)據(jù)計(jì)算ECC,且將所述代碼存儲(chǔ)在存儲(chǔ)器中。當(dāng)稍后從存儲(chǔ)器讀取所述用戶數(shù)據(jù)時(shí),所述用戶數(shù)據(jù)再次經(jīng)過電路33,所述電路33通過同一算法來計(jì)算ECC,并將所述代碼與使用所述數(shù)據(jù)計(jì)算并與所述數(shù)據(jù)一起存儲(chǔ)的那個(gè)代碼進(jìn)行比較。如果它們匹配,那么數(shù)據(jù)的完整性得到證實(shí)。如果它們不同,那么視所利用的特定ECC算法而定,可識(shí)別并校正那些錯(cuò)誤的位(至多達(dá)由所述算法支持的數(shù)目)。
圖1A的存儲(chǔ)器的連接31與主機(jī)系統(tǒng)的連接31′緊密配合,所述連接31′的實(shí)例在圖1B中給出。主機(jī)與圖1A的存儲(chǔ)器之間的數(shù)據(jù)傳送是通過接口電路35的。典型的主機(jī)也包括微處理器37、用于存儲(chǔ)固件代碼的ROM 39和RAM 41。其它電路和子系統(tǒng)43通常包括高容量磁性數(shù)據(jù)存儲(chǔ)盤驅(qū)動(dòng)器(high capacity magnetic data storage disk drive),用于鍵盤、監(jiān)視器和類似物的接口電路(視特定主機(jī)系統(tǒng)而定)。此類主機(jī)的一些實(shí)例包括桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、MP3和其它音頻播放器、數(shù)碼相機(jī)、攝像機(jī)、電子游戲機(jī)、無線和有線電話裝置、應(yīng)答機(jī)、錄音機(jī)、網(wǎng)路路由器和其它裝置。
圖1A的存儲(chǔ)器可實(shí)施為具有可移除地與圖1B的主機(jī)連接的形式的小型封閉式卡,其含有控制器和所有其存儲(chǔ)器陣列電路裝置。也就是說,配合連接31和31′允許將卡分離并移到另一主機(jī),或通過將另一卡連接到主機(jī)來代替所述卡?;蛘?,存儲(chǔ)器陣列裝置可封閉在單獨(dú)卡中,所述單獨(dú)卡可與含有控制器和連接31的卡進(jìn)行電連接和機(jī)械連接。作為另一替代方案,圖1A的存儲(chǔ)器可嵌入在圖1B的主機(jī)內(nèi),其中可永久獲得連接31和31′。在此情況下,存儲(chǔ)器通常連同其它組件包含在主機(jī)的外殼內(nèi)。
圖2說明存儲(chǔ)器陣列的一部分,其中存儲(chǔ)單元被分組成若干擦除區(qū)塊,作為單個(gè)擦除操作的一部分,每個(gè)擦除區(qū)塊中的單元可一起被擦除(通常是同時(shí)的)。在此類型的存儲(chǔ)器中,擦除區(qū)塊是最小擦除單位。
圖2的個(gè)別存儲(chǔ)單元擦除區(qū)塊的大小可變化,但一種商業(yè)上實(shí)踐的形式在個(gè)別擦除區(qū)塊中包括單個(gè)數(shù)據(jù)扇區(qū)。圖3中說明此類數(shù)據(jù)扇區(qū)的內(nèi)容。用戶數(shù)據(jù)51通常是512個(gè)字節(jié)。除用戶數(shù)據(jù)51之外還有開銷數(shù)據(jù),所述開銷數(shù)據(jù)包括從用戶數(shù)據(jù)計(jì)算得出的ECC 53、與扇區(qū)數(shù)據(jù)和/或擦除區(qū)塊(在所述擦除區(qū)塊中對(duì)扇區(qū)進(jìn)行編程)相關(guān)的參數(shù)55和從所述參數(shù)55計(jì)算得出的ECC 57,以及可能包括在內(nèi)的任何其它開銷數(shù)據(jù)。
還可在參數(shù)55中包括一個(gè)或一個(gè)以上旗標(biāo),所述旗標(biāo)指示狀況或狀態(tài)。用于編程和/或擦除所述擦除區(qū)塊的電壓電平的指示也可存儲(chǔ)在參數(shù)55內(nèi),將這些電壓更新為由擦除區(qū)塊經(jīng)歷的循環(huán)的數(shù)目,且其它因數(shù)發(fā)生變化。參數(shù)55的其它實(shí)例包括擦除區(qū)塊內(nèi)任何有缺陷單元的標(biāo)識(shí)、映射到此物理擦除區(qū)塊中的所述擦除區(qū)塊的邏輯地址和在主要擦除區(qū)塊有缺陷的情況下任何替代擦除區(qū)塊的地址。任何存儲(chǔ)系統(tǒng)中所使用的參數(shù)55的特定組合將根據(jù)設(shè)計(jì)而變化。而且,所述開銷數(shù)據(jù)中的一些或所有可存儲(chǔ)在專用于此類功能的擦除區(qū)塊中,而并非存儲(chǔ)在含有用戶數(shù)據(jù)或開銷數(shù)據(jù)所屬于的擦除區(qū)塊中。
與圖2的單數(shù)據(jù)扇區(qū)擦除區(qū)塊不同的是圖4的多扇區(qū)擦除塊。實(shí)例性擦除區(qū)塊59(仍然是最小擦除單位)含有四個(gè)頁(yè)面0-3,所述頁(yè)面中的每一者均為最小編程單位。每個(gè)頁(yè)面中存儲(chǔ)一個(gè)或一個(gè)以上主機(jī)數(shù)據(jù)扇區(qū),通常連同至少包括從所述扇區(qū)的數(shù)據(jù)計(jì)算得出的ECC的開銷數(shù)據(jù),且所述主機(jī)數(shù)據(jù)扇區(qū)可具有圖3的數(shù)據(jù)扇區(qū)的形式。
重新寫入整個(gè)區(qū)塊的數(shù)據(jù)通常涉及將新數(shù)據(jù)編程到擦除區(qū)塊池的區(qū)塊中,接著將原始區(qū)塊擦除并放置在擦除池中。當(dāng)更新少于區(qū)塊的所有頁(yè)面的數(shù)據(jù)時(shí),通常將已更新數(shù)據(jù)存儲(chǔ)在來自已擦除區(qū)塊池的區(qū)塊的頁(yè)面中,且將剩余的未改變頁(yè)面中的數(shù)據(jù)從原始區(qū)塊復(fù)制到新區(qū)塊中。接著擦除原始區(qū)塊。此大區(qū)塊管理技術(shù)的變化包括將已更新數(shù)據(jù)寫入到另一區(qū)塊的頁(yè)面中,而不從原始區(qū)塊移動(dòng)數(shù)據(jù)或?qū)?shù)據(jù)擦除。這導(dǎo)致多個(gè)頁(yè)面具有同一邏輯地址。最新近的數(shù)據(jù)頁(yè)面由某一適宜技術(shù)(例如記錄為扇區(qū)或頁(yè)面開銷數(shù)據(jù)中的字段的編程時(shí)間)來標(biāo)識(shí)。
圖5中說明另一多扇區(qū)區(qū)塊布置。此處,整個(gè)存儲(chǔ)單元陣列在物理上被劃分為兩個(gè)或兩個(gè)以上平面(以四個(gè)平面0-3進(jìn)行說明)。每個(gè)平面均為存儲(chǔ)單元的子陣列,其具有其自己的數(shù)據(jù)寄存器、感測(cè)放大器、尋址解碼器和類似物,以便能夠在很大程度上獨(dú)立于其它平面而進(jìn)行操作。所有平面均可提供在單個(gè)集成電路裝置上或多個(gè)裝置上,實(shí)例是由一個(gè)或一個(gè)以上不同集成電路裝置形成每個(gè)平面。圖5的實(shí)例性系統(tǒng)中的每個(gè)區(qū)塊均含有16個(gè)頁(yè)面P0-P15,每個(gè)頁(yè)面均具有一個(gè)、兩個(gè)或更多主機(jī)數(shù)據(jù)扇區(qū)和某些開銷數(shù)據(jù)的容量。
圖6中說明又一存儲(chǔ)單元布置。每個(gè)平面均含有較大數(shù)目的擦除單元區(qū)塊。為了增加操作的并行度,不同平面內(nèi)的擦除區(qū)塊在邏輯上進(jìn)行鏈接以形成元區(qū)塊。圖6中將一個(gè)此類元區(qū)塊說明為由平面0的擦除區(qū)塊3、平面1的擦除區(qū)塊1、平面2的擦除區(qū)塊1和平面3的擦除區(qū)塊2形成。每個(gè)元區(qū)塊均可在邏輯上進(jìn)行尋址,且存儲(chǔ)控制器分配并跟蹤形成個(gè)別元區(qū)塊的擦除區(qū)塊。主機(jī)系統(tǒng)優(yōu)選以等于個(gè)別元區(qū)塊的容量的數(shù)據(jù)為單位與存儲(chǔ)系統(tǒng)介接。舉例來說,圖6的此類邏輯數(shù)據(jù)區(qū)塊61由邏輯區(qū)塊地址(LBA)標(biāo)識(shí),所述LBA由控制器映射成組成元區(qū)塊的區(qū)塊的物理區(qū)塊編號(hào)(PBN)。元區(qū)塊的所有擦除區(qū)塊一起被擦除,且優(yōu)選地同時(shí)編程和讀取來自每個(gè)擦除區(qū)塊的頁(yè)面。元區(qū)塊可被視作系統(tǒng)中的擦除單位,在所述系統(tǒng)中,擦除區(qū)塊以此方式鏈接。在具有元區(qū)塊結(jié)構(gòu)的某些存儲(chǔ)陣列中,頁(yè)面僅可與所述元區(qū)塊的其它頁(yè)面并行而進(jìn)行編程。在這些存儲(chǔ)陣列中,元頁(yè)面是元區(qū)塊的最小編程單位,所述元頁(yè)面由來自所述元區(qū)塊的每個(gè)平面的頁(yè)面組成。
存在多種可用于實(shí)施上文相對(duì)于圖2-6描述的存儲(chǔ)器的不同存儲(chǔ)器陣列結(jié)構(gòu)、配置和特定單元結(jié)構(gòu)。圖7中展示與非型存儲(chǔ)器陣列的一個(gè)擦除區(qū)塊。串聯(lián)連接的存儲(chǔ)單元的較大數(shù)目的列導(dǎo)向串連接在電壓Vss的共用源65與位線BL0-BLN中的一者之間,所述位線BL0-BLN又與電路67連接,所述電路67含有地址解碼器、驅(qū)動(dòng)器、讀取感測(cè)放大器和類似物。具體地說,一個(gè)此類串含有串聯(lián)連接在位于所述串的相對(duì)端的選擇晶體管77與79之間的電荷存儲(chǔ)晶體管70、71……72和74。在此實(shí)例中,每個(gè)串均含有1 6個(gè)存儲(chǔ)晶體管,但其它數(shù)目也是可能的。字線WL0-WL15越過每個(gè)串的一個(gè)存儲(chǔ)晶體管而延伸,且連接到電路81,其含有字線的地址解碼器和電壓源驅(qū)動(dòng)器。線83和84上的電壓對(duì)通過其選擇晶體管將擦除區(qū)塊中的所有串一起連接到電壓源65和/或位線BL0-BLN進(jìn)行控制。數(shù)據(jù)和地址來自存儲(chǔ)控制器。
擦除區(qū)塊的每個(gè)電荷存儲(chǔ)晶體管(存儲(chǔ)單元)行均可形成一起編程和讀取的頁(yè)面??蓪⑶‘?dāng)電壓施加到此類頁(yè)面的字線(WL)以用于編程或讀取其數(shù)據(jù),而選擇施加到剩余字線的電壓來使其各自的存儲(chǔ)晶體管變得導(dǎo)電。在編程或讀取一個(gè)存儲(chǔ)晶體管行(頁(yè)面)的過程中,由于越過所有串而施加且施加到其字線的電壓的緣故,未選擇的行上的先前存儲(chǔ)的電荷電平可能受到干擾。這可防止在特定行中的其它單元已被編程之后對(duì)所述行的某些單元進(jìn)行編程。多狀態(tài)快閃存儲(chǔ)器對(duì)于干擾特別敏感。邏輯狀態(tài)的數(shù)目增加導(dǎo)致針對(duì)個(gè)別狀態(tài)的閾值電壓范圍較窄,以使得電荷電平的較小變化可產(chǎn)生邏輯狀態(tài)的變化。隨著數(shù)據(jù)存儲(chǔ)密度通過在單元中使用增加數(shù)目的邏輯狀態(tài)而增加,對(duì)干擾的敏感性增加。因此,不可能在一行中的其它單元被編程之后將數(shù)據(jù)編程到所述行中的某些單元,而不破壞已編程單元中的數(shù)據(jù)。因此,由隨后對(duì)相鄰單元進(jìn)行編程引起的干擾可界定頁(yè)面大小。如果一行中的單元不能在對(duì)同一行中其它單元進(jìn)行編程之后被編程,那么所述行界定最小編程單位。因此,一單元行可含有一個(gè)數(shù)據(jù)頁(yè)面。在此類存儲(chǔ)器陣列中,如果一行中的一組單元被編程,那么所述行被視作已編程的,即使所述行中的某些單元不含有任何數(shù)據(jù)。在存儲(chǔ)器陣列中具有不能隨后被編程的空白單元是低效的。
已編程頁(yè)面中的空白單元可由存儲(chǔ)系統(tǒng)同時(shí)接收較小數(shù)目的扇區(qū)引起。舉例來說,單個(gè)扇區(qū)可由主機(jī)發(fā)送到存儲(chǔ)系統(tǒng)。所述扇區(qū)存儲(chǔ)在快閃存儲(chǔ)器陣列的頁(yè)面中。所述扇區(qū)阻止對(duì)所述頁(yè)面的隨后寫入。在一頁(yè)面保存多個(gè)扇區(qū)的存儲(chǔ)系統(tǒng)中,這可能是低效的。舉例來說,在一頁(yè)面包含四個(gè)數(shù)據(jù)扇區(qū)的情況下,在將單個(gè)扇區(qū)寫入到所述頁(yè)面時(shí),使存儲(chǔ)器陣列中能保存三個(gè)數(shù)據(jù)扇區(qū)的一部分保持空白。隨著頁(yè)面尺寸增加,來自此類部分填充的頁(yè)面的浪費(fèi)空間也增加。元頁(yè)面可含有大量的扇區(qū),所以存儲(chǔ)可能在使用元區(qū)塊的存儲(chǔ)器陣列中特別低效。在接收到兩個(gè)或兩個(gè)以上扇區(qū)但接收到的扇區(qū)的數(shù)目小于頁(yè)面中扇區(qū)的數(shù)目的情況下,具有類似問題。此類部分頁(yè)面可存儲(chǔ)在高速暫存區(qū)塊中,直到接收到完整數(shù)據(jù)頁(yè)面為止。
在寫入經(jīng)部分填充的數(shù)據(jù)頁(yè)面之后,可實(shí)施已存儲(chǔ)數(shù)據(jù)的合并,以將來自部分填充的頁(yè)面的數(shù)據(jù)組合到已填充頁(yè)面中。這可作為周期性實(shí)施的垃圾收集的一部分來完成。此類數(shù)據(jù)合并將數(shù)據(jù)從部分填充的頁(yè)面復(fù)制到位于不同擦除區(qū)塊中的完整頁(yè)面。接著,將保存部分填充的頁(yè)面的擦除區(qū)塊標(biāo)記為廢棄,以使得所述擦除區(qū)塊可被擦除并重新使用。此類操作可采用能用于其它功能的系統(tǒng)資源。
對(duì)存儲(chǔ)器的單扇區(qū)寫入的實(shí)例圖8展示存儲(chǔ)系統(tǒng)中的存儲(chǔ)器陣列的擦除區(qū)塊(指定為現(xiàn)用區(qū)塊800),其中頁(yè)面由四個(gè)數(shù)據(jù)扇區(qū)組成。圖中將頁(yè)面0-5展示為每一者均在水平方向上延伸。每個(gè)頁(yè)面均可含有指定為扇區(qū)0、扇區(qū)1、扇區(qū)2和扇區(qū)3的四個(gè)數(shù)據(jù)扇區(qū)。主機(jī)將單數(shù)據(jù)扇區(qū)發(fā)送到存儲(chǔ)系統(tǒng),所述數(shù)據(jù)扇區(qū)存儲(chǔ)在現(xiàn)用區(qū)塊800中。接收扇區(qū)X且將其存儲(chǔ)為頁(yè)面0的扇區(qū)0。這防止隨后對(duì)頁(yè)面0進(jìn)行編程。因此,頁(yè)面0的扇區(qū)1、2和3不被編程且保持空白(擦除)。在對(duì)頁(yè)面0進(jìn)行編程之后,接收扇區(qū)X+1。將扇區(qū)X+1存儲(chǔ)為頁(yè)面1的扇區(qū)0。頁(yè)面1的扇區(qū)1、2和3保持空白。在對(duì)扇區(qū)X+1進(jìn)行編程之后,接收扇區(qū)X+2。將扇區(qū)X+2存儲(chǔ)為頁(yè)面2的扇區(qū)0。頁(yè)面2的扇區(qū)1、2和3保持空白。在對(duì)扇區(qū)X+2進(jìn)行編程之后,接收扇區(qū)X+3。將扇區(qū)X+3存儲(chǔ)為頁(yè)面3的扇區(qū)0。頁(yè)面3的扇區(qū)1、2和3保持空白。
圖9展示在擦除區(qū)塊(指定現(xiàn)用區(qū)塊900)中存儲(chǔ)扇區(qū)的替代性方法。此處,代替每個(gè)頁(yè)面僅存儲(chǔ)一個(gè)扇區(qū),將先前存儲(chǔ)的扇區(qū)復(fù)制到同一擦除區(qū)塊中的新頁(yè)面,在所述新頁(yè)面中,先前存儲(chǔ)的扇區(qū)與更新近接收到的扇區(qū)一起存儲(chǔ)。如前所述,將扇區(qū)X存儲(chǔ)為頁(yè)面0的扇區(qū)0。接著,接收扇區(qū)X+1并將其存儲(chǔ)為頁(yè)面1的扇區(qū)1,其中將扇區(qū)X從頁(yè)面0復(fù)制到頁(yè)面1的扇區(qū)0。因此,扇區(qū)X和扇區(qū)X+1兩者均存儲(chǔ)在頁(yè)面1中。隨后,接收扇區(qū)X+2并將其存儲(chǔ)為頁(yè)面2的扇區(qū)2。將扇區(qū)X存儲(chǔ)為頁(yè)面2的扇區(qū)0,且將扇區(qū)X+1存儲(chǔ)為頁(yè)面2的扇區(qū)1。因此,扇區(qū)X、X+1和X+2一起存儲(chǔ)在頁(yè)面2中。隨后,接收扇區(qū)X+3并將其存儲(chǔ)為頁(yè)面3的扇區(qū)3。將扇區(qū)X存儲(chǔ)為頁(yè)面3的扇區(qū)0,將扇區(qū)X+1存儲(chǔ)為頁(yè)面3的扇區(qū)1,且將扇區(qū)X+2存儲(chǔ)為頁(yè)面3的扇區(qū)2。因此,四個(gè)數(shù)據(jù)扇區(qū)均存儲(chǔ)在頁(yè)面3中,以使得頁(yè)面3完全由數(shù)據(jù)填充。
在圖8中或圖9中所示的扇區(qū)存儲(chǔ)之后,可對(duì)數(shù)據(jù)進(jìn)行合并??蓪D8或圖9的扇區(qū)X、X+1、X+2和X+3復(fù)制到新擦除區(qū)塊的單個(gè)頁(yè)面。這可在適宜時(shí)間作為垃圾收集的一部分來完成。圖10A展示存儲(chǔ)在指定現(xiàn)用區(qū)塊100的頁(yè)面0中的扇區(qū)X、X+1、X+2和X+3。擦除區(qū)塊1000的頁(yè)面0由數(shù)據(jù)填充。當(dāng)現(xiàn)用區(qū)塊1100的頁(yè)面0經(jīng)編程而具有扇區(qū)X、X+1、X+2和X+3時(shí),可從從中復(fù)制扇區(qū)X、X+1、X+2和X+3的擦除區(qū)塊中擦除扇區(qū)X、X+1、X+2和X+3。當(dāng)現(xiàn)用區(qū)塊800、900的內(nèi)容在垃圾收集期間進(jìn)行合并時(shí),可擦除現(xiàn)用區(qū)塊800、900并使其可用于存儲(chǔ)新數(shù)據(jù)。
在對(duì)頁(yè)面0進(jìn)行編程之后,接收扇區(qū)X+4并將其存儲(chǔ)為現(xiàn)用區(qū)塊1 000的頁(yè)面1的扇區(qū)0。接著,個(gè)別地接收扇區(qū)X+5、X+6和X+7并分別將其存儲(chǔ)在頁(yè)面2、3和4中。可能再次需要合并扇區(qū),以將扇區(qū)X+4、X+5、X+6和X+7合并到單個(gè)頁(yè)面。此類扇區(qū)合并在不能寫入主機(jī)數(shù)據(jù)期間進(jìn)行。在第二次將數(shù)據(jù)合并到另一擦除區(qū)塊之后,將從中復(fù)制所述數(shù)據(jù)的擦除區(qū)塊1000標(biāo)記為廢棄且隨后可將其擦除。
圖10B展示在第二次垃圾收集操作使來自先前現(xiàn)用區(qū)塊1000的數(shù)據(jù)重新定位之后的現(xiàn)用區(qū)塊1010。扇區(qū)X+4到X+7被合并到現(xiàn)用區(qū)塊1010的單個(gè)頁(yè)面(頁(yè)面1)中。隨后,可接收更多扇區(qū)且可將其存儲(chǔ)在現(xiàn)用區(qū)塊1010中。如果以單扇區(qū)的形式接收此類扇區(qū),那么如前所述,可在一頁(yè)面中存儲(chǔ)單個(gè)扇區(qū)。
圖10C展示現(xiàn)用區(qū)塊1010,其中額外扇區(qū)X+8到X+11存儲(chǔ)在頁(yè)面2-5中。此時(shí),可能需要另一垃圾收集操作來合并扇區(qū)X+8到X+11。因此,為了將從主機(jī)接收到的扇區(qū)作為單扇區(qū)進(jìn)行有效存儲(chǔ),此方法使用多個(gè)垃圾收集操作,所述垃圾收集操作需要將數(shù)據(jù)從一個(gè)擦除區(qū)塊傳送到另一擦除區(qū)塊,且擦除所述第一擦除區(qū)塊。在更大擦除區(qū)塊中,垃圾收集操作的數(shù)目更大。在使用元區(qū)塊的存儲(chǔ)系統(tǒng)中,一組擦除區(qū)塊可經(jīng)鏈接以使得其可一起擦除且一起編程??稍诤性S多扇區(qū)的元頁(yè)面中對(duì)數(shù)據(jù)進(jìn)行編程。因此,由于所必需的垃圾收集的量的緣故,存儲(chǔ)單扇區(qū)變得非常低效。
圖11A展示存儲(chǔ)數(shù)據(jù)的替代性方法。圖11A展示存儲(chǔ)器陣列的兩個(gè)擦除區(qū)塊?,F(xiàn)用區(qū)塊1110是數(shù)據(jù)可在其中編程以供長(zhǎng)期存儲(chǔ)的擦除區(qū)塊。高速暫存區(qū)塊1120是數(shù)據(jù)可在其中編程以供短期存儲(chǔ)的擦除區(qū)塊。當(dāng)接收到小數(shù)目的扇區(qū)時(shí),首先將其存儲(chǔ)在高速暫存區(qū)塊1120中。扇區(qū)繼續(xù)被存儲(chǔ)在高速暫存區(qū)塊1120中,直到接收到足夠扇區(qū)來填充數(shù)據(jù)頁(yè)面為止。接著將這些扇區(qū)復(fù)制到現(xiàn)用區(qū)塊1110的頁(yè)面。
如前所述,接收扇區(qū)X并將其編程為高速暫存區(qū)塊1120中的頁(yè)面0的扇區(qū)0。隨后,接收扇區(qū)X+1并將其存儲(chǔ)為高速暫存區(qū)塊1120的頁(yè)面1的扇區(qū)1,其中將扇區(qū)X復(fù)制到頁(yè)面1的扇區(qū)0。隨后,接收扇區(qū)X+2并將其存儲(chǔ)為高速暫存區(qū)塊1120的頁(yè)面2的扇區(qū)2,其中分別將扇區(qū)X和X+1存儲(chǔ)為頁(yè)面2的扇區(qū)0和扇區(qū)1。在將扇區(qū)X+2存儲(chǔ)在高速暫存區(qū)塊1120中之后,接收扇區(qū)X+3。此時(shí),將扇區(qū)X、X+1、X+2和X+3寫入到現(xiàn)用區(qū)塊1110的頁(yè)面0。這四個(gè)扇區(qū)形成完整的數(shù)據(jù)頁(yè)面。因此,可有效地將扇區(qū)X、X+1、X+2和X+3存儲(chǔ)在現(xiàn)用區(qū)塊1110的頁(yè)面0中。隨后,個(gè)別地接收扇區(qū)X+4、X+5、X+6和X+7。將扇區(qū)X+4、X+5和X+6存儲(chǔ)在高速暫存區(qū)塊1120的頁(yè)面3、4和5中,且在接收到扇區(qū)X+7時(shí)將扇區(qū)X+4、X+5和X+6復(fù)制到現(xiàn)用區(qū)塊1110的頁(yè)面1的扇區(qū)0、1和2。將扇區(qū)X+7直接編程到現(xiàn)用區(qū)塊1110的頁(yè)面1的扇區(qū)3。此時(shí),高速暫存區(qū)塊1120沒有任何可用頁(yè)面來存儲(chǔ)數(shù)據(jù),且可被指定為準(zhǔn)備擦除(廢棄)??蓪⑿碌牟脸齾^(qū)塊指定為用于待接收的下一扇區(qū)或扇區(qū)群組的高速暫存區(qū)塊。盡管此實(shí)例展示接收單扇區(qū),但此方法還可用于扇區(qū)群組,其中所述扇區(qū)群組具有少于頁(yè)面中扇區(qū)數(shù)目的扇區(qū)。而且,盡管以上實(shí)例展示以最大并行性將來自高速暫存區(qū)塊的數(shù)據(jù)寫入到現(xiàn)用區(qū)塊,但此類寫入可以小于最大并行性的并行性來完成且仍然提供效率益處。因此,以一個(gè)并行度將扇區(qū)寫入到高速暫存區(qū)塊且隨后以較高并行度將所述扇區(qū)寫入到另一區(qū)塊,以使得數(shù)據(jù)被更密集地壓縮且不需要頻繁的垃圾收集。
高速暫存區(qū)塊還可用于使用元區(qū)塊的存儲(chǔ)器陣列。舉例來說,圖11B展示兩個(gè)元區(qū)塊,即現(xiàn)用區(qū)塊1130和高速暫存區(qū)塊1140。現(xiàn)用區(qū)塊1130和高速暫存區(qū)塊1140兩者均具有四個(gè)平面(指示為平面0-3)。每個(gè)平面的寬度均為一個(gè)扇區(qū),所以在區(qū)塊1130或1140的元頁(yè)面中存儲(chǔ)四個(gè)扇區(qū)。兩個(gè)區(qū)塊均具有6個(gè)元頁(yè)面(指示為元頁(yè)面0-5)。用于有效地存儲(chǔ)數(shù)據(jù)的技術(shù)與上文相對(duì)于擦除區(qū)塊而描述的技術(shù)相同。在高速暫存區(qū)塊1140中累積扇區(qū),直到完整的數(shù)據(jù)元頁(yè)面可用為止,此時(shí)將完整元頁(yè)面編程到現(xiàn)用區(qū)塊1130。舉例來說,當(dāng)接收到扇區(qū)X+3時(shí),將完整元頁(yè)面(扇區(qū)X、X+1、X+2和X+3)編程到現(xiàn)用區(qū)塊1130的元頁(yè)面0。元頁(yè)面可具有大數(shù)目的扇區(qū),因?yàn)樵獏^(qū)塊可具有許多平面,且平面的寬度可為若干頁(yè)面。由于存儲(chǔ)器陣列中原本會(huì)浪費(fèi)的大量空間的緣故,上文所述的技術(shù)對(duì)于此類大元頁(yè)面來說特別有價(jià)值。如相對(duì)于圖11A和11B所示,相對(duì)于使用擦除區(qū)塊結(jié)構(gòu)的實(shí)例而描述的本發(fā)明的各方面還可應(yīng)用于元區(qū)塊結(jié)構(gòu),且反之亦然。視存儲(chǔ)器陣列的配置而定,術(shù)語(yǔ)“區(qū)塊”可指示擦除區(qū)塊或元區(qū)塊。在任一情況下,區(qū)塊均為所述配置中所使用的擦除單位。類似地,術(shù)語(yǔ)“頁(yè)面”可指代單個(gè)擦除區(qū)塊內(nèi)的頁(yè)面或元區(qū)塊的元頁(yè)面。在任一情況下,頁(yè)面均為所述配置的編程單位。
在接收到具有多于頁(yè)面中扇區(qū)數(shù)目的扇區(qū)群組時(shí),可將扇區(qū)直接編程到存儲(chǔ)器陣列的現(xiàn)用區(qū)塊,而無需首先將其存儲(chǔ)在高速暫存區(qū)塊中。因此,可以高并行度將完整數(shù)據(jù)頁(yè)面直接編程到現(xiàn)用區(qū)塊,而以低并行度將部分?jǐn)?shù)據(jù)頁(yè)面編程到高速暫存區(qū)塊,直到其可作為完整頁(yè)面程序的一部分寫入到現(xiàn)用區(qū)塊為止??刂破骺纱_定特定扇區(qū)或扇區(qū)群組的目的地。在將扇區(qū)群組寫入到現(xiàn)用區(qū)塊將包括部分頁(yè)面和完整頁(yè)面寫入兩者的情況下,可將完整頁(yè)面寫入到現(xiàn)用區(qū)塊,且可將部分頁(yè)面寫入到高速暫存區(qū)塊。
圖12A展示來自主機(jī)的扇區(qū)在存儲(chǔ)于高速暫存區(qū)塊中時(shí)得到更新的另一實(shí)例。接收第一扇區(qū)X0并將其存儲(chǔ)在高速暫存區(qū)塊1250的頁(yè)面0中。此實(shí)例中的頁(yè)面存儲(chǔ)四個(gè)數(shù)據(jù)扇區(qū)。接著,接收X0的代替物(展示為X1)。此實(shí)例中的扇區(qū)根據(jù)其邏輯地址來編號(hào),其中下標(biāo)指示所述扇區(qū)是否為更新物,且如果是,哪種型式。因此,扇區(qū)X1是具有邏輯地址X的扇區(qū),且是此扇區(qū)的第一更新型式。這是與X0具有相同邏輯地址的數(shù)據(jù)扇區(qū),但可能含有反映某更新信息的不同數(shù)據(jù)。將扇區(qū)X1寫入到高速暫存區(qū)塊1250的頁(yè)面1。控制器跟蹤哪些扇區(qū)是當(dāng)前的且哪些是廢棄的。在高速暫存區(qū)塊1250中,具有特定邏輯地址的扇區(qū)的最新近寫入副本是當(dāng)前型式。任何其它型式均是廢棄的。因此,在對(duì)X1進(jìn)行編程時(shí),X0變?yōu)閺U棄的。在接收到扇區(qū)X1之后,接收扇區(qū)(X+1)0。這是在邏輯上與扇區(qū)X1連續(xù)的扇區(qū)。扇區(qū)X1和(X+1)0兩者均被寫入到頁(yè)面2。隨后,扇區(qū)(X+1)0由(X+1)1代替。這是代替扇區(qū)(X+1)0的扇區(qū)(X+1)0的更新型式。將扇區(qū)(X+1)1連同扇區(qū)X1寫入到頁(yè)面3。隨后,接收扇區(qū)(X+2)0并將其寫入到頁(yè)面4。扇區(qū)(X+2)0隨后由扇區(qū)(X+2)1代替,且連同扇區(qū)X1和(X+1)1寫入到頁(yè)面5。隨后,接收扇區(qū)(X+3)0。因此,數(shù)據(jù)頁(yè)面(扇區(qū)X1、(X+1)1、(X+2)1和(X+3)0)可用。將扇區(qū)X1、(X+1)1、(X+2)1和(X+3)0寫入到指定為現(xiàn)用區(qū)塊1252的區(qū)塊。以完整頁(yè)面寫入的并行性將扇區(qū)X1、(X+1)1、(X+2)1和(X+3)0寫入到現(xiàn)用區(qū)塊1252。在此情況下,所述并行性為最大可能并行性。因此,即使已以低并行度將扇區(qū)X1、(X+1)1、(X+2)1和(X+3)0寫入到高速暫存區(qū)塊1250,它們也隨后以高并行度寫入到現(xiàn)用區(qū)塊1252。這意味著扇區(qū)X1、(X+1)1、(X+2)1和(X+3)0被更有效地存儲(chǔ)在現(xiàn)用區(qū)塊中。更有效存儲(chǔ)可導(dǎo)致較不需要頻繁地進(jìn)行垃圾收集,從而改進(jìn)性能。
圖12B中提供替代性實(shí)例。此實(shí)例類似于圖12A中所示的實(shí)例,但此處扇區(qū)(X+3)0在復(fù)制到現(xiàn)用區(qū)塊1252之前被存儲(chǔ)在高速暫存區(qū)塊1250中。這允許扇區(qū)(X+3)0在寫入到現(xiàn)用區(qū)塊1252之前得到更新。扇區(qū)(X+3)0被展示為通過由扇區(qū)(X+3)1代替來得到更新。完整的數(shù)據(jù)頁(yè)面(扇區(qū)X1、(X+1)1、(X+2)1和(X+3)1)可保存在高速暫存區(qū)塊1250中,準(zhǔn)備被更新,直到某觸發(fā)事件為止。在此情況下,接收扇區(qū)(X+4)0,從而提供觸發(fā)事件。此時(shí),以最大并行性將扇區(qū)X1、(X+1)1、(X+2)1和(X+3)1寫入到現(xiàn)用區(qū)塊1252。將扇區(qū)(X+4)0寫入到高速暫存區(qū)塊1250中的下一可用頁(yè)面(頁(yè)面8)。
圖12C展示使用高速暫存區(qū)塊1250更新數(shù)據(jù)的另一實(shí)例。將數(shù)據(jù)扇區(qū)X0到(X+15)0存儲(chǔ)在原始區(qū)塊1254中。主機(jī)發(fā)送扇區(qū)(X+6)1,其是與扇區(qū)(X+6)0具有同一邏輯地址的已更新扇區(qū)。因此,扇區(qū)(X+6)1將代替(X+6)0。為了代替扇區(qū)(X+6)0,原始區(qū)塊1254的頁(yè)面1(含有扇區(qū)(X+4)0到(X+7)0)與扇區(qū)(X+6)1組合,且將所述組合寫入到高速暫存區(qū)塊1250的頁(yè)面0。組合這些扇區(qū)可發(fā)生在隨機(jī)存取存儲(chǔ)器(例如控制器隨機(jī)存取存儲(chǔ)器(controller ram)25)中或可在連接到存儲(chǔ)器陣列的存儲(chǔ)器寄存器中完成??蓪⒁迅马?yè)面數(shù)據(jù)保存在高速暫存區(qū)塊1250中而不將其寫入到現(xiàn)用區(qū)塊持續(xù)某段時(shí)間。在從主機(jī)接收到隨后更新的扇區(qū)(X+5)1的情況下,可通過將扇區(qū)(X+5)1連同復(fù)制的扇區(qū)(X+4)0、(X+6)1和(X+7)0寫入到高速暫存區(qū)塊1250的另一頁(yè)面(在此情況下,頁(yè)面1)來在高速暫存區(qū)塊1250中更新數(shù)據(jù)??梢源朔绞絹韴?zhí)行高速暫存區(qū)塊1250中的數(shù)據(jù)頁(yè)面的多次更新。通過在高速暫存區(qū)塊1250的新頁(yè)面中代替已更新的數(shù)據(jù)扇區(qū)且復(fù)制未改變的數(shù)據(jù)扇區(qū)來進(jìn)行更新。所復(fù)制的扇區(qū)在同一平面內(nèi)復(fù)制,以使得可有效地執(zhí)行復(fù)制。隨后,可將已更新的數(shù)據(jù)頁(yè)面復(fù)制到存儲(chǔ)器陣列中的現(xiàn)用區(qū)塊1252。可以此方式執(zhí)行非連續(xù)更新,而不需要混亂的更新區(qū)塊。舉例來說,在以上實(shí)例中以非連續(xù)方式接收已更新的扇區(qū)(X+6)1和(X+5)1,但現(xiàn)用區(qū)塊1252是連續(xù)的??梢源朔绞皆诟咚贂捍鎱^(qū)塊中同時(shí)保存和更新多個(gè)數(shù)據(jù)頁(yè)面??稍诓辉傧M马?yè)面時(shí),將所述頁(yè)面復(fù)制到現(xiàn)用區(qū)塊。
多級(jí)單元編程的實(shí)例某些種類的存儲(chǔ)器可通過將浮動(dòng)?xùn)艠O存儲(chǔ)單元的閾值電壓范圍劃分為兩個(gè)以上等級(jí)來在存儲(chǔ)器陣列的每個(gè)單元中存儲(chǔ)一個(gè)以上數(shù)據(jù)位。圖13展示可如何對(duì)此類多級(jí)單元(MLC)存儲(chǔ)器進(jìn)行編程以提供表示不同邏輯狀態(tài)的多個(gè)閾值電壓的實(shí)例。展示四個(gè)不同閾值電壓,標(biāo)記為A、B、C和D??蓪⒍鄠€(gè)單元編程到每個(gè)電壓。圖13代表單元狀態(tài)的分布,其中在垂直軸上表示單元的數(shù)目。每個(gè)閾值電壓A、B、C和D均代表不同的邏輯狀態(tài)。所述四個(gè)狀態(tài)代表兩個(gè)數(shù)據(jù)位,即來自下層數(shù)據(jù)頁(yè)面的一個(gè)位和來自上層數(shù)據(jù)頁(yè)面的一個(gè)位,如所指示。在某些實(shí)例中,可首先對(duì)所述下層頁(yè)面進(jìn)行編程。在對(duì)下層頁(yè)面進(jìn)行編程之后,單元處于狀態(tài)A或B中。隨后,可對(duì)所述上層頁(yè)面進(jìn)行編程,以使得單元保持在狀態(tài)A或B中(上層位=1)或被修改為狀態(tài)C或D(上層位=0)。因?yàn)檫@四個(gè)狀態(tài)每一者均具有相對(duì)較窄的電壓窗口,所以MLC存儲(chǔ)器特別容易由于閾值電壓中的相對(duì)的較小變化而受到數(shù)據(jù)破壞。在某些實(shí)例中,同時(shí)對(duì)下層頁(yè)面和上層頁(yè)面兩者進(jìn)行編程可能是有利的。這可幫助降低單元中由對(duì)鄰近單元進(jìn)行編程而造成的數(shù)據(jù)破壞,所述數(shù)據(jù)破壞(例如)可能在對(duì)上層頁(yè)面數(shù)據(jù)進(jìn)行編程期間發(fā)生。
圖14展示可如何使用高速暫存區(qū)塊1460來降低MLC存儲(chǔ)器中的數(shù)據(jù)破壞的實(shí)例。圖14展示現(xiàn)用區(qū)塊1462和高速暫存區(qū)塊1460兩者,作為MLC存儲(chǔ)器的區(qū)塊。兩個(gè)區(qū)塊的頁(yè)面均被編號(hào)且展示為“上層”或“下層”,視使用哪些閾值電壓狀態(tài)來存儲(chǔ)所述頁(yè)面的數(shù)據(jù)位而定。在此實(shí)例中,存儲(chǔ)器首先接收扇區(qū)X到X+3,并將這些扇區(qū)存儲(chǔ)在高速暫存區(qū)塊1460的下層頁(yè)面0中。隨后,存儲(chǔ)器接收扇區(qū)X+4到X+7。此時(shí),將下層頁(yè)面(扇區(qū)X到X+3)和上層頁(yè)面(X+4到X+7)兩者同時(shí)寫入到現(xiàn)用區(qū)塊1462。這可避免在對(duì)現(xiàn)用區(qū)塊1462的上層頁(yè)面0進(jìn)行編程期間破壞現(xiàn)用區(qū)塊1462的下層頁(yè)面0。通常,對(duì)上層頁(yè)面和下層頁(yè)面一起進(jìn)行編程所必需的時(shí)間與單獨(dú)對(duì)上層頁(yè)面進(jìn)行編程所必需的時(shí)間相同,以使得此系統(tǒng)不具有時(shí)間損失。在用扇區(qū)X到X+7對(duì)現(xiàn)用區(qū)塊1462的下層頁(yè)面0和上層頁(yè)面0進(jìn)行編程之后,接收扇區(qū)X+8到X+11并將其編程到高速暫存區(qū)塊1460的上層頁(yè)面0。當(dāng)接收到扇區(qū)X+12到X+15時(shí),扇區(qū)X+8到X+11和扇區(qū)X+12到X+15與現(xiàn)用區(qū)塊的上層頁(yè)面1和下層頁(yè)面1并行編程。此系統(tǒng)繼續(xù)用于隨后的數(shù)據(jù)扇區(qū),如圖所示。因此,將數(shù)據(jù)頁(yè)面寫入到高速暫存區(qū)塊1460,且隨后將此頁(yè)面連同額外頁(yè)面寫入到現(xiàn)用區(qū)塊1462,作為同一存儲(chǔ)單元群組的上層頁(yè)面和下層頁(yè)面。到高速暫存區(qū)塊1460的編程可以頁(yè)面的并行性來發(fā)生,而到現(xiàn)用區(qū)塊1462的編程以頁(yè)面并行性的兩倍來進(jìn)行。
在替代性實(shí)施例中,可在不同時(shí)間將上層頁(yè)面和下層頁(yè)面寫入到現(xiàn)用區(qū)塊,但在現(xiàn)用區(qū)塊中的下層頁(yè)面在對(duì)上層頁(yè)面進(jìn)行編程期間受到破壞的情況下,將下層頁(yè)面的副本保存在高速暫存區(qū)塊中。在圖14中,可接收扇區(qū)X到X+3并同時(shí)將其編程到現(xiàn)用區(qū)塊1462的下層頁(yè)面0和高速暫存區(qū)塊1460的下層頁(yè)面0兩者。隨后,接收扇區(qū)X+4到X+7并將其編程到現(xiàn)用區(qū)塊1462的上層頁(yè)面0。不將扇區(qū)X+4到X+7保存在高速暫存區(qū)塊1460中。如果在將X+4到X+7編程到現(xiàn)用區(qū)塊1462的上層頁(yè)面0期間存在任何問題(例如電力喪失),那么現(xiàn)用區(qū)塊1462的下層頁(yè)面0中的數(shù)據(jù)可能受到破壞。也就是說,正被編程的單元的閾值電壓可經(jīng)修改,以使得它們不再處于代表下層頁(yè)面的數(shù)據(jù)的狀態(tài)中,而是尚未被完全編程到代表下層頁(yè)面的數(shù)據(jù)的狀態(tài)。舉例來說,正被從圖13中的狀態(tài)A編程到狀態(tài)D的單元可在編程停止時(shí)處于狀態(tài)B或C。如果數(shù)據(jù)以此方式受到破壞,那么正被寫入的下層數(shù)據(jù)頁(yè)面可自從中復(fù)制所述下層數(shù)據(jù)頁(yè)面的位置恢復(fù)。然而,在許多情況下,不存在下層頁(yè)面的任何其它副本。此處,將下層頁(yè)面的副本保存在高速暫存區(qū)塊1460中,直到上層頁(yè)面的編程完成為止。因此,存在下層頁(yè)面的未破壞的副本,且可使用其來恢復(fù)下層頁(yè)面的數(shù)據(jù)。
多個(gè)文件的實(shí)例來自一個(gè)以上主機(jī)數(shù)據(jù)文件的數(shù)據(jù)可存儲(chǔ)在單個(gè)區(qū)塊中。文件之間的破裂可發(fā)生在頁(yè)面內(nèi),以使得頁(yè)面的一部分含有來自一個(gè)文件的數(shù)據(jù),且頁(yè)面的一部分含有來自另一文件的數(shù)據(jù)。圖15展示其中原始區(qū)塊1570的頁(yè)面0到頁(yè)面i-1含有來自第一文件(文件1)的數(shù)據(jù)且頁(yè)面i+1到頁(yè)面n-1含有來自第二文件(文件2)的數(shù)據(jù)的實(shí)例。頁(yè)面i含有來自文件1的扇區(qū)(i*4)和(i*4)+1和來自文件2的扇區(qū)(i*4)+2和(i*4)+3。用陰影表示文件2的扇區(qū)以說明存在來自兩個(gè)文件的扇區(qū)。
圖15展示文件2被更新到新區(qū)塊1572。新區(qū)塊1572的第一頁(yè)面(頁(yè)面0)被寫入有原始區(qū)塊1570的頁(yè)面i的內(nèi)容。因此,新區(qū)塊1572的頁(yè)面0含有來自文件2和文件1兩者的扇區(qū)。來自文件1的扇區(qū)(i*4)和(i*4)+1此時(shí)不被更新,但可被復(fù)制以便對(duì)完整數(shù)據(jù)頁(yè)面進(jìn)行編程。將已更新文件2的剩余部分編程到新區(qū)塊1572的頁(yè)面1到i-1。隨后,更新文件1。將扇區(qū)0到扇區(qū)(i*4)-1存儲(chǔ)在頁(yè)面i到頁(yè)面n-1。然而,扇區(qū)(i*4)和(i*4)+1也是文件1的一部分,且必須被更新。因?yàn)樾聟^(qū)塊1572此時(shí)是完整的,所以將已更新扇區(qū)(i*4)和(i*4)+1編程到另一區(qū)塊。隨后,作為垃圾收集操作的一部分,可將扇區(qū)(i*4)和(i*4)+1以及新區(qū)塊1572中的扇區(qū)合并到單個(gè)區(qū)塊。然而,這耗費(fèi)時(shí)間和系統(tǒng)資源,且一般來說是不合需要的。
圖16展示用于更新圖15的原始區(qū)塊1570的扇區(qū)的替代性技術(shù),所述原始區(qū)塊1570含有來自兩個(gè)不同文件的扇區(qū)。此技術(shù)使用高速暫存區(qū)塊1674來存儲(chǔ)已更新扇區(qū),直到它們可以系統(tǒng)的最大并行性寫入作為完整的已更新頁(yè)面的一部分時(shí)為止。當(dāng)更新文件2時(shí),將已更新扇區(qū)(i*4)+2和(i*4)+3寫入到高速暫存區(qū)塊1674。此處,將它們寫入到高速暫存區(qū)塊1674的頁(yè)面0,且不將任何數(shù)據(jù)寫入到所述頁(yè)面的其它部分,以使得使用低并行度。文件2的剩余扇區(qū)(扇區(qū)(i*4)+4到N-1)被復(fù)制到新區(qū)塊1676的頁(yè)面0到n-i。這些扇區(qū)均以使用最大并行性的完整頁(yè)面寫入進(jìn)行寫入。隨后,更新文件1。以最大并行性將扇區(qū)0到(i*4)-1編程到頁(yè)面n-i+1到n-2中。接著與將扇區(qū)(i*4)+2和(i*4)+3復(fù)制到新區(qū)塊1676的頁(yè)面n-1并行而對(duì)文件1的扇區(qū)(i*4)和(i*4)+1進(jìn)行寫入。因此,先前保存在原始區(qū)塊1570中的所有扇區(qū)的已更新副本現(xiàn)保存在新區(qū)塊1676中,且任何廢棄數(shù)據(jù)均不保存在新區(qū)塊1676中。一般不需要對(duì)例如新區(qū)塊1676的區(qū)塊進(jìn)行垃圾收集。以最大并行性來對(duì)新區(qū)塊1676的每個(gè)頁(yè)面進(jìn)行編程,以實(shí)現(xiàn)區(qū)塊中最大數(shù)據(jù)密度。此時(shí),可將高速暫存區(qū)塊1674中的扇區(qū)(i*4)+2和(i*4)+3標(biāo)記為廢棄。然而,高速暫存區(qū)塊1674可用于進(jìn)一步操作,而不需要垃圾收集操作,因?yàn)楦咚贂捍鎱^(qū)塊常規(guī)含有當(dāng)前數(shù)據(jù)和廢棄數(shù)據(jù)兩者。
存儲(chǔ)非連續(xù)數(shù)據(jù)扇區(qū)的實(shí)例在某些先前實(shí)例中,以小于寫入完整頁(yè)面的并行度的并行度將數(shù)據(jù)扇區(qū)寫入到高速暫存區(qū)塊。在此類實(shí)例中,正被寫入的高速暫存區(qū)塊的頁(yè)面中的剩余空間可能保持空白,因?yàn)椴豢赡苌院笤诓桓蓴_已存儲(chǔ)數(shù)據(jù)的情況下對(duì)所述空間進(jìn)行編程。在某些情況下,可能使用此原本空白的空間和原本未使用的編程帶寬來在同一頁(yè)面中存儲(chǔ)不相關(guān)的數(shù)據(jù)。舉例來說,在存儲(chǔ)系統(tǒng)接收少于一頁(yè)面的單個(gè)扇區(qū)或扇區(qū)群組中的主機(jī)數(shù)據(jù)的情況下,這些主機(jī)數(shù)據(jù)扇區(qū)可存儲(chǔ)在高速暫存區(qū)塊的也保存不相關(guān)數(shù)據(jù)(例如不相關(guān)的主機(jī)數(shù)據(jù)或控制數(shù)據(jù)扇區(qū))的頁(yè)面中。類似地,正存儲(chǔ)在高速暫存區(qū)塊中以供稍后存儲(chǔ)為完整頁(yè)面的一部分的來自文件的開始的扇區(qū)可能具有在邏輯上不相關(guān)的存儲(chǔ)在同一高速暫存區(qū)塊中的額外扇區(qū)。
圖17展示如先前實(shí)例中那樣將扇區(qū)X、X+1和X+2存儲(chǔ)在高速暫存區(qū)塊1780中的實(shí)例。然而,此處保存扇區(qū)X、X+1和X+2的高速暫存區(qū)塊的頁(yè)面中的剩余空間用于存儲(chǔ)其它數(shù)據(jù)。扇區(qū)Y、Y+1和Y+2與扇區(qū)X一起存儲(chǔ)在頁(yè)面0中。扇區(qū)Y、Y+1和Y+2在邏輯上可與扇區(qū)X、X+1和X+2不相關(guān)。扇區(qū)Y、Y+1和Y+2可來自另一主機(jī)數(shù)據(jù)文件或來自同一文件內(nèi)的另一扇區(qū)群集。扇區(qū)Y、Y+1和Y+2可與扇區(qū)X、X+1和X+2不連續(xù),且可在邏輯地址空間中分離。類似地,扇區(qū)Z和Z+1與扇區(qū)X和X+1一起存儲(chǔ)在頁(yè)面1中。扇區(qū)Z和Z+1在邏輯上可與扇區(qū)X、X+1和X+2和扇區(qū)Y、Y+1和Y+2兩者均不相關(guān)。隨后在接收到扇區(qū)X+3時(shí),將扇區(qū)X、X+1、X+2和X+3寫入到另一區(qū)塊的頁(yè)面。在接收到扇區(qū)Y+3時(shí),將扇區(qū)Y、Y+1、Y+2和Y+3寫入到另一區(qū)塊的頁(yè)面。因此,不相關(guān)的數(shù)據(jù)可存儲(chǔ)在高速暫存區(qū)塊的同一頁(yè)面中,以更有效地使用可用資源。
圖18展示存儲(chǔ)在高速暫存區(qū)塊1890中的不相關(guān)數(shù)據(jù)的另一實(shí)例。此處,如前所述存儲(chǔ)并更新扇區(qū)X、X+1和X+2。然而,此處還并行存儲(chǔ)并更新扇區(qū)Y。已更新扇區(qū)由指示存儲(chǔ)什么型式的下標(biāo)表示。舉例來說,扇區(qū)X0是扇區(qū)X的原始型式,而X1是扇區(qū)X的第一更新型式。扇區(qū)Y可以是主機(jī)數(shù)據(jù)扇區(qū)或頻繁更新的控制數(shù)據(jù)扇區(qū)。在某些系統(tǒng)中,在存儲(chǔ)主機(jī)數(shù)據(jù)時(shí),更新例如FAT信息的控制數(shù)據(jù)。在接收到少量主機(jī)數(shù)據(jù)的情況下,更新高速暫存區(qū)塊1890中的控制數(shù)據(jù)可能是有利的。這可避免在僅更新單個(gè)控制數(shù)據(jù)扇區(qū)的情況下更新控制結(jié)構(gòu)。在某一稍后時(shí)間,可使用來自高速暫存區(qū)塊的控制數(shù)據(jù)來更新控制數(shù)據(jù)結(jié)構(gòu)。
高速暫存區(qū)塊管理高速暫存區(qū)塊可以是存儲(chǔ)器陣列中的指定區(qū)塊。可選擇固定的物理位置作為高速暫存區(qū)塊。然而,這可能導(dǎo)致存儲(chǔ)器陣列的不均勻損耗?;蛘?,可不時(shí)地改變指定區(qū)塊,以使得當(dāng)高速暫存區(qū)塊變成由廢棄數(shù)據(jù)填充時(shí),選擇另一擦除區(qū)塊作為高速暫存區(qū)塊。在此情況下,存儲(chǔ)控制器所使用的數(shù)據(jù)結(jié)構(gòu)可識(shí)別高速暫存區(qū)塊的位置或所指定的高速暫存區(qū)塊可被標(biāo)記,以使得如果控制器掃描存儲(chǔ)器陣列的擦除區(qū)塊,那么其可確定哪個(gè)擦除區(qū)塊是高速暫存區(qū)塊??墒褂脤⑵錁?biāo)識(shí)為高速暫存區(qū)塊的扇區(qū)來標(biāo)記高速暫存區(qū)塊。舉例來說,圖19展示將扇區(qū)2110標(biāo)記為高速暫存區(qū)塊2100的第一扇區(qū)。當(dāng)使卡通電時(shí),可掃描存儲(chǔ)器陣列(或存儲(chǔ)器陣列的一部分)的擦除區(qū)塊來確定高速暫存區(qū)塊的位置。在圖19的實(shí)例中,讀取每個(gè)擦除區(qū)塊的第一扇區(qū)來判斷其是否是指示高速暫存區(qū)塊的標(biāo)記扇區(qū)。
可將數(shù)據(jù)寫入到高速暫存區(qū)塊作為數(shù)據(jù)群組。數(shù)據(jù)群組是從主機(jī)處接收到在邏輯上連續(xù)的扇區(qū)群組。當(dāng)將數(shù)據(jù)群組存儲(chǔ)在高速暫存區(qū)塊中時(shí),還寫入提供關(guān)于所存儲(chǔ)的數(shù)據(jù)群組的信息的索引扇區(qū)。所述數(shù)據(jù)群組的扇區(qū)的位置可存儲(chǔ)在索引扇區(qū)中。高速暫存區(qū)塊(例如圖19的高速暫存區(qū)塊2100)可用于存儲(chǔ)多個(gè)數(shù)據(jù)群組。圖20展示存儲(chǔ)一個(gè)數(shù)據(jù)群組的高速暫存2100。數(shù)據(jù)群組1由兩個(gè)扇區(qū)2220、2221組成。這些扇區(qū)(標(biāo)記扇區(qū)2110和索引扇區(qū)2230)存儲(chǔ)在高速暫存2100中。索引扇區(qū)2230存儲(chǔ)關(guān)于群組1的信息。
圖21展示在對(duì)由兩個(gè)扇區(qū)2340、2341組成的數(shù)據(jù)群組2進(jìn)行編程之后,圖20的高速暫存區(qū)塊2100。索引扇區(qū)2350是存儲(chǔ)關(guān)于群組1和群組2的信息的新索引扇區(qū)。因此,索引扇區(qū)2230是廢棄的,因?yàn)樗饕葏^(qū)2350含有高速暫存區(qū)塊2100的數(shù)據(jù)群組(包括群組1)的完整記錄。
圖22展示在對(duì)由扇區(qū)2460、2461和2462組成的數(shù)據(jù)群組3進(jìn)行編程之后,圖21的高速暫存區(qū)塊2100。索引扇區(qū)2470是存儲(chǔ)關(guān)于數(shù)據(jù)群組1、2和3的信息的新索引扇區(qū)。索引扇區(qū)2470含有高速暫存區(qū)塊2100的數(shù)據(jù)的完整記錄,且因此將索引扇區(qū)2350標(biāo)記為廢棄。
圖23展示在從高速暫存區(qū)塊2100讀取數(shù)據(jù)群組1和數(shù)據(jù)群組2并將其寫入為存儲(chǔ)器陣列的另一區(qū)塊中的單個(gè)頁(yè)面之后,圖22的高速暫存區(qū)塊2100。索引扇區(qū)2560存儲(chǔ)關(guān)于數(shù)據(jù)群組3的信息。高速暫存2100中的數(shù)據(jù)群組1和數(shù)據(jù)群組2是廢棄的,且不需要索引,因?yàn)樗鼈兇鎯?chǔ)在其它地方。因此,索引扇區(qū)2560含有高速暫存區(qū)塊2100中所有當(dāng)前數(shù)據(jù)的完整記錄。
當(dāng)主機(jī)從存儲(chǔ)器陣列請(qǐng)求數(shù)據(jù)扇區(qū)時(shí),控制器可首先核查所請(qǐng)求的扇區(qū)是否在高速暫存區(qū)塊中。如果所述扇區(qū)不存在于高速暫存區(qū)塊中,那么可以常規(guī)方式搜尋所述扇區(qū)。因此,高速暫存不需要改變常規(guī)媒體管理,所述常規(guī)媒體管理用于跟蹤存儲(chǔ)器陣列中數(shù)據(jù)扇區(qū)的位置。
雖然已相對(duì)于各個(gè)示范性實(shí)施例描述了本發(fā)明,但將了解本發(fā)明有權(quán)在所附權(quán)利要求書的整個(gè)范圍內(nèi)受到保護(hù)。
權(quán)利要求
1.一種在具有區(qū)塊作為最小擦除單位且頁(yè)面作為最小編程單位的非易失性存儲(chǔ)器陣列中存儲(chǔ)可尋址數(shù)據(jù)單位的方法,其中頁(yè)面含有一個(gè)或一個(gè)以上可尋址數(shù)據(jù)單位,頁(yè)面含有小于區(qū)塊的數(shù)據(jù),所述方法包含以第一并行度在第一區(qū)塊中寫入多個(gè)可尋址數(shù)據(jù)單位;隨后將所述多個(gè)可尋址數(shù)據(jù)單位復(fù)制到第二區(qū)塊,在所述第二區(qū)塊中,所述可尋址數(shù)據(jù)單位以具有高于所述第一并行度的第二并行度的寫入操作進(jìn)行寫入;和隨后將額外可尋址數(shù)據(jù)單位寫入到所述第一區(qū)塊,同時(shí)所述第一區(qū)塊含有所述多個(gè)可尋址數(shù)據(jù)單位。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第一并行度小于對(duì)完整數(shù)據(jù)頁(yè)面進(jìn)行編程的并行性,且所述第二并行度是對(duì)完整數(shù)據(jù)頁(yè)面進(jìn)行編程的并行度。
3.根據(jù)權(quán)利要求1所述的方法,其中所述多個(gè)可尋址數(shù)據(jù)單位形成第一文件的一部分,所述部分含有少于一個(gè)數(shù)據(jù)頁(yè)面,所述多個(gè)可尋址數(shù)據(jù)單位的隨后復(fù)制與第二文件的一部分的編程并行,以使得所述第一文件的所述部分和所述第二文件的所述部分形成所述第二區(qū)塊中的數(shù)據(jù)頁(yè)面。
4.根據(jù)權(quán)利要求1所述的方法,其中所述第二區(qū)塊含有多個(gè)多級(jí)單元,所述多個(gè)可尋址數(shù)據(jù)單位形成所述第一區(qū)塊中的第一頁(yè)面且與將第二數(shù)據(jù)頁(yè)面寫入到所述第二區(qū)塊并行地被復(fù)制到所述第二區(qū)塊,以使得所述第一頁(yè)面和所述第二頁(yè)面形成對(duì)所述多個(gè)多級(jí)單元進(jìn)行編程的上層頁(yè)面和下層頁(yè)面。
5.根據(jù)權(quán)利要求1所述的方法,其中將所述多個(gè)可尋址數(shù)據(jù)單位與額外數(shù)據(jù)并行地寫入到所述第二區(qū)塊,以實(shí)現(xiàn)所述第二并行度。
6.一種將可尋址數(shù)據(jù)單位寫入到非易失性存儲(chǔ)器陣列中的多級(jí)單元的方法,所述存儲(chǔ)器陣列具有區(qū)塊作為擦除單位,多級(jí)單元具有對(duì)應(yīng)于一個(gè)以上數(shù)據(jù)位的兩個(gè)以上可能的編程狀態(tài),所述方法包含從主機(jī)接收第一可尋址數(shù)據(jù)單位和第二可尋址數(shù)據(jù)單位;將所述第一可尋址數(shù)據(jù)單位編程到第一區(qū)塊和第二區(qū)塊的多個(gè)多級(jí)單元兩者;在將所述第一可尋址數(shù)據(jù)單位保存在所述第一區(qū)塊中的同時(shí),根據(jù)所述第二數(shù)據(jù)單位的位對(duì)所述第二區(qū)塊的所述多個(gè)多級(jí)單元進(jìn)行編程,而不將所述第二可尋址數(shù)據(jù)單位編程到所述第一區(qū)塊;和隨后僅在檢驗(yàn)到所述第二區(qū)塊的所述多個(gè)多級(jí)單元被完全編程到反映所述第二數(shù)據(jù)單位的位的狀態(tài)之后,才將所述第一區(qū)塊中的所述第一可尋址數(shù)據(jù)單位標(biāo)記為廢棄。
7.根據(jù)權(quán)利要求6所述的方法,其中根據(jù)第二可尋址單位的位對(duì)所述第二區(qū)塊的所述多個(gè)多級(jí)單元進(jìn)行編程終止于中間階段處,在所述中間階段中,單元尚未達(dá)到反映所述第二數(shù)據(jù)單位的位的狀態(tài),但所述單元已從反映所述第一數(shù)據(jù)單位的位的狀態(tài)進(jìn)行修改,且隨后從所述第一區(qū)塊恢復(fù)所述第一數(shù)據(jù)單位的所述位。
8.根據(jù)權(quán)利要求6所述的方法,其中所述第一可尋址數(shù)據(jù)單位在第一時(shí)間被編程到所述第一區(qū)塊,所述第一和第二可尋址數(shù)據(jù)單位隨后在接收到所述第二可尋址數(shù)據(jù)單位的第二時(shí)間被編程到所述第二區(qū)塊。
9.根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包含在所述第一區(qū)塊中的所有數(shù)據(jù)均被標(biāo)記為廢棄時(shí),擦除所述第一區(qū)塊。
10.一種在具有區(qū)塊作為最小擦除單位且頁(yè)面作為最小編程單位的非易失性存儲(chǔ)器陣列中存儲(chǔ)邏輯上不連續(xù)的可尋址數(shù)據(jù)單位的方法,所述方法包含在第一區(qū)塊的第一頁(yè)面中存儲(chǔ)第一至少一個(gè)可尋址數(shù)據(jù)單位;在所述第一區(qū)塊的所述第一頁(yè)面中,與所述第一至少一個(gè)可尋址數(shù)據(jù)單位并行地存儲(chǔ)第二至少一個(gè)可尋址數(shù)據(jù)單位,所述第二至少一個(gè)可尋址數(shù)據(jù)單位在邏輯上與所述第一至少一個(gè)可尋址數(shù)據(jù)單位不連續(xù);隨后將所述第一至少一個(gè)可尋址數(shù)據(jù)單位復(fù)制到第二區(qū)塊,且將所述第二至少一個(gè)可尋址數(shù)據(jù)單位復(fù)制到第三區(qū)塊;和隨后在所述第一區(qū)塊保存所述第一至少一個(gè)可尋址數(shù)據(jù)單位和所述第二至少一個(gè)可尋址數(shù)據(jù)單位的同時(shí),在所述第一區(qū)塊中存儲(chǔ)第三至少一個(gè)可尋址數(shù)據(jù)單位。
11.根據(jù)權(quán)利要求10所述的方法,其中所述第一至少一個(gè)可尋址數(shù)據(jù)單位包含主機(jī)數(shù)據(jù),且所述第二至少一個(gè)可尋址數(shù)據(jù)單位包含控制數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的方法,其中所述第一至少一個(gè)可尋址數(shù)據(jù)單位包含第一文件的多個(gè)邏輯上連續(xù)的可尋址主機(jī)數(shù)據(jù)單位,且所述第二至少一個(gè)可尋址數(shù)據(jù)單位包含第二文件的多個(gè)邏輯上連續(xù)的可尋址主機(jī)數(shù)據(jù)單位。
13.根據(jù)權(quán)利要求10所述的方法,其中將所述第三至少一個(gè)可尋址數(shù)據(jù)單位存儲(chǔ)在所述第一區(qū)塊的第二頁(yè)面中,所述第三至少一個(gè)可尋址數(shù)據(jù)單位在邏輯上與所述第一和第二至少一個(gè)可尋址數(shù)據(jù)單位兩者不連續(xù)。
14.根據(jù)權(quán)利要求13所述的方法,其中所述第一至少一個(gè)數(shù)據(jù)單位含有來自第一文件的數(shù)據(jù),所述第二至少一個(gè)數(shù)據(jù)單位含有來自第二文件的數(shù)據(jù),且所述第三至少一個(gè)數(shù)據(jù)單位含有來自第三文件的數(shù)據(jù)。
15.一種在將存儲(chǔ)單元布置成擦除區(qū)塊作為最小擦除單位的非易失性存儲(chǔ)器陣列中存儲(chǔ)數(shù)據(jù)的方法,其中若干擦除區(qū)塊群組經(jīng)鏈接以形成元區(qū)塊,元頁(yè)面是元區(qū)塊的編程單位,所述方法包含在第一元區(qū)塊的第一元頁(yè)面中存儲(chǔ)第一數(shù)據(jù)扇區(qū);在所述第一元區(qū)塊的至少一第二元頁(yè)面中存儲(chǔ)至少一第二扇區(qū);在接收到第三數(shù)據(jù)扇區(qū)時(shí),將所述第一數(shù)據(jù)扇區(qū)、所述至少一第二數(shù)據(jù)扇區(qū)和所述第三數(shù)據(jù)扇區(qū)一起寫入到第二元區(qū)塊的元頁(yè)面;和隨后在所述第一元區(qū)塊中存儲(chǔ)第四數(shù)據(jù)扇區(qū),而不從所述第一元區(qū)塊擦除所述第一數(shù)據(jù)扇區(qū)和所述至少一第二數(shù)據(jù)扇區(qū)。
16.根據(jù)權(quán)利要求15所述的方法,其中經(jīng)組合的所述第一數(shù)據(jù)扇區(qū)、所述至少一第二數(shù)據(jù)扇區(qū)和所述第三數(shù)據(jù)扇區(qū)形成完整的數(shù)據(jù)元頁(yè)面。
17.根據(jù)權(quán)利要求15所述的方法,其中在將所述第一數(shù)據(jù)扇區(qū)、所述至少一第二數(shù)據(jù)扇區(qū)和所述第三數(shù)據(jù)扇區(qū)一起寫入到所述第二元區(qū)塊的元頁(yè)面之后,不立即將所述第一元區(qū)塊標(biāo)記為廢棄。
18.根據(jù)權(quán)利要求15所述的方法,其中將所述第一數(shù)據(jù)扇區(qū)從所述第一元頁(yè)面復(fù)制到所述至少一第二元頁(yè)面。
19.根據(jù)權(quán)利要求15所述的方法,其中所述至少一第二扇區(qū)由第二扇區(qū)和額外扇區(qū)組成,所述第一和第二扇區(qū)存儲(chǔ)在所述第一元區(qū)塊的所述第二元頁(yè)面中,所述第一、第二和額外扇區(qū)存儲(chǔ)在所述第一元區(qū)塊的第三元頁(yè)面中。
20.根據(jù)權(quán)利要求15所述的方法,其中所述第一數(shù)據(jù)扇區(qū)、所述至少一第二數(shù)據(jù)扇區(qū)和所述第三數(shù)據(jù)扇區(qū)形成所述第二元區(qū)塊的元頁(yè)面。
21.一種在將存儲(chǔ)單元布置成擦除區(qū)塊作為最小擦除單位的非易失性存儲(chǔ)器陣列中存儲(chǔ)數(shù)據(jù)的方法,其中頁(yè)面是擦除區(qū)塊的最小編程單位,所述方法包含在第一擦除區(qū)塊的第一頁(yè)面中存儲(chǔ)第一數(shù)據(jù)扇區(qū);在所述第一擦除區(qū)塊的至少一個(gè)額外頁(yè)面中存儲(chǔ)至少一個(gè)額外扇區(qū);在接收到最終數(shù)據(jù)扇區(qū)時(shí),將所述第一數(shù)據(jù)扇區(qū)、所述至少一個(gè)額外數(shù)據(jù)扇區(qū)和所述最終數(shù)據(jù)扇區(qū)一起寫入到第二擦除區(qū)塊的頁(yè)面;和隨后在所述第一擦除區(qū)塊中存儲(chǔ)第二數(shù)據(jù)扇區(qū),而不從所述第一擦除區(qū)塊擦除所述第一數(shù)據(jù)扇區(qū)和所述至少一個(gè)額外扇區(qū)。
22.根據(jù)權(quán)利要求21所述的方法,其中所述第一數(shù)據(jù)扇區(qū)、所述至少一個(gè)額外數(shù)據(jù)扇區(qū)和所述最終數(shù)據(jù)扇區(qū)一起完全填充所述第二擦除區(qū)塊的所述頁(yè)面。
全文摘要
在具有區(qū)塊作為最小擦除單位的存儲(chǔ)器陣列中,使用高速暫存區(qū)塊來存儲(chǔ)稍后寫入到另一區(qū)塊的數(shù)據(jù)。所述數(shù)據(jù)可以低并行度寫入到所述高速暫存區(qū)塊,且稍后以高并行度寫入到另一位置,以使得其以高密度進(jìn)行存儲(chǔ)。數(shù)據(jù)可臨時(shí)存儲(chǔ)在所述高速暫存區(qū)塊中,直到其可更有效地存儲(chǔ)在其它地方為止。在接收到某些其它數(shù)據(jù)時(shí)也可如此。不相關(guān)的數(shù)據(jù)可存儲(chǔ)在高速暫存區(qū)塊的同一頁(yè)面中。
文檔編號(hào)G06F12/02GK101095121SQ200580042250
公開日2007年12月26日 申請(qǐng)日期2005年12月1日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者艾倫·戴維·貝內(nèi)特, 瑟吉·阿納托利耶維奇·戈羅別茨 申請(qǐng)人:桑迪士克股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1