TW201308074A - 具有熱/冷資料分類之區塊管理之非揮發性記憶體及方法 - Google Patents
具有熱/冷資料分類之區塊管理之非揮發性記憶體及方法 Download PDFInfo
- Publication number
- TW201308074A TW201308074A TW101117620A TW101117620A TW201308074A TW 201308074 A TW201308074 A TW 201308074A TW 101117620 A TW101117620 A TW 101117620A TW 101117620 A TW101117620 A TW 101117620A TW 201308074 A TW201308074 A TW 201308074A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- logical group
- block
- temperature
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭示一種組織成快閃可抹除區塊之非揮發性記憶體,該非揮發性記憶體根據指派給每一資料單元之一溫度來將資料單元分類,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性。該等資料單元來自一主機寫入或來自一重新定位操作。該等資料經依據其溫度分類,以用於儲存至諸如SLC及MLC之不同儲存部分中,或儲存至不同操作串流中。此允許以適合於其溫度之一方式處理類似溫度之資料以最小化重寫。一資料單元之實例包含一邏輯群組及一區塊。
Description
本申請案係關於可再程式化非揮發性記憶體系統(例如半導體快閃記憶體)之操作,且更具體而言,係關於將資料高效儲存於區塊結構中同時最小化重寫。
具有非揮發性電荷儲存能力之固態記憶體(特定而言呈封裝為一小外觀尺寸卡之EEPROM及快閃EEPROM之形式)已變成各種行動及手持式裝置(尤其是資訊器具及消費型電子產品)中之儲存選擇。不同於亦係固態記憶體之RAM(隨機存取記憶體),快閃記憶體係非揮發性的,且甚至在電力關斷之後亦留存其所儲存資料。並且,不同於ROM(唯讀記憶體),快閃記憶體係可重寫的(類似於一磁碟儲存裝置)。雖然成本較高,但快閃記憶體正越來越多地用於大容量儲存應用中。最近,在可攜式電腦中以及在固定位置設施中,呈固態磁碟(「SSD」)形式之快閃記憶體正代替硬碟。基於旋轉磁介質(諸如硬碟機及軟磁碟)之習用大容量儲存器件不適合於行動及手持式環境。此乃因磁碟機往往較笨重、易於發生機械故障且具有高延時及高電力要求。此等非期望屬性使得基於磁碟之儲存器件不適用於大多數行動及可攜式應用中。另一方面,快閃記憶體(嵌入式及呈一可抽換卡或SSD之形式兩者)由於其小尺寸、低電力消耗、高速度及高可靠性特徵而理想地適用於行動及手持式環境中。
快閃EEPROM類似於EEPROM(電可抹除及可程式化唯讀記憶體)之處在於其係可被抹除且使新資料寫入或「程式化」至其記憶體胞中之一非揮發性記憶體。兩者皆在一場效電晶體結構中利用一浮動(未連接的)導電閘極,該浮動導電閘極位於一半導體基板中之一通道區域上方於源極區域與汲極區域之間。接著,在該浮動閘極上方提供一控制閘極。電晶體之臨限電壓特性受浮動閘極上所留存之電荷量控制。亦即,對於浮動閘極上之一既定電荷位準,存在必須在「接通」電晶體之前施加至控制閘極以准許該電晶體之源極區域與汲極區域之間導通之一對應電壓(臨限值)。特定而言,快閃記憶體(諸如快閃EEPROM)允許同時抹除整個記憶體胞區塊。
浮動閘極可固持一定範圍之電荷,且因此可被程式化至一臨限電壓窗內之任一臨限電壓位準。該臨限電壓窗之大小係由裝置之最小及最大臨限位準來定界,而裝置之最小及最大臨限位準又對應於可程式化至浮動閘極上之電荷之範圍。臨限窗通常取決於記憶體裝置之特性、操作條件及歷史。原則上,該窗內之每一相異、可解析臨限電壓位準範圍可用於指定該胞之一明確記憶體狀態。
當前市售產品組態一快閃EEPROM陣列之每一儲存元件以儲存一單個資料位元或一個以上單個資料位元。一單階胞(SLC)記憶體藉由以一個二進制模式操作而使每一胞儲存一單個資料位元,其中一單個參考位準區別每一儲存元件之兩個臨限位準範圍。
電晶體之臨限位準對應於儲存於其儲存元件上之電荷位準之範圍。除縮小記憶體陣列之大小以外,趨勢係藉由將一個以上資料位元儲存於每一儲存元件電晶體中來進一步增加此等記憶體陣列之資料儲存密度。一多階胞(MLC)記憶體藉由以一多位階模式操作而使每一胞儲存一個以上單個資料位元,其中兩個或兩個以上參考位準區別每一儲存元件之兩個以上臨限位準範圍。舉例而言,市售快閃記憶體產品現在在四個狀態(每儲存元件2個資料位元)或八個狀態(每儲存元件3個資料位元)或者每儲存元件16個狀態(每儲存元件4個資料位元)下操作。每一儲存元件記憶體電晶體皆具有可在其中實際操作該電晶體之某一總臨限電壓範圍(窗),且彼範圍係劃分成針對其定義之狀態之數目加上各狀態之間的界限以允許該等狀態明顯地彼此區別。顯而易見,一記憶體胞經組態以儲存之位元越多,該記憶體胞必須在其中操作之錯誤界限越小。
充當一記憶體胞之電晶體通常藉由兩種機制中之一者而程式化為一「經程式化」狀態。在「熱電子注入」中,施加至汲極之一高電壓使電子加速跨越基板通道區域。同時,施加至控制閘極之一高電壓拉動熱電子穿過一薄閘極電介質至浮動閘極上。在「穿隧注入」中,相對於基板施加一高電壓至控制閘極。以此方式,將電子自基板拉動至中間浮動閘極。儘管在歷史上已使用術語「程式化」來闡述藉由將電子注入至記憶體胞之一最初經抹除電荷儲存單元以便更改記憶體狀態而寫入至一記憶體,但現在其可與
更常見術語(諸如「寫入」或「記錄」)互換地使用。
可藉由若干種機制來抹除記憶體裝置。對於EEPROM而言,藉由相對於控制閘極施加一高電壓至基板以便引導浮動閘極中之電子隧穿一薄氧化物至基板通道區域(亦即,傅勒-諾德翰穿隧)來電抹除一記憶體胞。通常,EEPROM可逐位元組地抹除。對於快閃EEPROM而言,記憶體可同時進行電抹除或可一次電抹除一或多個最小可抹除區塊,其中一最小可抹除區塊可由一或多個區段組成且每一區段可儲存512個位元組或更多的資料。
記憶體裝置通常包括可安裝於一卡上之一或多個記憶體晶片。每一記憶體晶片包括由周邊電路(諸如解碼器以及抹除、寫入及讀取電路)支援之一記憶體胞陣列。較複雜之記憶體裝置亦帶有一控制器,該控制器執行智慧及較高階記憶體操作及介接。最近,正以一標準硬碟機之外觀尺寸市售呈SSD之形式之記憶體裝置。
現在存在諸多商業上成功之非揮發性固態記憶體裝置可供使用。此等記憶體裝置可係快閃EEPROM或可採用其他類型之非揮發性記憶體胞。在第5,070,032號、第5,095,344號、第5,315,541號、第5,343,063號及第5,661,053號、第5,313,421號以及第6,222,762號美國專利中給出快閃記憶體及系統以及製造其之方法之實例。特定而言,在第5,570,315號、第5,903,495號、第6,046,935號美國專利中闡述具有NAND串結構之快閃記憶體裝置。
非揮發性記憶體裝置亦係由具有用於儲存電荷之一介電
層之記憶體胞製造。替代先前所闡述之導電浮動閘極元件,使用一介電層。利用介電儲存元件之此等記憶體裝置已由Eitan等人在「NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell」(IEEE Electron Device Letters,第21卷,第11號,2000年11月,第543至545頁)中闡述。一ONO介電層跨越介於源極擴散與汲極擴散之間的通道延伸。一個資料位元之電荷係定位於毗鄰於汲極之介電層中,而另一資料位元之電荷係定位於毗鄰於源極之介電層中。舉例而言,第5,768,192號及第6,011,725號美國專利揭示具有夾在兩個二氧化矽層之間的一陷獲電介質之一非揮發性記憶體胞。多狀態資料儲存係藉由分離地讀取電介質內之空間分離之電荷儲存區域之二進制狀態來實施。
快閃記憶體行為極不同於傳統磁碟儲存或RAM。首先,無法藉由僅覆寫來更新儲存於快閃記憶體中之現有資料。在每一胞上可發生一新寫入之前必須首先將其抹除。因此,通常將更新寫入至一新自由位置。為了改良效能,對一胞群組並行操作以逐頁地存取資料。當藉由將經更新頁寫入至一新位置來更新一資料頁時,經取代頁係呈現為無效且過時的且變成使儲存變得混亂之廢料且將最終被清除以空出其佔據之空間。
管理更新及丟棄無效更新因快閃記憶體之區塊結構而變得複雜。抹除快閃記憶體係相對費時的,且為了改良抹除效能,將記憶體組織成若干抹除區塊,其中同時一起抹除
一整個記憶體胞區塊。一區塊通常含有若干個頁。由於資料係逐頁地儲存於一區塊中,因此最終彼資料中之某些資料變得過時。此意指該區塊將含有佔用空間之諸多廢料資料。然而,該區塊可僅作為一單元抹除,且因此在與該區塊一起抹除廢料資料之前,必須首先對該區塊中之有效資料進行殘料回收且將其複製至另一區塊中。此操作通常稱為廢料收集且係快閃記憶體之區塊結構之一額外負擔。區塊越大,廢料收集所需之時間越多。類似地,越頻繁地更新區塊中之資料,將需要越頻繁地對區塊進行廢料收集。較佳地在前臺中執行廢料收集,例如在一寫入操作期間。明顯地,此將使寫入速度降級。
快閃記憶體之早期應用主要用於為可攜式主機儲存媒體檔案,諸如音樂及視訊檔案。此等檔案往往係逐區塊地填充記憶體之一長串順序邏輯位址資料。此等資料在本質上係歸檔的且不經歷許多更新。因此,區塊結構對此等類型之資料而言工作良好且在寫入期間存在極少效能降低,此乃因很少需要廢料收集。資料之有序順序位址本質允許將邏輯位址範圍分割成若干邏輯群組,其中每一邏輯群組與一抹除區塊對準,其意義在於一邏輯群組之資料將恰好湊配成一區塊。以此方式,定址粒度主要係按區塊層級,此乃因具有一既定邏輯位址之一頁可由正儲存其所屬之邏輯群組之區塊定位。由於邏輯群組係以其中其邏輯位址呈順序次序之一自索引之方式儲存於區塊中,因此可迅速地將頁定位。
實施邏輯群組之區塊管理系統通常藉由按頁層級追蹤更新來處理該等更新及非順序寫入。其預算用於頁層級追蹤之一預定資源量,此表現為已限制具有非順序或過時資料之邏輯群組之數目。一般而言,當經歷更新時,有序區塊中之某些區塊將含有過時資料且記錄該等過時資料亦將消耗部分資源。當超出預算時,將具有非順序或過時資料之一選定區塊以順序次序還原回一有序區塊。此係藉由用最新更新以順序次序重寫至一新區塊中而實現。然而,重新定位將付出一效能降低代價。此一系統將在一主機寫入有助於將大多此等有序區塊維持於按區塊層級追蹤(其中僅某些隨機寫入係按頁層級追蹤)之資料之情況下工作良好。因此,藉由實施對準於區塊邊界之邏輯群組,大大地簡化且減小了位址表。
然而,若主機大多寫入短且非順序資料,則實施邏輯群組之區塊管理系統將開始變得最佳化程度稍遜。此類型之寫入樣式在來自一個人電腦或智慧行動裝置之應用中較普遍。使用快閃記憶體之固態磁碟(SSD)由於其低電力、速度及耐用性而係磁碟儲存器件之一有吸引力之替代。替代長順序寫入,快閃記憶體現在必須大多處理短隨機寫入。最初,將不會影響效能,此乃因只要可找出自由空間,便可將資料寫入彼處。然而,在經常使用且頻繁更新之情況下,將最終耗盡用於頁追蹤之預定資源。在彼點處,效能可大為受創,此乃因下一寫入可必須藉由一區塊之一重新定位實現。區塊越大,執行一區塊之重新定位將花費的時
間越長。一大區塊及短且非順序資料亦將致使該區塊中之邏輯群組更頻繁地含有無效資料且更快地消耗頁定址資源且因此致使更頻繁地發生重新定位。
關於大區塊大小之問題無法藉由僅減小區塊大小而容易地解決,此乃因區塊大小往往隨每一新世代記憶體技術而按幾何級數增加。在較高電路整合之情況下,將較多記憶體胞湊配於同一晶粒中。沿行及列量測之區塊大小按幾何級數增加。對NAND類型之記憶體之情形而言尤其如此。記憶體係一NAND串陣列,其中每一串係記憶體胞之一菊鏈且一最小抹除區塊必須由此NAND串之一列形成。若NAND串具有32個胞,則一區塊將含有32列胞。一NAND串中之記憶體胞之數目亦隨著每一世代而增加,因此區塊大小逐行且逐列地增加。
在當前世代中,由實體記憶體結構規定之區塊大小係4 MB大。另一方面,個人電腦之作業系統通常以512 kB之大小分配邏輯區段且經常以4 kB單位寫入一頁作為一邏輯區段叢集。因此,在對應於一區塊與一頁之一邏輯群組之定址粒度方面存在一極大不匹配。在邏輯群組之方案中,一區塊之理想情況係不寫入任何資料或用有效資料之整個邏輯群組順序地填充該區塊。在任一情形中,不存在片段儲存且不需要廢料收集或重新定位。在至一大區塊中之短隨機寫入之情形中,區塊極迅速地變得不理想且最終將需要重新定位。此意味著低效寫入,此乃因可必須一或多次地寫入同一頁且接著重新複製(亦稱為「寫入放大」)。
適合於短隨機寫入之一替代習用定址方法係不使用邏輯群組,而是在將每一頁寫入至一區塊時獨立地追蹤每一頁。替代將所儲存資料維持為一區塊中之有序邏輯群組,關於每一頁儲存於哪一區塊中及在該區塊中之位移來追蹤每一頁。因此,在此頁定址方案中,不存在以順序邏輯位址之次序將資料儲存或維持於群組中之負擔。然而,頁定址方案將具有比用於邏輯群組位址方案之彼位址表大得多的一位址表。舉例而言,若在一區塊中存在1000個頁,則用於頁定址方案之位址表將係大致2個至3個數量級大。
就一大得多的位址表而言,頁定址方案付出代價。在實務上,其將需要較多系統資源及與記憶體控制器一起工作之一相對大RAM。此乃因位址表係通常維持於快閃記憶體中且在操作期間快取至控制器RAM以提供較快存取。當前技術允許在控制器晶片上製作最多2 MB至4 MB之RAM。此不足以用於使用一頁定址方案之系統,且將需要額外外部RAM晶片。用以支援外部RAM晶片之額外插腳輸出及介面電路將顯著增加成本。
關於具有極小單位(諸如4 kB)之定址粒度之另一問題係其創建在區塊之間如此分散以使得在讀取及資料複製(由於更新所致)期間不可達成最大並行性之分段資料。並且,隨小更新增加之複製量仍可觸發一或多個整體區塊之複製。
因此,需要提供一種可高效地處置由至大區塊中之短隨機寫入表徵之資料存取而不遭受上文所提及之缺點及問題
之非揮發性記憶體。
組織成快閃可抹除區塊之一非揮發性記憶體根據指派給每一資料單元之一溫度來將資料單元分類,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性。該等資料單元來自一主機寫入或來自一重新定位操作。該等資料經分類以用於儲存至諸如SLC及MLC之不同儲存部分中,或取決於其溫度而儲存至不同操作串流中。此允許以適合於類似溫度之資料之溫度之一方式處理資料以最小化重寫。一資料單元之實例包含一邏輯群組及一區塊。
在一項實施例中,組織成快閃可抹除區塊之一非揮發性記憶體藉由在將來自主機寫入之資料寫入至區塊中之前首先暫存成若干邏輯群組來接收資料。每一邏輯群組含有來自一預定義組次序邏輯位址之資料且具有小於一區塊之一固定大小。該記憶體亦分割成SLC部分與MLC部分。每一邏輯群組被指派一溫度作為對該邏輯群組將由於其部分變得過時且需要廢料收集操作而被重寫之一可能性之一量測。當在該SLC部分中需要較多空間時,將具有最冷溫度之邏輯群組優先地自該SLC部分重新定位至該MLC部分。在另一態樣中,按區塊層級而非邏輯群組層級指派一類似溫度。
在一較佳實施方案中,記憶體係分割成SLC部分與MLC
部分且包括第一、第二及第三操作層及功能層。第一及第二層在SLC部分中操作。第三層在MLC部分中操作。第一層係用於最初地儲存來自一主機之寫入資料且在將每一邏輯群組重新定位至第二層或第三層中之前將資料逐邏輯群組地暫存。第二層提供在用於按邏輯群組層級儲存主機資料之一SLC區塊集區中之作用儲存區。當該集區已滿時,藉由將具有最少可能重寫之邏輯群組收回至以一較高密度進行儲存之第三層來讓出更多空間。
第二層中之每一邏輯群組係按其由於廢料收集所致之未來重寫之可能來評等。將來自一有限範圍之一溫度指派給每一邏輯群組,其中最冷邏輯群組首先被收回至第三層。評等準則包含邏輯群組正經歷之更新之速率及邏輯群組介於更新之間的時間長度。自該第二記憶體層重新定位至該第三記憶體層之邏輯群組將在該第三記憶體層處存取。在該第二記憶體層處剩餘之邏輯群組將在該第二記憶體層處直接存取。
在另一實施例中,該資料單元係一區塊且一溫度係按區塊層級指派。在一重新定位操作中,首先優先地重新定位該等最冷溫度區塊。
在另一實施例中,資料單元係根據其溫度而分類成不同區塊串流,以使得每一操作串流中之區塊僅涉及類似溫度之資料。目標係儘快且一有機會就分離熱資料與冷資料。熱資料與冷資料具有不同過時性及廢料收集/重新定位排程。舉例而言,熱資料將較快變得過時且需要較頻繁的廢
料收集/重寫。當冷資料未與熱資料混合時,將不引發不必要之重寫。最可能地,該熱資料本身將過時而不觸發冷資料自一個區塊至另一區塊之重新定位,且冷區塊中之冷資料將在不具有由於該熱資料所致之壓縮/重新定位之情況下留在該冷區塊處。
依據本發明之較佳實施例之以下說明將理解本發明之額外特徵及優點,應連同附圖一起領受該說明。
圖1圖解說明與其中體現本發明之特徵之一記憶體裝置通信之一主機。主機80通常發送欲儲存於記憶體裝置90處之資料或藉由讀取記憶體裝置90來擷取資料。記憶體裝置90包含由一記憶體控制器102管理之一或多個記憶體晶片100。記憶體晶片100包含若干記憶體胞之一記憶體陣列200,其中每一胞能夠組態為用於儲存多個資料位元之一多階胞(「MLC」)以及能夠組態為用於儲存1個資料位元之一單階胞(「SLC」)。該記憶體晶片亦包含周邊電路204,諸如列及行解碼器、感測模組、資料鎖存器及I/O電路。一晶片上控制電路110控制每一晶片之低階記憶體操作。控制電路110係一晶片上控制器,其與周邊電路協作以對記憶體陣列200執行記憶體操作。控制電路110通常包含一狀態機112以經由一資料匯流排231以及控制及位址匯流排111提供對記憶體操作之晶片層級控制。
在諸多實施方案中,主機80經由記憶體控制器102與記
憶體晶片100通信及互動。控制器102與該記憶體晶片協作且控制及管理較高階記憶體操作。一韌體60提供用於實施控制器102之功能之碼。一錯誤校正碼(「ECC」)處理器62在記憶體裝置之操作期間處理ECC。
舉例而言,在一主機寫入中,主機10以自該主機之作業系統之一檔案系統分配之邏輯區段發送欲寫入至記憶體陣列200之資料。實施於控制器中之一記憶體區塊管理系統將區段暫存並將其映射及儲存至記憶體陣列之實體結構。
一較佳區塊管理系統係揭示於第US-2010-0172180-A1號美國專利申請公開案中,該專利申請公開案之全部揭示內容以引用之方式併入本文中。
為改良讀取及程式化效能,並行讀取或程式化一陣列中之多個電荷儲存元件或記憶體電晶體。因此,一起讀取或程式化記憶體元件之一「頁」。在現有記憶體架構中,一列通常含有數個交錯頁或其可構成一個頁。將一起讀取或程式化一頁之所有記憶體元件。
圖2圖解說明經並行感測或程式化之組織成(舉例而言)NAND組態之記憶體胞之一頁。圖2基本上展示圖1之記憶體陣列200中之NAND串50之一記憶庫。一「頁」(諸如頁60)係能夠被並行感測或程式化之一記憶體胞群組。此係藉由感測放大器210之一對應頁而在周邊電路中實現。所感測結果係鎖存於一對應組資料鎖存器220中。每一感測放大器可經由一位元線36耦合至一NAND串,諸如NAND
串50。舉例而言,頁60係沿一列且係由施加至共同連接至字線WL3之頁之胞之控制閘極的一感測電壓感測。沿每一行,可由一感測放大器經由一位元線36存取每一胞(諸如胞10)。資料鎖存器220中之資料係經由一資料I/O匯流排231雙態切入或雙態切出至記憶體控制器102。
上文所提及之頁係一實體頁記憶體胞或感測放大器。取決於上下文,在其中每一胞儲存多位元資料之情形中,每一實體頁具有多個資料頁。
NAND串50係藉由其源極及汲極菊鏈連接以分別在其兩個端處形成一源極端子及一汲極端子之一系列記憶體電晶體10。一對選擇電晶體S1、S2分別經由NAND串之源極端子及汲極端子控制記憶體電晶體鏈與外部之連接。在一記憶體陣列中,當接通源極選擇電晶體S1時,源極端子耦合至一源極線34。類似地,當接通汲極選擇電晶體S2時,NAND串之汲極端子耦合至記憶體陣列之一位元線36。該鏈中之每一記憶體電晶體10充當一記憶體胞。每一記憶體電晶體10具有一電荷儲存元件20以儲存一既定量的電荷來表示一所預期既定記憶體狀態。每一記憶體電晶體之一控制閘極允許對讀取及寫入操作之控制。一列NAND串之對應記憶體電晶體之控制閘極全部連接至同一字線(諸如WL0、WL1...)。類似地,選擇電晶體S1、S2(分別經由選擇線SGS及SGD存取)中之每一者之一控制閘極分別經由其源極端子及汲極端子對NAND串提供控制存取。
快閃記憶體與其他類型之記憶體之間的一個重要不同之處在於,必須自經抹除狀態程式化一胞。亦即,必須首先將浮動閘極排空電荷。接著,程式化將所要量之電荷向回添加至該浮動閘極。其並不支援自浮動閘極移除電荷之一部分以自一較多經程式化狀態進行至一較少經程式化狀態。此意指,更新資料不能覆寫現有資料且必須寫入至一先前未寫入之位置。
此外,抹除係自浮動閘極排空所有電荷且一般花費可觀的時間。為此原因,逐胞或甚至逐頁地抹除將係麻煩且極慢的。在實務上,記憶體胞陣列係經劃分成大量記憶體胞區塊。如同常見於快閃EEPROM系統的,區塊係抹除的基本單元。亦即,每一區塊含有一起被抹除之最小數目個記憶體胞。
圖3示意性地圖解說明組織成若干可抹除區塊之一記憶體陣列之一實例。對電荷儲存記憶體裝置之程式化僅可導致將較多電荷添加至其電荷儲存元件。因此,在一程式化操作之前,必須移除(或抹除)一記憶體胞之電荷儲存元件中之現有電荷。當一起(亦即,一瞬間)電抹除一整個胞陣列200或該陣列中之大量胞群組時,一非揮發性記憶體(諸如EEPROM)稱為一「快閃」EEPROM。一旦經抹除,便可接著再程式化該胞群組。可一起抹除之該胞群組可由一或多個可定址抹除單元300組成。抹除單元或區塊300通常儲存一或多個資料頁,該頁係程式化及讀取之一最小單元,但在一單個操作中可程式化或讀取一個以上頁。每一頁通
常儲存一或多個資料區段,區段之大小係由主機系統定義。一實例係512位元組之使用者資料(遵循關於磁碟機確立之一標準)加上關於使用者資料及/或其中儲存使用者資料之區塊之一定數目個位元組之附加項資訊的一區段。
在圖3中所展示之實例中,記憶體陣列200中之個別記憶體胞可藉由字線42(諸如WL0至WLy)及位元線36(諸如BL0至BLx)存取。該記憶體係組織成若干抹除區塊,諸如抹除區塊0、1、...、m。若NAND串50(參見圖2)含有16個記憶體胞,則陣列中之NAND串之第一記憶庫將可藉由選擇線44及字線42(諸如WL0至WL15)存取。抹除區塊0經組織以使NAND串之第一記憶庫之所有記憶體胞一起抹除。在記憶體架構中,可一起抹除NAND串之一個以上記憶庫。
圖4示意性地圖解說明具有多個陣列及最大並行性操作之一記憶體晶片。舉例而言,該記憶體晶片製作有兩個晶粒,晶粒1及晶粒2。每一晶粒含有兩個記憶體平面。舉例而言,晶粒1含有記憶體平面1及記憶體平面2,且晶粒2含有記憶體平面3及記憶體平面4。每一記憶體平面含有多個區塊且每一區塊含有多個頁。舉例而言,記憶體平面1包含區塊1,區塊1又包含一頁P1。
區塊(諸如區塊1至區塊4)各自係由一記憶體平面中之記憶體陣列之實體架構固定之最小抹除單元(MEU),諸如圖3中所展示之區塊300。類似地,頁(諸如P1至P4)各自係由
並聯操作之一定數目個讀取/寫入電路固定之最小讀取/寫入單元。
為了最大化程式化速度及抹除速度,藉由將定位於多個MEU中之多個資訊頁配置成將並行程式化且將多個MEU配置成將並行抹除來盡可能地利用並行性。
圖5示意性地圖解說明具有較高並行性程度之一記憶體結構。舉例而言,頁P1至P4係一起連結為一「後設頁」,該後設頁在系統層級上係作為一最小讀取或寫入單元操作。類似地,區塊1至區塊4係一起連結為一「後設區塊」,該後設區塊在系統層級上係作為一最小抹除單元操作。快閃記憶體之實體位址空間被視為一組後設區塊,其中一後設區塊係最小抹除單元。在本說明書內,術語「後設區塊」(例如,300-4)與「區塊」300係同義地使用來在系統層級上定義最小抹除單元用於媒體管理,且術語「最小抹除單元」或MEU係用於標識快閃記憶體之最小抹除單元。類似地,術語「後設頁」(例如,60-4)與「頁」60係在理解一頁可藉助一較高並行性程度在系統層級上組態成一後設頁之情況下同義地使用。
儘管圖4圖解說明可藉由聚集來自一記憶體晶片中之多個平面之記憶體結構來達成較高並行性程度,但應理解在另一實施例中,該等平面可分佈於一個以上記憶體晶片當中。
MEU連結或重新連結成後設區塊亦揭示於第US-2005-0144516-A1號美國專利公開案及第7139864號美國專利
中,此兩個公開案之全部揭示內容係以引用之方式併入本文中。
如先前所闡述,非揮發性記憶體之一實例係由一場效電晶體陣列形成,該等場效電晶體各自在其通道區域與其控制閘極之間具有一電荷儲存層。該電荷儲存層或單元可儲存一電荷範圍,從而產生每一場效電晶體之一臨限電壓範圍。可能臨限電壓之範圍橫跨一臨限窗。當將臨限窗分割成多個臨限電壓子範圍或區帶時,每一可解析區帶用於表示一記憶體胞之一不同記憶體狀態。該多個記憶體狀態可藉由一或多個二進制位元寫碼。
圖6圖解說明具有一胞群體(其中每一胞處於兩個可能狀態中之一者中)之一個二進制記憶體。藉由一單個分界能階將每一記憶體胞之臨限窗分割成兩個相異區帶。如圖6(0)中所展示,在讀取期間,介於一下部區帶與一上部區帶之間的一讀取分界能階rV1係用於判定胞之臨限位準位於哪一區帶中。若胞之臨限值係定位於下部區帶中則其處於一「經抹除」狀態中,且若胞之臨限值係定位於上部區帶中則其處於一「經程式化」狀態中。圖6(1)圖解說明記憶體最初使其所有胞處於「經抹除」狀態中。圖6(2)圖解說明被程式化為「經程式化」狀態之某些胞。使用一個1位元或二進制碼來寫碼該等記憶體狀態。舉例而言,位元值「1」表示「經抹除」狀態且「0」表示「經程式化」狀態。通常藉由施加一或多個程式化電壓脈衝來執行程式
化。在每一脈衝之後,胞經感測以驗證臨限值是否已移動超過一驗證分界能階vV1。具有此記憶體胞分割之一記憶體稱為「二進制」記憶體或單階胞(「SLC」)記憶體。將看出,由於整個臨限窗僅被兩個區帶佔據,因此一個二進制或SLC記憶體以一寬廣錯誤界限操作。
圖7圖解說明具有一胞群體(其中每一胞處於八個可能狀態中之一者中)之一多狀態記憶體。藉由至少七個分界能階將每一記憶體胞之臨限窗分割成八個相異區帶。如圖7(0)中所展示,在讀取期間,讀取分界能階rV1至rV7係用於判定胞之臨限位準位於哪一區帶中。若胞之臨限值係定位於最下部區帶中則其處於一「經抹除」狀態中,且若胞之臨限值係定位於上部區帶中則其處於多個「經程式化」狀態中之一者中。圖7(1)圖解說明記憶體最初使其所有胞處於「經抹除」狀態中。圖7(2)圖解說明被程式化為「經程式化」狀態之某些胞。具有下部位元、中間位元及上部位元之一個3位元碼可用於表示八個記憶體狀態中之每一者。舉例而言,「0」、「1」、「2」、「3」、「4」、「5」、「6」及「7」狀態分別由「111」、「011」、「001」、「101」、「100」、「000」、「010」及「110」表示。通常藉由施加一或多個程式化電壓脈衝來執行程式化。在每一脈衝之後,胞經感測以驗證臨限值是否已移動超過係驗證分界能階vV1至vV7中之一者之一參考。具有此記憶體胞分割之一記憶體稱為「多狀態」記憶體或多階胞(「MLC」)記憶體。在一數字程式化方法中,在將胞程式化至其目標狀態之前
採用多遍程式化以減輕浮動閘極之間的微擾。
類似地,儲存4位元碼之一記憶體將具有表示十六個狀態中之每一者之下部位元、第一中間位元、第二中間位元及上部位元。臨限窗將藉由至少15個分界能階而被分界成十六個相異區帶。
由於記憶體之有限臨限窗係分割成較多區域,因此用於程式化及讀取之解析度將必須變得更精細。因此,與具有較少經分割區帶之一記憶體之錯誤界限相比,一多狀態或MLC記憶體必須以一較窄錯誤界限操作。換言之,錯誤率隨儲存於每一胞中之位元之數目而增加。一般而言,錯誤率隨臨限窗中之經分割區帶之數目而增加。
耐久性係關於快閃記憶體之另一問題,其限制快閃記憶體之使用壽命。隨著每一程式化/抹除循環,某些穿隧電子陷獲於浮動閘極與通道區域之間的電介質中,此導致臨限窗變窄。此將最終導致程式化及讀取錯誤。由於MLC記憶體具有較低錯誤容限,因此與SLC記憶體相比其亦具有較少耐久性。
圖8圖解說明適合於實踐本發明之一實體記憶體架構之一實例。記憶體胞陣列200(參見圖1)係分割成一第一部分410及一第二部分420。第二部分420具有組態為高密度儲存區之記憶體胞,其中每一胞儲存多個資料位元。第一部分410具有組態為較低密度儲存區之記憶體胞,其中每一胞儲存比第二部分之彼位元數目少的位元數目。舉例而
言,第一部分410中之記憶體胞係組態為SLC記憶體以各自儲存1個資料位元。第二部分420中之記憶體胞係組態為MLC記憶體以各自儲存2個資料位元。每胞儲存1個資料位元之第一部分亦將稱為D1且每胞儲存2個資料位元之第二部分亦將稱為D2。鑒於先前論述,與第二部分之速度、錯誤界限及耐久性相比,第一部分將以較大速度、一寬得多的錯誤界限及較大耐久性操作。
分割成兩個部分(諸如D1(1位元)部分及D3(3位元)部分)之一記憶體係揭示於2009年12月18日提出申請之美國申請案US 12/642,584中,該申請案之全部揭示內容以引用之方式併入本文中。
圖9示意性地圖解說明一個2層資料儲存系統中之SLC部分與MLC部分之間的資料路徑。第一層係用於傳入資料之主要輸入緩衝器且對一NAND記憶體之SLC部分410操作,與MLC部分420相比,SLC部分410係較快/耐久性較高/成本較高記憶體。第二層係主要資料歸檔儲存區且對係較慢/耐久性較低/成本較低記憶體之MLC部分操作。
標記於圖9中的此系統中之主要操作係如下:
1.主機資料或控制資料寫入至SLC部分
2.資料在SLC部分內複製以部分地回收過時SLC區塊,亦稱為「壓縮」
3.主機資料直接寫入至通常用於長順序寫入之MLC部分
4.資料自SLC移動至MLC部分,亦稱為「摺疊」
5.資料在MLC部分內複製以用於MLC區塊回收,亦稱為
「MLC壓縮」
可藉助主要係關於不同定址方案之使用及可定址資料單元粒度之諸多其他額外特徵來建立上文結構。
圖10更詳細地圖解說明圖9中所展示之SLC層。SLC層之典型結構(參見上文圖式)使用多個區塊,通常一個寫入/更新區塊及用於在區塊回收期間複製之資料之一個重新定位/壓縮區塊(或者,可將其組合)。通常應用以下主要規則:
1.區塊係根據程式化其之次序連結成鏈。
2.最近最少程式化之區塊係選擇為SLC移動/摺疊區塊,資料可自該SLC移動/摺疊區塊移動/摺疊至MLC寫入區塊。
3.具有最低有效資料磁碟區之區塊係選擇為SLC回收區塊,將有效資料自該SLC回收區塊重新定位至連接至該鏈之標頭之SLC重新定位區塊。
4.一SLC移動區塊或SLC重新定位區塊係在一資料移動/摺疊或區塊回收操作完成之後旋即添加至SLC空區塊清單。
除此以外,若存在更多類型之記憶體(例如RAM或第三種類型之NVM),則兩層結構實際上可係兩個以上層。
並且,在每一「記憶體」層中,可存在具有不同資料處置之多個子系統,該多個子系統亦稱為「層」。
基於NAND記憶體之先前技術系統通常具有以下儲存階層。SLC分割區使SLC區塊實施一個二進制快取區及二進
制更新區塊。
二進制快取區係用於某些或所有資料。資料係以1個或8個(4 KB)區段之精細粒度儲存於二進制快取區中。通常,該二進制快取區用於快取一頁之小且隨機片段。接著,將資料收回至二進制更新區塊。
二進制更新區塊以邏輯群組為單元映射大多數資料。每一邏輯群組具有對應於SLC區塊之一大小。因此,一個二進制區塊可儲存多達一個邏輯群組,其中頁係按邏輯位址之順序次序。在基於叢集之系統中不存在此層,此乃因在彼等系統中,所有二進制區塊皆用作二進制快取區。
MLC分割區具有用於以高於SLC區塊之密度儲存資料之MLC區塊。通常,資料係逐MLC區塊地儲存。因此,在具有D1及D3分割區之一記憶體中,將3個SLC區塊摺疊(經重新定位)為1個MLC區塊。
資料自二進制快取區至SLC更新區塊及MLC區塊之收回係基於最近最少寫入基礎。所有系統中之問題係大多數資料(當在二進制快取區中時被更新之資料除外)首先進入SLC區塊以使得SLC區塊幾乎作為一FIFO緩衝器工作。接著,所有資料進入MLC區塊。在SLC部分及MLC部分兩者中,可由於填補(以形成一全定址單元)或為了壓縮區塊並回收過時空間而多次複製資料。應力因子(亦稱為寫入放大)係高的且適用於SLC區塊分割區及MLC區塊分割區兩者。SLC中之資料亦分配於MLC中(雙重分配),此由於雙重預算而增加系統中之所需區塊數目。
一般而言,在先前技術系統中,主要方法係使用採取高端處理及大RAM要求之較精細粒度單位,此添加額外成本及電力消耗。
並且,極小單元(諸如4 KB)產生資料經分段、分散在區塊之間以使得在讀取及資料複製(由於更新)期間不能達成最大並行性之一問題。並且,作為小更新之複製量增加可觸發一(或多個)整體區塊之複製。
本發明具有一種解決上文問題之架構,該等問題特定而言係:增加寫入放大之SLC區塊之非期望FIFO緩衝器行為;減少並行性之資料片段儲存;需要大RAM及高電力之高強度處理;低效且浪費之SLC區塊中之資料之複製容量預算。
根據本發明之一項態樣,一種非揮發性記憶體具備一區塊管理系統,在該區塊管理系統中來自一主機之一有序邏輯位址範圍係分割成其中一區塊儲存多個資料邏輯群組之邏輯群組。每一邏輯群組係為具有自至少與一主機寫入之大小相同之數量級至高於該主機寫入之大小之一數量級之一範圍的一大小,但至少係為一頁或後設頁之一大小,該頁或後設頁係由記憶體支援之最大並行性讀取或寫入之一單元。藉由使邏輯群組之大小與抹除區塊之大小無關且係為可與主機寫入之大小及本質較相容之一大小,該邏輯群
組提供簡化定址及節省有限系統資源而不觸發影響效能之過度重寫之益處。
較小大小之邏輯群組之實施方案具有不觸發過度重寫同時允許使用一較小位址表之益處。此具有位址表係為充分緊湊大小以在不需要高成本外部RAM之情況下在整合於一控制器晶片上之RAM中快取之益處。
圖11圖解說明根據本發明之區塊管理系統之記憶體組織中之一頁。基本上,一主機寫入藉由其邏輯位址LBA(邏輯區塊位址)識別之資料單元。記憶體對資料之一邏輯頁62並行地操作。頁62可固持若干個LBA之資料。舉例而言,每一頁固持來自M個LBA單元,且一頁(頁(LP0))可填充有來自LBA0至LBAM-1之資料之資料。取決於記憶體架構,一頁係可由一記憶體平面中之一對應讀取/寫入電路群組伺服之至少一胞/資料群組。在較佳實施例中,頁係如與圖5一起闡述之一後設頁以達成最大並行性。舉例而言,後設頁係為32 kB至64 kB之大小。在4 kB之一主機寫入叢集之情況下,一後設頁可固持8個至16個叢集。
圖12圖解說明區塊管理系統中之一邏輯群組。為了簡化定址,替代獨立追蹤每一頁62,將一頁群組作為一個單元來追蹤。基本上,主機系統之經邏輯定址空間係分割成邏輯群組350,每一群組係由一LBA範圍或若干邏輯頁號定義之邏輯位址空間之一子組。舉例而言,邏輯群組LG0係由具有邏輯頁號LP0至LPN-1之N個邏輯頁構成,且下一邏輯群組LG1係由具有邏輯頁號LPN至LP2N-1之N個邏輯頁構
成等。
一邏輯群組350係在其中其邏輯頁號呈順序次序以使得該邏輯群組中之該等頁係自索引的之情況下儲存於記憶體中。以此方式,該邏輯群組中之頁62之定址係藉由僅按邏輯群組層級而非頁層級來記錄。然而,隨著一邏輯群組中之頁之更新,需要執行廢料收集以回收由無效頁佔據之空間。在先前技術系統中,邏輯群組具有與一抹除區塊之大小一致之一大小。以此方式,對一抹除區塊之廢料收集僅對邏輯群組之有效資料進行殘料回收且將整個邏輯群組重寫至一新區塊。
圖13A圖解說明容納來自多個邏輯群組之資料之一抹除區塊。不同於先前技術系統,邏輯群組350之大小係與抹除區塊之大小無關且並非與抹除區塊相同的大小。邏輯群組350經減小大小以與主機寫入之大小及本質更相容。SLC部分410中之一區塊310(其較佳係一後設區塊)能夠容納P數目個邏輯群組之資料。舉例而言,SLC區塊儲存以下邏輯群組:LG0、LG1、LG2、LG1'、...、等,其中LG1'係LG1之一經更新版本。
藉由使用邏輯群組,在不需要一昂貴的晶片外RAM來與記憶體控制器一起工作之情況下,定址係不太密集的的且對系統資源需求較少。
圖13B係圖解說明以小邏輯群組的形式將主機寫入儲存至非揮發性記憶體之方案之一流程圖。
然而,由於抹除區塊大小係隨著每一世代之快閃記憶體
而增加,因此使一邏輯群組與一區塊對準之先前技術方法導致對短且隨機之主機寫入而言並非最佳之一系統。此類型之主機寫入樣式在桌上型電腦及膝上型電腦以及智慧行動裝置之應用中較普遍。由頻率更新及非順序寫入表徵之此等資料樣式往往致使記憶體之更頻繁重寫以維持邏輯群組順序次序。換言之,先前邏輯群組大小致使大量寫入放大且使效能降級且過早地損耗記憶體。
因此,將每一邏輯群組之大小減小至自至少與一主機寫入單元之大小相同之數量級至高於該主機寫入單元之大小之一數量級之一範圍但至少係一後設頁之一大小,該後設頁係由記憶體支援之最大並行性讀取或寫入之一單元。此將針對頻繁更新或非順序之資料樣式最佳化且不觸發過度重寫。舉例而言,一邏輯群組可具有4個後設頁。若後設頁固持8個至16個主機叢集,則一邏輯群組可固持32個至64個叢集。同時,出於消除對定址資源之需求以使得控制器晶片不必與外部RAM一起操作之目的,可作為一折衷明確地增加邏輯群組大小。
圖13B係圖解說明以小邏輯群組的形式將主機寫入儲存至非揮發性記憶體之方案之一流程圖。
步驟500:將非揮發性記憶體組織成可作為一單元抹除之記憶體胞區塊,每一區塊用於儲存複數個頁,每一頁用於並行存取預定數目個資料邏輯單元,每一邏輯單元具有由主機指派之一邏輯位址。
步驟510:藉由將主機之一邏輯位址空間分割成不重疊
的有序邏輯位址子範圍來定義複數個邏輯群組,每一邏輯群組具有由至少一個頁之一最小大小與將至少兩個邏輯群組湊配成一區塊之一最大大小定界之一預定大小。
步驟520:緩衝個別主機寫入。
步驟530:將個別主機逐邏輯群組地寫入暫存。
步驟540:將任何經暫存邏輯群組儲存至非揮發性記憶體中。
步驟550:完成。
在一較佳實施方案中,記憶體係分割成SLC部分與MLC部分且包括第一、第二及第三操作層及功能層。第一及第二層在SLC部分中操作。第三層在MLC部分中操作。第一層係用於最初地儲存來自一主機之寫入資料且在將每一邏輯群組重新定位至第二層或第三層中之前將資料逐邏輯群組地暫存。第二層提供在用於按邏輯群組層級儲存主機資料之一SLC區塊集區中之作用儲存區。當該集區已滿時,藉由將具有最少可能重寫之邏輯群組收回至以一較高密度進行儲存之第三層來讓出更多空間。
以此方式,將一作用組之使用者資料優先地維持於較快SLC記憶體中,且僅當SLC記憶體中之容量耗盡時才將更適合於儲存於MLC記憶體中之選定邏輯群組收回至MLC記憶體。
圖14圖解說明根據本發明用於管理跨越不同記憶體分割區之區塊及頁之一系統架構。記憶體陣列中之區塊及頁係由一區塊管理系統管理,該區塊管理系統作為韌體60駐存
於記憶體控制器102中(參見圖1)。
記憶體係分割成一SLC部分410與一MLC部分420。該區塊管理系統實施一第一片段快取層412、一第二邏輯群組分類層414及一第三冷邏輯群組歸檔層422。此等層皆係操作層及功能層。前兩個層412及414在SLC部分410中操作且第三層421在MLC部分420中操作。
第一片段快取層412對SLC部分410之二進制區塊310操作,且用於最初地儲存來自一主機之資料且在將每一邏輯群組重新定位至MLC部分420中之前將後設頁逐邏輯群組地暫存。該暫存係將資料搜集至整個邏輯群組中。該搜集可係來自一主機寫入之片段或係藉由結合已儲存於非揮發性記憶體中之現有資料來填補。SLC部分410包含兩個結構:一常駐二進制區帶402及一個二進制快取區404。二進制快取區404係具有精細定址單元(區段)的主要用於短片段之儲存區,其中可將資料移動/收回至SLC區塊310或MLC區塊320。常駐二進制區帶402係保留給具有短更新之已知頻繁更新區,通常僅係NTFS或其他檔案系統表資料。
第二邏輯群組分類層414將資料逐邏輯群組地儲存於一SLC更新/儲存區塊310集區中。至此集區之寫入來自主機寫入或來自由於廢料收集所致之重寫。若該主機資料主要係短片段,則在將其自第一層412收回至第二層414之前首先快取於該第一層中。若該主機資料係不太分段的(中等大小),其中可具有完整邏輯群組,則將其直接寫入至第二層414。
基本上,第二層414提供其中出現經分段及中等大小主機寫入之一快速SLC儲存區。不同於其中不存在第二層且第一層412基本上充當一FIFO以在資料可存取之前將資料傳輸至MLC部分420中之第三層422之先前系統,此第二層414將一工作組之使用者資料維持於快速SLC部分410中。
因此,隨著填充SLC更新/儲存區塊集區,一使用者將經歷高效能寫入。僅當該集區已滿時,系統才將某些邏輯群組移動讓位至第三層(MLC)以讓出空間。
組織成快閃可抹除區塊之一非揮發性記憶體根據指派給每一資料單元之一溫度來將資料單元分類,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性。該等資料單元來自一主機寫入或來自一重新定位操作。該等資料經分類以用於儲存至諸如SLC與MLC之不同儲存部分中,或取決於其溫度而儲存至不同操作操作串流中。一般而言,溫度分類技術可在SLC部分以及MLC部分中操作。此允許以適合於類似溫度之資料之溫度之一方式處理資料以最小化重寫。一資料單元之實例包含一邏輯群組及一區塊。
在一較佳實施方案中,記憶體係分割成SLC部分與MLC部分且包括第一、第二及第三操作層及功能層。第一及第二層在SLC部分中操作。第三層在MLC部分中操作。第一層係用於最初地儲存來自一主機之寫入資料且在將每一邏輯群組重新定位至第二層或第三層中之前將資料逐邏輯群
組地暫存。第二層提供在用於按邏輯群組層級儲存主機資料之一SLC區塊集區中之作用儲存區。當該集區已滿時,藉由將具有最少可能重寫之邏輯群組收回至以一較高密度進行儲存之第三層來讓出更多空間。
第二層中之每一邏輯群組係按其由於廢料收集所致之未來重寫之可能來評等。將來自一有限範圍之一溫度指派給每一邏輯群組,其中最冷邏輯群組首先被收回至第三層。評等準則包含邏輯群組正經歷之更新之速率及邏輯群組介於更新之間的時間長度。自第二記憶體層重新定位至該第三記憶體層之邏輯群組將在第三記憶體層處存取。在該第二記憶體層處剩餘之邏輯群組將在該第二記憶體層處直接存取。
圖15更詳細地圖解說明圖14中所展示之第二層。一個二進制區塊310集區係提供用於儲存邏輯群組。由於每一區塊310被填充且其中之邏輯群組中之某些邏輯群組被更新,因此將需要對該區塊進行廢料收集。將該區塊中之有效邏輯群組重新定位至一新區塊。根據該集區中之邏輯群組之「溫度」將該等邏輯群組分類。
根據邏輯群組之「溫度」選擇欲移動至第三層422之邏輯群組。第二層414亦提供用於按邏輯群組需要重寫之可能性來將其評等及分類之設備。當一邏輯群組含有頻繁更新且來自短且隨機之主機寫入之資料時將其視為「熱」,此乃因該邏輯群組將由於較多廢料收集而需要較多重寫。相反地,當一邏輯群組含有很少更新且係長順序主機寫入
之資料時將其視為「冷」,此乃因該邏輯群組將保持需要較少重寫或不需要重寫之相對靜態。一個「溫度」評等準則係邏輯群組正經歷之更新速率。
因此,每當第二層414中之SLC區塊集區已滿時,即將具有最冷溫度之邏輯群組優先地收回至第三層422中之MLC集區。
自第二層414重新定位至第三層422之邏輯群組將在第三層422處存取。在第二層414處剩餘之邏輯群組將在第二層414處繼續存取。
當第一層412及第二層414在一SLC記憶體部分410中操作且第三層422在MLC部分420中操作時,積極更新之邏輯群組與不太積極更新之邏輯群組之分類及區分係重要的。藉由使SLC記憶體中之作用邏輯群組保持為一工作組且僅將非作用邏輯群組移動至MLC記憶體,每當存在對邏輯群組之更新時該邏輯群組之重寫在MLC記憶體中最小化。此又最小化一邏輯群組將經受之重寫之總數目。
第三層422以一較高密度(MLC)儲存自第二層收回之最冷邏輯群組。此過程亦稱為將SLC資料「摺疊」為MLC資料。
熱邏輯群組與冷邏輯群組之分類及將較熱邏輯群組留存於第二層中允許使用者在較快且較耐久之SLC記憶體中存取此等可能效能受影響之資料。
儘管已關於按邏輯群組層級進行分類闡述了分類方案,但應理解,本發明同等地適用於按其他資料單元層級進行
分類,諸如按片段層級進行分類或按區塊層級進行分類。
根據先前技術系統,資料自二進制快取區至SLC更新區塊及MLC區塊之收回係基於在區塊層級上應用之最近最少寫入基礎。此意指其實際上係基於最近最少程式化區塊而無論多久前主機曾程式化該資料之事實如何(該區塊可由於壓縮而最近經程式化但含有舊且冷資料)。
並且,收回經常基於(尤其在二進制快取區中)操作效率準則,其中集中於增加個別操作之效應,例如邏輯群組收回產生最多空空間。
所有上述情形中之問題係其未計及主機更新樣式,諸如更新之頻率及甚至資料係多久前寫入。因此,可將可能很快被存取之資料歸檔。
美國專利7633799揭示不同資料存取樣式準則之使用,諸如LRU、寫入及讀取命令之命中率。但先前技術未教示使其在一資料儲存系統中起作用之特定實踐方法,諸如使選擇高效且同時避免過度處理、RAM及控制更新要求。
本發明中之方法旨在最小化寫入放大。寫入放大係由系統中之別處之一未來寫入引起。寫入放大係由混合於一實體區塊中之作用(熱)資料與非作用(冷)資料之共置(co-location)引起。每當在一區塊中存在熱資料與冷資料之一混合時,該區塊中之資料將最終需要被重新定位或重寫至另一區塊。隨著區塊變得較大,使作用區域與非作用區域保持共置變得更具挑戰。
本發明提供對以偵測最佳資料以收回/歸檔至下一儲存
層之一方式將資料分類之一批實踐方法。該等方法主要使用已知原理,具體而言其皆係基於分析存取樣式及歷史。關注點在於使資料分類可行。
主要方法包含:
1.藉由將一「溫度」值指派給個別片段來將可定址資料單元(邏輯群組)之相對作用性評等。可將該溫度值與資料本身一起儲存或將該溫度值儲存於一單獨表中或將該溫度值連同定址項目一起儲存。該等溫度值本身可係基於:a)資料片段/單元之最近最少寫入(由主機)準則;b)最近命中(存取,例如,讀取)率;c)資料片段長度(資料越短,其越可能很快被命中);d)作為取資料時間(data age)之一指示符之資料之區塊壓縮複本之數目;e)a)及b)及c)之組合,其產生最佳結果。
2.提供一溫度值「減小」。舉例而言,當隨時間量測時,命中率可下降,此轉譯為溫度之一降低。此允許定義一有限可用溫度範圍且使方法之使用可行。藉由以下方法來降低溫度:
a)在一有限動態溫度範圍(例如在3位元溫度情形中,0=極冷、7=極熱)內工作,使溫度偏差至不超出極端冷情形之0值或使溫度飽和至不超出極端熱情形下之7。換言之,在某一點後所有極端情形皆具有相同值0或7。
b)均衡片段/單元之溫度值之值以避免值之極端飽和及準確性喪失。換言之,在一最大有效區域中使用有限動態範
圍。
3.使用區塊層級溫度準則,其中在一區塊層級上而非在一片段或邏輯群組層級上追蹤「溫度」。兩個主要情形包含:a)明確地追蹤「溫度」;b)藉由按取資料時間或按熱度/冷度將區塊清單中之區塊分類來進行隱式追蹤。
在一項實施例中,溫度分類係按邏輯群組層級。最冷邏輯群組將係自第二層收回至第三層之第一邏輯群組。欲收回之一邏輯群組之準則包含以下各項。
1.時間戳記(TS)。將溫度判定為邏輯群組之一時間戳記值。一時間戳記指示最後寫入邏輯群組之時間。最後寫入邏輯群組之時間越長,溫度越冷。實際上,藉由使用一有限TS範圍,超出一最大TS值之極舊邏輯群組將皆被視為具有同一最冷溫度。
TS之優點係其對存取樣式改變具有最快回應。缺點係其不提供先前歷史。
使用時間戳記之一實例係針對第二層之二進制區塊集區中之每一邏輯群組提供一11位元時間戳記。當將一邏輯群組寫入至該集區時,一個選項係指派一初始時間戳記值0(偏差=0)。當寫入之資料係長順序資料時,此可係適合的。另一選項係具有一值X(偏差=X)。此可適合於未知類型之資料且可將X設定至時間戳記範圍之中間。每當存在一邏輯群組至該集區中之一寫入時,將正寫入之邏輯群組
之時間戳記設定為初始值且將該集區中之現有邏輯群組之時間戳記遞增1。一邏輯群組之時間戳記在壓縮期間不改變。以此方式,時間戳記提供對最近如何寫入該集區中之邏輯群組中之每一者之一相對量測。
2.基本寫入計數。溫度係判定為邏輯群組之一寫入計數。一寫入計數指示邏輯群組寫入之次數或更新之頻率。舉例而言,在邏輯群組之一新更新處,寫入計數遞增。寫入計數之優點係其保持歷史資訊。缺點係其可使舊的熱邏輯群組「黏性」。
3.隨時間戳記及寫入計數而變化之溫度。當第一次寫入邏輯群組時,初始溫度值X係介於0與最大值之間。該值在再次寫入該邏輯群組之情況下遞增(如在寫入計數中),因此該方法偏向於最近較多次寫入之邏輯群組。該值隨著所有邏輯群組之平均值升高1(作為時間戳記之適當MSB)而遞減。
指派隨時間戳記及寫入計數而變化之一3位元溫度之一實例係如下:當寫入邏輯群組時,其具有介於0與最大值(7)之間的一溫度X。若再次寫入該邏輯群組,則該溫度遞增1(如在一寫入計數中)。該溫度在以下情況下遞減:1.當所有邏輯群組之平均溫度升高1時,此乃因平均溫度可在頂部上飽和。此用於均衡群體;2.當不存在足夠邏輯群組LGT=0用於收回時;3.當平均值將高於一臨限值(例如最大值/2)時;
4.均衡0與最大值之間的比率。
每當一邏輯群組由主機更新且寫入至二進制快取區或更新區塊中之一者時(在同一更新區塊中之先前寫入邏輯群組完成時),指派以下LGT值:
-將最低LGT值0指派給寫入至順序串流之任一邏輯群組。
-若邏輯群組係在作用二進制集(由主索引定址)中(在不具有位址跳躍之情況下藉由短寫入之背對背順序寫入除外),則將LGT值遞增1或設定為最高冷LGT=3(以最高者為準)。LGT值不可超過最高冷值7。
-若邏輯群組不在作用二進制集中(並未由主索引定址),則指派最高冷LGT=3之初始LGT值。
當將一邏輯群組寫入至重新定位區塊中之一者時,將最低冷=0之預設LGT值指派給該邏輯群組。
當將一邏輯群組自二進制快取區收回至重新定位區塊中之一者時,將最高冷=3之LGT值指派給該邏輯群組。
可僅將具有LGT=0之邏輯群組收回及摺疊至MLC區塊。若不存在待摺疊之足夠邏輯群組,則將所有LGT遞減。
圖16圖解說明針對「熱」邏輯群組情形之邏輯群組之「溫度」分類。LG溫度隨更新頻率與年齡之一組合而變化。作用二進制工作集(ABWS)係第二層中之SLC區塊之集區。其表示熱邏輯群組及區塊之短清單,其中追蹤LGT(邏輯群組溫度)值。
分類係基於邏輯群組之LGT(邏輯群組溫度)值而完成。
LGT值係儲存用於當前由主索引定址之有限數目個邏輯群組,從而形成作用二進制集。主索引係列示第二層之SLC集區中之所有邏輯群組之一表。每一LGT在大小上係3個位元且具有自0(最冷)至7(最熱)之一範圍。
所有串流中之所有邏輯群組皆經歷分類,但僅將寫入至作用二進制集(當前由主索引定址之彼等邏輯群組)中之二進制區塊(更新區塊、重新定位區塊或儲存於關閉區塊中)之邏輯群組在既定時間分類且將LGT值儲存於主索引中。
將經由GAT(非作用二進制集及MLC區塊中之二進制區塊)定址之邏輯群組等同地視為「極冷」,且預設地視為具有最低LGT值0。GAT係記錄邏輯群組與區塊之間的映射之一查找表。
最初,更新駐存於一MLC區塊中之一既定邏輯群組。此邏輯群組之溫度因此自零升高。由於不清楚此邏輯群組在不遠的將來將變得多活躍,因此將具有LGT=3之一中間值溫度指派給該邏輯群組。隨著其發生,很快將該邏輯群組再更新5次。在每一更新命中之情況下,將溫度LGT遞增1,此使其成為LGT=7之一最大值。此後,不存在對該邏輯群組之進一步更新且因此LGT保持在LGT=7處。此時,證明二進制集區已滿且將具有LGT=0之一組邏輯群組收回(摺疊)至MLC層。該組邏輯群組之離去使該集區之平均溫度升高且因此該SLC集區中之所有剩餘邏輯群組之溫度遞減1,因此既定邏輯群組現在具有LGT=6。不久後,在不更新該既定邏輯群組之情況下,存在將使該既定邏輯群組
之LGT遞減至5之另一摺疊。此時,該既定邏輯群組具有一高的溫度且將繼續「生存」於該SLC集區中。
圖17圖解說明針對「冷」邏輯群組情形之邏輯群組之「溫度」分類。在此情形中,駐存於第三MLC層中之一邏輯群組經更新且返回至第二SLC層中之二進制集區中。在設定於二進制集區中而無進一步更新之後,溫度冷卻回至LGT=0。當該集區已滿且需要收回某些邏輯群組時,將該既定邏輯群組摺疊返回至該第三MLC層。
在另一實施例中,可按區塊層級執行分類。此係在該集區中存在太多邏輯群組以致於難以個別地追蹤其溫度之情況下之一替代方法。相反,按區塊層級追蹤溫度,其中將一區塊中之所有邏輯群組視為仿佛其具有相同溫度。在此情形中,分類選項包含以下各項:
1.針對同一二進制區塊中之邏輯群組之相同時間戳記(明確區塊層級TS)-以模型化
-每一二進制區塊具有針對該區塊寫入之所有邏輯群組相同之TS
-按區塊將熱資料與冷資料分類
-TS=當前區塊TS。當前區塊TS在每一新資料更新區塊關閉之後遞增。
-在壓縮期間,基於源區塊中之TS來估計TS
-舉例而言,時間戳記TS係8位元(經壓縮TS=第一壓縮源之最大TS)或可係6位元(追蹤壓縮區塊之平均TS)。
-若可使冷資料偏差(TS=當前TS-偏差),但並非在底部
處,則選項係:偏差=0或偏差=X。
2.熱-冷資料二進制區塊分類(區塊層級TS之隱式實施)-無需模型化
-按時間分配次序將每一二進制區塊列示於UB資訊中以用於新資料更新區塊。等效於TS對於針對該區塊寫入之所有邏輯群組相同。
-在壓縮期間,根據源區塊位置大致選擇新區塊在清單中之位置。換言之,該新區塊具有與源區塊大致相同之溫度。
-在壓縮期間,基於源區塊中之TS來估計TS
-在清單之末端處之該區塊之邏輯群組被收回
-優點係其不具有額外記錄、溢出、增量等。並且其極有益於其中不存在單個表記錄而是存在不可能全部一起更新之多個BCI(二進制快取區索引)之二進制快取區。缺點係其需要資料複本來將區塊記錄重新分類。
上文所闡述之原理適用於具有兩個或兩個以上資料儲存層之一系統,該系統可係非揮發性的或混合的。相同規則可適用於該等層中之一者中之一特定類型之儲存區,例如二進制快取區子系統或更新區塊。
此解決方案之優點係最小化了系統效能影響且不存在控制器RAM空間之增加。
在另一實施例中,資料單元係根據其溫度而分類成不同區塊串流,以使得每一操作串流中之區塊僅涉及類似溫度
之資料。目標係儘快且一有機會就分離熱資料與冷資料。熱資料與冷資料具有不同過時性及廢料收集/重新定位排程。舉例而言,熱資料將較快變得過時且需要較頻繁的廢料收集/重寫。當冷資料未與熱資料混合時,其將不引發不必要之重寫。最可能地,熱資料本身將過時而不觸發冷資料自一個區塊至另一區塊之重新定位,且冷區塊中之冷資料將在不具有由於熱資料所致之壓縮/重新定位之情況下留在冷區塊處。
一項實例係將進入第二層中之二進制區塊集區之主機寫入盡可能快地分類成不同區塊串流。另一實例係來自一重新定位操作之資料單元。
圖18圖解說明如何將不同類型之寫入以互動方式根據其所感知溫度分類成區塊串流。該分類適用於具有傳入資料之第二層處之源且亦適用於藉由壓縮而移動以分離熱區塊/冷區塊之資料。
一般而言,在一記憶體分割區內,可存在由如所展示之不同源產生之不同類型之資料串流。不同類型之資料串流中之每一者中之資料寫入具有其自身的更新頻率及隨機性,其可藉由較早闡述之一溫度而分類。
在二進制區塊集區中,將區塊指定為用於儲存具有LGT>3之邏輯群組之一「熱」區塊或具有LGT=<3之一「冷」區塊。在觀察到寫入樣式之後即時判定溫度。舉例而言,當第一次將一邏輯群組寫入至二進制區塊集區中時,其溫度係未知的且因此被指派LGT=3之一中性溫度
(介於0與7之間,如之前的3位元實例)。將該邏輯群組寫入至指定為冷之一區塊。若下一寫入係該邏輯群組之一更新,則認為該串流係熱的且將經更新之邏輯群組寫入至用於儲存熱邏輯群組之一不同二進制區塊。
另一方面,若連續寫入係順序的,則認為該串流係冷的且將連續邏輯群組全部寫入至含有第一寫入之冷二進制區塊。
若連續寫入係順序的且該趨勢繼續一預定週期,則該串流被認為係一系列長順序寫入且經引導以直接或經由二進制區塊集區摺疊至MLC部分。在直接情形中,串流一經識別出便處於一旁路(by-pass)模式中。孤立於一冷區塊或甚至熱區塊中之順序串流之標頭最終將重新定位。
上文所闡述之不同資料串流可由一使用者創建且因此來自一使用者邏輯分割區。該分割區中之寫入串流中之某些寫入串流亦可根據重新定位操作而創建。
一般而言,可維持不同邏輯分割區,諸如使用者分割區、OS(作業系統)分割區及「黏性」二進制分割區,該等分割區各自具有其自身之不同類型之資料串流之混合,某些分割區具有預定溫度。舉例而言,在OS分割區中,已知系統資料係經分段且快速改變的,因此甚至不需要判定溫度。其僅被指派一熱溫度且儲存於熱區塊中。此同樣適用於其中意欲使其中之資料留在二進制SLC部分中之「黏性」分割區。因此其資料串流總是「熱」的且儲存於熱區
塊中。
按LBA資料分離成分割區-意指一區塊不具有來自不同分割區之資料。假設不同分割區中之資料係由不同應用程式(例如一個係OS且另一個係使用者)寫入且彼等寫入通常不交錯。例如,OS可寫入諸多命令,接著使用者寫入諸多命令,但不存在大量交錯。藉由將來自不同分割區之寫入分離成不同區塊,將減少由OS寫入觸發之(例如)使用者資料之壓縮/重新定位,且反之亦然。
區塊及邏輯群組皆經受在無分割區邊界之情況下按LGT分類。其意指不必預算每分割區若干個關閉區塊,且將該等區塊按需分佈。舉例而言,若OS分割區係作用的且使用者分割區係非作用的,則可將多達所有關閉更新區塊分配給OS分割區,此乃因所有使用者分割區之邏輯群組將被分類為冷狀態且摺疊至MLC部分。
可將來自一串流之寫入儲存至多個區塊中。每當將一第一邏輯群組部分地寫入一第一區塊中且後續接著一不同第二邏輯群組之一寫入時,將該第二邏輯群組寫入至一第二區塊中以希望後續寫入將補充不完整資料以完成該第一邏輯群組。此將減少片段儲存。出於此目的,可同期地開放多達預定數目個更新區塊。除此之外,亦藉由填補不完整資料來使該不完整邏輯群組完整。
圖19係圖解說明用於記憶體儲存及操作之溫度分類之方案之一流程圖。
步驟600:將非揮發性記憶體組織成可一起抹除之記憶體胞區塊。
步驟610:藉由指派一溫度來將每一資料單元評等,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性。
步驟620:以取決於資料單元之溫度之一方式對資料單元執行一操作。
步驟630:完成。
圖20係圖解說明按邏輯群組層級之溫度分類之方案之一流程圖。
步驟700:將非揮發性記憶體組織成可一起抹除之記憶體胞區塊。
步驟710:將非揮發性記憶體分割成一SLC部分與一MLC部分,其中該SLC部分中之記憶體胞各自儲存一個資料位元且該MLC部分中之記憶體胞各自儲存一個以上資料位元。
步驟720:藉由將主機之一邏輯位址空間分割成不重疊的有序邏輯位址子範圍來提供複數個邏輯群組,該等邏輯群組具有多個邏輯群組湊配成一區塊之一大小。
步驟730:將資料逐邏輯群組地儲存於SLC部分之每一區塊中。
步驟740:按一溫度來將儲存於SLC部分中之每一邏輯群組評等,其中一較高溫度指示該邏輯群組將經受由於廢料收集操作所致的後續重寫之一較高可能性。
步驟750:回應於空出SLC部分中之空間之一命令,將具有最冷溫度之一邏輯群組優先地自SLC部分重新定位至MLC部分。
步驟760:完成。
圖21係圖解說明按區塊層級之溫度分類之方案之一流程圖。
步驟800:將非揮發性記憶體組織成可一起抹除之記憶體胞區塊。
步驟810:將非揮發性記憶體分割成一SLC部分與一MLC部分,其中該SLC部分中之記憶體胞各自儲存一個資料位元且該MLC部分中之記憶體胞各自儲存一個以上資料位元。
步驟820:按一溫度來將SLC部分中之每一區塊評等,其中一較高溫度指示該區塊將經受由於廢料收集操作所致的後續重寫之一較高可能性。
步驟830:回應於空出SLC部分中之空間之一命令,將具有最冷溫度之一區塊中之資料優先地自SLC部分重新定位至MLC部分。
步驟840:完成。
雖然已關於某些實施例闡述了本發明之各項態樣,但應理解本發明有權在隨附申請專利範圍之完整範疇內受到保護。
10‧‧‧主機/胞/記憶體電晶體
34‧‧‧源極線
36‧‧‧位元線
42‧‧‧字線
44‧‧‧選擇線
50‧‧‧NAND串
60‧‧‧韌體/頁
60-4‧‧‧後設頁
62‧‧‧錯誤校正碼處理器/邏輯頁/頁/獨立頁
80‧‧‧主機
90‧‧‧記憶體裝置
100‧‧‧記憶體晶片
102‧‧‧記憶體控制器/控制器
110‧‧‧晶片上控制電路/控制電路
111‧‧‧控制及位址匯流排
112‧‧‧狀態機
200‧‧‧記憶體陣列/胞陣列/記憶體胞陣列
204‧‧‧周邊電路
210‧‧‧感測放大器
220‧‧‧資料鎖存器
231‧‧‧資料匯流排/資料輸入/輸出匯流排
300‧‧‧可定址抹除單元/抹除單元/區塊
300-4‧‧‧後設區塊
310‧‧‧區塊/二進制區塊/單階胞區塊/單階胞更
新/儲存區塊
320‧‧‧多階胞區塊
350‧‧‧邏輯群組
402‧‧‧常駐二進制區帶
404‧‧‧二進制快取區
410‧‧‧第一部分/單階胞部分/單階胞記憶體部分/快速單階胞部分
412‧‧‧第一片段快取層/第一層
414‧‧‧第二邏輯群組分類層/第二層
420‧‧‧第二部分/多階胞部分
422‧‧‧第三冷邏輯群組歸檔層/第三層
BL0至BLx‧‧‧位元線
LBA0至LBAM-1‧‧‧邏輯區塊地址
LG0‧‧‧邏輯群組
LG1‧‧‧邏輯群組
LG1'‧‧‧邏輯群組/邏輯群組之一經更新版本
LG2‧‧‧邏輯群組
LP0‧‧‧頁/邏輯頁
LP2N-1‧‧‧邏輯頁
LPN‧‧‧邏輯頁
LPN-1‧‧‧邏輯頁
MLC‧‧‧多階胞
rV1‧‧‧讀取分界能階
rV7‧‧‧讀取分界能階
S1‧‧‧選擇電晶體/源極選擇電晶體
S2‧‧‧選擇電晶體/汲極選擇電晶體
SGD‧‧‧選擇線
SGS‧‧‧選擇線
SLC‧‧‧單階胞
vV1‧‧‧驗證分界能階
vV7‧‧‧驗證分界能階
WL0‧‧‧字線
WL1‧‧‧字線
WL3‧‧‧字線
WL15‧‧‧字線
WLy‧‧‧字線
圖1圖解說明與其中體現本發明之特徵之一記憶體裝置
通信之一主機。
圖2圖解說明被並行感測或程式化之組織成(舉例而言)NAND組態之記憶體胞之一頁。
圖3示意性地圖解說明組織成若干可抹除區塊之一記憶體陣列之一實例。
圖4示意性地圖解說明具有多個陣列及最大並行性操作之一記憶體晶片。
圖5示意性地圖解說明具有較高並行性程度之一記憶體結構。
圖6圖解說明具有一胞群體(其中每一胞處於兩個可能狀態中之一者中)之一個二進制記憶體。
圖7圖解說明具有一胞群體(其中每一胞處於八個可能狀態中之一者中)之一多狀態記憶體。
圖8圖解說明適合於實踐本發明之一實體記憶體架構之一實例。
圖9示意性地圖解說明一個2層資料儲存系統中之SLC部分與MLC部分之間的資料路徑。
圖10更詳細地圖解說明圖9中所展示之SLC層。
圖11圖解說明根據本發明之區塊管理系統之記憶體組織中之一頁。
圖12圖解說明區塊管理系統中之一邏輯群組。
圖13A圖解說明容納來自多個邏輯群組之資料之一抹除區塊。
圖13B係圖解說明就小邏輯群組的形式將主機寫入儲存
至非揮發性記憶體之方案之一流程圖。
圖14圖解說明根據本發明用於管理跨越不同記憶體分割區之區塊及頁之一系統架構。
圖15更詳細地圖解說明圖14中所展示之第二層。
圖16圖解說明針對「熱」邏輯群組情形之邏輯群組之「溫度」分類。
圖17圖解說明針對「冷」邏輯群組情形之邏輯群組之「溫度」分類。
圖18圖解說明如何將不同類型之寫入以互動方式根據其所感知溫度分類成區塊串流。
圖19係圖解說明用於記憶體儲存及操作之溫度分類之方案之一流程圖。
圖20係圖解說明按邏輯群組層級之溫度分類之方案之一流程圖。
圖21係圖解說明按區塊層級之溫度分類之方案之一流程圖。
Claims (34)
- 一種對一非揮發性記憶體中之資料單元進行操作之方法,其包括:將該非揮發性記憶體組織成可一起抹除之記憶體胞區塊;藉由指派一溫度來將每一資料單元評等,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性;及以取決於該資料單元之該溫度之一方式對該資料單元執行一操作。
- 如請求項1之方法,其進一步包括提供介於一最低溫度與一最高溫度之間的一預定動態溫度範圍;及以該評等來偏置該溫度,以使得評等為比該最低溫度冷之任一溫度被指派為該最低溫度且評等為比該最高溫度熱之任一溫度在該最高溫度處飽和。
- 如請求項1之方法,其進一步包括:藉由將主機之一邏輯位址空間分割成不重疊的有序邏輯位址子範圍來提供複數個邏輯群組,其中每一資料單元係一邏輯群組。
- 如請求項3之方法,其進一步包括:將該非揮發性記憶體分割成一SLC部分與一MLC部分,其中該SLC部分中之記憶體胞各自儲存一個資料位元且該MLC部分中之記憶體胞各自儲存一個以上資料位 元;將資料逐邏輯群組地儲存於該SLC部分之每一區塊中;且其中該執行一操作係回應於空出該SLC部分中之空間之一命令以將具有該最冷溫度之一邏輯群組優先地自該SLC部分重新定位至該MLC部分。
- 如請求項3之方法,其中將與一邏輯群組相關聯之該溫度儲存於該邏輯群組內。
- 如請求項3之方法,其中將與一邏輯群組相關聯之該溫度儲存於該非揮發性記憶體中之一表中。
- 如請求項3之方法,其中當一主機最近較少寫入一邏輯群組時,將該邏輯群組評等為一較低溫度。
- 如請求項3之方法,其中當最近較少讀取一邏輯群組時,將該邏輯群組評等為一較低溫度。
- 如請求項3之方法,其中當一第一邏輯群組係一第一主機寫入之部分且該第一主機寫入長於含有一第二邏輯群組之一第二主機寫入時,將該第一邏輯群組評等為比該第二邏輯群組低之一溫度。
- 如請求項3之方法,其中當一邏輯群組已經受較少數目個壓縮操作時,將該邏輯群組評等為具有一較低溫度。
- 如請求項3之方法,其中該等邏輯群組具有多個邏輯群組湊配成一區塊之一大小。
- 如請求項1之方法,其中:每一資料單元係一區塊。
- 如請求項12之方法,其中當一主機最近較少寫入一區塊時,將該區塊評等為一較低溫度。
- 如請求項1之方法,其中:該執行一操作係將該資料單元與具有一預定溫度範圍內之類似溫度之其他資料單元一起儲存。
- 如請求項14之方法,其中:將該資料單元及具有類似溫度之該等其他資料單元儲存於同一區塊中。
- 如請求項15之方法,其中:該資料單元係來自一主機寫入。
- 如請求項15之方法,其中:該資料單元係來自一重新定位操作。
- 一種用於儲存資料單元之非揮發性記憶體,其包括:一記憶體陣列,其組織成可一起抹除之記憶體胞區塊;一狀態機,其控制包含以下各項之操作:藉由指派一溫度來將每一資料單元評等,其中一較高溫度指示該資料單元將經受由於廢料收集操作所致的後續重寫之一較高可能性;及以取決於該資料單元之該溫度之一方式對該資料單元執行一操作。
- 如請求項18之非揮發性記憶體,其中由該狀態機控制之該等操作進一步包括:提供介於一最低溫度與一最高溫度之間的一預定動態 溫度範圍;及以該評等來偏置該溫度,以使得評等為比該最低溫度冷之任一溫度被指派為該最低溫度且評等為比該最高溫度熱之任一溫度在該最高溫度處飽和。
- 如請求項18之非揮發性記憶體,其進一步包括:一記憶體結構,其藉由將主機之一邏輯位址空間分割成不重疊的有序邏輯位址子範圍來定義複數個邏輯群組,且其中每一資料單元係一邏輯群組。
- 如請求項20之非揮發性記憶體,其中:該記憶體陣列將該非揮發性記憶體分割成一SLC部分與一MLC部分,其中該SLC部分中之記憶體胞各自儲存一個資料位元且該MLC部分中之記憶體胞各自儲存一個以上資料位元,且該記憶體陣列用於將資料逐邏輯群組地儲存於該SLC部分之每一區塊中;且該執行一操作係回應於空出該SLC部分中之空間之一命令以將具有該最冷溫度之一邏輯群組優先地自該SLC部分重新定位至該MLC部分。
- 如請求項20之非揮發性記憶體,其中與一邏輯群組相關聯之該溫度係儲存於該邏輯群組內。
- 如請求項20之非揮發性記憶體,其中與一邏輯群組相關聯之該溫度係儲存於該非揮發性記憶體中之一表中。
- 如請求項20之非揮發性記憶體,其中當一主機最近較少寫入一邏輯群組時,該邏輯群組被評等為一較低溫度。
- 如請求項20之非揮發性記憶體,其中當最近較少讀取一邏輯群組時,該邏輯群組被評等為一較低溫度。
- 如請求項20之非揮發性記憶體,其中當一第一邏輯群組係一第一主機寫入之部分且該第一主機寫入長於含有一第二邏輯群組之一第二主機寫入時,該第一邏輯群組被評等為比該第二邏輯群組低之一溫度。
- 如請求項20之非揮發性記憶體,其中當一邏輯群組已經受較少數目個壓縮操作時,該邏輯群組被評等為具有一較低溫度。
- 如請求項20之非揮發性記憶體,其中該等邏輯群組具有多個邏輯群組湊配成一區塊之一大小。
- 如請求項18之非揮發性記憶體,其中:每一資料單元係一區塊。
- 如請求項29之非揮發性記憶體,其中當一主機最近較少寫入一區塊時,該區塊被評等為一較低溫度。
- 如請求項18之非揮發性記憶體,其中:該執行一操作係將該資料單元與具有一預定溫度範圍內之類似溫度之其他資料單元一起儲存。
- 如請求項31之非揮發性記憶體,其中:該資料單元及具有類似溫度之該等其他資料單元係儲存於同一區塊中。
- 如請求項32之非揮發性記憶體,其中:該資料單元係來自一主機寫入。
- 如請求項32之非揮發性記憶體,其中:該資料單元係來自一重新定位操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161487244P | 2011-05-17 | 2011-05-17 | |
US13/468,737 US9176864B2 (en) | 2011-05-17 | 2012-05-10 | Non-volatile memory and method having block management with hot/cold data sorting |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201308074A true TW201308074A (zh) | 2013-02-16 |
Family
ID=47175829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101117620A TW201308074A (zh) | 2011-05-17 | 2012-05-17 | 具有熱/冷資料分類之區塊管理之非揮發性記憶體及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9176864B2 (zh) |
EP (1) | EP2712448B1 (zh) |
KR (1) | KR101751571B1 (zh) |
TW (1) | TW201308074A (zh) |
WO (1) | WO2012158521A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI547864B (zh) * | 2013-09-30 | 2016-09-01 | 桑迪士克科技有限責任公司 | 在一資料叢發之前冷卻記憶體之溫度控制儲存模組 |
TWI707232B (zh) * | 2018-09-04 | 2020-10-11 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關的存取方法及電子裝置 |
US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
TWI714800B (zh) * | 2016-09-02 | 2021-01-01 | 南韓商三星電子股份有限公司 | 固態硬碟、非暫時性儲存媒體以及操作固態硬碟的方法 |
US11392297B2 (en) | 2015-07-13 | 2022-07-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
TWI829363B (zh) * | 2022-09-26 | 2024-01-11 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Families Citing this family (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
TWI417721B (zh) * | 2010-11-26 | 2013-12-01 | Etron Technology Inc | 衰減熱資料之方法 |
US8838916B2 (en) * | 2011-09-15 | 2014-09-16 | International Business Machines Corporation | Hybrid data storage management taking into account input/output (I/O) priority |
JP2013254403A (ja) * | 2012-06-08 | 2013-12-19 | Sony Corp | 情報処理装置および方法、並びに、プログラム |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9430376B2 (en) * | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
EP3176688B1 (en) * | 2012-12-31 | 2022-01-26 | SanDisk Technologies LLC | Method and system for asynchronous die operations in a non-volatile memory |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
CN103116550A (zh) * | 2013-01-11 | 2013-05-22 | 深圳市硅格半导体有限公司 | 切换闪存中物理块工作模式的方法和装置 |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9747202B1 (en) | 2013-03-14 | 2017-08-29 | Sandisk Technologies Llc | Storage module and method for identifying hot and cold data |
US9342389B2 (en) * | 2013-04-04 | 2016-05-17 | SK Hynix Inc. | Neighbor based and dynamic hot threshold based hot data identification |
US20150006784A1 (en) | 2013-06-27 | 2015-01-01 | Sandisk Technologies Inc. | Efficient Post Write Read in Three Dimensional Nonvolatile Memory |
US9063671B2 (en) | 2013-07-02 | 2015-06-23 | Sandisk Technologies Inc. | Write operations with full sequence programming for defect management in nonvolatile memory |
US9218242B2 (en) | 2013-07-02 | 2015-12-22 | Sandisk Technologies Inc. | Write operations for defect management in nonvolatile memory |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9043537B1 (en) | 2013-11-21 | 2015-05-26 | Sandisk Technologies Inc. | Update block programming order |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9229644B2 (en) | 2013-11-25 | 2016-01-05 | Sandisk Technologies Inc. | Targeted copy of data relocation |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9058881B1 (en) | 2013-12-05 | 2015-06-16 | Sandisk Technologies Inc. | Systems and methods for partial page programming of multi level cells |
US9244631B2 (en) | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
US9928166B2 (en) | 2013-12-24 | 2018-03-27 | International Business Machines Corporation | Detecting hot spots through flash memory management table snapshots |
US9466383B2 (en) * | 2013-12-30 | 2016-10-11 | Sandisk Technologies Llc | Non-volatile memory and method with adaptive logical groups |
US9501393B2 (en) * | 2014-01-27 | 2016-11-22 | Western Digital Technologies, Inc. | Data storage system garbage collection based on at least one attribute |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US20150261444A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and information processing device |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
KR102147916B1 (ko) | 2014-04-14 | 2020-08-26 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US8902652B1 (en) | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
US8886877B1 (en) | 2014-05-15 | 2014-11-11 | Sandisk Technologies Inc. | In-situ block folding for nonvolatile memory |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10114557B2 (en) * | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9817750B2 (en) * | 2014-07-03 | 2017-11-14 | Pure Storage, Inc. | Profile-dependent write placement of data into a non-volatile solid-state storage |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US9632927B2 (en) * | 2014-09-25 | 2017-04-25 | International Business Machines Corporation | Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes |
KR102251810B1 (ko) | 2014-09-30 | 2021-05-13 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치에 대한 제어 방법 |
US9875039B2 (en) * | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
WO2016086411A1 (zh) * | 2014-12-05 | 2016-06-09 | 华为技术有限公司 | 一种控制器、闪存装置、识别数据块稳定性的方法以及在闪存装置中存储数据的方法 |
US10078582B2 (en) | 2014-12-10 | 2018-09-18 | International Business Machines Corporation | Non-volatile memory system having an increased effective number of supported heat levels |
US9690491B2 (en) | 2014-12-17 | 2017-06-27 | Sandisk Technologies Llc | System and method for managing data in a memory device |
US9632705B2 (en) | 2014-12-17 | 2017-04-25 | Sandisk Technologies Llc | System and method for adaptive memory layers in a memory device |
US9779021B2 (en) | 2014-12-19 | 2017-10-03 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
US10474569B2 (en) * | 2014-12-29 | 2019-11-12 | Toshiba Memory Corporation | Information processing device including nonvolatile cache memory and processor |
US9772939B2 (en) | 2015-01-05 | 2017-09-26 | International Business Machines Corporation | Heat-based key-value slot organization for flash-optimized data placement in multi-tiered storage systems |
CN105843748B (zh) | 2015-01-15 | 2019-06-11 | 华为技术有限公司 | 一种对内存中内存页的处理方法及装置 |
US20160225459A1 (en) * | 2015-01-30 | 2016-08-04 | Micron Technology, Inc. | Apparatuses operable in multiple power modes and methods of operating the same |
JP6320318B2 (ja) * | 2015-02-17 | 2018-05-09 | 東芝メモリ株式会社 | 記憶装置及び記憶装置を含む情報処理システム |
US10620861B2 (en) | 2015-04-30 | 2020-04-14 | Hewlett Packard Enterprise Development Lp | Retrieve data block from determined devices |
US10877879B1 (en) | 2015-05-19 | 2020-12-29 | EMC IP Holding Company LLC | Flash cache throttling to control erasures |
US9760437B2 (en) | 2015-07-01 | 2017-09-12 | International Business Machines Corporation | Error correction based on thermal profile of flash memory device |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9886208B2 (en) | 2015-09-25 | 2018-02-06 | International Business Machines Corporation | Adaptive assignment of open logical erase blocks to data streams |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US9996473B2 (en) * | 2015-11-13 | 2018-06-12 | Samsung Electronics., Ltd | Selective underlying exposure storage mapping |
US9940028B2 (en) | 2015-11-13 | 2018-04-10 | Samsung Electronics Co., Ltd | Multimode storage device |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US9946642B2 (en) * | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
CN105677242B (zh) * | 2015-12-31 | 2018-11-30 | 杭州华为数字技术有限公司 | 冷热数据的分离方法和装置 |
US9837146B2 (en) * | 2016-01-08 | 2017-12-05 | Sandisk Technologies Llc | Memory system temperature management |
US9959071B2 (en) | 2016-03-31 | 2018-05-01 | Sandisk Technologies Llc | Method and system for managing data in non-volatile memory |
US10168917B2 (en) * | 2016-04-05 | 2019-01-01 | International Business Machines Corporation | Hotness based data storage for facilitating garbage collection |
JP6679412B2 (ja) * | 2016-05-19 | 2020-04-15 | キヤノン株式会社 | ストレージ制御装置、情報処理方法及びプログラム |
US10353813B2 (en) | 2016-06-29 | 2019-07-16 | Western Digital Technologies, Inc. | Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices |
US10235287B2 (en) | 2016-06-29 | 2019-03-19 | Western Digital Technologies, Inc. | Efficient management of paged translation maps in memory and flash |
US11216361B2 (en) | 2016-06-29 | 2022-01-04 | Western Digital Technologies, Inc. | Translation lookup and garbage collection optimizations on storage system with paged translation table |
US10229048B2 (en) | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10175896B2 (en) | 2016-06-29 | 2019-01-08 | Western Digital Technologies, Inc. | Incremental snapshot based technique on paged translation systems |
KR102567224B1 (ko) * | 2016-07-25 | 2023-08-16 | 삼성전자주식회사 | 데이터 저장 장치 및 이를 포함하는 컴퓨팅 시스템 |
US10275541B2 (en) | 2016-08-05 | 2019-04-30 | Micron Technology, Inc. | Proactive corrective actions in memory based on a probabilistic data structure |
TWI645290B (zh) * | 2016-10-11 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
US10032488B1 (en) | 2016-12-29 | 2018-07-24 | Sandisk Technologies Llc | System and method of managing data in a non-volatile memory having a staging sub-drive |
US10380018B2 (en) | 2017-04-04 | 2019-08-13 | Micron Technology, Inc. | Garbage collection |
US10101942B1 (en) | 2017-04-17 | 2018-10-16 | Sandisk Technologies Llc | System and method for hybrid push-pull data management in a non-volatile memory |
US10409720B2 (en) | 2017-06-12 | 2019-09-10 | Western Digital Technologies, Inc. | System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives |
CN109408401B (zh) * | 2017-08-18 | 2023-03-24 | 旺宏电子股份有限公司 | 存储器装置的管理系统及管理方法 |
KR20190023247A (ko) * | 2017-08-28 | 2019-03-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10446197B2 (en) | 2017-08-31 | 2019-10-15 | Micron Technology, Inc. | Optimized scan interval |
US10915475B2 (en) | 2017-10-12 | 2021-02-09 | Western Digital Technologies, Inc. | Methods and apparatus for variable size logical page management based on hot and cold data |
US10754580B2 (en) | 2017-10-23 | 2020-08-25 | Micron Technology, Inc. | Virtual partition management in a memory device |
US10515008B2 (en) | 2017-10-25 | 2019-12-24 | Western Digital Technologies, Inc. | Performance based memory block usage |
US10795827B2 (en) | 2017-11-17 | 2020-10-06 | Western Digital Technologies, Inc. | Adaptive management of intermediate storage |
US11455245B2 (en) | 2017-12-11 | 2022-09-27 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
US10339983B1 (en) * | 2017-12-29 | 2019-07-02 | Micron Technology, Inc. | Temperature-based memory operations |
US20190243771A1 (en) * | 2018-02-05 | 2019-08-08 | Micron Technology, Inc. | Accelerate Data Access in Memory Systems via Data Stream Segregation |
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US10365854B1 (en) | 2018-03-19 | 2019-07-30 | Micron Technology, Inc. | Tracking data temperatures of logical block addresses |
US11055002B2 (en) * | 2018-06-11 | 2021-07-06 | Western Digital Technologies, Inc. | Placement of host data based on data characteristics |
US10713158B2 (en) | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
US11132037B2 (en) | 2018-09-06 | 2021-09-28 | Micron Technology, Inc. | Operating temperature management of a memory sub-system |
KR102243920B1 (ko) | 2018-10-08 | 2021-04-22 | 강원대학교산학협력단 | 하이브리드 디바이스를 포함하는 비휘발성 메모리 장치 및 그 동작 방법 |
US10949123B2 (en) | 2018-10-18 | 2021-03-16 | Western Digital Technologies, Inc. | Using interleaved writes to separate die planes |
KR20200064499A (ko) * | 2018-11-29 | 2020-06-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN111324281B (zh) * | 2018-12-14 | 2024-02-06 | 兆易创新科技集团股份有限公司 | 一种存储器及其控制方法和装置 |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
TWI726314B (zh) * | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI697778B (zh) * | 2019-06-17 | 2020-07-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US20230176743A1 (en) * | 2019-07-25 | 2023-06-08 | EMC IP Holding Company LLC | Handling data with different lifetime characteristics in stream-aware data storage equipment |
CN110928852B (zh) * | 2019-12-09 | 2022-12-02 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
KR20210083448A (ko) | 2019-12-26 | 2021-07-07 | 삼성전자주식회사 | 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 |
US11016880B1 (en) | 2020-04-28 | 2021-05-25 | Seagate Technology Llc | Data storage system with read disturb control strategy whereby disturb condition can be predicted |
US11816354B2 (en) * | 2020-07-27 | 2023-11-14 | EMC IP Holding Company LLC | Persistent memory adaptation |
US11537511B2 (en) * | 2020-08-05 | 2022-12-27 | Infineon Technologies LLC | Dynamic configuring of reliability and density of non-volatile memories |
US11437104B2 (en) | 2020-09-08 | 2022-09-06 | Western Digital Technologies, Inc. | Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint |
US11442666B2 (en) * | 2020-11-17 | 2022-09-13 | Western Digital Technologies, Inc. | Storage system and dual-write programming method with reverse order for secondary block |
US20220171713A1 (en) * | 2020-11-30 | 2022-06-02 | Micron Technology, Inc. | Temperature-aware data management in memory sub-systems |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
KR20220101349A (ko) | 2021-01-11 | 2022-07-19 | 삼성전자주식회사 | 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치 |
KR20230059911A (ko) | 2021-10-26 | 2023-05-04 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US20230418486A1 (en) * | 2022-06-28 | 2023-12-28 | Western Digital Technologies, Inc. | Configuration of new storage devices in a storage device pool |
WO2024112034A1 (ko) * | 2022-11-21 | 2024-05-30 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 파일 시스템 운영 방법 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095344A (en) | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5070032A (en) | 1989-03-15 | 1991-12-03 | Sundisk Corporation | Method of making dense flash eeprom semiconductor memory structures |
US5343063A (en) | 1990-12-18 | 1994-08-30 | Sundisk Corporation | Dense vertical programmable read only memory cell structure and processes for making them |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5313421A (en) | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US5315541A (en) | 1992-07-24 | 1994-05-24 | Sundisk Corporation | Segmented column memory array |
KR0169267B1 (ko) | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
US5661053A (en) | 1994-05-25 | 1997-08-26 | Sandisk Corporation | Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers |
US5671388A (en) | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
US5903495A (en) | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
US5768192A (en) | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
US6768165B1 (en) | 1997-08-01 | 2004-07-27 | Saifun Semiconductors Ltd. | Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping |
US7953931B2 (en) | 1999-08-04 | 2011-05-31 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
US7874067B1 (en) | 2000-01-06 | 2011-01-25 | Super Talent Electronics, Inc. | Manufacturing method for single chip COB USB devices with optional embedded LED |
GB0022131D0 (en) | 2000-09-09 | 2000-10-25 | Ibm | Data sorting in information storage systems |
US7058936B2 (en) | 2002-11-25 | 2006-06-06 | Microsoft Corporation | Dynamic prefetching of hot data streams |
US7188228B1 (en) * | 2003-10-01 | 2007-03-06 | Sandisk Corporation | Hybrid mapping implementation within a non-volatile memory system |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US7752382B2 (en) | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
US7509471B2 (en) | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US20090307427A1 (en) | 2006-03-31 | 2009-12-10 | Hitachi Ulsi Systems Co., Ltd. | Memory card and method of writing data |
KR100858241B1 (ko) | 2006-10-25 | 2008-09-12 | 삼성전자주식회사 | 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법 |
KR100833188B1 (ko) | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
US8719501B2 (en) | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US9153337B2 (en) | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
TWI368224B (en) | 2007-03-19 | 2012-07-11 | A Data Technology Co Ltd | Wear-leveling management and file distribution management of hybrid density memory |
JP5224706B2 (ja) | 2007-03-23 | 2013-07-03 | キヤノン株式会社 | 記憶装置及び記憶装置の制御方法 |
US7633799B2 (en) | 2007-03-30 | 2009-12-15 | Sandisk Corporation | Method combining lower-endurance/performance and higher-endurance/performance information storage to support data processing |
TW200841343A (en) | 2007-04-02 | 2008-10-16 | Apacer Technology Inc | A data storage device consisting of NAND (Not-AND) flash memory and its data storing method |
US8453022B2 (en) * | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US7961544B2 (en) * | 2008-08-05 | 2011-06-14 | Sandisk Il Ltd. | Storage system and method for managing a plurality of storage devices |
US8275933B2 (en) | 2008-11-10 | 2012-09-25 | Fusion-10, Inc | Apparatus, system, and method for managing physical regions in a solid-state storage device |
US20100169540A1 (en) | 2008-12-30 | 2010-07-01 | Sinclair Alan W | Method and apparatus for relocating selected data between flash partitions in a memory device |
US8094500B2 (en) | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8244960B2 (en) | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US20100174845A1 (en) | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
TWI385527B (zh) | 2009-02-10 | 2013-02-11 | Phison Electronics Corp | Mlc nand型快閃記憶體儲存系統及其控制器與存取方法 |
US8307241B2 (en) | 2009-06-16 | 2012-11-06 | Sandisk Technologies Inc. | Data recovery in multi-level cell nonvolatile memory |
TWI400707B (zh) | 2009-07-09 | 2013-07-01 | Phison Electronics Corp | 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統 |
US8402242B2 (en) | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
US8566483B1 (en) * | 2009-12-17 | 2013-10-22 | Emc Corporation | Measuring data access activity |
US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US9594675B2 (en) | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
US8161241B2 (en) * | 2010-01-12 | 2012-04-17 | International Business Machines Corporation | Temperature-aware buffered caching for solid state storage |
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US9235530B2 (en) | 2010-05-31 | 2016-01-12 | Sandisk Technologies Inc. | Method and system for binary cache cleanup |
US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
WO2012021847A2 (en) | 2010-08-12 | 2012-02-16 | Fusion-Io, Inc. | Apparatus, system and method for caching data |
-
2012
- 2012-05-10 US US13/468,737 patent/US9176864B2/en active Active
- 2012-05-11 EP EP12722633.0A patent/EP2712448B1/en not_active Not-in-force
- 2012-05-11 WO PCT/US2012/037528 patent/WO2012158521A1/en active Application Filing
- 2012-05-11 KR KR1020137031035A patent/KR101751571B1/ko active IP Right Grant
- 2012-05-17 TW TW101117620A patent/TW201308074A/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI547864B (zh) * | 2013-09-30 | 2016-09-01 | 桑迪士克科技有限責任公司 | 在一資料叢發之前冷卻記憶體之溫度控制儲存模組 |
US11392297B2 (en) | 2015-07-13 | 2022-07-19 | Samsung Electronics Co., Ltd. | Automatic stream detection and assignment algorithm |
US10866905B2 (en) | 2016-05-25 | 2020-12-15 | Samsung Electronics Co., Ltd. | Access parameter based multi-stream storage device access |
TWI714800B (zh) * | 2016-09-02 | 2021-01-01 | 南韓商三星電子股份有限公司 | 固態硬碟、非暫時性儲存媒體以及操作固態硬碟的方法 |
TWI707232B (zh) * | 2018-09-04 | 2020-10-11 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關的存取方法及電子裝置 |
TWI829363B (zh) * | 2022-09-26 | 2024-01-11 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
EP2712448B1 (en) | 2017-04-19 |
WO2012158521A1 (en) | 2012-11-22 |
EP2712448A1 (en) | 2014-04-02 |
KR20140035916A (ko) | 2014-03-24 |
US9176864B2 (en) | 2015-11-03 |
US20120297122A1 (en) | 2012-11-22 |
KR101751571B1 (ko) | 2017-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201308074A (zh) | 具有熱/冷資料分類之區塊管理之非揮發性記憶體及方法 | |
TW201305817A (zh) | 具有分佈在作用單階胞及多階胞記憶體分割區之間的小邏輯群組之非揮發性記憶體及方法 | |
US9141528B2 (en) | Tracking and handling of super-hot data in non-volatile memory systems | |
US20120297121A1 (en) | Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions | |
JP4787266B2 (ja) | スクラッチパッドブロック | |
CN105874541B (zh) | 通过对非易失性存储器的分区内的读取访问的计数来检测存储器上的读取干扰 | |
US9466383B2 (en) | Non-volatile memory and method with adaptive logical groups | |
JP5222232B2 (ja) | フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング | |
EP2565792B1 (en) | Block management schemes in hybrid SLC/MLC memory | |
TWI602184B (zh) | 用於非揮發性記憶體的程式化方法、用於記憶體系統的資料管理方法、用於非揮發性記憶體的資料管理方法、記憶體系統以及用於記憶體系統的控制器 | |
US8593866B2 (en) | Systems and methods for operating multi-bank nonvolatile memory | |
US8543757B2 (en) | Techniques of maintaining logical to physical mapping information in non-volatile memory systems | |
US20070113029A1 (en) | Structures for the management of erase operations in non-volatile memories | |
KR101760144B1 (ko) | 비휘발성 메모리 및 기록 캐시를 분할하는 방법 | |
US9411721B2 (en) | Detecting access sequences for data compression on non-volatile memory devices | |
US9342446B2 (en) | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
KR20160050394A (ko) | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 | |
US8995183B2 (en) | Data retention in nonvolatile memory with multiple data storage formats | |
US8732391B2 (en) | Obsolete block management for data retention in nonvolatile memory |