TWI464586B - 記憶體系統 - Google Patents

記憶體系統 Download PDF

Info

Publication number
TWI464586B
TWI464586B TW100104807A TW100104807A TWI464586B TW I464586 B TWI464586 B TW I464586B TW 100104807 A TW100104807 A TW 100104807A TW 100104807 A TW100104807 A TW 100104807A TW I464586 B TWI464586 B TW I464586B
Authority
TW
Taiwan
Prior art keywords
block
list
unit
free block
free
Prior art date
Application number
TW100104807A
Other languages
English (en)
Other versions
TW201205289A (en
Inventor
Hiroshi Yao
Original Assignee
Toshiba Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Kk filed Critical Toshiba Kk
Publication of TW201205289A publication Critical patent/TW201205289A/zh
Application granted granted Critical
Publication of TWI464586B publication Critical patent/TWI464586B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

記憶體系統
本文所述之實施例大致上係關於一種包含一非揮發性半導體記憶體的記憶體系統。
本申請案係基於且主張2010年2月26日申請之日本專利申請案第2010-43299號之優先權的權利,該案之全文以引用的方式併入本文中。
作為一電腦中使用之一外部儲存器件,使用諸如一NAND快閃記憶體之一非揮發性半導體記憶體作為一儲存媒體的一固態碟(SSD)令人矚目。由於SSD不包含機械操作,故SSD在抗震、隨機讀取操作及功率消耗方面優於習知使用的磁碟器件。
同時,NAND快閃記憶體之寫入速度低於磁碟器件的寫入速度。因此,在SSD中連接NAND快閃記憶體的複數個晶片以實現並列存取,且NAND快閃記憶體本身經組態以在該等晶片之複數個區域中實現同時寫入操作,使得傳送效能獲改良。
為改良SSD之實際資料傳送速度,需要完全使用如上所述般組態之硬體的並列處理。為此原因,預備暫時累積從一主機接收之寫入資料的一緩衝器記憶體,在該緩衝器記憶體中累積足夠量之資料後劃分該資料,且將該資料並列寫入至NAND快閃記憶體的複數個晶片中。
NAND快閃記憶體之儲存區域分為被稱作區塊的若干單元,且在一區塊單元中實行相對於NAND快閃記憶體的資料擦除操作。亦即,藉由集體性擦除區塊中之資料且在對應區塊中以預定順序寫入新資料而實行相對於NAND快閃記憶體的資料寫入操作。
同時,NAND快閃記憶體具有使得一最大擦除計數被限制的特徵。舉例而言,若一任意區塊之一擦除計數變為等於或多於一預定值,則該區塊耗盡且資料儲存失效之可能性增加。若歸因於耗盡而無法儲存資料之區塊之數目增加,則SSD之整個資料儲存容量減少且當無法提供預定宣告之容量時SSD失效。為整體增加SSD的壽命,需要等效使用全部區塊且等化各區塊之一擦除計數的一機構。
如上所述,為實際使用SSD,需要開發存取時(特定言之,在寫入操作時)的並列處理以維持傳送效能且在等化區塊間之擦除計數。選擇寫入資料之一區塊的一區塊分配方法對於寫入資料及等化區塊間之擦除計數時保障並列處理是重要的。
舉例而言,如在一硬碟中,若對SSD應用固定分配一實體儲存區域至各位址的一方法,則在該SSD中一區塊被固定分配至各位址。然而,在此情形中會造成下列兩個問題。
第一個問題是在重複性覆寫寫入於對應於一特定位址之一區塊中的資料時造成。因為在對應於該位址之該區塊中重複集體性資料擦除與寫入,所以唯有該對應區塊的一擦除計數增加且該對應區塊之壽命變得比其他區塊之壽命更短。
第二個問題是在分配至一或多個區塊(在該或該等區塊之各者處無法實現並列寫入)的位址接收複數個寫入資料時造成。在此情形中,在個別區塊中依序寫入資料且傳送效能變差。
一般言之,根據一項實施例,一種記憶體系統包含一非揮發性記憶體、一管理單元、一順序規則保存單元、一位置資訊儲存單元、一清單選擇單元、一區塊選擇單元、一寫入單元及一更新單元。該非揮發性記憶體包含複數個儲存區域,該複數個儲存區域各包含各為一資料擦除單元之複數個區塊。該非揮發性記憶體經組態使得相對於包含於該等不同儲存區域中之該等區塊實現並列寫入。該管理單元針對該等儲存區域之各者保存指示未儲存有效資料之區塊的自由區塊之自由區塊清單。該順序規則保存單元保存係用來判定該等自由區塊清單之一順序之資訊的一順序規則。該位置資訊儲存單元儲存指示按該順序規則之該自由區塊清單之位置的位置資訊。該清單選擇單元選擇對應於由該位置資訊所指示之該位置的該自由區塊清單。該區塊選擇單元從由該清單選擇單元所選擇之該自由區塊清單中選擇自由區塊。該寫入單元在由該區塊選擇單元所選擇之該自由區塊中寫入資料。在由該清單選擇單元選擇該自由區塊清單之後,該更新單元指示隨後選擇之自由區塊清單之位置的位置資訊來更新該位置資訊儲存單元中儲存之位置資訊。
<各實施例之共同組態>
在下文中將參考圖式詳細描述一種記憶體系統的實施例。然而,本發明不限於該等實施例。圖1展示可應用根據本發明之各實施例之一記憶體系統之一電腦200之一實例的外部外觀。圖1所例示之電腦200為經組態以具有一小尺寸及輕重量以便攜帶的一所謂攜帶式電腦。該電腦200包含一本體201及一顯示器單元202。該顯示器單元202包含一顯示器外殼203及容納於該顯示器外殼203中的一顯示器件204。
該本體201包含一罩殼205、一鍵盤206及對應於一指向器件的一觸控墊207。在該罩殼205中,容納有一主電路板、一光碟碟(ODD)單元、一卡槽及一固態碟(SSD)100。該主電路板安裝有該電腦200的主要組件,諸如一中央處理單元(CPU)、一唯讀記憶體(ROM)及一隨機存取記憶體(RAM)。該ODD單元在諸如一光碟(CD)或一數位多功能光碟(DVD)之一光碟上實行資料讀取/寫入操作。
該卡槽係設置成鄰近該罩殼205的一周邊壁。在該周邊壁上,設置有面向該卡槽的一開口208。一使用者可從該罩殼205外部通過該開口208而將一額外器件插入至該卡槽中。
該SSD 100為使用一可重寫型非揮發性半導體記憶體的一儲存器件。該SSD 100可以SSD安裝於電腦200中的狀態中使用,以代替一習知硬碟碟(HDD)來儲存一作業系統(OS)或各種程式。然而,不僅如此,該SSD 100可以SSD插入至包含於該電腦200中之卡槽中的狀態而用作一額外器件。
圖2展示可應用於各實施例之SSD 100之一實例的組態。該SSD 100示意性具有一控制單元130、一介面單元120、一緩衝器記憶體121及一非揮發性記憶體單元122。該控制單元130、該介面單元120、該緩衝器記憶體121及該非揮發性記憶體122係組態成連接至諸如一匯流排110的一信號線,且互相交換資料。
該介面單元120與一主機裝置通信。在上述圖1及圖2之實例中,電腦200係連接成主機裝置。在下文中,電腦200係描述成主機裝置200。該介面單元120從主機裝置200接收一讀取、寫入或一快閃命令且通知該控制單元130接收該命令。該介面單元120根據來自該控制單元130之一指令而與該主機裝置200交換資料。
該緩衝器記憶體121係由諸如一動態RAM(DRAM)的一揮發性記憶體組成。該緩衝器記憶體121暫時儲存在該介面單元120與該主機裝置200之間交換的資料或從非揮發性記憶體單元122中讀取或寫入該非揮發性記憶體單元122中的資料。然而,不僅如此,可在該緩衝器記憶體121中儲存SSD 100中的許多管理資訊。
該非揮發性記憶體單元122為可重寫資料且即使電力之供應停止時所儲存之內容仍不會被擦除的一記憶體。舉例而言,在該非揮發性記憶體單元122中儲存自主機裝置200傳輸的使用者資料。然而,不僅如此,該非揮發性記憶體單元122可儲存除使用者資料之外之SSD 100中的各種管理資訊。
該非揮發性記憶體單元122具有作為一非揮發性記憶體儲存媒體之一NAND快閃記憶體的晶片123以及控制該NAND快閃記憶體的一NAND控制器(圖式中未展示)。該等晶片123之各者可具有實現獨立存取控制之儲存區域的複數個平面。圖3A及圖3B明確展示該非揮發性記憶體單元122之晶片123之一實例的組態。在本實例中,晶片123具有一平面#0及一平面#1的兩個平面且各平面具有具預定儲存容量的複數個區塊#0、#1、...及區塊#n。
用作晶片123中之一實體儲存區域之一實體區塊的區塊為該晶片123的一資料擦除單元。可收集複數個實體區塊並將其處置成一邏輯區塊。在此情形中,邏輯區塊變為一資料擦除單元。在下文中,實體區塊及邏輯區塊簡單稱為一區塊而不互相區分實體區塊與邏輯區塊。
當在晶片123之一任意區塊中寫入資料時,從一區塊單元中之對應區塊擦除資料且在該對應區塊中寫入新的資料。相應地,在區塊單元中大體上實行相對於晶片123的資料寫入操作。
在NAND快閃記憶體之晶片123中,諸平面經組態使得在晶片中並列地實現存取。舉例而言,如圖3A中所例示,在給定一號碼#0的晶片123中,實現屬於平面#0之區塊#0以及屬於平面#1之區塊#2的並列存取。同時,如圖3B所例示,在相同號碼#0之晶片123中,無法實現屬於平面#0之區塊#0及區塊#2的並列存取。
在NAND快閃記憶體中,預備多於提供至主機裝置200之儲存容量的儲存容量作為總儲存容量。因此,在任意時間點,存在儲存有效資料的一區塊及未儲存有效資料的一區塊。未儲存有效資料之區塊稱為一自由區塊。儲存有效資料之區塊稱為一作用區塊。
回到圖2,控制單元130具有一區塊管理單元131、一資料讀取單元132、一資料寫入單元133、一資料管理單元134及一NAND碟135的個別功能。該控制單元130透過介面單元120而控制與主機裝置200之通信或者控制儲存於緩衝器記憶體121及非揮發性記憶體單元122中之資料的管理或讀取/寫入。
該控制單元130之個別功能可組態成嵌入為一電路的一SoC(單晶片系統)。然而,不僅如此,一通用處理器可用作控制單元130的硬體且此等功能可實現為在該通用處理器上操作的軟體。
在該控制單元130中,資料管理單元134管理指示資料之一儲存位置(在主機裝置200與資料管理單元之間使用)之一位址,與作為非揮發性記憶體單元122中之一實際儲存區域之一區塊位置之間的對應關係。該位址係在主機裝置200與SSD 100之間使用的位址。在寫入資料時該位址及該區塊動態相關聯。
將使用圖4A及圖4B來描述資料管理單元134中之位址及區塊之間的關聯。舉例而言,如圖4A所例示,假定由主機裝置200指定之資料的位址為位址A0、A1、...,且非揮發性記憶體單元122中之一特定平面的區塊位置為區塊B0、B1、...。此外,假定由一個位址指定之資料之大小等於一個區塊的儲存容量。
此處,考量將有效資料儲存於對應於位址A1之一區塊中且實際用作非揮發性記憶體單元122中之位址A1之一儲存區域為區塊B1的情形。在此情形中,舉例而言,區塊B1為一作用區塊且鄰近該區塊B1之區塊B2為一自由區塊。
在圖4A之狀態中,假定下指令覆寫位址A1之資料的一命令係從主機裝置200接收。當覆寫相同位址之資料時,在一區塊單元中執行一資料覆寫程序。該資料管理單元134分配一個自由區塊(例如區塊B2)且在經分配之自由區塊中寫入從主機裝置200接收的資料。在相對於自由區塊寫入資料之後,該資料管理單元134將由該主機裝置200指定之位址A1與實際寫入資料之區塊B2相關聯。
結果,如圖4B所例示,區塊B2變為一作用區塊。在覆寫之前儲存位址A1之資料的區塊B1中,由於經儲存之資料變無效,故該區塊B1變為一自由區塊。如上所述,在SSD中,即使資料係指定為相同位址A1之資料,無論何時寫入資料,用作實際儲存區域之區塊仍在變化。
回到圖2,資料讀取單元132控制來自非揮發性記憶體單元122之資料的讀取。資料寫入單元133控制相對於該非揮發性記憶體單元122的資料之寫入。NAND碟135控制該非揮發性記憶體單元122之一NAND控制器(圖式中未展示)以根據該資料讀取單元132或該資料寫入單元133的一請求而從該非揮發性記憶體單元122讀取資料或將資料寫入至該非揮發性記憶體單元122。
區塊管理單元131具有一自由區塊管理單元140及一自由區塊選擇單元150,並管理非揮發性記憶體單元122中的自由區塊且在寫入資料時選擇一自由區塊。該自由區塊管理單元140保存且管理一自由區塊清單,該自由區塊清單為指示對應於未儲存有效資料之區塊之自由區塊的資訊。舉例而言,該自由區塊管理單元140保存作為用於管理非揮發性記憶體單元122之自由區塊之結構之各自平面的自由區塊清單1410 、1411 、...、141m 、...及141n 。非揮發性記憶體單元122之自由區塊係基於對應於對應自由區塊所屬之平面之自由區塊清單141m 而由自由區塊管理單元140管理。
假定該自由區塊清單141m 指示在由該自由區塊管理單元140所管理之自由區塊清單1410 至141n 中一任意自由區塊清單。
該自由區塊清單141m 可採取其中包含對應於各自由區塊之一區塊識別符作為一節點之區塊資訊與各自由區塊清單鏈接的形式。至於鏈接自由區塊與自由區塊清單之順序,可使用一簡單FIFO(先進先出)或者可以根據自由區塊之擦除計數而將該等自由區塊分類的順序鏈接自由區塊。至於無法實現並列寫入之複數個平面,可在一個自由區塊清單中收集自由區塊且可管理該等自由區塊。
當在非揮發性記憶體單元122中寫入資料時,自由區塊選擇單元150根據一順序規則而選擇該非揮發性記憶體單元122中的自由區塊。該自由區塊選擇單元150具有一順序規則操作單元151、一位置資訊更新單元152、一順序規則保存單元153及一位置資訊儲存單元154。
該順序規則保存單元153保存順序規則。順序規則為用來判定自由區塊清單之順序的資訊,且由一表格格式或一操作格式來定義。或者,順序規則可由除表格格式及操作格式之外的格式定義。該順序規則保存單元153可由一儲存器件之一部分或一儲存區域(圖式中未展示)組態。該順序規則操作單元151基於順序規則而操作一順序序列。該順序序列為指示基於該順序規則而產生之自由區塊清單之順序的資訊。舉例而言,該順序序列為其中自由區塊清單之識別符被有序配置的資訊。該自由區塊清單係基於該順序序列及下文待描述之位置資訊來選擇。
位置資訊儲存單元154儲存位置資訊。位置資訊為根據順序規則而產生自由區塊清單之順序序列時指示該順序序列上之位置的資訊。亦即,該位置資訊為指示基於該順序規則而判定之自由區塊清單之順序的資訊。位置資訊更新單元152更新儲存於該位置資訊儲存單元154中的位置資訊。舉例而言,該位置資訊更新單元152在順序規則操作單元151選擇自由區塊清單之後以指示隨後選擇之自由區塊清單之位置資訊來更新位置資訊。
接著,將使用圖5之一流程圖來示意性描述根據各實施例的一資料寫入程序。在各實施例中,在寫入資料時,將從主機裝置200接收的寫入資料暫存於緩衝器記憶體121中。在該緩衝器記憶體121中儲存足夠量之資料之後,從該緩衝器記憶體121讀取寫入資料且將其並列寫入於複數個自由區塊中。
在圖5中,若介面單元120等待來自主機裝置200的一寫入命令且接收該寫入命令(步驟S10),則該介面單元120通知控制單元130接收該寫入命令(步驟S11)。該寫入命令包含指示該寫入資料之一寫入位址的資訊。
在下一步驟S12中,在接收到接收寫入命令之通知後,該控制單元130之資料寫入單元133在緩衝器記憶體121上分配一區域以接收從該主機裝置200傳輸的寫入資料。該資料寫入單元133對該介面單元120下指令以接收分配於該緩衝器記憶體121上之區域中之從該主機裝置200傳輸的寫入資料。在下一步驟S13中,該介面單元120接收從該主機裝置200傳輸之寫入資料且將經接收之寫入資料儲存於步驟S12中在該緩衝器記憶體121上分配的區域中。
在下一步驟S14中,該資料寫入單元133確認儲存於該緩衝器記憶體121上之寫入資料之量,且判定該緩衝器記憶體121中是否儲存預定量的寫入資料。若判定儲存於該緩衝器記憶體121中之寫入資料之量小於預定量,則程序便回到步驟S10且該資料寫入單元133等待來自該主機裝置200的一命令。
同時,當在步驟S14中判定緩衝器記憶體121中儲存有預定量之寫入資料時,則程序繼續進行至步驟S15。在步驟S15中,該資料寫入單元133計算寫入儲存於該緩衝器記憶體121中之寫入資料需要的自由區塊之數目。
在下一步驟S16中,該資料寫入單元133請求自由區塊管理單元140提供步驟S15中所計算之所需數目的自由區塊。當該資料寫入單元133請求該自由區塊管理單元140提供自由區塊時,程序繼續進行至作為各實施例之特徵的步驟S17。在步驟S17中,該自由區塊管理單元140接收來自該資料寫入單元133的請求且從自由區塊清單1410 、1411 、...、141m 、...及141n 提取可實現並列寫入所需數目之自由區塊之一群組。該自由區塊管理單元140將指示已提取之自由區塊之資訊送回至該資料寫入單元133。
在下一步驟S18中,該資料寫入單元133請求NAND碟135將緩衝器記憶體121上之寫入資料並列寫入從該自由區塊管理單元140獲取之資訊指示的自由區塊中。在下一步驟S19中,該NAND碟135控制該非揮發性記憶體單元122的一NAND控制器(圖式中未展示)且執行從該資料寫入單元133請求之寫入資料的並列寫入。
若在步驟S19中將寫入資料寫入於自由區塊中,則在下一步驟S20中,該資料寫入單元133暫存該資料管理單元134中之已寫入之資料之位址與區塊之間的對應關係。在下一步驟S21中,該資料管理單元134通知該自由區塊管理單元140作用區塊中已與下指令寫入寫入資料直至暫存(亦即,直至步驟S19中之寫入)的位址相關聯作為自由區塊。
在下一步驟S22中,該自由區塊管理單元140識別對應於步驟S21中從資料管理單元134通知之自由區塊所屬之平面的自由區塊清單141m ,且鏈接從該資料管理單元134通知之自由區塊與經識別之自由區塊清單141m
<第一實施例>
接著,將描述一第一實施例。在下文中,將詳細描述作為第一實施例之特徵的一自由區塊選擇程序(圖5之步驟S17)。
當自由區塊管理單元140選擇實現並列寫入之一群組之自由區塊時,該自由區塊管理單元140根據預定的順序規則而從由該自由區塊管理單元140所管理的自由區塊清單1410 、1411 、...、141m 、...及141n 選擇自由區塊清單141m ,且從經選擇之自由區塊清單141m 獲取自由區塊。
若以由基於順序規則來操作之順序序列所展示的順序從自由區塊清單1410 、1411 、...、141m 、...及141n 中選擇自由區塊清單141m ,則該順序規則較佳為可獲得實現並列寫入的一群組之自由區塊的一規則。
舉例而言,如圖6所展示,考量非揮發性記憶體單元122之晶片之數目為4且該等晶片#0至#3之各者中之平面數目為2的情形。在此情形中,總共存在八個平面P0至P7且在該八個平面中實現並列寫入。若自各平面選擇一個自由區塊,則實現一最大量為8之並列寫入。
在圖6中,各矩形展示一區塊且各矩形中之一圖形指示與該區塊動態相關聯的一位址。在圖6中,一箭頭展示相對於區塊之資料的一寫入方向或者一自由區塊獲取方向。只要未特定提及,此可應用於下文待述的圖式。
舉例而言,識別符「0」至「7」與對應於平面P0至P7的自由區塊清單141m 、141m+1 、...及141m+7 相關聯,且該等識別符係以預定順序配置,且由該等識別符之一序列表示且具有長度8的一順序規則係如所展示般由一表式1產生。預先產生該順序規則且將其保存於一順序規則表格153中。
{0,1,2,3,4,5,6,7} (1)
若表式1中所展示之順序規則循環重複,則即使從一任意部分開始選擇自由區塊清單,仍可選擇實現一最大量為8之並列寫入的自由區塊。舉例而言,如由一表式2所展示,當從該順序規則中由識別符「4」所指示之位置開始選擇自由區塊清單時,可從該識別符「4」之位置開始選擇自由區塊清單,選擇位置可從識別符「7」之位置循環返回至識別符「0」的位置,且可依序選擇該等自由區塊清單直至識別符「3」的位置。
{4,5,6,7,0,1,2,3} (2)
接著,考量在實現並列寫入之一群組的平面上施加限制的情形。在此情形中,可產生一順序規則使得無法實現並列寫入之平面之間該順序規則下之順序序列上的距離儘可能的遠。
舉例而言,如圖7所展示,考量非揮發性記憶體單元122之晶片之數目為4,該等晶片123之各者中之平面之數目為2且該等晶片被分組成2乘2以組態兩個記憶體庫3001 (記憶體庫B0)及記憶體庫3002 (記憶體庫B1)的情形。在下文中,此組態稱為記憶體庫-晶片-平面組態。在該記憶體庫-晶片-平面組態中,在屬於無法實現並列寫入之相同記憶體庫的晶片上施加限制。相應地,在此情形中,最大並列處理,亦即,實現並列寫入之區塊的最大數目為4。
在圖7中,晶片123被區分為各記憶體庫中的晶片C0及晶片C1,且該等晶片123之各者中之平面被區分為平面P0及平面P1。
在圖7中,各平面表示為「B(記憶體庫號碼)C(記憶體庫中之晶片號碼)P(晶片中之平面號碼)」。舉例而言,屬於記憶體庫B0之晶片C0中的平面P0表示為「B0C0P0」。考量產生由下列表式3所展示的一順序規則。在由表式3所展示之順序規則中,藉由選擇各記憶體庫中之一個晶片而實現一最大量為4之並列寫入。
{B0C0P0、B0C0P1、B1C0P0、B1C0P1、B0C1P0、B0C1P1、B1C1P0、B1C1P1} (3)
在表式3中所展示之順序規則中,當從平面P0開始獲取自由區塊時,可獲取自由區塊以實現一最大量為4之並列寫入。舉例而言,當從平面B1C0P0開始獲取自由區塊時,可以平面B1C0P0、平面B1C0P1、平面B0C1P0及平面B0C1P1之順序獲取自由區塊。
同時,當從平面P1開始獲取自由區塊時,可獲取其中僅實現3並列寫入的自由區塊。舉例而言,當從平面B0C0P1開始獲取自由區塊時,實現以平面B0C0P1、平面B1C0P0及平面B1C0P1之順序獲取之自由區塊中的並列寫入。由於下個平面B0C1P0是與從其處開始選擇自由區塊之平面B0C0P1相同的記憶體庫中之不同晶片的一平面,故在屬於平面B0C1P0之自由區塊以及從平面B0C0P1獲取之自由區塊中無法實現並列寫入。
如在對實現並列寫入之平面之群組施加限制的情形中,順序規則可能未變成可一直以最大量並列處理獲取自由區塊的一順序規則。
接著,將詳細描述根據第一實施例的一自由區塊獲取程序。圖8係展示自由區塊之一選擇程序的一流程圖,其中並列寫入係由區塊管理單元131來實現。根據圖8之流程圖之程序對應於上述圖5之流程圖中之步驟S17的程序。在以下描述中,假定在圖5之步驟S16中資料寫入單元133需要所需數目為r的自由區塊。此外,假定先決定順序規則作為預定順序規則。
首先,區塊管理單元131從位置資訊儲存單元154獲取位置資訊Pos(步驟S30),且在從由已獲取之位置資訊Pos所指示之位置的自由區塊清單141m 開始選擇自由區塊時計算最大量的並列處理q(步驟S31)。
最大量並列處理q取決於施加於上述並列寫入實現之平面之群組上之限制以及自由區塊選擇程序的開始位置。亦即,最大量並列處理q取決於非揮發性記憶體單元122中之晶片123之組態或基於記憶體庫之晶片123的操作。
可預先將有關限制或操作之資訊儲存於該區塊管理單元131或非揮發性記憶體單元122的一ROM(唯讀記憶體)(圖式中未展示)中。然而,不僅如此,當可從主機裝置200之側動態設定限制或操作時,可透過介面單元120而從該主機裝置200提供該等限制或該等操作。區塊管理單元131基於位置資訊Pos及指示該等限制或該等操作之資訊而計算最大量的並列處理q。
在下一步驟S32中,將一區塊獲取數目rb與一清單選擇計數i各初始化為0,且程序繼續進行至步驟S33。
在步驟S33中,該區塊管理單元131輸送位置資訊Pos至順序規則操作單元151。該順序規則操作單元151根據該位置資訊Pos及保存於順序規則表格153中之預定順序規則而從由自由區塊管理單元140管理的自由區塊清單1411 、1412 、...、141m 、...及141n 中選擇對應於清單選擇計數i的一個自由區塊清單141m 。在下文中,只要未特定提及,對應於清單選擇計數i之自由區塊清單141m 被描述成一自由區塊清單L(i)。將經選擇之自由區塊清單L(i)送回至區塊管理單元131。
該區塊管理單元131核查從該順序規則操作單元151送回之自由區塊清單L(i)中是否剩餘自由區塊。若判定該自由區塊清單L(i)中未剩餘自由區塊時,則程序繼續進行至步驟S37。在此情形中,無法從該自由區塊清單L(i)獲取自由區塊。
同時,在步驟S34中,若判定在該自由區塊清單L(i)中剩餘自由區塊,則程序繼續進行至步驟S35。在步驟S35中,自由區塊選擇單元150從自由區塊清單L(i)選擇一自由區塊B(i)。該區塊管理單元131獲取已選擇的自由區塊B(i)。在下一步驟S36中,該區塊管理單元131使區塊獲取數目rb依1為單位增加。在下一步驟S37中,該自由區塊選擇單元150使清單選擇計數i依1為單位增加且計數該清單選擇計數。
在下一步驟S38中,位置資訊更新單元152更新保存於位置資訊儲存單元154中的位置資訊Pos;其中位置資訊Pos指示基於順序規則之順序序列上的下一位置。此時,若該下個位置不在基於順序規則之順序序列上的一最終位置,則該位置資訊更新單元152將該下個位置設定成基於該順序規則之順序序列的一頭部。
程序繼續進行至步驟S39且區塊管理單元131判定區塊獲取數目rb是否到達自由區塊所需數目r。當區塊獲取數目rb到達自由區塊所需數目r時,基於圖8之流程圖之一系列程序結束且程序繼續進行至圖5的步驟S18。
同時,當在步驟S39中判定區塊獲取數目rb未到達自由區塊所需數目r,則程序繼續進行至步驟S40。在步驟S40中,區塊管理單元131判定清單選擇計數i是否到達最大量的並列處理q。當判定清單選擇計數i未到達最大量並列處理q時,程序返回步驟S33且執行關於下個自由區塊清單L(i)的一程序。
同時,當判定清單選擇計數i到達最大量並列處理q,則基於圖8之流程圖之程序系列結束且程序繼續進行至圖5的步驟S18。亦即,在此情形中,所獲取之自由區塊數目未到達所需的數目,且無法從由自由區塊管理單元140管理之自由區塊清單1411 、1412 、...、141m 、...及141n 獲取實現並列寫入的一群組之自由區塊。因此,自由區塊選擇程序結束。
根據第一實施例,產生一順序規則使得若以所展示之順序選擇自由區塊清單則可獲取實現並列寫入的一群組之自由區塊。即使從主機裝置重複關於一特定位址的寫入,仍可藉由根據順序規則來獲取自由區塊而抑制平面間之區塊獲取計數的差,且可避免擦除操作集中於特定區塊上。
當在緩衝器記憶體中累積關於複數個不同位址的寫入資料時,可避免寫入操作集中於特定平面上,且可在儘可能多的平面上實行並列寫入。因此,可維持優異的傳送效能。
在以上描述中,管理單元為晶片的獨特實體區塊,諸如自由區塊或作用區塊,但是本發明不限於此實例。舉例而言,如圖9所例示,當總是收集且使用複數個實體區塊時,收集該複數個區塊之一邏輯區塊可用作管理單元。
在圖9中,記憶體庫-晶片-平面組態與上述圖7之組態相同。在圖9中,在記憶體庫B0及記憶體庫B1之各者中,收集且管理晶片C0及晶片C1之數目對應的平面。在記憶體庫B0之實例中,收集且管理晶片C0之平面P0及晶片C1之平面P0作為一平面P0'。同樣地,收集且管理晶片C0之平面P1及晶片C1之平面P1作為一平面P1'。
在此情形中,由記憶體庫B0之平面P0'及平面P1'以及記憶體庫B1之平面P0'及平面P1'實現4並列寫入。順序規則可應用於記憶體庫B0之平面P0'及平面P1'以及記憶體庫B1之平面P0'及平面P1'。
<第二實施例>
接著,將描述一第二實施例。在第二實施例中,其中曾經有序配置全部自由區塊清單(其中可獲取實現最大量並列寫入的一群組之自由區塊)之順序規則被定義成短週期的順序規則。藉由以預定順序配置短週期,產生一新的長週期順序規則。
在第一實施例中所描述之自由區塊選擇方法中,自由區塊數目及作用區塊數目可根據寫入資料之位址型様而在自由區塊清單之間不同。此係因為當覆寫特定位址A時,寫入前之與位址A相關聯之作用區塊B1與為寫入而獲取之自由區塊B2不一定屬於相同平面。
明確言之,當作用區塊B1及自由區塊B2屬於不同平面時,自由區塊清單中之自由區塊之數目在對應於作用區塊B1所屬之平面的自由區塊清單中依1為單位增加,且在對應於自由區塊B2所屬之平面的自由區塊清單中依1為單位減少。
在一常用方法中,由於寫入位址隨機分佈,故假定自由區塊清單之間之自由區塊數目的差並非極大。然而,在第一實施例中所描述之順序規則中,當寫入請求之位址中存在特定型様時,可將自由區塊集中於特定自由區塊清單且可耗盡在其他自由區塊清單中之自由區塊。在此情形中,由自由管理單元131選擇自由區塊時之並列處理降低且傳送效能變差。
舉例而言,當相對於從SSD 100提供至主機裝置200之整個容量而從一頭部位址實行寫入(其稱為全規模依序寫入)時,對應於一特定週期之位址的作用區塊集中於一特定平面上。此將使用圖10A來專門描述。當平面之數目為8時,位址對應於「區塊大小×8」的作用區塊集中於一平面0上。在圖10A之一實例中,對應於位址A0、A8、A16、...之作用區塊集中於一平面P0上。此可應用於其他平面。
此處,考量其中重複位址變為「區塊大小×8」之寫入的情形。在此情形中,用於寫入之自由區塊(圖10A中之陰影部分)係選自全部平面P0至P7。同時,寫入後釋放之作用區塊集中於平面P0上。相應地,如圖10B所例示,在釋放作用區塊後,自由區塊亦集中於平面P0上。
若與屬於特定平面之作用區塊相關聯之位址中存在週期性,則在寫入時維持並列處理或按週期相對於覆寫位址之寫入型様而等化區塊之間之擦除計數可能變困難。
在第二實施例中,改變根據上述第一實施例之順序規則,使得週期性最小化或者週期變長。圖11係示意性展示根據第二實施例之一序列順序產生方法之一實例的一流程圖。
首先,以與第一實施例之方式相同的方式產生順序規則且將其定義為一短週期(步驟S50)。接著,在於步驟S50中所產生之短週期中部分改變基於該順序規則的順序並產生另一短週期(步驟S51)。最後,以複數形式且以預定順序配置步驟S50中所產生的短週期及步驟S51中所產生的另一短週期並產生一新的順序規則(步驟S52)。新順序規則為具有比原始順序規則之週期更長的一週期。亦即,長週期順序規則係基於複數個不同的短週期順序規則而產生。
在步驟S52中,可多次使用短週期與另一短週期之各者且可連續多次使用相同短週期。在步驟S51中,存在可藉由改變短週期之自由區塊清單而產生的大量其他短週期。然而,當在步驟S52中產生新順序規則時,不需要使用可考慮的全部短週期。
接著,將使用一特定實例來描述第二實施例。首先,作為一第一實例,將描述實現並列寫入之平面之數目為2的情形。在下文中,將平面描述成一平面Px(x為等於或多於0的整數)或簡單描述成Px,且將位址描述成一位址Ax或簡單描述成Ax。
參考圖12A,當實現並列寫入之平面之數目為2時,存在以下展示成一短週期A及一短週期B之兩種短週期作為順序規則的短週期。可預先產生各短週期之順序規則且可將其保存於一順序規則表格153中。
短週期A:{P0、P1}
短週期B:{P1、P0}
配置短週期A及短週期B且產生一新的順序規則。圖12B展示其中使用短週期A與短週期B之各者四次且使用8個短週期來產生具有長度16之一順序規則的一實例。參考圖12C,以上情形之順序規則係如由一表式4來展示。位置資訊更新單元152根據配置短週期A及短週期B的新順序規則而更新位置資訊。
{P0、P1、P1、P0、P1、P0、P0、P1、P1、P0、P0、P1、P0、P1、P1、P0} (4)
當根據基於表式4之順序規則而實行上述全規模依序寫入時,如圖13A所例示般將位址分配至諸區塊。亦即,根據該順序規則而將位址A0及位址A1分配至以平面P0與平面P1之順序之平面P0及平面P1的頭部區塊。位址A2及位址A3被分配至以平面P1與平面P0之順序的隨後區塊。在下文中,根據該順序規則而依序分配位址A4、A5、...。
接著,在圖13B中展示其中實行位址變為「區塊大小×k」之週期性寫入的一實例,其中展示有k=2之情形的一實例、k=4之情形的一實例及k=8之情形的一實例。
在k=2之情形中,釋放對應於全規模依序寫入時分配之位址中之位址A0、A2、A4、...的區塊。在k=4之情形中,釋放對應於全規模依序寫入時分配之位址中之位址A0、A4、A8、...的區塊。在k=8之情形中,釋放對應於全規模依序寫入時分配之位址中之位址A0、A8、A16、...的區塊。
若由經釋放之區塊所屬於之平面展示k=2、k=4及k=8之各者,則建立下列表式5至7:
k=2:{P0、P1、P1、P0、P1、P0、P0、P1、...} (5)
k=4:{P0、P1、P1、P0、...} (6)
k=8:{P0、P1、...} (7)
如由表式5至7所展示,即使以實現並列寫入之平面之數目之倍數的週期實行寫入,寫入前之作用區塊仍被抑制而無法集中於特定平面上。然而,當位址週期變為順序規則之長度之一倍數時(本實例之情形中為k=16),寫入前之作用區塊仍集中於特定平面上。
接著,將描述順序規則操作單元151中的一順序規則操作方法。作為順序規則操作單元151之形式,考量使用保存預先產生之順序規則之一表格之一表格方法的兩種類型,以及藉由一操作而計算一順序規則的一操作方法。
在表格方法中,在順序規則表格中預先保存藉由配置具有順序規則之短週期而產生的一新順序規則。順序規則操作單元151參考在由順序規則表格153上之位置資訊Pos所指示之順序規則下順序序列上的位置,且在選擇自由區塊清單時搜尋該自由區塊清單的一識別符。
該操作方法為一種其中順序規則操作單元151透過一操作而從位置資訊Pos產生一自由區塊識別符且產生一順序規則的方法。舉例而言,在平面之數目為2且長度為16之一順序規則之一實例中,可藉由由下列表式8所例示之一操作來判定平面。
該表式8描述基於常用作一程式語言之C語言的一操作序列。在C語言中,不允許有二進制記數。然而,在該表式8中,藉由加入「0b」作為一首碼,「0b」之後的「0」及「1」表示二進制數字。舉例而言,「0b10010110」變成等於十六進制「0x96」記數。在該表式8中,在各列之頭部描述且由一冒號(:)分開之數字之各者指一列數字。收集由列數字「1」至「5」表示之五列來組態該表式8。雙斜線(//)後之內容描述個別列。
1:pattern=0b10010110;//表示短週期之順序之二進制數字
2:y=pos/2;//一短週期之順序
3:x=pos%2;//短週期中之一短週期之順序
4:period_id=(pattern>>y)&0b1;//待使用之短週期
5:plane_id=period_id^x;//短週期中之短週期識別符與順序之互斥運算
 (8)
在該表式8中,值pos為指示位置資訊的一值且採用0至15之一範圍中的值。值period_id係指示短週期的一值,且假定一值0指示短週期A且一值1指示短週期B。值plane_id指示以此順序選擇之平面的一數目。在表式8之實例中,短週期A及短週期B中之順序規則係由第5列表示。
接著,將描述實現並列寫入之平面之數目為大的情形。當實現並列寫入之平面之數目為大時,順序變化之短週期之數目增加。此時,當組合短週期且產生一順序規則時,無需使用待考量的短週期之全部。當自由區塊清單之選擇開始位置在短週期之中間時,可在一不同短週期上實行自由區塊清單的選擇。甚至在此情形中,較佳選擇短週期使得最大量維持並列處理並配置短週期。
舉例而言,考量其中平面之數目為8且不對平面間之並列寫入施加限制的情形。在此情形中,待考量之短週期之數目變為8。
若以下列表式9及表式10之順序配置由該表式9及該表式10所展示的短週期(由對應於平面之自由區塊清單之識別符展示),則當在由該表式9所展示之短週期上且在由該表式10所展示之短週期上實行自由區塊之選擇時,持續選擇平面P7的自由區塊清單。為此原因,無法選擇在該兩個短週期上實現並列寫入的一群組之區塊。
{0、1、2、3、4、5、6、7} (9)
{7、0、1、2、3、4、5、6} (10)
因此,選擇並配置短週期,使得連續選擇位置處之自由區塊清單之識別符不會變得相同。藉此,即使在短週期上實行自由區塊之選擇,仍可選擇實現並列寫入的一群組之自由區塊。
舉例而言,考量由下列表式11及表式12所展示的短週期。相對於由表式11所展示之順序規則,由表式12所展示之順序規則可視為藉由依7為單位推進該順序而獲得的一順序規則。若以表式11及表式12之順序配置由該表式11及該表式12所展示的短週期,則連續實行選擇之該表式11之一尾部之一識別符及該表式12之一頭部之一識別符互相不同。為此原因,甚至當在由該表式11所展示之短週期及由該表式12所展示之短週期上實行選擇時,仍可選擇實現並列寫入的一群組之自由區塊。甚至當在該等短週期上實行選擇時,仍可選擇具有並列寫入能力為7之並列寫入的一群組之區塊。
{0、1、2、3、4、5、6、7} (11)
{1、2、3、4、5、6、7、0} (12)
圖14展示當平面之數目為8(平面P0至P7)且未對該等平面之間之並列寫入施加限制時一順序規則的一實例。該等平面P0至P7係與不同自由區塊清單之識別符P0至P7相關聯。在圖14之實例中,配置基於一順序規則{P0、P1、P2、P3、P4、P5、P6、P7}且使用識別符P0作為一頭部且使用識別符P7作為一尾部的一短週期A,以及相對於該短週期A而藉由在該順序規則上依7為單位推進順序而獲得的短週期B、C、...、H,並產生一新的順序規則。藉由配置含諸順序規則之不同短週期,可抑制自由區塊集中於特定平面上。
在圖14之實例中,在新的順序規則中,重複配置短週期A至H之各者四次,且短週期之總數目變為32且長度變為256。可重複多次配置相同短週期。在重複配置相同短週期之一範圍中,實現8之並列寫入。
個別短週期A至H較佳經配置使得在不同短週期上實行自由區塊清單之選擇時之並列處理最大化。在圖14之實例中,當不同短週期互相鄰近時,產生短週期之順序規則使得在自由區塊清單之選擇順序中,依7為單位推進短週期之順序規則中的順序。在此情形中,甚至當在該等短週期上實行自由區塊清單之選擇時,仍可選擇實現具有7之並列處理之並列寫入的一群組之自由區塊。
接著,將描述第二實施例應用於對使用第一實施例中圖7所描述之記憶體庫-晶片-平面組態中之並列寫入施加限制之情形的一實例。如上所述,在此情形中,最大量並列寫入能力係根據從其處開始獲取自由區塊的平面而變化。
圖15展示記憶體庫-晶片-平面組態中之一順序規則的一實例。在圖15之實例中,記憶體庫之數目為4(B0至B3)、該等記憶體庫之各者中之晶片之數目為2(C0及C1)、該等晶片之各者中之平面之數目為2(P0及P1),且平面之總數目為16。在此情形中,由於施加指示相對於相同記憶體庫中之不同晶片無法實現並列寫入的限制,故最大量並列寫入能力為8。
在圖15中,對應於各平面之自由區塊清單之一識別符係藉由組合一記憶體庫號碼、一晶片號碼及一平面號碼而由「B0C0P0」來表示。
在圖15之實例中,改變短週期中之平面號碼、記憶體庫號碼及晶片號碼之順序且產生各短週期之一順序規則,藉此最大化並列處理。舉例而言,短週期A之一順序規則為{B0C0P0、B0C0P1、B1C0P0、B1C0P1、B2C0P0、B2C0P1、B3C0P0、B3C0P1、B0C1P0、B0C1P1、B1C1P0、B1C1P1、B2C1P0、B2C1P1、B3C1P0、B3C1P1}。
類似於使用圖7所描述之實例,在圖15所例示之順序規則中,當從平面P0開始獲取自由區塊時,實現8並列寫入。同時,當從平面P1開始獲取自由區塊時,由於施加指示相對於相同記憶體庫中之不同晶片之平面P0及P1無法實現並列寫入的限制,故並列寫入限制在7並列寫入。
預備僅改變短週期A之平面號碼而未改變其記憶體庫號碼及晶片號碼的短週期B。為防止自由區塊歸因於相對於週期性位址之寫入而集中於特定記憶體庫上,預備記憶體庫之順序相對於個別短週期A及短週期B而變化的短週期C至H。由於在對記憶體庫順序不同之短週期上實行選擇時並列處理限制在5或6,故連續配置具有相同記憶體庫號碼順序的短週期,且產生一新的順序規則。明確言之,連續配置短週期A及具有與該短週期A之記憶體庫號碼序列相同之記憶體庫號碼順序的短週期B。同樣,分別連續配置短週期C與短週期D、短週期E與短週期F及短週期G與短週期H。
在以上描述中,藉由表格方法或操作方法而預先產生其中短週期被配置預定量次數的順序規則,然而本發明不限於此實例。舉例而言,可使用隨機數動態計算順序規則。
圖16A至圖16C展示使用一二進制隨機數序列來計算一順序規則的一實例。在圖16A至圖16C之一實例中,若在各短週期中一隨機值之一值為0,則使用該二進制隨機數序列而將該序列順序計算成短週期A,且若一隨機值之一值為1,則使用該二進制隨機數序列而將該序列順序計算成短週期B。當根據二進制隨機數序列計算順序規則時,若二進制隨機數序列為擬隨機數,則該順序規則之長度變為「擬隨機數之週期×平面之數目」。相應地,甚至在屬於特定平面之作用區塊相關聯之位址中存在週期性時,其中對應位址之作用區塊係集中於該特定平面上的一週期變得相當長,且此不會造成問題。
類似於以上情形,甚至在使用隨機數計算順序規則時,表格方法及操作方法仍視為順序規則操作單元151的形式。在表格方法中,可將一隨機數表格保存為順序規則表格153中的順序規則。
在操作方法之情形中,在順序規則操作單元151中,可預備一隨機數操作符且可使用隨機數而操作待使用的一短週期。舉例而言,可由藉由下列表式13所展示之一操作來判定基於隨機數的平面。由於該方法之意義及表式13之各值與上述表式8之方法及值是共同的,故本文將不再重複描述。
1:y=pos/2;//一短週期之順序
2:x=pos%2;//諸短週期中之一短週期之順序
3:period_id=rand()&0b1;//基於隨機數判定待使用之一短週期
4:plane_id=period_id^x;//短週期中之短週期識別符與順序之互斥邏輯和
 (13)
根據第二實施例,以預定順序配置具有順序規則的短週期且產生具有一更長週期的一新順序規則。為此原因,甚至當在來自主機裝置之寫入位址中存在週期性時,仍可抑制自由區塊清單之間之自由區塊數目與作用區塊數目的差。在第二實施例中,由於最大量並列處理係組態成在配置數個短週期時最大化,故可維持傳送效能。
<第三實施例>
接著,將描述一第三實施例。在上述第二實施例中,順序規則保存單元中所保存至順序規則變長以隱藏自由區塊清單之選擇中的週期性。該第三實施例藉由修改位置資訊更新方法而達成相同效果。
當現狀與預定條件匹配時,第三實施例跳過順序規則中的一特定順序。作為該順序規則之跳過條件,可應用多種條件。接著,將針對各平面而描述在一位置資訊更新數目到達一預定數目時跳過順序規則的一第一方法,以及在一自由區塊獲取數目到達一預定數目時跳過順序規則的一第二方法。假定例如針對自由區塊選擇單元150預先判定順序規則的跳過條件。
首先,將使用圖17之一流程圖來描述在位置資訊更新數目到達預定數目時跳過順序規則的第一方法。圖17之流程圖對應於上述圖5之流程圖中步驟S17的程序。圖17之流程圖與第一實施例所述之圖8之流程圖的不同之處在於加入了一跳過程序。
在圖17之流程圖中,將一特定時間點之一位置資訊更新數目設定為一位置資訊更新數目tPos且將其初始值設定為0。將用來判定是否跳過順序規則之位置資訊更新數目tPos之一臨限值設定成為一預定值的一跳過臨限sPos。此外,假定所需數目r之自由區塊係從圖5之步驟S16中的資料寫入單元133獲取,且順序規則被預先判定為預定順序規則。
首先,區塊管理單元131從位置資訊儲存單元154獲取位置資訊Pos(步驟S60),並在從由已獲取之位置資訊Pos所指示之位置的自由區塊清單141m 中開始選擇自由區塊時計算最大量並列處理q(步驟S61)。由於計算最大量並列處理q之方法與圖8之步驟S31中所繪示之方法是共同的,故本文將不再重複描述。
在下一步驟S62中,區塊管理單元131將一區塊獲取數目rb與一清單選擇計數i之各者初始化為0,且造成程序繼續進行至步驟S63。在步驟S63中,順序規則操作單元151根據從區塊管理單元131所輸送之位置資訊Pos及預定順序規則而從由該自由區塊管理單元140所管理的自由區塊清單1411 、1412 、...、141m 、...及141n 選擇一個自由區塊清單L(i),且將已選擇之自由區塊清單L(i)送回至該區塊管理單元131。
該區塊管理單元131核查從該順序規則操作單元151送回之自由區塊清單L(i)中是否剩餘自由區塊。當判定該自由區塊清單L(i)中未剩餘自由區塊時,程序繼續進行至步驟S67。
同時,在步驟S64中,當判定在該自由區塊清單L(i)中剩餘自由區塊時,程序繼續進行至步驟S65。在步驟S65中,自由區塊選擇單元150從自由區塊清單L(i)選擇一自由區塊B(i)。該區塊管理單元131獲取已選擇的自由區塊B(i)。在下一步驟S66中,該區塊管理單元131使區塊獲取數目rb依1為單位增加。在下一步驟S67中,該自由區塊選擇單元150使清單選擇計數i依1為單位增加且計數該清單選擇計數i。
在下一步驟S68中,位置資訊儲存單元154更新保存於位置資訊儲存單元154中的位置資訊Pos,其中位置資訊Pos指示基於順序規則之順序序列上的下一位置。此時,若該下個位置不在基於順序規則之順序序列上的一最終位置,則該位置資訊更新單元152將該下個位置設定成基於該順序規則之順序序列的一頭部。
若位置資訊Pos經更新,則程序繼續進行至步驟S69且該自由區塊選擇單元150使位置資訊更新數目tPos依1為單位增加。在下一步驟S70中,該自由區塊選擇單元150判定該位置資訊更新數目tPos是否等於或多於一跳過臨限值sPos。
當判定位置資訊更新數目tPos等於或多於跳過臨限值sPos時,程序繼續進行至步驟S71,該位置資訊更新單元152將位置資訊更新數目tPos初始化成0,且程序返回步驟S67。程序係藉由步驟S70中之判定而返回步驟S67且執行基於位置資訊更新數目tPos的順序規則之跳過。
同時,當在步驟S70中判定位置資訊更新數目tPos少於跳過臨限值sPos時,程序繼續進行至步驟S72。在步驟S72中,區塊管理單元131判定區塊獲取數目rb是否到達自由區塊所需數目r。當區塊獲取數目rb到達自由區塊所需數目r時,基於圖17之流程圖的一系列程序結束且程序繼續進行至圖5之步驟S18。
同時,當判定區塊獲取數目rb未到達自由區塊所需數目r,則程序繼續進行至步驟S73。在步驟S73中,區塊管理單元131判定清單選擇計數i是否到達最大量的並列處理q。當判定清單選擇計數i未到達最大量並列處理q,則程序返回步驟S63且執行關於下個自由區塊清單L(i)的一程序。
同時,當判定清單選擇計數i到達最大量並列處理q,則基於圖17之流程圖之程序系列結束且程序繼續進行至圖5的步驟S18。
圖18展示根據基於上述圖17之流程圖之程序來實行順序規則之跳過的一實例。在圖18中,平面之數目為8且實現8並列寫入。原始順序規則為僅重複短週期{0、1、2、3、4、5、6、7}的一順序序列。圖18展示用下個位置更新位置資訊Pos且跳過順序規則的一實例,在此情形中,跳過臨限值sPos設定成32個區塊且位置資訊更新數目tPos變為32。
在圖18之一實例中,若以原始序列規則之順序序列從第32個平面P7獲取自由區塊,則跳過從接下來之第33個平面P0獲取自由區塊。另外,若位置資訊更新數目tPos被初始化為0,則重新開始累積位置資訊更新數目tPos,且該位置資訊更新數目tPos變為32,用下個位置更新該位置資訊Pos且跳過順序規則。在此情形中,跳過以原始順序規則之順序序列從第66個平面P1獲取自由區塊。
明確言之,首先,若以原始順序規則之順序序列從第32個平面P7獲取自由區塊,則位置資訊更新數目tPos變為32,且在圖17之流程圖中程序透過步驟S71而從步驟S70返回步驟S67。在步驟S68中,更新位置資訊Pos,且程序透過步驟S69至步驟S73之程序而返回步驟S63。藉由步驟S70之判定而在不獲取自由區塊的情况下更新位置資訊Pos,且跳過順序規則。
較佳將跳過臨限值sPos設定成順序規則之長度的一倍數以等化自由區塊清單間之跳過頻率。亦即,當將跳過臨限值sPos設定成順序規則之長度之倍數時,若或獲取對應於該順序規則之長度之數目的自由區塊,則跳過下個平面且從跳過平面之下個平面獲取對應於該順序規則之長度之數目的自由區塊。藉此,在跳過位置處由一個平面平移順序規則且等化該等區塊之間的擦除計數。
同時,若將跳過臨限值sPos設定成(順序規則之長度之一倍數)-1,則僅在特定自由區塊清單中產生跳過,且此不可取。
接著,將使用圖19之流程圖來描述第三實施例中的第二方法。當自由區塊獲取數目到達各平面之預定數目時,該方法跳過順序規則。除了執行跳過程序之時序之外,基於圖19之流程圖之程序大體上與基於根據上述第一方法之圖17之流程圖的程序相同。亦即,在第二實施例中,針對各平面而執行順序規則之跳過條件的判定以控制各平面的跳過頻率。
在此方法中,為各自由區塊清單L引入區塊獲取得分t[L]。當從自由區塊清單獲取時t[L]以得分增值w[L]之單位增加。若t[L]到達跳過臨限值s[L],則跳過自由區塊清單L的順序。針對各平面而將得分增值w[L]、區塊獲取得分t[L]及跳過臨限值s[L]保存於區塊管理單元131中。
首先,區塊管理單元131從位置資訊儲存單元154獲取位置資訊Pos(步驟S80),且在從由所獲取之位置資訊Pos所指示之位置之自由區塊清單141m 開始選擇自由區塊時計算最大量並列處理q(步驟S81)。由於計算最大量並列處理q之方法與圖8之步驟S31中所繪示之方法是共同的,故本文將不再重複描述。
在下一步驟S82中,將一區塊獲取數目rb與一清單選擇計數i各初始化為0,且程序繼續進行至步驟S83。在步驟S83中,順序規則操作單元151根據自區塊管理單元131輸送之位置資訊Pos及預定順序規則而從由自由區塊管理單元140管理的自由區塊清單1411 、1412 、...、141m 、...及141n 中選擇一個自由區塊清單L(i),且送回所選擇之自由區塊清單L(i)至該區塊管理單元131中。
在下一步驟S84中,該自由區塊選擇單元150比較區塊獲取得分t[L(i)]與跳過臨限值s[L(i)],且判定區塊獲取得分t[L(i)]是否等於或多於跳過臨限值s[L(i)]。在步驟S93中,若判定區塊獲取得分t[L(i)]等於或多於跳過臨限值s[L(i)],便將藉由從區塊獲取得分t[L(i)]減去跳過臨限值s[L(i)]而獲得的一值設定成一新區塊獲取得分t[L(i)],且程序繼續進行至步驟S89。由於在判定區塊獲取得分t[L(i)]等於或多於跳過臨限值s[L(i)]時程序繼續進行至步驟S89,故在對應於自由區塊清單L(i)之平面中跳過順序規則。
同時,在步驟S84中,當判定區塊獲取得分t[L(i)]小於跳過臨限值s[L(i)]時,程序繼續進行至步驟S85。在步驟S85中,區塊管理單元131核查從順序規則操作單元151送回之自由區塊清單L(i)中是否剩餘自由區塊。當判定該自由區塊清單L(i)中未剩餘自由區塊時,程序繼續進行至步驟S89。
同時,在步驟S85中,當判定該自由區塊清單L(i)中剩餘自由區塊時,程序繼續進行至步驟S86。在步驟S86中,該自由區塊選擇單元150從該自由區塊清單L(i)選擇一自由區塊B(i)。該區塊管理單元131獲取所選擇的自由區塊B(i)。
在下一步驟S87中,使區塊獲取數目rb依1為單位增加。在下一步驟S88中,自由區塊選擇單元150將藉由將得分增加值w[L(i)]加入至區塊獲取得分t[L(i)]而獲得的一值設定成一新區塊獲取得分t[L(i)]。程序繼續進行至步驟S89且自由區塊選擇單元150使清單選擇計數i依1為單位增加且計算清單選擇計數i。
在下一步驟S90中,位置資訊更新單元152更新保存於位置資訊儲存單元154中的位置資訊Pos,其中位置資訊Pos指示基於順序規則之順序序列上的下一位置。此時,若該下個位置不在基於順序規則之順序序列上的一最終位置,則該位置資訊更新單元152將該下個位置設定成基於該順序規則之順序序列的一頭部。
若位置資訊經更新,則程序繼續進行至步驟S91且區塊管理單元131判定區塊獲取數目rb是否到達自由區塊所需數目r。當區塊獲取數目rb到達自由區塊所需數目r時,基於圖19之流程圖之一系列程序結束且程序繼續進行至圖5的步驟S18。
同時,當在步驟S91中判定區塊獲取數目rb未到達自由區塊所需數目r,則程序繼續進行至步驟S92。在步驟S92中,區塊管理單元131判定清單選擇計數i是否到達最大量並列處理q。當判定清單選擇計數i未到達最大量並列處理q,則程序返回步驟S83且執行關於下個自由區塊清單L(i)的一程序。
同時,當判定清單選擇計數i到達最大量並列處理q,則基於圖19之流程圖之程序系列結束且程序繼續進行至圖5的步驟S18。
當複數個自由區塊清單L具有得分增加值w[L]及含有相同值之跳過臨限值s[L]時,若區塊獲取得分s[L]之初始值亦被設定成相同值(例如,0),則由於在相同時序上實行複數個自由區塊清單之跳過,故此為不可取的。為此原因,可針對各自由區塊清單L而將區塊獲取得分s[L]之初始值設定成一不同值。
圖20A及圖20B展示根據基於上述圖19之流程圖之程序而實行順序規則上之跳過的一實例。圖20A展示設定成平面P0至P7之各者的區塊獲取得分t[L]之一初始值、得分增加值w[L]及跳過臨限值s[L]。類似於上述圖18,圖20B展示平面數目為8、實現8並列寫入且原始順序規則變為僅重複一短週期{0、1、2、3、4、5、6、7}之一順序序列的一實例。
在圖20A之實例中,得分增加值w[L]固定為1且跳過臨限值s[L]可針對各平面而不同。區塊獲取得分t[L]展示各平面中的一自由區塊獲取數目且跳過臨限值s[L]展示產生順序規則之跳過之平面中的一自由區塊獲取數目。
在圖20A之實例中,僅在平面P6中將跳過臨限值s[L]設定成8且在其他平面中將其設定成32。為此原因,如圖20B所例示,平面P6可相對於其他平面而增加跳過之頻率。在圖20B之實例中,在平面P6中,當短週期重複16次時,產生兩次跳過。同時,在其他平面中,跳過之頻率變成等於或小於1。
可針對各平面而設定一不同值作為區塊獲取得分t[L]之初始值。在圖20A之實例中,在個別平面P0至P7中,按藉由將跳過臨限值s[L](=32)除去平面數目(=8)所獲得之一值(=4)而平移區塊獲取得分t[L]的初始值。藉此,在除平面P6之七個平面中,跳過之相位平移4個短週期。舉例而言,在圖20B之實例中,在相對於區塊獲取得分t[P0]之初始值28的第五個短週期中發生平面P0的跳過,且在相對於區塊獲取得分t[P1]之初始值24的第九個短週期中發生平面P1的跳過。同樣,在相對於區塊獲取得分t[P2]之初始值20的第13個短週期中發生平面P2的跳過。
與上述圖20A及圖20B之實例相反,圖21A及圖21B展示跳過臨限值s[L]為固定且得分增加值w[L]可針對各平面而變化的一實例。如圖21A所例示,跳過臨限值s[L]固定為100,且僅平面P6之得分增加值w[L]變為25且其他平面之得分增加值變為3。區塊獲取得分t[L]之初始值係基於藉由將跳過臨限值s[L](=100)除以平面數目(=8)所獲得的一值(=12.5)而平移。在此情形中,可看到在得分增加值w[L]增加時跳過之頻率增加。
根據第三實施例,即使順序規則不複雜且不具有長週期,該順序規則之週期看起來仍為長且不規則,且可隱藏自由區塊清單之選擇中的週期性。
舉例而言,當僅特定平面之總區塊數目或自由區塊數目為小時,若將跳過臨限值s[L]設定成一小值或者將得分增加值w[L]設定成一大值,則可抑制自由區塊之獲取頻率。藉此,可期望等化各區塊的擦除計數或等化各平面的剩餘自由區塊數目。
<第三實施例之修改例>
接著,將描述第三實施例的一修改例。該第三實施例之修改例為第二實施例與第三實施例的一組合實例。圖22展示將在上述圖15之實例中使用之記憶體庫-晶片-平面組態(且其中記憶體庫數目為4、憶體庫之各者中之晶片數目為2、晶片之各者中之平面數目為2且總平面數目為16)應用於該第三實施例之修改例的一實例。
在第二實施例中所描述之圖15之實例中,由於在順序規則中亦包含記憶體庫順序變化的短週期,故順序規則極長且複雜。同時,在根據例示於圖22之第三實施例之修改例之順序規則中,由於改變記憶體庫順序之效果係藉由跳過來實現,故順序規則具有組合短週期A與短週期B之兩個短週期的簡單組態。
明確言之,如第二實施例中使用圖15所述,順序規則操作單元151以平面數目、記憶體庫數目及晶片數目之順序改變短週期,且產生各短週期的一順序規則。舉例而言,短週期A之順序規則變為{B0C0P0、B0C0P1、B1C0P0、B1C0P1、B2C0P0、B2C0P1、B3C0P0、B3C0P1、B0C1P0、B0C1P1、B1C1P0、B1C1P1、B2C1P0、B2C1P1、B3C1P0、B3C1P1}。短週期B係藉由僅改變短週期A之平面數目而未改變短週期A之記憶體庫數目及晶片數目來產生。
如上所述,順序規則操作單元151以藉由表格方法、操作方法或使用隨機數之方法來獲得之順序而配置短週期A及短週期B,且產生一新的順序規則。藉此,產生短週期之數目為8且長度為128的一順序規則。
同時,藉由上述第三實施例之第一方法或第二方法,無論何時獲取自由區塊(例如128個區塊)皆將順序規則設定為跳過。以此方式,無論何時跳過順序規則皆可實現改變記憶體庫順序的效果。
如上所述,當從主機裝置重複相對於特定位址的寫入時,可抑制平面間之自由區塊獲取之差且可避免擦除計數集中於特定區塊中。
由於相對於儘可能多之平面實行並列寫入,故當在緩衝器記憶體中累積相對於複數個不同位址之寫入資料時,可抑制寫入集中於特定平面上,且可維持優越的傳送效能。
配置短週期且加長順序規則之週期。為此原因,即使當在來自主機裝置之寫入位址中存在週期性,仍可抑制自由區塊清單之間之自由區塊數目與作用區塊數目的差。當配置短週期時,由於最大量地實施並列處理,故可維持傳送效能。
雖然已描述特定實施例,但是僅以實例而呈現此等實施例,且該等實施例無意限制本發明之範疇。實際上,可以多種其他形式具體化本發明所描述的新穎實施例;此外,可在不脫離本發明之精神下作出以本文所述之實施例之形式的各種省略、替代及變化。隨附申請專利範圍及其等效物意欲涵蓋在本發明之範疇及精神範圍內的此類形式或修改。
100...固態碟/SSD
110...匯流排
120...介面單元
121...緩衝器記憶體
122...非揮發性記憶體單元
123...晶片
130...控制單元
131...區塊管理單元
132...資料讀取單元
133...資料寫入單元
134...資料管理單元
135...NAND碟
140...自由區塊管理單元
141...自由區塊清單
150...自由區塊選擇單元
151...順序規則操作單元
152...位置資訊更新單元
153...順序規則保存單元
154...位置資訊儲存單元
200...電腦
201...本體
202...顯示器單元
203...顯示器外殼
204...顯示器件
205...罩殼
206...鍵盤
207...觸控墊
208...開口
3001 ...記憶體庫
3002 ...記憶體庫
圖1係展示可應用根據各實施例之一記憶體系統之一電腦之一實例的一示意圖;
圖2係展示可應用於各實施例之一SSD之組態之一實例的一方塊圖;
圖3A及3B係明確展示一晶片之一實例之組態的圖;
圖4A及圖4B係繪示位址與區塊之間之關聯的示意圖;
圖5係展示根據各實施例之一資料寫入程序之一實例的一流程圖;
圖6係繪示一順序規則的一示意圖;
圖7係展示記憶體庫-晶片-平面組態的一示意圖;
圖8係展示實現並列寫入之一自由區塊之一選擇程序之一實例的一示意流程圖;
圖9係展示總是集體性使用複數個實體區塊之一實例的一示意圖;
圖10A及圖10B係展示以一預定週期實行位址之寫入之一實例的示意圖;
圖11係展示根據一第二實施例之一順序規則產生方法的一示意流程圖;
圖12A至圖12C係展示配置短週期且產生一新順序規則之一實例的一示意圖;
圖13A及圖13B係展示根據第二實施例之在一預定週期下之位址之寫入之一實例的一示意圖;
圖14係展示平面數目為大時根據第二實施例之一順序規則之一實例的一示意圖;
圖15係展示記憶體庫-晶片-平面組態之一順序規則之一實例的一示意圖;
圖16A至圖16C係展示使用一二進制隨機數序列計算一順序規則之一實例的一示意圖;
圖17係展示跳過一第三實施例之一第一方法之一順序規則之一程序之一實例的一流程圖;
圖18係展示跳過第三實施例之第一方法之順序規則之一實例的一示意圖;
圖19係展示跳過一第三實施例之一第二方法之一順序規則之一程序之一實例的一流程圖;
圖20A及圖20B係展示跳過第三實施例之第二方法之順序規則之一實例的示意圖;
圖21A及圖21B係展示跳過第三實施例之第二方法之順序規則之另一實例的示意圖;及
圖22係展示根據第三實施例之一修改例之一順序規則之一實例的一示意圖。
100...固態碟/SSD
110...匯流排
120...介面單元
121...緩衝器記憶體
122...非揮發性記憶體單元
123...晶片
130...控制單元
131...區塊管理單元
132...資料讀取單元
133...資料寫入單元
134...資料管理單元
135...NAND碟
140...自由區塊管理單元
141...自由區塊清單
150...自由區塊選擇單元
151...順序規則操作單元
152...位置資訊更新單元
153...順序規則保存單元
154...位置資訊儲存單元

Claims (9)

  1. 一種記憶體系統,其包括:包含複數個儲存區域之一非揮發性記憶體,該複數個儲存區域各包含各為一資料擦除單元的複數個區塊,該非揮發性記憶體經組態使得相對於包含於該等不同儲存區域中之該等區塊實現並列寫入;一管理單元,其針對該等儲存區域之各者保存指示未儲存有效資料之區塊之自由區塊的一自由區塊清單;一順序規則保存單元,其保存用來判定該等自由區塊清單之一順序之資訊的一順序規則;一位置資訊儲存單元,其儲存指示按該順序規則之該自由區塊清單之位置的位置資訊;一清單選擇單元,其選擇對應於由該位置資訊所指示之該位置的該自由區塊清單;一區塊選擇單元,其從由該清單選擇單元所選擇之該自由區塊清單中選擇該自由區塊;一寫入單元,其在由該區塊選擇單元所選擇之該自由區塊中寫入資料;及一更新單元,其在由該清單選擇單元選擇該自由區塊清單之後,以指示該隨後選擇之自由區塊清單之位置的位置資訊來更新該位置資訊儲存單元中儲存的該位置資訊。
  2. 如請求項1之系統,其中若在選擇該自由區塊時滿足該自由區塊選擇單元中判定之一預定條件,則該區塊選擇單元跳過該自由區塊的選擇;且當該區塊選擇單元跳過該自由區塊之選擇時該更新單元進一步更新該位置資訊。
  3. 如請求項2之系統,其中該區塊選擇單元針對該等自由區塊清單之各者而計數由該清單選擇單元選擇該自由區塊清單的次數,且在由該清單選擇單元選擇該自由區塊清單且計數該經選擇之清單之該等次數等於或多於一臨限值時,跳過該自由區塊清單中之該自由區塊的選擇。
  4. 如請求項2之系統,其中該區塊選擇單元計數該更新單元更新該位置資訊的次數,且在該經計數之次數等於或多於一臨限值時跳過該自由區塊之選擇。
  5. 如請求項2之系統,其中該位置資訊儲存單元儲存指示基於使用複數個不同順序規則來產生之一長週期順序規則而判定之該等自由區塊清單之該順序的位置資訊。
  6. 如請求項5之系統,其中該清單選擇單元透過使用該複數個順序規則及該位置資訊之一操作而選擇該自由區塊清單。
  7. 如請求項5之系統,其中該順序規則保存單元保存預先產生的該長週期順序規則;且該清單選擇單元參考該順序規則保存單元中保存之該長週期順序規則且選擇該自由區塊清單。
  8. 如請求項5之系統,其中該清單選擇單元使用隨機數動態產生該長週期順序規則且使用該經產生之長週期順序規則而選擇該自由區塊清單。
  9. 一種記憶體系統,其包括:包含複數個儲存區域之一非揮發性記憶體,該複數個儲存區域各包含各為一資料擦除單元的複數個區塊,該非揮發性記憶體經組態使得相對於包含於該等不同儲存區域中之該等區塊實現並列寫入;一管理單元,其針對該等儲存區域之各者保存指示未儲存有效資料之區塊之自由區塊的一自由區塊清單;一順序規則保存單元,其保存用來判定自由區塊清單之一順序之資訊的一順序規則;一位置資訊儲存單元,其儲存指示按該順序規則之該自由區塊清單之位置的位置資訊;一清單選擇單元,其選擇對應於由該位置資訊所指示之該位置的該自由區塊清單;一區塊選擇單元,其從由該清單選擇單元所選擇之該自由區塊清單中選擇該自由區塊;一寫入單元,其在由該區塊選擇單元所選擇之該自由區塊中寫入資料;及一更新單元,其在由該清單選擇單元選擇該自由區塊清單之後,以指示該隨後選擇之清單之位置的位置資訊來更新該位置資訊儲存單元中儲存的該位置資訊;其中該位置資訊儲存單元儲存指示基於使用複數個不同順序規則來產生之一長週期順序規則而判定之各自由區塊清單之該順序的位置資訊。
TW100104807A 2010-02-26 2011-02-14 記憶體系統 TWI464586B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010043299A JP4987997B2 (ja) 2010-02-26 2010-02-26 メモリシステム

Publications (2)

Publication Number Publication Date
TW201205289A TW201205289A (en) 2012-02-01
TWI464586B true TWI464586B (zh) 2014-12-11

Family

ID=44490625

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100104807A TWI464586B (zh) 2010-02-26 2011-02-14 記憶體系統

Country Status (5)

Country Link
US (1) US8583856B2 (zh)
JP (1) JP4987997B2 (zh)
KR (1) KR101277382B1 (zh)
CN (1) CN102169461B (zh)
TW (1) TWI464586B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5609683B2 (ja) * 2011-01-31 2014-10-22 ソニー株式会社 メモリ装置およびメモリシステム
JP6139065B2 (ja) * 2012-05-31 2017-05-31 株式会社東芝 映像処理装置及び映像処理方法
JP6041610B2 (ja) * 2012-10-02 2016-12-14 キヤノン株式会社 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN103034603B (zh) * 2012-12-07 2014-06-18 天津瑞发科半导体技术有限公司 多通道闪存卡控制装置及其控制方法
JP5994647B2 (ja) * 2013-01-11 2016-09-21 三菱電機株式会社 データ記録装置、及びデータ記録方法
JP5804584B1 (ja) * 2014-10-30 2015-11-04 ウィンボンド エレクトロニクス コーポレーション Nand型フラッシュメモリのプログラム方法
CN105117169B (zh) * 2015-08-20 2018-07-06 浪潮(北京)电子信息产业有限公司 一种优化的磁盘空间管理的方法及装置
JP6414852B2 (ja) * 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
KR102601211B1 (ko) 2016-06-01 2023-11-10 삼성전자주식회사 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법
KR101963629B1 (ko) * 2016-07-07 2019-03-29 고려대학교 산학협력단 메모리 관리 시스템 및 그 방법
JP7010667B2 (ja) * 2017-11-06 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
US11126368B2 (en) * 2019-04-30 2021-09-21 Western Digital Technologies, Inc. Systems and methods for finding a last good page in NAND open block
US11599298B1 (en) * 2021-09-23 2023-03-07 Western Digital Technologies, Inc. Storage system and method for prediction-based pre-erase of blocks to improve sequential performance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200813809A (en) * 2005-12-21 2008-03-16 Sandisk Corp Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2119788C (en) * 1992-07-24 1996-12-31 Peter L. Morse Computer method and system for allocating and freeing memory
US5623654A (en) * 1994-08-31 1997-04-22 Texas Instruments Incorporated Fast fragmentation free memory manager using multiple free block size access table for a free list
JP2000122923A (ja) * 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
CN100343826C (zh) * 2003-04-29 2007-10-17 华为技术有限公司 一种实现内存管理的方法
US9213627B2 (en) * 2005-12-21 2015-12-15 Nxp B.V. Non-volatile memory with block erasable locations
JP4171749B2 (ja) * 2006-04-17 2008-10-29 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム
JP2007334413A (ja) * 2006-06-12 2007-12-27 Sony Corp 記憶装置
WO2008087634A1 (en) * 2007-01-18 2008-07-24 Sandisk Il Ltd. A method and system for facilitating fast wake-up of a flash memory system
KR101103201B1 (ko) * 2008-02-29 2012-01-05 가부시끼가이샤 도시바 메모리 시스템
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
US20090271564A1 (en) * 2008-04-25 2009-10-29 Hitachi, Ltd. Storage system
CN101339808B (zh) * 2008-07-28 2011-02-09 华中科技大学 存储块的擦除方法及装置
CN101354681B (zh) * 2008-09-23 2010-12-01 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200813809A (en) * 2005-12-21 2008-03-16 Sandisk Corp Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system

Also Published As

Publication number Publication date
CN102169461A (zh) 2011-08-31
KR20110098623A (ko) 2011-09-01
US8583856B2 (en) 2013-11-12
CN102169461B (zh) 2014-01-08
US20110213913A1 (en) 2011-09-01
JP4987997B2 (ja) 2012-08-01
KR101277382B1 (ko) 2013-06-20
TW201205289A (en) 2012-02-01
JP2011180773A (ja) 2011-09-15

Similar Documents

Publication Publication Date Title
TWI464586B (zh) 記憶體系統
US8732538B2 (en) Programmable data storage management
US9734911B2 (en) Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) Method and system for managing block reclaim operations in a multi-layer memory
US9734050B2 (en) Method and system for managing background operations in a multi-layer memory
US9336133B2 (en) Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) Memory system having an unequal number of memory die on different control channels
US20160378379A1 (en) Multi-layer memory system having multiple partitions in a layer
JP5603997B2 (ja) ストレージ装置及びデータ制御方法
TWI425357B (zh) 用來進行區塊管理之方法以及記憶裝置及控制器
JP2008112445A (ja) 不揮発性メモリを管理する装置及び方法
CN106716334A (zh) 文件系统卷内的高效数据移动
TWI434175B (zh) 用來進行區塊管理之方法以及記憶裝置及控制器
JP2013097416A (ja) 記憶装置および計算機
KR20190054730A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
JP2018160189A (ja) メモリシステム
JP2013196161A (ja) 半導体記憶装置の制御方法
JP2013030081A (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
JP6050794B2 (ja) フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置
KR100847021B1 (ko) 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된컴퓨터로 읽을 수 있는 기록매체
JP6618941B2 (ja) 管理装置、情報処理装置および管理方法
JP2019028572A (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
CN111813708B (zh) 用于存储装置的块映射系统和方法
KR20160057296A (ko) 링크드 리스트 어레이 하드웨어를 포함하는 장치와 이를 포함하는 시스템
TWI453747B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees