TWI421684B - 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 - Google Patents

可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 Download PDF

Info

Publication number
TWI421684B
TWI421684B TW095128505A TW95128505A TWI421684B TW I421684 B TWI421684 B TW I421684B TW 095128505 A TW095128505 A TW 095128505A TW 95128505 A TW95128505 A TW 95128505A TW I421684 B TWI421684 B TW I421684B
Authority
TW
Taiwan
Prior art keywords
block
data
blocks
file
erased
Prior art date
Application number
TW095128505A
Other languages
English (en)
Other versions
TW200728977A (en
Inventor
Barry Wright
Alan Welsh Sinclair
Original Assignee
Sandisk Technologies Inc
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 Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW200728977A publication Critical patent/TW200728977A/zh
Application granted granted Critical
Publication of TWI421684B publication Critical patent/TWI421684B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7202Allocation control and policies
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Description

可再程式化非揮發性記憶體系統以及操作一非揮發性記憶體系統之方法
此申請案係與可再程式化非揮發性記憶體系統(例如半導體快閃記憶體)之操作有關,更明確言之,係與一主機裝置與該記憶體間之介面之管理有關。
定址透過主機系統、記憶體系統及其他電子系統之外部介面所傳達之資料採用兩種主要技術。在該等技術之一中,將系統所產生或接收的資料檔案之位址映射到為系統創建的一連續邏輯位址空間之獨特範圍內。該位址空間之範圍通常足以涵蓋該系統能夠處理之整個位址範圍。在一範例中,磁碟儲存驅動器透過該邏輯位址空間與電腦或其他主機系統通信。此位址空間具有足以定址磁碟機之整個資料儲存容量之一範圍。在兩技術之第二技術中,唯一識別一電子系統所產生或接收之資料檔案且藉由該檔案內之偏移以邏輯方式定址其資料。此定址方法之一形式係用在電腦或其他主機系統與一可移除記憶卡(稱作「智慧卡」)之間。消費者通常將智慧卡用於識別、銀行業務、銷售點購買、ATM存取等。
在早一代的市售快閃記憶體系統中,將一矩形記憶體單元陣列分成大量單元群組,每一單元群組儲存一標準磁碟機區段之資料量,即,512個位元組。在每一群組中通常亦包括一額外資料量(例如,16個位元組),用以儲存一錯誤校正碼(ECC)且亦可儲存與使用者資料及/或其中儲存相關使用者資料之記憶體單元群組有關的其他管理資料。每一此類群組中的記憶體單元係可一起抹除的最小數目記憶體單元。即,抹除單元實際上係儲存一資料區段及所包含之任何管理資料的記憶體單元數。在美國專利第5,602,987與6,426,893號中說明此類型記憶體系統之範例。快閃記憶體之一特徵係,在採用資料再程式化記憶體單元之前抹除該等記憶體單元。
最常採用記憶卡或快閃驅動器(其係以可移除方式與各種主機(例如,個人電腦、相機等)連接,但亦可嵌入此類主機系統內部)之形式提供快閃記憶體系統。將資料寫入至記憶體時,主機通常將唯一邏輯位址指派給區段、叢集或記憶體系統之一連續虛擬位址空間內的其他資料單元。如同磁碟作業系統(DOS),主機將資料寫入至記憶體系統之邏輯位址空間內的位址且自該等位址讀取資料。記憶體系統內的一控制器將自主機接收到的邏輯位址轉譯成實際儲存資料之記憶體陣列內之實體位址且接著記錄此等位址轉譯。記憶體系統之資料儲存容量係至少與為記憶體系統所定義之整個邏輯位址空間上可定址之資料量一樣大。
在隨後若干代快閃記憶體系統中,將抹除單元之尺寸增至一包含充足記憶體單元以儲存多個資料區段的區塊。即使記憶體系統與之連接的主機系統可按小型最小單元(例如,區段)程式化與讀取資料,但將大量區段儲存於快閃記憶體之一單一抹除單元中。主機更新或更換邏輯資料區段時,通常將一區塊內的某些資料區段過期。由於區塊中所儲存之任何資料得以重寫之前必須抹除整個區塊,故通常將新或已更新資料儲存於已抹除且具有用於該資料之剩餘容量的另一區塊中。此程序導致原始區塊仍具有過期資料,其佔據記憶體內的重要空間。但是,若該區塊內還存在任何有效剩餘資料,則仍不能抹除該區塊。
因此,為了更好地利用記憶體之儲存容量,通常藉由將有效部分區塊資料量複製到一已抹除區塊中而整合或收集該等資料量,因此可接著將加以複製之此等資料所來自的區塊加以抹除且可重新使用其全部儲存容量。複製資料亦便於對一區塊內的資料區段按其邏輯位址順序進行分組,因為此可增加讀取資料以及將所讀取資料傳輸至主機之速度。若太頻繁地執行此類資料複製,則記憶體系統之操作性能可能會降級。在記憶體之儲存容量與主機透過系統之邏輯位址空間可定址之資料量幾乎沒有差別的情況(一典型情況)下,此尤其影響記憶體系統之操作。在此情況下,在可執行一主機程式化命令之前,可能需要資料整合或收集。因此會增加程式化時間。
連續若干代記憶體系統中的區塊尺寸已增大,以便增加一給定半導體區域中可儲存之資料位元數。儲存256個及更多資料區段之區塊已變得很常見。此外,不同陣列或子陣列之兩、四或更多區塊通常係邏輯連結在一起而成為元區塊,以便增加資料程式化與讀取中的平行度。伴隨此類大容量,操作單元成為使其得以有效操作的挑戰。
用於此類記憶體系統之普通主機介面係一邏輯位址介面,其係類似於通常結合磁碟機使用之介面。將介面之邏輯位址空間內之唯一位址指派給記憶體與之連接之主機所產生之檔案。記憶體系統之後通常在邏輯位址空間與記憶體之實體區塊或元區塊之間映射資料。記憶體系統記錄如何將邏輯位址空間映射到實體記憶體中,但主機沒有意識到此點。主機記錄其資料檔案在該邏輯位址空間內的位址,但記憶體系統在不瞭解此映射之知識的情況下運作。
已開發出許多技術,其可不同程度地解決有效操作此類大抹除區塊快閃記憶體系統中所遇到之問題中的某些問題。另一方面,本發明係以一基本變化為基礎,即,以改變記憶體與主機系統間之資料傳輸介面為基礎。與藉由使用一虛擬位址空間內的邏輯位址在其間傳達資料不同,藉由該主機所指派的一檔案名識別一資料檔案且藉由該檔案內的偏移位址存取其資料。因此記憶體系統知曉每一區段或其他資料單元所屬於之主機檔案。本文所述檔案單元係(例如)藉由具有依順序偏移位址而排序的一組資料,而且,藉由運作於一主機計算系統中的一應用程式創建並唯一識別該組資料。
大多數目前市售記憶體系統並未採用此方式,因為主機現在藉由一普通組邏輯位址識別所有檔案內至記憶體系統之資料而不識別該等檔案。藉由採用檔案物件(而不是使用邏輯位址)識別主機資料,記憶體系統控制器可以降低對此類經常性資料整合與垃圾收集之需要的方式儲存資料。因此可大大減小資料複製操作之頻率以及所複製之資料量,藉此增加記憶體系統之資料程式化與讀取性能。此外,記憶體系統控制器亦保存儲存有主機檔案之記憶體區塊之目錄與索引表資訊。因此,主機不必保存目前用於管理一邏輯位址介面所必需之檔案配置表(FAT)。
區塊再生操作包括垃圾收集與資料整合,其中,一般而言,將未充分利用之區塊之有效資料一起集合於其他區塊中且接著將該等未充分利用之區塊抹除而使其可用於接收新資料。依據本發明之一方面,基於區塊之內容選擇欲再生之記憶體單元區塊。在採用一邏輯位址介面之記憶體系統中,通常回應於主機關閉已映射到實體區塊中的一邏輯資料區塊(而不是基於實體區塊之內容)再生一記憶體單元區塊。藉由在選擇準則中包含區塊內容,可更有效地操作記憶體系統。
在特定具體實施例中,基於部分填充有有效資料之區塊中所包含之有效資料量,選擇用於一再生操之區塊。可最有效地再生具有最少量有效資料之區塊,因為要複製至另一區塊之資料較少。由於與其他記憶體操作(例如,資料程式化或讀取)相比,資料複製要花費大量時間,所以,選擇具有最少量有效資料之一區塊執行再生(例如)表示,可在對系統性能產生最小負面影響條件下,使得此區塊可用以儲存新資料。由於包含少量有效資料之某些區塊亦包含某些可將資料寫入其中而不必再生該區塊的已抹除容量,故某些具體實施例包括在選擇要再生之區塊時,亦考量該等區塊中已抹除容量之數量。若兩區塊具有儲存於其中的相同數量有效資料,但一區塊具有某些已抹除容量而另一區塊不具有已抹除容量,則,舉例而言,首先再生不具有已抹除容量之區塊,因為可獲得更多容量。具有已抹除容量之區塊具有目前新資料儲存值,其係取決於可寫入到該區塊中的資料量,而不具有已抹除容量之區塊不具有目前新資料儲存值。
本發明之其他方面、優點、特徵及細節包括於以下關於其範例之說明中,此說明應結合附圖。
本文所引用的全部專利、專利申請案、文章、其他公告案、文件及內容皆出於各種目的而以引用的方式全文併入本文中。就所併入之公告案、文件或內容與本發明之間之術語定義或使用中的任何不一致或矛盾而言,本申請案之術語起主導作用。
快閃記憶體系統一般說明
關於圖1至8說明一普通快閃記憶體系統以及結合主機裝置的一典型操作。在該系統中可實施本發明之各種方面。圖1之一主機系統1將資料儲存於一快閃記憶體2中且自該快閃記憶體2擷取資料。儘管該快閃記憶體可嵌入主機內,但所示記憶體2係採用更受歡迎的卡形式,該卡係透過一機械與電連接器之配合零件3與4而以可移除方式連接至主機。目前有許多不同的市售快閃記憶卡,其範例係採用商標小型快閃(CompactFlash;CF)、多媒體卡(MMC)、安全數位(SD)、迷你SD(miniSD)、微SD(microSD)、記憶條、智慧媒體(SmartMedia)及TransFlash所售賣之快閃記憶卡。儘管此等卡具有依據其標準化規格之唯一機械及/或電介面,但每一卡中所包含的快閃記憶體係非常類似的。此等卡皆可自SanDisk公司(本申請案之受讓者)獲得。SanDisk亦提供一系列快閃驅動器(其商標為Cruzer),其係採用小封裝之手持記憶體系統且具有一通用串列匯流排(USB)插塞,用於插入主機之USB插座而與主機連接。此等記憶卡與快閃驅動器各包括控制器,其與主機介接且控制記憶卡與快閃驅動器內之快閃記憶體之操作。
使用此類記憶卡與快閃驅動器之主機系統非常多且各式各樣。其包括個人電腦(PC)、膝上型與其他可攜式電腦、蜂巢式電話、個人數位助理(PDA)、數位相機、數位電影攝影機及可攜式音頻播放器。主機通常包括一用於一或多個類型記憶卡或快閃驅動器之內建插座,但某些主機需要將記憶卡插入其中之配接器。記憶體系統通常包含其自身記憶體控制器與驅動器,但亦存在某些僅含記憶體系統,其係受記憶體與之連接之主機所執行之軟體控制。在包含控制器之某些記憶體系統中,尤其是嵌入主機內之記憶體系統中,通常在一單一積體電路晶片上形成記憶體、控制器及驅動器。
就所涉及之記憶體2而言,可將圖1之主機系統1看作具有兩主要部分,其係由電路與軟體之組合構成。兩主要部分係一應用程式部分5與一驅動器部分6(其與記憶體2介接)。在個人電腦中,舉例而言,應用程式部分5可包括一處理器,其運行字處理、圖形、控制或其他受歡迎應用軟體。在主要專用於執行一單組功能之相機、蜂巢式電話或其他主機系統中,應用程式部分5包括操作相機照相並儲存圖片、操作蜂巢式電話打電話並接聽電話等的軟體。
圖1之記憶體系統2包括快閃記憶體7與電路8,其與該卡與之連接之主機介接以來回傳遞資料且控制記憶體7。控制器8通常在資料程式化與讀取期間,在主機1所使用之資料邏輯位址與記憶體7之實體位址之間進行轉換。
參考圖2,說明可用作圖1之非揮發性記憶體2之一典型快閃記憶體系統的電路。系統控制器通常係實施於一單一積體電路晶片11上,該積體電路晶片11係透過一系統匯流排13而與一或多個積體電路記憶體晶片(圖2顯示一單一此類記憶體晶片15)並聯連接。所示特定匯流排13包括一組獨立導體17(其係用以載送資料)、一組導體19(其係用以載送記憶體位址)及一組導體21(其係用以載送控制與狀態信號)。或者,一單組導體可在此等三個功能間進行分時。此外,亦可採用其他系統匯流排組態,例如,2004年9月9日所申請、標題為「環形匯流排結構及其在快閃記憶體系統中的用途」的美國專利申請案序號10/915,039(現在的公告案第2006/0031593 A1號)中所述環形匯流排。
典型控制器晶片11具有其自身內部匯流排23,其透過介面電路25與系統匯流排13介接。通常連接至該匯流排之主要功能係一處理器27(例如,一微處理器或微控制器)、一唯讀記憶體(ROM)29(其包含用以初始化(「啟動」)系統之編碼)、隨機存取記憶體(RAM)31(其主要用以緩衝記憶體與主機間所傳輸之資料)及電路33(其計算並檢查穿過記憶體與主機間之控制器之資料的一錯誤校正碼(ECC))。控制器匯流排23透過電路35與一主機系統介接,在圖2之系統係包含於一記憶卡內的情況下,透過該卡之外部接點37(其係連接器4之部分)執行該介接。一時脈39係與控制器11之其他組件中的每一組件連接且由該每一組件使用。
記憶體晶片15以及與系統匯流排13連接的任何其他組件通常包含記憶體單元陣列,其係組織成多子陣列或平面,為簡單起見圖示兩個此類平面41及43,但亦可使用更多(例如四個或八個)此類平面。或者,亦可不將晶片15之記憶體單元陣列分成平面。不過當已進行如此分割時,每一平面具有其自身行控制電路45及47,該等電路在很大程度上可獨立於彼此而運作。電路45與47自系統匯流排13之位址部分19接收其個別記憶體單元陣列之位址並對其進行解碼以定址個別位元線49與51中的特定一或多個位元線。回應於在位址匯流排19上接收到的位址而透過列控制電路55定址字元線53。來源電壓控制電路57與59亦與個別平面(例如p井電壓控制電路61與63)連接。若記憶體晶片15具有一單一記憶體單元陣列且在該系統中存在兩或更多此類晶片,則可採用與上述多平面晶片內之一平面或子陣列類似之方式操作每一晶片之陣列。
透過與系統匯流排13之資料部分17連接之個別資料輸入/輸出電路65與67將資料傳輸到平面41與43中且將資料從平面41與43中傳輸出來。電路65與67透過線69與71(其係透過個別行控制電路45與47而連接至平面)將資料程式化到記憶體單元中且自其個別平面之記憶體單元讀取資料。
儘管控制器11控制記憶體晶片15之操作以程式化資料、讀取資料、抹除以及參予各種內務處理事務,但每一記憶體晶片亦包含某控制電路,其執行來自控制器11之命令,以執行此類功能。介面電路73係連接至系統匯流排13之控制與狀態部分21。來自控制器之命令係提供給一狀態機75,其接著提供其他電路之特定控制以便執行此等命令。控制線77至81使狀態機75與圖2所示此等其他電路連接。透過線83將來自狀態機75之狀態資訊傳達至介面73,用以透過匯流排部分21發送至控制器11。
儘管亦可使用其他架構(例如,NOR架構),但記憶體單元陣列41與43之NAND架構係目前較佳的。藉由參考美國專利第5,570,315、5,774,397、6,046,935、6,373,746、6,456,528、6,522,580、6,771,536及6,781,877號以及美國專利申請案公告案第2003/0147278號,可瞭解NAND快閃記憶體之範例以及其作為一記憶體系統之部分的操作。
圖3之電路圖顯示一範例性NAND陣列,其係圖2之記憶體系統之記憶體單元陣列41之一部分。提供大量全球位元線,基於說明簡單起見,圖2僅顯示四個此類線91至94。許多串聯連接的記憶體單元串97至104係連接在此等位元線之一與一參考電位之間。使用記憶體單元串99作為代表,複數個電荷儲存記憶體單元107至110係與該串兩端之每一端處之選擇電晶體111與112串聯連接。當一串之選擇電晶體呈現導電狀態時,該串係連接在其位元線與參考電位之間。因此,會一次程式化或讀取該串內之一記憶體單元。
圖3之字元線115至118個別地橫跨若干記憶體單元串中之每一記憶體單元串中的一記憶體單元之電荷儲存元件而延伸,而且,閘極119與120控制該等串之每一端處之選擇電晶體之狀態。將共享共用字與控制閘極線115至120之記憶體單元串製造成形成一起加以抹除之一記憶體單元區塊123。此單元區塊包括一次可實體抹除的最小單元數。一次程式化一列記憶體單元,即沿著字元線115至118之一的記憶體單元。通常,以規定順序(在此情況下以沿著字元線118、最靠近該等串之連接至接地或另一共用電位之端的列開始)程式化一NAND陣列之列。接著程式化沿著字元線117之記憶體單元列,如此等等,直到遍及整個區塊123。最後程式化沿著字元線115之列。
一第二區塊125(其記憶體單元串係與第一區塊123中之串連接至相同全球位元線,但具有一組不同字與控制閘極線)係類似的。藉由列控制電路55將字與控制閘極線驅動成其合適的操作電壓。若該系統中存在一個以上的平面或子陣列(例如,圖2之平面1與2),則一記憶體架構使用其間延伸之共用字元線。或者,可存在兩個以上的平面或子陣列共享共用字元線。在其他記憶體架構中,獨立驅動個別平面或子陣列之字元線。
如NAND專利中的若干專利以及以上所參考的已公開申請案中所述,可操作記憶體系統以在每一電荷儲存元件或區域中儲存兩個以上可偵測電荷位準,藉此在每一個中儲存一個以上資料位元。記憶體單元之電荷儲存元件係最普通導電浮動閘極,但替代地,亦可為不導電介電電荷截獲材料,如美國專利申請案公告案第2003/0109093號中所述。
圖4以概念方式解說在以下進一步的說明中用作一範例之快閃記憶體單元陣列7(圖1)之一組織。記憶體單元之四個平面或子陣列131至134可位於一單一整合記憶體單元晶片上、位於兩晶片(每一晶片上之平面中的兩個平面)或位於四個獨立晶片上。該特定配置對於以下論述而言並不重要。當然,系統中亦可存在其他數目的平面,例如1、2、8、16或更多。將該等平面分別分成圖4矩形所示、位於個別平面131至134中之記憶體單元區塊,例如,區塊137、138、139及140。在每一平面中可存在若干打或好幾百個區塊。如上所述,記憶體單元區塊係抹除單元,即可一起實體抹除的最小記憶體單元數。不過,對於增強平行性而言’在更大元區塊單元中操作該等區塊。來自每一平面之一區塊係以邏輯方式連結在一起而形成一元區塊。所示四個區塊137至140形成一元區塊141。一元區塊中的所有單元通常係一起抹除。用以形成元區塊之區塊不必受限於其個別平面內的相同相對位置,如由區塊145至148構成之一第二元區塊143所示。儘管通常較佳地使元區塊橫跨所有平面延伸,但對於高系統性能而言,可以具有動態形成不同平面中之一、兩或三個區塊中的任何或所有區塊之元區塊之能力的方式而操作記憶體系統。此使得元區塊之尺寸可與一程式化操作中可用以儲存之資料量更精密地匹配。
進而基於操作目的將個別區塊分成記憶體單元頁,如圖5所示。將區塊131至134中每一區塊之記憶體單元,例如,各分成八頁P0至P7。或者,每一區塊內可存在16、32或更多記憶體單元頁。頁係一區塊內資料程式化與讀取之單元,其包含一次可程式化的最小資料量。在圖3之NAND架構中,頁係由一區塊內沿一字元線之記憶體單元形成。不過,為了增加記憶體系統操作的平行性,可將兩或更多區塊內的此類頁以邏輯方式連結成元頁。圖5所示元頁151係由來自四個區塊131至134中每一區塊之一實體頁形成。元頁151,例如,包括位於四個區塊中之每一區塊中之頁P2,但元頁之頁不必具有該等區塊中每一區塊內的相同相對位置。
儘管較佳地橫跨所有四個平面平行程式化並讀取最大資料量,但對於高系統性能而言,亦可操作記憶體系統以形成不同平面中之獨立區塊中之一、兩或三個頁中的任何或所有頁之元頁。此使得程式化與讀取操作可與很方便平行處理之資料量適應性匹配且減少元頁之部分剩餘而未採用資料加以程式化之情況。
如圖5所示,由多個平面之實體頁形成之一元頁包含沿著此等多個平面之字元線列之記憶體單元。與同時程式化一字元線列中的所有單元不同,更常見的係,在兩或多個交錯群組中程式化該等單元,每一群組儲存一資料頁(在一單一區塊中)或一資料元頁(橫跨多個區塊)。藉由同時程式化交替記憶體單元,不需要為每一位元線各提供一周邊電路單元(包括若干資料暫存器與一感測放大器),而可在鄰接位元線之間進行分時。此可有效利用周邊電路所需之基板空間量且可沿著該等列採用增大密度封裝記憶體單元。另外,較佳地同時程式化沿一列之每一單元,以便使給定記憶體系統可提供的平行性最大化。
參考圖3,藉由沿著NAND串之至少一端提供兩列選擇電晶體(未顯示)而不是所示單列選擇電晶體,可最方便地將資料同時程式化到沿一列之每一其他記憶體單元中。一列之選擇電晶體接著回應於一控制信號而將一區塊內的每一其他串連接至其個別位元線,而且,另一列之選擇電晶體回應於另一控制信號而將交錯的每一其他串連接至其個別位元線。從而將兩資料頁寫入到每一列記憶體單元中。
每一邏輯頁中的資料量通常係一或多個資料區段之一整數,按照慣例,每一區段包含512個位元組的資料。圖6顯示一頁或元頁之兩資料區段153與155之一邏輯資料頁。每一區段通常包含一儲存的512個位元組的使用者或系統資料部分157以及另一位元組數目的管理資料159(其係與部分157中的資料有關或與儲存資料部分157之實體頁或區塊有關)。管理資料之位元組數目通常係16個位元組,因此區段153與155中的每一區段總共為528個位元組。管理部分159可包含程式化期間由資料部分157計算出的一ECC、其邏輯位址、抹除並再程式化區塊之次數的一經歷計數、一或多個控制旗標、操作電壓位準及/或類似內容,加上由此類管理資料159計算出的一ECC。或者,可將管理資料159或其一部分儲存於其他區塊中的不同頁中。
隨著記憶體之平行性增加,元區塊之資料儲存容量會增加,因此資料頁與元頁之尺寸亦會增加。因此資料頁可包含兩個以上的資料區段。若一資料頁中有兩個區段且每一元頁包含兩個資料頁,則一元頁中存在四個區段。因此,每一元頁可儲存2048個位元組的資料。此係一高平行度,而且,隨著列中記憶體單元之數目增加,可進一步增加平行度。基於此原因,使快閃記憶體之寬度延伸,以便增加一頁以及一元頁中的資料量。
以上所識別的實體小型可再程式化非揮發性記憶卡與快閃驅動器係以市售方式提供,其資料儲存容量係512千兆位元組(MB)、1十億位元組(GB)、2 GB及4 GB,而且可更高。圖7說明一主機與該大容量記憶體系統間的最普通介面。該主機處理主機所執行之應用軟體或韌體程式所產生或使用之資料檔案。一範例係一字處理資料檔案,而另一範例係電腦輔助設計(CAD)軟體之一繪圖檔案,主要可在通用電腦主機(例如,PC、膝上型電腦等)中找到該等範例。該檔案亦可為採用pdf格式之文件。靜態數位攝像機為每一圖片產生一資料檔案,其係儲存於一記憶卡上。蜂巢式電話使用來自一內部記憶卡上之檔案之資料,例如一電話目錄。PDA儲存且使用若干不同檔案,例如位址檔案、日曆檔案等。在任何此類應用程式中,記憶卡亦可包含操作主機之軟體。
圖7說明主機與記憶體系統間的一普通邏輯介面。一連續邏輯位址空間161係大得足以為可儲存於記憶體系統中的所有資料提供位址。通常將主機位址空間分成資料叢集增量。在一給定主機系統中,可將每一叢集設計成包含若干資料區段,在某些情況下係介於4與64個區段之間(即一典型情況)。一標準區段包含512個位元組的資料。
圖7之範例顯示已創建三個檔案1、2及3。運行於主機系統上的一應用程式將每一檔案作為一有序資料集加以創建並藉由一唯一名稱或其他參考識別該檔案。藉由主機將還未配置給其他檔案的足夠可用邏輯位址空間指派給檔案1。顯示將一連續可用邏輯位址範圍指派給檔案1。通常亦基於特定目的配置位址範圍,例如為主機作業軟體指派一特定範圍,因此,即使主機將邏輯位址指派給資料時還未使用此等位址,亦可避免將此等位址用於儲存資料。
主機隨後創建檔案2時,主機同樣指派邏輯位址空間161內的兩不同連續位址範圍,如圖7所示。不必為一檔案指派連續邏輯位址,該等位址亦可為已配置給其他檔案之位址範圍間的位址片斷。此範例接著顯示,為主機所創建的另一檔案3配置主機位址空間中先前未配置給檔案1與2以及其他資料之其他部分。
主機藉由保存一檔案配置表(FAT)(其中藉由轉換160保存主機指派給各種主機檔案之邏輯位址)而記錄記憶體邏輯位址空間。儲存新檔案、偵測到其他檔案、修改檔案等的時候,主機經常更新FAT表。通常將FAT表儲存於一主機記憶體中,亦將一複本儲存於時常更新的非揮發性記憶體中。如同任何其他資料檔案一樣,通常透過邏輯位址空間存取非揮發性記憶體中的該複本。刪除一主機檔案時,主機之後藉由更新FAT表解除配置先前配置給已刪除檔案之邏輯位址,以顯示其他資料檔案現在可使用該等邏輯位址。
主機對記憶體系統控制器所選擇的用以儲存檔案之實體位置並不關心。典型主機僅知曉其邏輯位址空間以及其已配置給其各種檔案之邏輯位址。另一方面,記憶體系統透過一典型主機/卡介面而僅知曉邏輯位址空間中已寫入資料之部分,但並不知曉配置給特定主機檔案之邏輯位址,甚至並不知曉主機檔案之數目。記憶體系統控制器將主機為資料儲存或擷取所提供之邏輯位址轉換成儲存主機資料之快閃記憶體單元陣列內之唯一實體位址。區塊163表示此等邏輯至實體位址轉換之一工作表,其係由記憶體系統控制器保存。
程式化記憶體系統控制器以採用可維持系統性能處於一高位準的方式將資料檔案儲存於一記憶體陣列165之區塊與元區塊內。在此解說圖中使用四個平面或子陣列。較佳地,橫跨由該等平面中各平面之一區塊形成的整個元區塊,採用系統可允許的最大平行度程式化及讀取資料。通常將至少一元區塊167配置成一保留區塊,用於儲存記憶體控制器所使用的操作韌體與資料。可將另一元區塊169(或多個元區塊)配置成用以儲存主機作業軟體、主機FAT表等。保留大部分實體儲存空間,用以儲存資料檔案。不過,記憶體控制器並不知曉主機如何在其各種檔案物件之間配置所接收之資料。所有記憶體控制器通常依據與主機之互動而知曉主機寫入至特定邏輯位址之資料係儲存於控制器之邏輯至實體位址表163所保存的對應實體位址中。
在一典型記憶體系統中,除位址空間161內用以儲存資料量所必需之容量之外,亦提供若干額外儲存容量區塊。可將此等額外區塊中的一或多個區塊用作冗餘區塊,用於替代記憶體壽命期間可能故障的其他區塊。個別元區塊內所包含之區塊的邏輯分組通常會因各種原因而發生變化,包括用一冗餘區塊替代最初指派給元區塊的一故障區塊。通常將一或多個額外區塊(例如,元區塊171)保存於一已抹除區塊集區中。主機將資料寫入至記憶體系統時,控制器將主機所指派的邏輯位址轉換成已抹除區塊集區中之一元區塊內的實體位址。接著對邏輯位址空間161內未用以儲存資料之其他元區塊加以抹除並指派為已抹除集區區塊,以便在一隨後資料寫入操作期間使用。在一較佳形式中,將邏輯位址空間分成邏輯群組,每一群組包含等於一實體記憶體元區塊之儲存容量的一資料量,因此可將該等邏輯群組一對一地映射到該等元區塊中。
隨著原始儲存資料變為過期資料,會經常採用新資料來重寫特定主機邏輯位址處所儲存之資料。記憶體系統控制器作為回應而將新資料寫入到一已抹除區塊中且接著針對此等邏輯位址更改邏輯至實體位址表,以識別儲存此等邏輯位址處之資料之新實體區塊。接著對包含此等邏輯位址處之原始資料之區塊加以抹除並使其可用於新資料之儲存。若開始寫入時已抹除區塊集區中的預抹除區塊中未存在足夠儲存容量,則通常必須在完成一目前資料寫入操作之前執行此類抹除。此會負面影響系統資料程式化速度。記憶體控制器通常瞭解,只有在主機將新資料寫入至其相同邏輯位址時,主機才顯現給定邏輯位址處的資料已過期。因此,記憶體之許多區塊可能在一時間期間一直儲存此類無效資料。
區塊及元區塊之尺寸正在增加以便有效使用積體電路記憶體晶片之區域。此導致較大比例的個別資料寫入儲存小於一元區塊之儲存容量的一資料量,而且,在許多情況下,該資料量甚至小於一區塊之儲存容量。由於記憶體系統控制器通常將新資料引導至一已抹除集區元區塊,所以此會導致元區塊之部分未填滿。若新資料係另一元區塊中所儲存之某些資料之更新,則亦希望按邏輯位址順序將來自該其他元區塊、具有與新資料元頁之邏輯位址鄰接之邏輯位址的剩餘有效資料元頁複製到新元區塊中。舊元區塊可保留其他有效資料元頁。隨著時間的過去,此導致一個別元區塊之某些元頁之資料變為過期並無效且由寫入至一不同元區塊、具有相同邏輯位址之新資料取代。
為了保持整個邏輯位址空間161上存在足夠實體記憶體空間以儲存資料,會週期性壓縮或整合此類資料(垃圾收集)。亦希望保持元區塊內之資料區段儘可能地與其邏輯位址採用相同順序,因為此使得可更有效地讀取連續邏輯位址中的資料。通常亦基於此額外目標執行此類資料壓縮與垃圾收集。美國專利第6,763,424號中說明接收部分區塊資料更新以及使用元區塊時管理記憶體之某些方面。
資料壓縮通常涉及自一元區塊讀取所有有效資料元頁並將其寫入至一新元區塊,在該程序中忽略具有無效資料之元頁。亦較佳地依據一實體位址順序配置具有有效資料之元頁,該實體位址順序係與元頁中所儲存資料之邏輯位址順序匹配。新元區塊中所佔據的元頁數將少於舊元區塊中所佔據之元頁數,因為未將包含無效資料之元頁複製至新元區塊。接著抹除舊區塊而使其可用以儲存新資料。因此,藉由整合所獲得之額外容量元頁可用以儲存其他資料。
在垃圾收集期間,自兩或多個元區塊集合有效資料(其具有連續或接近連續的邏輯位址)元頁並將其重新寫入到另一元區塊(通常係已抹除區塊集區中的一元區塊)中。已自原始兩或更多元區塊複製所有有效資料元頁情況下,可將其抹除以便將來使用。
資料整合及垃圾收集會花費時間且影響記憶體系統之性能,尤其是可執行來自主機之命令之前需要執行資料整合或垃圾收集的情況下。通常藉由記憶體系統控制器對此類操作加以排程以儘可能地在背景加以執行,但執行此類操作之需要會促使控制器必須為主機提供一忙線狀態信號,直到完成該操作。可延遲主機命令之執行的一範例情況係,已抹除區塊集區中沒有足夠的預抹除元區塊用以儲存主機希望寫入到記憶體中之所有資料且首先需要執行資料整合或垃圾收集以清除一或多個有效資料元區塊(接著可將其抹除)之情況。因此,注意力已集中在管理記憶體之控制以便最大程度地減少此類中斷。在以下美國專利申請案中說明許多此類技術:2003年12月30日所申請的標題為「具有大抹除區塊之非揮發性記憶體系統之管理」之序號10/749,831(現在的公告案第2005/0144358 A1號);2003年12月30日所申請的標題為「具有區塊管理系統之非揮發性記憶體及方法」之序號10/750,155;2004年8月13日所申請的標題為「具有記憶體平面對齊之非揮發性記憶體及方法」之序號10/917,888(現在的公告案第2005/0141313 A1號);2004年8月13日所申請的序號10/917,867(現在的公告案第2005/0141312 A1號);2004年8月13日所申請的標題為「具有階段程式故障處理之非揮發性記憶體及方法」之序號10/917,889(現在的公告案第2005/0166087 A1號);2004年8月13日所申請的標題為「具有控制資料管理之非揮發性記憶體及方法」之序號10/917,725(現在的公告案第2005/0144365 A1號);2005年7月27日所申請的標題為「具有多流更新記錄之非揮發性記憶體及方法」之序號11/192,220;2005年7月27日所申請的標題為「具有暫存與更新區塊之改良索引之非揮發性記憶體及方法」之序號11/192,386及2005年7月27日所申請的標題為「具有多流更新之非揮發性記憶體及方法」之序號11/191,686。
有效控制具有超大抹除區塊之記憶體陣列之操作的一挑戰係,使一給定寫入操作期間所儲存之資料區段數與記憶體區塊之容量及邊界匹配並對齊。一方法係將用以儲存來自主機之新資料的一元區塊配置成具有小於最大數目(儲存小於填滿整個元區塊之數量的一資料量所必需的區塊數目)之區塊。在2003年12月30日所申請的標題為「適應性元區塊」之美國專利申請案序號10/749,189(現在的公告案第2005/0144357 A1號)中說明適應性元區塊之使用。在專利申請案(2004年5月7日所申請的序號10/841,118(現在的公告案第2005/0144363 A1號)以及2004年12月16日所申請的標題為「資料運行程式化」之序號11/016,271(現在的公告案第2005/0144367 A1號))中說明資料區塊間之邊界與元區塊間之實體邊界之配合。
記憶體控制器亦可使用來自FAT表(其係藉由主機而儲存於非揮發性記憶體中)之資料,以更有效地操作記憶體系統。一此類使用係瞭解主機何時藉由解除配置其邏輯位址而將資料識別成過期資料。知曉此時間使得記憶體控制器可在通常藉由主機將新資料寫入此等邏輯位址而瞭解它之前排程包含此類無效資料之區塊之抹除。2004年7月21日所申請的標題為「用於將資料保存於非揮發性記憶體系統上之方法及裝置」之美國專利申請案序號10/897,049(現在的公告案第2006/0020744 A1號)說明此點。其他技術包括監視將新資料寫入至記憶體之主機圖案,以便推斷一給定寫入操作係一單一檔案還是多個檔案,若係多個檔案,則推斷檔案間邊界所在位置。2004年12月23日所申請的標題為「最佳化序列叢集管理之FAT分析」之美國專利申請案序號11/022,369(現在的公告案第2006/0020745 A1號)說明此類型技術之用途。
為了有效操作記憶體系統,希望控制器儘可能地瞭解主機指派給其個別檔案之資料之邏輯位址。因此,在不知曉檔案邊界情況下,控制器可將資料檔案儲存於一單一元區塊或一群組元區塊內,而不是分散在大量元區塊之中。結果係,可減少資料整合與垃圾收集操作之數目及其複雜性。從而改善記憶體系統之性能。不過,主機/記憶體介面包括上述邏輯位址空間161(圖7)時,記憶體控制器很難對主機資料檔案結構瞭解很多。
參考圖8,以不同方式解說圖7已經顯示之典型邏輯位址主機/記憶體介面。主機為主機所產生的資料檔案配置邏輯位址。記憶體系統接著查看此等邏輯位址並將其映射到實際儲存資料之記憶體單元區塊之實體位址中。
以檔案為主之記憶體介面及操作
主機與記憶體系統之間、用於大量資料之儲存的一不同類型介面可消除邏輯位址空間之使用。替代地,主機藉由一唯一檔案ID(或其他唯一參考)以及該檔案內之資料單元(例如,位元組)之偏移位址而以邏輯方式定址每一檔案。將此檔案位址直接提供給記憶體系統控制器,其接著保存其自身表(其係實體儲存每一主機檔案之資料之位置之表)。可採用與以上相對於圖2至6所述記憶體系統相同的記憶體系統實施此新介面。與上述記憶體系統之主要區別係記憶體系統與主機系統通信的方式。
圖9說明此以檔案為主之介面,其應與圖7之邏輯位址介面作比較。將圖9檔案1、2及3中的每一檔案之識別以及該等檔案內的資料偏移直接傳遞給記憶體控制器。接著藉由一記憶體控制器功能173將此邏輯位址資訊轉譯成記憶體165之元區塊與元頁之實體位址。一檔案目錄記錄每一儲存的區段、頁或其他檔案資料單元所屬主機檔案。
圖10亦說明該以檔案為主之介面,其應與圖8之邏輯位址介面作比較。圖10未提供圖8之邏輯位址空間及主機所保存的FAT表。相反,藉由檔案編號以及該檔案內資料之偏移識別主機所產生的至記憶體系統之資料檔案。記憶體系統控制器接著將該等檔案直接映射至記憶體單元陣列之實體區塊並保存其中儲存有主機檔案之記憶體區塊之檔案目錄與索引表資訊。因此,主機不必保存目前用於管理一邏輯位址介面所必需之檔案配置表(FAT)。
圖11係一直接資料檔案系統之主要功能之一般方塊圖,藉由該系統之處理器所執行之記憶體系統韌體以及控制器之其他電路執行該等主要功能。其提供其中可考量下文所述特定記憶體操作的一總體框架。一以檔案為主的介面601層針對記憶體系統之三個主要功能(即,寫入檔案、刪除檔案及讀取檔案)而在記憶體系統與一外部主機系統(或執行於相同記憶卡或快閃驅動器上的一主機應用程式)間傳遞命令與資料。資料係儲存於一快閃記憶體陣列603中。
一檔案區塊管理功能605依據藉由識別資料之檔案組織快閃記憶體中資料之儲存並最小化區塊儲存一個以上檔案之資料之發生率。記憶體603之記憶體單元之實體區塊係資料管理的基本單元。
藉由一功能607將資料組織成元頁以寫入到記憶體603中,使得個別元頁包含一特定檔案內、一連續邏輯偏移位址範圍之資料。一功能609控制至記憶體603之存取(用於讀取其中所儲存之資料)。主機命令刪除一檔案之資料時,該刪除促使一功能611更新功能613所保存之檔案索引資訊以及功能615中之區塊列表。
檔案資料索引613藉由一唯一檔案識別符以及該檔案內資料之偏移位址對記憶體603中所儲存之個別檔案編索引。將每一檔案之資料儲存成具有連續邏輯偏移位址的一組資料群組。一檔案目錄識別個別檔案之資料群組項目集在一檔案索引表(FIT)中之位置。區塊列表功能615保存已抹除區塊(採用檔案資料進行部分程式化或包含檔案資料以及過期資料)之識別項。
上述垃圾收集與資料整合功能之主要目的係再生未使用的記憶體空間,用以儲存額外資料。在垃圾收集中,將一源區塊之有效資料自亦包含過期資料之區塊複製到一或多個具有至少某些已抹除空間之目的地區塊中。此可將有效資料集合到較小數目區塊中,從而在一抹除原始源區塊時就可釋放過期資料所佔據之容量。在資料整合中,將一部分填充區塊(其因此亦包含已抹除但未使用之空間)之有效資料與另一部分填充區塊之有效資料組合。產生部分填充區塊的最普通原因係,寫入在其最後一已抹除區塊僅部分填充情況下關閉的一新檔案。資料一經整合,接著就可將僅包含複製資料(其因此而成為重複資料)之源區塊抹除而使其可用於新資料之儲存。
本文將垃圾收集與資料整合操作一起作為區塊再生加以執行。一功能617藉由控制有效檔案資料自一實體區塊(具有未程式化的元頁或包含過期資料)至其他區塊之複製而再生區塊。此使得可抹除原始區塊以再生其所包含的未使用空間而使此空間可用於新檔案資料之儲存。一功能619依據可再生容量之數量以及已抹除區塊之數目而適應性地控制區塊再生操作之出現以及持續時間。採用相對於寫入新檔案資料之速率而言的一最佳速率、以維持記憶體系統之良好整體性能的方式執行區塊再生。
在圖11之功能圖中,一轉譯層621與一介面層623係位於檔案介面601(其與快閃記憶體之後端系統介接且控制其操作)上方。在此範例中,介面層623具有依據三個不同協定中的一協定將資料傳達至記憶體系統外部而與一主機或其他裝置傳達資料之能力。檔案介面625係本文主要說明的檔案介面,其中藉由一唯一檔案識別符以及在該檔案內之邏輯偏移位址識別個別檔案之資料。一物件介面627係主要用以在電子裝置間傳輸資料檔案,其中該等檔案之尺寸通常係熟知的。用於介面627之現有協定包括Microsoft公司提供的媒介傳輸協定(MTP)與圖片傳輸協定(PTP)。在此範例中亦包括一反向相容邏輯(LBA)介面629。採用快閃記憶卡(類似於磁碟機系統之快閃記憶體)目前使用的協定、透過介面629傳輸資料,其中主機將資料定址至記憶體系統之一已定義的邏輯位址空間。
轉譯層621包括協定配接器631、633及635,其係用以將個別介面協定625、627及629之協定轉換成檔案介面601之共用協定。藉由轉譯層在不同協定之間轉換命令、資料格式等。此外,LBA協定配接器635亦將記憶體系統之邏輯位址空間分成靜態檔案。接著,檔案介面601採用與透過介面625及627所傳達之獨特檔案相同的方式處理此等檔案。藉由參考2005年8月3日所申請的發明人姓名為S.A.Gorobets之美國專利申請案序號11/196,869可瞭解LBA協定配接器635之功能之細節。2005年12月21日所申請的發明人姓名為Alan Sinclair之美國專利申請案序號11/316,577中提供轉譯與介面層621與623之更多資訊。
將新檔案資料程式化到記憶體中時,以區塊中的第一實體位置開始並按順序歷經區塊之隨後位置而將資料寫入到記憶體單元之已抹除區塊中。以自主機接收資料之順序程
式化資料,而與檔案內該資料之偏移的順序無關。程式化繼續,直到將檔案之所有資料寫入到記憶體中。若檔案中的資料量超過一單一記憶體區塊之容量,則,在第一區塊寫滿時,在一第二已抹除區塊中繼續程式化。採用與該第一記憶體區塊相同的方式(即,以自第一位置開始之順序,直到檔案之所有資料皆已儲存或第二區塊寫滿)程式化該第二記憶體區塊。可採用該檔案之任何剩餘資料程式化一第三或額外區塊。儲存一單一檔案之資料的多個區塊或元區塊不必為實體或邏輯連續區塊或元區塊。基於說明之方便,除非另有說明,皆希望本文所用術語「區塊」表示區塊抹除單元或多個區塊「元區塊」,其係取決於特定系統中是否使用元區塊。
圖12之狀態圖說明圖11所示記憶體操作之總體功能。可認為個別記憶體區塊處於三個狀態中的一狀態下。此等狀態係已抹除區塊641、正在儲存有效檔案資料而不具有可再生容量之區塊643及區塊645,其可包含某些有效檔案資料,但亦具有來自未程式化已抹除頁及/或儲存於其中之過期(無效)資料之可再生容量。藉由功能647將資料寫入至已抹除記憶體區塊,藉此形成屬於類別643或645(其係取決於所得已程式化區塊是否保留任何可再生容量)之區塊。刪除檔案時,如功能649所示,包含檔案資料之區塊643轉換成具有可再生容量之區塊645。藉由功能651再生區塊645之未使用儲存容量,該功能651導致此等區塊返回至可將新資料寫入其中的已抹除區塊641之狀態。
參考圖13A,說明一資料檔案至記憶體系統之寫入。在此範例中,一資料檔案181係大於記憶體系統之一區塊或元區塊183之儲存容量,其係顯示成在垂直實線之間延伸。因此,將資料檔案181之一部分184亦寫入到一第二區塊185中。所示此等記憶體單元區塊係實體鄰接,但該等區塊不必實體鄰接。接收到流自主機之檔案181資料時,寫入該等資料,直到將該檔案之所有資料寫入到記憶體中。在圖13A之範例中,資料181係檔案之初始資料。
記憶體系統管理並記錄所儲存資料的一較佳方式係使用可變尺寸的資料群組。即,將一檔案之資料儲存成複數個資料群組,可採用一定義順序將該等資料群組連結在一起以形成完整檔案。不過,較佳地,記憶體系統控制器透過使用檔案索引表(FIT)保存資料群組在該檔案內之順序。正在寫入來自主機的一資料流時,每當檔案資料之邏輯偏移位址中或其中正在儲存資料之實體空間中出現一中斷時,就開始一新資料群組。該實體中斷之一範例係一檔案之資料填滿一區塊而開始將資料寫入到另一區塊中時。圖13A說明此點,其中一第一資料群組填滿第一區塊183,將該檔案之剩餘部分184作為一第二資料群組儲存於該第二區塊185中。採用(F0,D0)表示該第一資料群組,其中F0係資料檔案之開始的邏輯偏移,而D0係記憶體內檔案開始的實體位置。將第二資料群組表示成(F1,D1),其中F1係第二區塊185之開始所儲存之資料之邏輯檔案偏移,而D1係儲存該資料的實體位置。
透過主機-記憶體介面所傳輸的資料量可採用若干資料位元組、若干資料區段或某一其他粒度表示。主機最常採用位元組粒度定義其檔案之資料,但另一方面,在透過一目前邏輯位址介面與一大容量記憶體系統通信時,會將群組位元組轉換成區段(每一區段係512個位元組)或叢集(每一叢集包含多個區段)。執行此操作通常係為了簡化記憶體系統之操作。儘管本文所述以檔案為主之主機-記憶體介面可使用某一其他資料單元,但原始主機檔案位元組粒度一般係較佳的。即,較佳地採用位元組(最小合理資料單元)而不是區段、叢集等來表示資料偏移、長度等。此使得採用本文所述技術可更有效地使用快閃記憶體儲存容量。
因此,在FIT中將採用圖13A所示方式寫入到記憶體中的新檔案表示成一索引項目序列(F0,D0)、(F1,D1),其係按該順序之資料群組之索引項目。即,每當主機系統想存取一特定檔案時,主機就將其檔案ID或其他識別發送給記憶體系統,其接著存取其FIT以識別組成該檔案之資料群組。為了記憶體系統之操作之方便起見,個別資料群組之長度<length>亦可包含於其個別項目中。使用時,記憶體控制器計算並儲存該等資料群組之長度。
只要主機以打開狀態保存圖13A之檔案,亦較佳地保存一實體寫入指標P以定義用以寫入自主機接收的該檔案之任何其他資料之位置。將該檔案之任何新資料寫入實體記憶體中該檔案之結束處而與新資料在該檔案內的邏輯位置無關。記憶體系統允許同時打開多個(例如,4或5個此類檔案)檔案並為其中的每一檔案保留一寫入指標P。不同檔案之寫入指標指向不同記憶體區塊中之位置。若存在的已打開檔案之數目已經達到記憶體系統限制時主機系統還想打開一新檔案,則首先關閉已打開檔案中的一檔案並接著打開新檔案。
圖13B說明主機將資料附加於圖13A先前已寫入但仍打開之檔案之結束處的情況。顯示主機系統將資料187添加至該檔案之結束處,亦將該資料寫入到第二區塊185中該檔案之資料的結束處。所附加的資料變為資料群組(F1,D1)(其因此而現在包含更多資料)之部分,因為在現有資料群組184與附加資料189之間不存在邏輯或實體位址中斷。因此,在FIT中仍將完整檔案表示成一索引項目序列(F0,D0)、(F1,D1)。指標P之位址亦變為所儲存附加資料之結束處之位址。
圖13C顯示將一資料191區塊插入到圖13A先前已寫入檔案中的一範例。儘管主機將資料191插入到檔案中,但記憶體系統將插入資料附加在先前已寫入檔案資料之結束處的一位置193處。將資料插入一打開檔案中時不必按其邏輯順序重寫檔案之資料,不過,隨後可在主機關閉該檔案之後在背景執行此操作。由於插入資料係完整地儲存於第二記憶體區塊185內,故其形成一單一新群組(F1,D3)。但此插入之執行導致將圖13A之先前資料群組(F0,D0)分成兩群組:插入之前的一群組(F0,D0)與插入之後的一群組(F2,D1)。此係由於每當存在資料之邏輯中斷(例如,插入之開始F1與插入之結束F2處出現的中斷)時就需要形成一新資料群組。群組(F3,D2)係實體位址D2係第二區塊185之開始的結果。即使群組(F1,D3)與(F3,D2)係儲存於相同記憶體區塊中,該等群組亦保持獨立,因為其中所儲存之資料之偏移中存在中斷。因此,在記憶體系統FIT中採用資料群組索引項目(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)按提及順序表示具有插入之原始檔案。由圖13A、13B及13C之範例應注意,可在不使記憶體中任何資料為過期的情況下為一新或現有檔案寫入新資料。
作為圖13C所示將資料插入一現有檔案中的一替代形式,可在已插入資料的任何時候,藉由主機將檔案作為一獨立檔案重寫到記憶體中。接著記憶體系統可將此獨立檔案作為一新檔案進行處理。接著主機刪除舊檔案,而且,記憶體系統可藉由再生其中儲存舊檔案(其資料現在係過期資料)之空間作出回應。
圖13D說明另一範例,其中對最初以圖13A所示方式寫入之資料的某一部分加以更新。所示資料檔案之一部分195係要更新的資料部分。與藉由更新將完整檔案重寫到記憶體系統中不同,將檔案之一已更新部分197附加至先前寫入之資料。先前寫入的資料部分199現在係過期資料。更新之後,在記憶體系統FIT中採用資料群組索引項目(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)按提及順序表示該檔案。在圖13D中將圖13A之單一資料群組(F0,D0)再次分成片斷:已更新部分之前的片斷、已更新部分及已更新部分之後的片斷。希望再生過期資料所佔據之空間199,但較佳地以後執行此再生,而不是作為在記憶體中寫入檔案資料之部分。此類再生通常導致所儲存的一特定檔案之資料之資料群組的數目減少。
依據先前說明之檔案之創建或修改之後,每一檔案之資料之偏移較佳地係按正確的邏輯順序保持連續。因此,作為將資料插入一檔案中之操作之部分,例如,主機所提供的插入資料之偏移係自緊接在插入之前之偏移繼續,而且,檔案中已存在的位於插入之後之資料之偏移增加插入資料之數量。更新一現有檔案最容易導致現有檔案中屬於一給定位址範圍內之資料被一相同數量的已更新資料取代,因此該檔案之其他資料之偏移通常不需要更換。
應注意,以上相對於圖13所述所有的資料配置與索引功能皆由記憶體系統之控制器執行。主機伴隨一恰當命令僅傳達檔案ID及該檔案內資料之偏移,其係發送至記憶體系統。記憶體系統完成剩餘操作。
以剛剛所述方式將檔案資料自主機直接寫入快閃記憶體中的一優點係,可使如此儲存之資料之粒度或解析度保持與主機之粒度或解析度相同。若一主機應用程式採用一位元組粒度寫入檔案資料,則,舉例而言,亦可採用一位元組粒度將該資料寫入快閃記憶體中。因此,可採用若干位元組方式測量一個別資料群組內之資料之數量與位置。即,儲存於快閃記憶體中時,亦可在該檔案內獨立定址在該主機應用檔案內可獨立定址的相同資料偏移單元。因此,在索引表中可將一區塊內相同檔案之資料群組間的任何邊界指定成最接近的位元組或其他主機偏移單元。同樣地,以主機偏移為單元定義一區塊內不同檔案之資料群組間的邊界。
本文結合大區塊記憶體所使用的術語「區段」係表示一ECC所關聯的儲存資料單元。區段亦為將資料傳輸至快閃記憶體及傳輸來自快閃記憶體之資料時採用的最小資料單元。「頁」係用以表示一區塊內一單元的記憶體單元且係最小程式化單元。術語「元頁」係用以表示一元區塊之一具有完全平行性之頁。元頁係最大程式化單元。
檔案區塊管理
現在將說明圖11之檔案至區塊映射功能605之一範例。將來自一外部主機或內部主機處理之資料寫入記憶體系統中或作為一資料再生操作之部分將來自記憶體中某一其他位置之資料在記憶體內加以複製時,依據一特定程序選擇一用於儲存該資料之目的地區塊。在此程序中,基於某些類型區塊中所儲存之檔案資料之結構辨識該等區塊。接著將儲存於記憶體系統中的每一檔案標記成處於若干狀態中的一狀態下,由其中儲存該檔案之資料之區塊的數目與類型定義每一檔案狀態。將寫入一檔案之資料時,控制其目前狀態以及所允許的自一狀態至另一狀態之轉換,以限制包含一特定檔案之資料、亦包含一或多個其他檔案之資料之區塊數。此促進記憶體區塊之有效利用且降低以後維持整個記憶體中之充足已抹除區塊以接收新或複製資料所必需之後續再生操作之頻率。
此範例中所辨識的區塊(其包含檔案資料)類型如下所示:「檔案區塊」已完全程式化且包含一單一檔案之有效資料。其亦可包含某些過期資料。
「程式區塊」已部分程式化且僅包含一單一檔案之有效資料。該區塊中保留某些已抹除容量。其亦可包含某些過期資料。
「共用區塊」已部分程式化且包含兩或更多檔案之有效資料。保留某些已抹除容量。其亦可包含某些過期資料。
「寫滿共用區塊」已完全程式化且包含兩或更多檔案之有效資料。其亦可包含某些過期資料。
「寫滿程式區塊」係已寫滿之一程式區塊之一過渡指示,此時其包含最近寫入之檔案資料且亦具有某些過期資料,而且,一單一區塊可容納所存在的該檔案之偏移位址之範圍。若下一次為該檔案寫入的資料超出一單一區塊可容納的偏移位址範圍,則情況變為將一寫滿程式區塊指定為一檔案區塊。寫滿程式區塊係等效於一現有邏輯區塊位址(LBA)系統之一寫滿混亂區塊,因為在該區塊中多次寫入檔案之某些邏輯偏移,其曾經表示有效資料,而至少一其他時間表示過期資料。
另一區塊類型係「已抹除區塊」,其中區塊之總容量未程式化且可用以接收資料。記憶體寫滿或幾乎寫滿資料時,通常藉由連續再生正在使用之區塊內存在之未使用容量來維持一規定最小數目已抹除區塊之一集區。
「碎形區塊」係表示一程式區塊、共用區塊或一寫滿共用區塊的一統稱術語。一檔案的一碎形區塊包含該檔案之有效資料以及未程式化記憶體容量、其他檔案之有效資料或兩者。本文所述技術的一主要目的係藉由管理指定成接收一檔案之資料之現用區塊之類型來最小化記憶體系統中碎形區塊之數目。此使得維持所規定之最小已抹除區塊數所必需的垃圾收集與資料整合(區塊再生操作)之情況減少。因此,將資料寫入記憶體中所採用的速率會增大,因為用以再生先前已程式化區塊中之未使用容量片斷的內部資料複製會花費較少時間。
本文亦使用額外術語來共同描述其他區塊類型:
「部分區塊」包含某些未程式化容量、一或多個檔案之有效資料且亦可包含某些過期資料。程式區塊及共用區塊係部分區塊之範例。
「過期區塊」係包含某些過期資料的一檔案區塊或一寫滿共用區塊。過期區塊不包含任何已抹除容量,而包含有效及過期資料。
「無效區塊」不包含有效資料。無效區塊包含至少某些過期資料且可包含已抹除容量,但不包含任何有效資料。
圖14A至14E說明以上列出之區塊類型之用途之某些範例。在圖14A中,一檔案A之資料已填滿區塊661與663,且部分填充一第三區塊665。將資料自左至右寫入此範例之每一區塊中,首先填滿區塊661、接著填滿區塊663且之後將資料寫入區塊665之一部分中。區塊665之剩餘部分係未程式化的已抹除容量,其可儲存額外資料。依據以上列出之定義,區塊661與663係檔案區塊,而區塊665係一程式區塊。將自程式指標P之處開始將任何新資料寫入區塊665中。寫入資料至區塊時指標P自左至右移動以始終指向區塊中的下一可用儲存位置。對於保留未程式化已抹除容量的個別區塊,無論該等區塊目前是否為現用區塊,皆保留該指標,因此要寫入至該區塊之任何其他資料之實體位址始終係熟知的。
圖14B之範例顯示儲存於一檔案區塊662與一寫滿程式區塊667中之檔案A。依據以上提供的寫滿程式區塊之定義,區塊667包含最近寫入的檔案A之資料、某些過期資料而不包含未使用容量。亦依據該定義,儲存於兩區塊662與667中之檔案A之資料之總量係等於一區塊之儲存容量。在區塊667之結束處(顯示程式指標P之處)寫入檔案A之最後資料。將把接收到的檔案A之任何其他資料程式化到另一區塊中。該區塊可為將區塊667中檔案A之資料收集於其中的另一區塊,因為將再生過期資料所佔據之空間。或者,可將額外資料寫入一已完全抹除區塊中。在兩情況中的任一情況下,指標P皆移至新區塊-檔案A之額外資料之開始位置處。區塊667之後變為一檔案區塊。因此區塊667係暫時的,因為其僅存在於恰如圖14B所示之時間期間。僅在採用檔案A之資料完全填滿該區塊667之前,其係一程式區塊,而一旦寫入檔案A之任何新資料,其就立即變為一檔案資料。
圖14C之範例包括一區塊669,其係一共用區塊,因為其包含另一檔案B之資料以及目前檔案A之資料,加上某些未程式化容量。自顯示程式指標P之處開始將新資料寫入區塊669中檔案A之結束處。區塊669係檔案A之現用區塊。其亦可為檔案B之現用區塊,在該情況下,可在程式指標P處寫入檔案A或B中任一檔案之額外資料。或者,一獨立區塊(未顯示)可為檔案B之現用區塊。
可將一檔案之資料直接寫入已包含另一檔案之資料之一部分區塊的已抹除容量中,而不是寫入一已抹除區塊中,以便充分使用採用此形式之未程式化容量。在要寫入的已知檔案資料數量小於整個區塊之容量時,此特別有用。搜尋現有部分區塊以找到數量與要寫入之已知資料量適合的已抹除容量之數量。將資料之頁(或元頁,在使用元區塊情況下)數與部分區塊中未程式化的已抹除容量之頁數作比較。以此方式程式化一程式區塊之未使用已抹除空間時,其會轉換成一共用區塊。
在圖14D中,檔案A係儲存於檔案區塊661、區塊671之一部分及區塊673之一部分中。區塊671係一寫滿共用區塊,因為其中寫滿兩檔案A與B之資料。區塊673係一程式區塊,其係類似於圖14A之區塊665。區塊673係該檔案之現用區塊,而且,指標P指向區塊673中未使用容量之將首先寫入額外資料之位置。
在圖14E之範例中,將檔案A寫入寫滿共用區塊671之一部分以及一共用區塊675中。區塊675包含一第三檔案C之資料。指標P指向現用區塊675之未使用部分中將寫入額外資料之第一位置。
儘管為了說明若干不同類型的區塊而在圖14A至14E之範例中顯示檔案A之資料係儲存於多個區塊中,但在許多情況下,一檔案可能小得足以儲存於較小數目的區塊中,甚至可儲存於一單一區塊中。本文所述技術亦可應用於此類小檔案。此外,一較大檔案可佔據三個以上區塊中之頁。
應注意,區塊665、667、669、671、673及675係碎形區塊。希望最小化任一檔案之資料所佔據之碎形區塊之數目,因為其存在使得再生其中之未使用容量之需要的可能性增大,進而會負面影響系統性能。未使用的已抹除容量存在於部分區塊665、669、673及675中,但是,其可能不足以將新資料自一主機直接寫入此空間中,除非一檔案之未寫入資料量係熟知的且該已知數量與此等區塊之一的未使用容量匹配。最普通的係,來自主機的一特定檔案之資料量係未知的,因此不很容易將容量之此等位元填滿。因此,可能需要在一再生操作期間將資料自另一區塊移動到未使用空間中,以便充分使用記憶體容量。區塊669、671及675包含一個以上檔案之資料,其表示,當刪除該等檔案之一或儲存於共用區塊中的資料變為過期資料時,可能會執行資料再生以再生區塊中過期資料所佔據之容量。
因此,為了減少資料再生操作所消耗之時間數,在任一時間允許將一特定檔案之資料僅儲存於一、兩或某一其他數目的碎形區塊中。在本文所述特定範例中,可將任一檔案之資料儲存於兩或更少的碎形區塊中,但不大於該數目。對指定一新現用區塊儲存一檔案之資料之一程序係如此加以限制。為每一檔案指派一組許可檔案狀態中的一狀態,其係由其中儲存該檔案之資料之區塊的類型定義。需要指派一新現用區塊接收一特定檔案之資料時,例如一現有區塊寫滿時,如此指定的區塊類型取決於該檔案之狀態,而且,在許多情況下,亦取決於其他因素。
圖15之表中提供本文所述記憶體操作概念之一特定實施方案中十個許可檔案狀態0至9之定義,其係依據其中儲存檔案資料之碎形區塊與一寫滿程式區塊之類型與組合。許可檔案狀態中的每一檔案狀態僅允許將資料儲存於不超過兩碎形區塊中或僅儲存於一寫滿程式區塊中。對與一檔案關聯之檔案區塊之數目沒有限制。記憶體自主機接收資料以及在一再生操作期間將資料重新定位於記憶體內時,使用此等檔案狀態來為該資料之儲存選擇一現用區塊。監視儲存於記憶體系統中之每一檔案之狀態並將其記錄於檔案索引表(FIT)613(圖11)中(例如記錄於該檔案之FIT記錄之標題中),同時亦記錄其他資訊。每當發生狀態轉換時,就更新FIT項目以記錄新檔案狀態。
藉由圖16之狀態圖解說圖15中定義之檔案狀態0至9間之所得主要轉換並在圖17之表中加以說明。此等三圖提供記憶體系統之一較佳操作之細節,相信此等圖本身足以解說此操作。不過,現在將以附加方式說明此操作之某些方面。
如圖15之表所示,若在一碎形區塊中未儲存資料,則指定檔案處於狀態0下。唯一的其他區塊類型係一檔案區塊,因此該檔案具有僅寫入至一或多個檔案區塊之資料(其因資料量與區塊容量間所需精確性而最可能為一暫時狀況)或該檔案不具有儲存於任何區塊中之資料。此後一狀況發生在記憶體系統首先接收一新檔案之資訊但還沒有寫入該檔案之任何資料的時候。在兩情況中的任一情況下,皆需要指定一現用區塊以接收資料。正在自主機提供一未知長度的資料時,將一已抹除區塊指定為該現用區塊。一旦將資料寫入該已抹除區塊中,該檔案就從狀態0轉換成狀態2(參見圖16),因為此區塊已變為一現用程式區塊。
但當處於檔案狀態0下且自一主機接收到的新檔案之資料具有小於一區塊之儲存容量的一已知長度時,若具有足以儲存該已知資料量之已抹除容量的一部分區塊可用,則將該部分區塊指定為該現用區塊。該檔案因此而自狀態0轉換成狀態3(參見圖16)。該部分區塊可為一程式區塊或一共用區塊。在已知資料長度與可用部分區塊之剩餘儲存容量之間進行可能的最好適配。若不存在具有足以儲存已知資料量之容量的部分區塊,則將該資料寫入至一已抹除區塊,此導致檔案自狀態0轉換成狀態2。
處於狀態2下之檔案之一特徵係,配置一程式區塊以接收該檔案之額外資料。但是,若該檔案足夠大,則該區塊將最終寫滿,因此需要指定另一現用區塊。若寫滿區塊(現在係一檔案區塊)不包含過期資料,則檔案返回至狀態0,其中不指定現用區塊。接著如上所述依據要儲存之額外資料之數量,將一已抹除區塊或一部分區塊指定為該新現用區塊。但是,若寫滿區塊包含過期資料且檔案之最大偏移小於一單一區塊可容納之偏移位址範圍,則依據上述定義可知其為一寫滿程式區塊。因此,較佳地,藉由將該區塊之有效資料複製至一已抹除區塊來壓縮該區塊,並且抹除原始區塊。因此,所得區塊包含此有效資料與已抹除容量,其係一部分區塊。此新部分區塊之後變為現用程式區塊。因此,檔案狀態自狀態2轉換成狀態1且接著返回至狀態2(參見圖16)。但是,若在檔案處於狀態1下時接收到該檔案之資料(其偏移位址超出一單一區塊可容納之位址範圍),則寫滿程式區塊變為一檔案區塊。該檔案因此而轉換成狀態0。
在一再生操作期間,可選擇檔案處於狀態2下時所存在的現用程式區塊(其為一部分區塊)作為來自一源區塊之另一檔案之已知資料量之一目的地區塊。將程式區塊之識別項保存於一部分區塊列表上,在該列表上包括該等區塊中每一區塊之可用已抹除容量。將自一源區塊所複製之資料量適配到列表上之一部分區塊之已抹除容量中。若在一再生操作期間選擇目前檔案之程式區塊作為另一檔案之資料之一目的地區塊,則將該另一檔案之資料複製到該程式區塊之已抹除容量中之後,該程式區塊變為目前檔案之一現用共用區塊。該檔案因此而自狀態2轉換成狀態3(參見圖15與16)。
此外,當檔案處於狀態2下時,作為用以再生程式區塊之一操作之部分,亦可將該檔案中寫入到程式區塊中之資料複製到為一部分區塊(其儲存另一檔案之資料)的另一區塊中。在此情況下,再生操作之目的地區塊變為一現用共用區塊。該檔案已自狀態2轉換成狀態4。現在將該檔案之其他資料寫入該共用區塊(其係該檔案之現用區塊)中。
當一處於狀態2下之檔案之現用共用區塊寫滿時,將其指定為一寫滿共用區塊。因此該檔案係包含於兩碎形區塊(寫滿共用區塊與程式區塊)之限制內。由於可能無法配置另一碎形區塊接收該檔案之資料,故可將該檔案之資料自程式區塊複製到一已抹除區塊中,進而將此新區塊指定為該檔案之一現用程式區塊。本文將作為檔案狀態轉換之部分的此類檔案資料複製識別為「資料轉換」而且在圖16與17中如此加以標記。該檔案接著自狀態4轉換成狀態8。
在狀態轉換可視為完成之前,作為一單一操作完成任何資料轉換。此表示,若該檔案需要可將資料寫入其中的一現用區塊,則資料轉換之資料複製部分完成之前,記憶體無法執行其他操作。因此,此資料複製通常不會隨時間變化而與其他記憶體操作交錯。
指定檔案之程式區塊為一再生區塊時,檔案從狀態4轉換成狀態3。作為一再生操作之部分,將程式區塊中該檔案之資料移至一共用區塊,此後該共用區塊變為該檔案之現用區塊。此外,一處於狀態4下之檔案之現用共用區塊一旦寫滿,就將該檔案儲存於兩碎形區塊中。將該等碎形區塊之一消除之前,不能將另一區塊配置為該現用區塊。因此,作為一自狀態4至狀態7之轉換之部分,將程式區塊中之資料移動(資料轉換)至一部分區塊之已抹除容量,藉此消除碎形程式區塊。所得共用區塊因此變為該檔案之現用區塊。
當處於狀態3下時,正在將該檔案之資料寫入一現用共用區塊中。若在一再生操作期間將該檔案之資料自該現用共用區塊移至一部分區塊之已抹除容量,則該目的地部分區塊變為可將該檔案之其他資料寫入其中的一現用共用區塊。該檔案接著自狀態3轉換成狀態6。但是,若源程式區塊中要移除的資料量無法與部分區塊列表上之一部分區塊之容量很好地適配,則將共用區塊中的檔案資料自該區塊移至一已抹除區塊,而且該已抹除區塊變為該檔案之一現用程式區塊。該檔案接著自狀態3轉換成狀態2。在此狀態轉換過程中,一現用區塊之配置包括使資料自原始共用區塊轉換至新的已抹除區塊,其之後變為該檔案之該一現用程式區塊。
該檔案處於狀態3下時,正在將該檔案之資料寫入其中之現用共用區塊亦可能寫滿。因此,該檔案不具有可將其他資料寫入其中之現用區塊而轉換成狀態5。此狀態在操作方面係與檔案狀態0類似,因為不存在可用於該檔案之現用區塊,但兩狀態亦有區別:檔案處於狀態5下時,檔案之資料係包含於一寫滿共用區塊中。處於狀態0下時,不存在包含該檔案之資料之碎形區塊。狀態0與5通常係暫時狀態,一寫入該檔案之額外資料,該等狀態就會發生轉換。
處於狀態5下時,至其他檔案狀態之可能轉換係類似於檔案處於狀態0下時之狀態轉換,不同之處係,處於狀態5下時,該檔案之某些資料係儲存於一共用區塊中,而處於狀態0下時,資料並不儲存於共用區塊中。若資料量係未知的,則為該檔案之額外資料配置一已抹除區塊,從而創建一現用程式區塊,而且該檔案轉換成狀態8。若資料量係已知的,在尺寸方面可很好地適配情況下,可將資料寫入該部分區塊之剩餘容量中,藉此使該部分區塊變為一現用共用區塊,而且,該檔案自狀態5轉換成狀態7。檔案狀態8係類似於狀態2,不同之處係,處於狀態8下時,該檔案之資料係儲存於一寫滿共用區塊中,而在處於檔案狀態2下時,不存在此類區塊。檔案狀態7係與檔案狀態3有關。
當處於檔案狀態6下且現用共用區塊填滿資料時,則將該檔案儲存於一寫滿共用區塊及共用區塊中。由於在此具體實施例中已達到兩碎形區塊之限制,故不能將另一區塊配置為一程式區塊或某一其他碎形區塊。因此,需要進行資料轉換。將該檔案之資料自共用區塊之一移至一部分區塊(檔案轉換成狀態7),其接著變為該檔案之一現用共用區塊,或者,在該資料與一部分區塊之已抹除容量無法恰當適配情況下,將該資料移至一已抹除區塊(檔案轉換成狀態8)。
處於檔案狀態7下時,現用共用區塊可能會寫滿。因此將該檔案儲存於兩寫滿共用區塊中,而該檔案轉換成狀態9。
當該檔案處於狀態7下時,亦可將共用區塊指定為一再生區塊,因此,之後需要重新定位該檔案之資料。接著發生資料轉換。若將該檔案之資料自共用區塊移至一已抹除區塊(其之後變為一現用程式區塊),則發生一至檔案狀態8之轉換。若將該檔案之資料以插入方式移至一部分區塊中,則該部分區塊變為一共用區塊且檔案狀態仍為7。
檔案狀態9係一穩定狀態,因為在其間未將額外資料寫入至一檔案之一時間期間,該檔案可保持於兩寫滿共用區塊內。但是,在該檔案處於該狀態下時,不指定現用區塊。由於存在兩碎形區塊之限制,因此,在可將額外資料寫入至該檔案之前必須執行資料轉換。在該一情況下,可將兩寫滿共用區塊之一中的所有檔案資料移至一已抹除區塊中,而且,此區塊接著變為一現用程式區塊,用以寫入該檔案之新資料。該檔案接著自狀態9轉換成狀態8。但是,若兩寫滿共用區塊之一中的檔案資料量加上該檔案之額外資料之合計小於一區塊之容量,則在一部分區塊中搜尋足夠的已抹除空間。若可找到足夠的已抹除空間,則將該等寫滿共用區塊之一中的檔案資料移至該部分區塊中,而且,該部分區塊變為一現用共用區塊,用以寫入該檔案之額外資料。此導致自狀態9轉換成狀態7。
當處於檔案狀態8下時,正在將該檔案之資料寫入至一現用程式區塊,同時該檔案之其他資料仍儲存於一寫滿共用區塊中。當該程式區塊寫滿時,其變為一檔案區塊,而且,不再存在可用於該檔案之現用區塊。該狀態接著轉換成狀態5,其中另一檔案轉換配置一已抹除區塊或一部分區塊作為該新現用區塊,如上所述。
但是,當處於狀態8下且選擇該檔案之現用程式區塊作為一再生操作之一目的地區塊時,在一第一情況下,該檔案狀態直接轉換成狀態7。此創建一共用區塊,其係用以接收該檔案之新資料的現用區塊。或者,若將處於狀態8下之檔案之現用程式區塊指定為一再生操作之源區塊,則將該檔案之資料移至一部分區塊,其接著變為一現用共用區塊,用以將額外資料寫入至該檔案。在一第二情況下,該檔案狀態亦從狀態8轉換成狀態7。
除圖16與17所示主要檔案狀態轉換之外,亦會發生一組次要檔案轉換。圖18與19顯示此等轉換。當一檔案中儲存於一碎形區塊(包含一目前關注檔案之資料)中之所有資料變為過期資料時,該目前檔案發生此等次要轉換。該過期資料可屬於目前檔案,亦可屬於某一其他檔案。資料變為過期資料之原因可能係,主機刪除一檔案、一主機更新一檔案之先前寫入資料或在一再生操作期間重新定位一檔案之資料。在更新一檔案之過程中,例如,採用寫入另一區塊中之新資料所有更新儲存於一共用區塊中之檔案所有資料時,顯現為過期。在一再生操作之一範例中,若將一共用區塊中之一檔案之資料(其不屬於目前關注檔案)複製到另一區塊中,則該共用區塊中另一檔案之資料變為過期資料。
在此等情況下,使資料成為過期資料會導致其中儲存過期資料之區塊之類型發生變化,從而導致檔案之狀態發生變化。該檔案之資料需要一新現用區塊時,以關於圖16與17所述方式選擇現用區塊,但要基於新檔案狀態。
圖18之轉換以及圖19所發生特定轉換之識別提供該等轉換之完整描述。應注意,此等轉換旨在減少包含檔案資料之碎形區塊之數目,從而簡化檔案狀態。此等轉換旨在促使檔案之狀態朝不具有碎形區塊之狀態0轉變。
要程式化一檔案之資料且目前不存在可用於該檔案之現用區塊時,使用檔案狀態之資訊來決定要配置成該檔案之現用區塊之區塊類型。圖20之表在右手行中綜述在中間行所述狀況下,為處於狀態0至9中任一狀態下之檔案配置現用區塊之情況。按所示順序選擇區塊類型。藉由「最適部分區塊」表示具有已知資料量可有效利用之某一數量已抹除容量之一部分區塊。若不存在恰當的部分區塊,則最常見的情況係選擇一已抹除區塊。但是,若無法為處於狀態2或3中任一狀態下之一檔案識別一最適配部分區塊,則配置一「最大部分區塊」,其係不具有足以儲存要寫入之全部資料量之已抹除容量的一區塊,但係能儲存該資料中最大數量資料的一區塊。該檔案接著改變其狀態,而且,新狀態控制用以接收剩餘資料量(其未適配到最大部分區塊中)之區塊之選擇。但是,若由於資料量以及部分區塊中之可用容量,最大部分區塊之使用使得資料將在兩個以上區塊中展開,則將一已抹除區塊配置成現用區塊。
可藉由圖2所示範例性記憶體系統中控制器11之處理器27(執行所儲存之韌體)來執行上述操作。
再生區塊容量
如上所述,區塊管理之部分包括再生區塊中的未使用容量,用以儲存新資料。當記憶體系統中所儲存之資料量遠遠小於其容量時,此並非特別關心的問題,但較佳地將一記憶體系統設計成如同其寫滿資料一樣進行運作。此表示,可以再生此未使用容量之方式處理僅包含過期資料之區塊以及包含有效資料但亦具有某些過期資料及/或未寫入、已抹除頁之其他區塊。目標係儘可能充分地利用記憶體系統之儲存容量,同時最小化對系統性能之負面影響。在圖11之總體系統操作圖中將區塊再生標記成617。
將為一再生操作所指定之一區塊(源區塊)中的任何有效資料複製到具有足以儲存該有效資料之已抹除容量的一或多個區塊(目的地區塊)中。依據上述區塊管理技術選擇該目的地區塊。將儲存於源區塊中之每一檔案之資料複製至如上所述基於檔案狀態及其他因素所選擇的一類型區塊。圖21A至21D提供作為再生操作之部分之不同類型檔案間資料複製之範例。
在圖21A中,舉例說明兩部分區塊681與683上之再生操作。區塊681係一程式區塊,其中儲存檔案A之有效資料,同時亦包含未儲存資料之已抹除容量。視檔案A之狀態而定,一可能的再生操作係將區塊681中檔案A之資料複製到另一部分區塊685(其已包括一部分檔案B之資料)之可用已抹除容量中,從而使其成為一共用區塊。接著,在FIT中不再提及區塊681中之該一(或多個)資料群組且將該區塊標記成過期區塊。當儲存於區塊681中時,檔案A具有狀態2、4或8(參見圖15)中的一狀態,其包括一程式區塊。接著可將該資料移至另一碎形區塊中,同時仍將該檔案寫入至最多兩個碎形區塊中。複製至區塊685之後,檔案A視其中儲存該檔案之其他資料之區塊類型而轉換成狀態3、4、6或7(其包括儲存於一共用區塊中之檔案資料)中的一狀態。
圖21A之區塊683係藉由將其所儲存的檔案C與D之資料複製到包含檔案E之資料之一程式區塊687(其之後變為一共用區塊)之已抹除容量中而正在再生的一共用區塊。如同區塊683本身變為過期區塊一樣,區塊683中檔案C與D之資料之後亦變為過期資料。檔案C與D中每一檔案之狀態皆未改變,因為已將資料自一共用區塊移至另一共用區塊。不過,檔案E之狀態已從2變為3或從8變為7。或者,可將檔案C與D中每一檔案之資料移至彼此不同的區塊且不必將該等資料複製至一共用區塊之可用空間。該等檔案之狀態之後可能轉換成其他狀態。
圖21B說明範例性區塊689與691上之再生操作。此等區塊中的每一區塊皆為一過期區塊,因為其寫滿資料(有效及過期資料)。區塊689係包含檔案F之資料(其中的一部分係過期資料且剩餘部分係有效資料)的一檔案區塊。舉例而言,在檔案F之更新期間(其中將與該檔案之現有資料具有相同邏輯偏移之新資料實體寫入該檔案之結束處,因此該等現有資料之後變為過期資料)可能發生此情況。在此範例中,將檔案F之資料複製到一程式區塊693(其包含檔案G之資料)之已抹除容量中,此導致區塊693之類型變為一共用區塊。或者,可將檔案F之有效資料寫入至一已抹除區塊,此導致該區塊之後變為一程式區塊。
圖21B之區塊691係一寫滿共用區塊,其包含檔案H之無效資料以及檔案I之有效資料。在此範例中,將檔案I之有效資料自區塊691複製到一已抹除區塊695中。區塊695因此變為一程式區塊。或者,若可找到一良好適配,則將檔案I之資料寫入至包含另一檔案之資料的一部分區塊中。該目的地區塊將取決於檔案I在該再生操作時的狀態。
依據圖21A與21B所示再生操作之四個特定範例中的每一範例,將儲存於兩部分區塊中的資料組合到一區塊中,藉此使兩區塊中的另一區塊僅具有過期資料。其之後係無效區塊。之後藉由抹除區塊而再生原始區塊681、683、689及691中每一區塊之全部空間,如圖21C所示。已抹除區塊係再生無效區塊之結果。
圖21D顯示其中儲存一檔案J之資料之一檔案區塊697之一範例。主機刪除檔案J時,區塊697中且亦可能存在於其他區塊中的檔案J之資料變為過期資料。區塊697之後變為無效區塊。再生該無效區塊可為系統已抹除區塊集區提供一已抹除區塊。
自記憶體刪除一檔案通常亦會導致位於一或多個碎形區塊(例如,一共用區塊或一寫滿共用區塊)中的該檔案之資料變為過期資料。該區塊之後經歷一再生操作,因為另一檔案之剩餘有效資料將小於該區塊之儲存容量且可為一少量資料。
圖22之流程圖概括地顯示一再生操作。視特定具體實施例而定保存部分、過期及無效區塊之一或多個列表,如步驟701所示。可將該(等)列表保存成區塊列表615(圖11)之部分。依據一記憶體操作技術,在記憶體系統啟動時,例如最初施加功率時,創建此(等)區塊列表。此(等)列表可包括致動每次選擇一再生區塊之其他區塊資訊,例如每一區塊中有效資料之數量以及每一區塊中已抹除記憶體容量之數量。通常依據區塊之頁數,或者在使用元區塊情況下依據元頁數來測量此等量。一較佳替代技術係將此等列表保存於非揮發性記憶體中,而且,每當列表中一區塊之一項目之狀態變化時,就添加或更新該項目。採用此技術,在啟動記憶體系統時,就不必掃描該等區塊並創建該等列表。作為在該(等)列表上保存所有部分、過期及無效區塊之一替代,可僅包含具有少量有效資料(其低於某一設定臨限量)之區塊,因為一選定再生區塊之一特徵係,其具有很少或不具有需要加以複製之有效資料。許多再生操作中所必需的資料自一區塊至另一區塊之複製會花費大量時間,因此通常首先在具有較少量需要複製之資料的區塊上執行此複製。
在寫入、更新、移動、刪除資料以及類似操作時,此類區塊之該(等)列表不斷變化。導致區塊之類型在部分、過期及無效區塊間變化之變化導致藉由圖22之步驟701所保存之該(等)列表發生變化。在區塊列表615(圖11)中亦標記分別儲存於此類區塊中之有效資料量以及已抹除容量之數量的變化。
在一步驟703中,較佳地自該(等)已更新列表上之再生區塊中識別一單一再生區塊,作為下一要再生的區塊。若該再生區塊係一部分或過期區塊,則將一有效資料來源複製到稱作目的地區塊的另一區塊中。以下說明可用以選擇源區塊之若干特定技術。
下一步驟705接著藉由考量回應於主機之命令而需要執行之記憶體操作來決定是否適合在目前時間執行再生操作。若主機已將一閒置命令發送給記憶體系統或某一類似命令(其指示,將來某一時間週期期間主機不希望記憶體系統執行一特定操作),則記憶體系統可自由在前景中執行前述管理操作,其包括一再生操作。即使記憶體系統回應於一主機命令而忙於將資料寫入至記憶體或自記憶體讀取資料,亦可使再生操作(尤其是其資料複製)與資料寫入及讀取操作交錯執行。在2005年10月25日所申請的Alan Sinclair之美國專利申請案序號11/259,423以及2005年12月19日所申請的Alan Bennett等人之美國專利申請案序號11/312,985中說明此類交錯。
若步驟705決定可執行一再生操作,則該程序會視所識別之再生區塊是否包含有效資料而不同,而且,若所識別之再生區塊包含有效資料,則該程序會視其是否包含一個以上檔案之有效資料而不同。若所識別之再生區塊係一部分區塊或過期區塊,則依據定義其將包含有效資料,而且,若所識別之再生區塊係一共用區塊或一寫滿共用區塊,則其將包含兩或更多檔案之有效資料。步驟707決定該再生區塊中是否存在有效資料。若存在必須移動的有效資料,則在下一步驟709中,識別一單一檔案之資料並將一目的地區塊識別成接收該資料。藉由以上相對於圖15至17所述程序識別該目的地區塊,以便將該有效資料所屬檔案之所有資料儲存於兩或更少碎形區塊中(在此範例中)。接著開始將一檔案之有效資料自源再生區塊複製至該目的地區塊,如步驟711所示。複製此等資料之後,處理返回至步驟707以決定是否保存另一檔案之資料。若答案為是,則針對額外資料重複步驟709與711之處理。以獨立於先前選擇之方式為一不同檔案之資料選擇目的地區塊。此繼續,直到在步驟707中決定源區塊中不再存在要移動之資料,在該情況下,可經由步驟713抹除源區塊。接著可將此區塊放入已抹除區塊集區中,用以儲存新資料。
返回至步驟707,若源區塊不包含有效資料(其係一無效區塊之情況),則不存在要移動之有效資料。僅需要抹除源區塊。因此,在該情況下,處理會繞過步驟709與711,如圖22所示。
在圖22之程序之一第一具體實施例中,藉由步驟701保存部分、過期及無效區塊之一單一列表。該區塊中之有效資料之數量係包含於該列表上的個別項目中。在步驟703中,自該列表所選擇的作為再生區塊之區塊係具有最少有效資料之區塊。若在該列表上存在一無效區塊,則將首先選擇該區塊,因為其不具有有效資料。若在該列表上存在許多無效區塊,則選擇在那裏存在最長時間之區塊。若該列表上不存在無效區塊,則選擇具有最少量有效資料之區塊作為再生區塊。藉由選擇列表上所有區塊中具有最少量有效資料之區塊,則與存在較多需要自一區塊複製至另一區塊之有效資料之情況相比,再生操作會花費較少時間。因此,可使記憶體系統之其他操作(例如,將資料寫入至記憶體及自記憶體讀取資料之速度)維持一高速率。可以記憶體性能之較低代價獲得一新抹除區塊。
圖22之程序之此第一具體實施例(其係基於一單一列表上之碎形區塊中之有效資料量選擇一源區塊)具有實施相對簡單之優點。不過,藉由另外考量部分區塊之值可改進此程序。部分區塊具有可將資料寫入其中之已抹除容量,而過期區塊與無效區塊皆不包含任何已抹除容量。在過期區塊可用於儲存新資料之前,必須將其中的任何有效資料移出並移至另一區塊中,從而可接著抹除該等過期區塊而使其可用於新資料之儲存。但部分區塊具有可將資料寫入其中之已抹除容量,而不必執行再生操作之管理。例如,再生一部分區塊可能不利,僅僅因為其包含最少量有效資料時,亦包含可將資料寫入其中之大量已抹除容量。
因此,在圖22之程序之其他具體實施例中,基於有效資料量以及存在於部分區塊中之已抹除容量之數量選擇一部分區塊作為再生源區塊之一侯選。圖23顯示一部分區塊中之資料成分。該區塊(可為一元區塊)具有某一數目一或多個的頁(可為元頁)(包含有效資料)以及一或多個其他頁(其已抹除且可將資料寫入其中)。該部分區塊亦可包含一或多個其他頁(其包含過期資料),如圖23之範例所示。
在圖22之程序之此等其他具體實施例中,較佳地藉由步驟701將該等部分區塊保存於與一或多個過期及無效區塊列表分離的一列表中。當部分區塊具有少量已抹除容量(其表示該等部分區塊在其目前狀態下並不非常有用)以及少量需要移動之有效資料時,在一再生操作部分區塊朝其列表之標頭移動。此類區塊將主要包含過期資料。相反地,不大可能將具有大量已抹除容量(表示其可用以儲存資料)以及大量要移動之有效資料之部分區塊識別為再生區塊之侯選。再生一具有已抹除容量之部分區塊不會像再生一過期區塊一樣為記憶體系統添加相同數量的儲存容量。很明顯,無效區塊係最有吸引力的再生區塊,因為其不具有有用的已抹除容量且不具有需要複製的有效資料。
在圖22之再生區塊識別步驟703之一第二具體實施例中,藉由步驟701保存三個獨立列表,為部分、過期及無效區塊中的每一區塊類型保存一列表。若存在無效區塊,則自無效區塊列表選擇再生區塊,直到該列表上不再存在區塊。除了可能採用先進先出(FIFO)順序之外,沒有特定列出無效區塊之順序,因此將首先選擇列表上存在時間最長的無效區塊。其次,若不存在無效區塊,則自過期區塊列表中選擇該列表上所有區塊中具有最少量有效資料之區塊。
若無效及過期列表上皆不存在區塊,則在步驟703中選擇部分區塊列表上之一區塊作為再生區塊。儘管可選擇具有最少量有效資料之一部分區塊作為該再生區塊,但較佳地以可辨識其已抹除容量之益處之方式排列該等部分區塊。為此目的,可如下計算每一部分區塊之「再生增益」:
其中S係依據其資料儲存頁總數之區塊尺寸,E係可將資料寫入其中之已抹除容量之頁數,而V係包含需要移至另一區塊之有效資料之頁數。包含常數k係為了對區塊之已抹除容量之正面效應進行加權,但可將該常數k設定成1。隨著kE之值增大,所得再生增益下降。隨著V之值上升,再生增益亦下降。在步驟703中選擇具有最高再生增益值之部分區塊作為再生區塊。或者,可使用基於E與V之其他數學表達式來定義一再生增益,其可使包含有效資料對系統操作之不利與具有已抹除容量之益處平衡。每當區塊中出現變化時(例如,每當將資料寫入其已抹除容量中時),可計算再生增益,而且,可將再生增益作為檔案目錄或FIT所保存之資訊之部分加以儲存。
圖25解說此第二具體實施例,其中顯示一種自獨立部分、過期及無效區塊列表(如圖22之步驟701所保存之列表)選擇一再生區塊之方法(圖22之步驟703)。步驟721首先決定在該無效區塊列表上是否列有一區塊。若存在多個此類區塊,則藉由一步驟723選擇在該列表上存在時間最長之區塊作為再生區塊。若該無效區塊列表上不存在區塊,則藉由步驟725決定在過期區塊列表上是否存在一項目。若答案為是,即在該過期區塊列表上存在一個以上區塊之情況下,藉由步驟727選擇具有最少量有效資料之區塊作為再生區塊。若步驟725決定過期區塊列表上不存在項目,則在步驟729中考量部分區塊列表。若在部分區塊列表上存在一個以上區塊,則選擇具有最高再生增益之區塊作為再生區塊。例如使用(例如)以上等式(1),該再生增益考量有效資料量以及區塊中之已抹除容量。若該部分區塊列表上不存在區塊,則藉由返回至步驟721而重複該程序,直到在該等列表之一上出現一區塊。選擇一再生區塊之後,處理進行至圖22之步驟705。
圖24之流程圖顯示一第三具體實施例。亦藉由步驟741(其尋找藉由圖22之步驟701所保存之無效區塊列表上之一項目)開始圖22之步驟703之執行。若在該無效區塊列表上存在一個以上的項目,則藉由圖25之步驟743選擇時間最長之區塊作為再生區塊。若該無效區塊列表上不存在項目,則下一步驟745決定在過期區塊列表上是否存在一項目。若答案為是,則隨後步驟將與圖24之具體實施例不同,因為,若部分區塊列表上亦存在至少一項目,則決定自過期區塊列表選擇再生區塊為最好還是自部分區塊列表選擇再生區塊為最好。
步驟747識別過期區塊列表上包含最少量有效資料之區塊。接著藉由步驟749決定部分區塊列表上是否存在至少一區塊,若答案為是,則在步驟751中識別具有最少量有效資料之區塊。下一步驟753接著在自過期區塊列表所識別的該一區塊與在部分區塊列表上所識別之該一區塊之間作出一選擇。為此目的,在步驟751中計算自部分區塊列表所識別之區塊之量(V+kE),項目V、E及k係如上所述。將此量與步驟747中自過期區塊列表所識別之區塊中之有效資料量V作比較。若部分區塊之(V+kE)量大於過期區塊之V,則在步驟755中選擇過期區塊作為再生區塊。相反,若過期區塊之V大於所識別部分區塊之(V+kE)量,則在步驟757中選擇部分區塊作為再生區塊。
在僅與所識別過期區塊之有效資料V作比較之前,藉由將所識別部分區塊之已抹除容量量kE與其有效資料V相加,該程序會偏愛選擇過期區塊。將保留與已識別過期區塊具有相同有效資料量的一已識別部分區塊,因為該部分區塊仍可用以在其已抹除容量中儲存資料。實際上,將保留有效資料量比過期區塊之有效資料量少數量kE的一部分區塊。
返回至圖25之步驟745,若過期區塊列表上不存在項目,則在步驟759中決定部分區塊列表上是否列有一區塊。若答案為否,則程序返回至要重複的步驟741,直到在三列表之一上放置一區塊。若列有多個部分區塊,則在步驟761中,選擇具有最少量有效資料之區塊作為再生區塊。或者,藉由使用相對於該第二具體實施例(圖24)之步驟731所述再生增益選擇部分區塊。
該第三具體實施例亦可替代地僅使用兩列表。第一列表係一過期區塊列表,其包括包含過期資料且不包含已抹除記憶體容量之區塊之項目。與圖25所示使用一獨立無效區塊列表不同,將無效與過期區塊皆放於一單一「過期」區塊列表上。該等區塊可視需要包含有效資料。該列表中的每一項目具有一欄位,其包含定義其所關聯之區塊中之有效資料量的一值。依據此等欄位中的該等值對列表中的項目進行排序。因此,將包含過期資料之區塊以及不包含有效資料之區塊(無效區塊)分組在一起而位於此第一列表之標頭處。
該第三具體實施例之此替代具體實施例中的第二列表係一部分區塊列表,其包括包含某些已抹除記憶體容量之區塊之項目。該等區塊可視需要包含有效資料。該列表中的每一項目具有一欄位,其包含定義其所關聯之區塊中之有效資料量的一值。依據此等欄位中的該等值對列表中的項目進行排序。可藉由圖25之步驟753之技術而自該第一或第二列表之標頭選擇一區塊(具有最少無效資料量之區塊)。
圖26之表提供依據該第三具體實施例之此修改而放於部分與過期區塊列表上用於一再生操作用之區塊類型之細節。要放於部分區塊列表上的區塊包含有效資料與已抹除容量。該區塊中是否存在任何過期資料並不重要。要放於過期區塊列表上的區塊包含過期資料以及有效資料或已抹除容量中的任一者,但不同時包含有效資料與已抹除容量。
可藉由圖2所示範例性記憶體系統中控制器11之處理器27(執行所儲存之韌體)來執行以上關於圖22、24及25所述程序。
結論
雖然已經針對本發明之範例性具體實施例來說明本發明之各方面,但是應瞭解,本發明有權在隨附申請專利範圍的完整範疇內受到保護。
1...主機系統
2...快閃記憶體
3、4...配合零件
5...應用程式部分
6...驅動器部分
7...快閃記憶體
8...電路
11...晶片/控制器
13...系統匯流排
15...記憶體晶片
17...導體
19...位址匯流排
21...控制與狀態部分
23...控制器匯流排
25...介面電路
27...處理器
29...唯讀記憶體
31...隨機存取記憶體
33...電路
35...電路
37...外部接點
39...時脈
41、43...平面
45、47...行控制電路
49、51...位元線
53...字元線
55...列控制電路
57、59...來源電壓控制電路
61、63...p井電壓控制電路
65、67...資料輸入/輸出電路
71...線
73...介面電路
75...狀態機
77、78、79、80、81...控制線
83...線
91、92、93、94...線
97、98、99、100...記憶體單元串
101、102、103、104...記憶體單元串
107、108、109、110...電荷儲存記憶體單元
111、112...選擇電晶體
115、116、117、118...字元線
119、120...閘極
123、125...區塊
131、132、133、134...平面/子陣列
137、138、139、140...區塊
141、143...元區塊
145、146、147、148...區塊
151...元頁
153、155...區段
157...資料部分
159...管理資料部分
160...轉換
161...邏輯位址空間
163...區塊
165...記憶體陣列
167、169、171...元區塊
173...記憶體控制器功能
181...檔案資料
183、185...區塊/元區塊
184...部分
187...資料
189...附加資料
191...資料
193...位置
195...部分
197...已更新部分
199...部分
601...以檔案為主之介面
603...快閃記憶體陣列
605...檔案區塊管理功能
607、609、611、613、617、619...功能
615...區塊列表功能
621...轉譯層
623...介面層
625...檔案介面
627...物件介面
629...反向相容邏輯介面
631、633、635...協定配接器
641、643、645...區塊
647、649、651...功能
661、663、665、667、669、671、673、675...區塊
681、683、685...部分區塊
687...程式區塊
689、691...區塊
693...程式區塊
695...已抹除區塊
697...檔案區塊
圖1示意性解說目前所實施的一主機與一所連接之非揮發性記憶體系統;圖2係用作圖1之非揮發性記憶體之一範例性快閃記憶體系統之方塊圖;圖3係可用於圖2之系統中之一記憶體單元陣列之代表性電路圖;圖4解說圖2之系統之一範例性實體記憶體組織;圖5顯示圖4之實體記憶體之一部分之一展開圖;圖6顯示圖4與5之實體記憶體之一部分之另一展開圖;圖7解說一主機與一可再程式化記憶體系統間的一普通先前技術邏輯位址介面;圖8解說與圖7一主機與一可再程式化記憶體系統間的一普通先前技術邏輯位址介面採用不同方式的一邏輯位址介面;圖9解說依據本發明之一主機與一可再程式化記憶體系統間的一直接檔案儲存介面;圖10解說與圖9依據本發明之一主機與一可再程式化記憶體系統間的一直接檔案儲存介面採用不同方式的一直接檔案儲存介面;圖11係結合一直接資料檔案儲存介面運作的一記憶體系統之功能方塊圖;圖12解說一直接資料檔案記憶體之一作業循環;圖13A至13D顯示將檔案之資料直接寫入該記憶體中的四個不同範例;圖14A至14E顯示將一資料檔案儲存於區塊類型之各種許可組合中之範例;圖15係其中儲存個別檔案之資料之區塊類型所許可之檔案狀態之一列表;圖16係顯示圖15列出之檔案狀態間之許可主要轉換的一狀態圖;圖17(包括圖17A、圖17B、圖17C及圖17D)係說明圖16之狀態圖中所示主要檔案狀態轉換的一表;圖18係顯示圖15列出之檔案狀態間之所得次要轉換的一狀態圖;圖19(包括圖19A與圖19B)係說明圖18之狀態圖中所示次要檔案狀態轉換的一表;圖20(包括圖20A與圖20B)係一總結表,其列出在圖15至20之狀況下可配置成現用區塊之區塊類型;圖21A至21D顯示區塊再生操作之範例;圖22係概括解說一再生操作的一流程圖;圖23解說儲存於一典型部分記憶體單元區塊中之資料類型;圖24提供執行圖22之流程圖步驟之一的一特定具體實施例之細節;圖25提供用以執行圖22之流程圖之相同步驟之一替代具體實施例之細節;及圖26係定義放於另一具體實施例之兩區塊列表上之區塊類型之一表。

Claims (18)

  1. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:保存至少一包括區塊之列表,該等區塊分別包含小於該區塊之一資料儲存容量的一有效資料量,自該至少一列表選擇一區塊,該選擇係基於相對於該至少一列表上之其他區塊中之有效資料量之該區塊中之有效資料量,將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此使已被抹除之該被選定區塊變得可用於其他資料之儲存。
  2. 如請求項1之方法,其中選擇一區塊包括基於相對於該列表上之其他區塊中之有效資料量之其中有效資料量自該至少一列表選擇該區塊。
  3. 如請求項1之方法,其中選擇一區塊包括自相對於該列表上之其他區塊中之有效資料量而言具有最少量有效資料之該至少一列表選擇區塊。
  4. 如請求項1之方法,其中自該至少一列表選擇一區塊額外包括基於相對於該至少一列表上之其他區塊中之已抹除儲存容量之數量之其中已抹除儲存容量之一數量,以自該至少一列表選擇該區塊。
  5. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在 再程式化之前被抹除之記憶體單元區塊,該方法包含:保存至少一包括區塊之列表,該等區塊分別包含一數量的有效資料加上過期資料或某些已抹除資料儲存容量或兩者,藉由考量該至少一列表上之該等區塊之有效資料與該已抹除儲存容量之相對數量而自該至少一列表選擇一區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此使已被抹除之該區塊變得可用於其他資料之儲存。
  6. 如請求項5之方法,其中自該至少一列表選擇該區塊包括折衷考量該被選定區塊相對於該至少一列表上的其他區塊而言具有一低數量之有效資料以及該被選定區塊相對於該至少一列表上的其他區塊而言具有一高數量之已抹除儲存容量之益處。
  7. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:保存包括任何分別包含一數量的有效資料加上過期資料但不具有已抹除資料儲存容量之區塊之一第一列表,決定該第一列表上是否存在一或多個區塊,若答案為是,則基於其上之該等區塊中之有效資料量自該第一列表識別一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹 除資料儲存容量之區塊之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則基於該等區塊中之有效資料以及已抹除儲存容量之數量自該第二列表識別一第二區塊,基於再生(reclaim)該等區塊對該記憶體系統之操作之價值(value)選擇該第一或該第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此將該被選定第一或第二區塊再生成一已被抹除之區塊,其係可用於其他資料之儲存。
  8. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前抹除之記憶體單元區塊,該方法包含:保存包括任何分別包含一數量的有效資料加上過期資料但不具有已抹除資料儲存容量之區塊之一第一列表,決定該第一列表上是否存在一或多個區塊,若答案為是,則自該第一列表識別其上之該等區塊中具有最少量有效資料之一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹除資料儲存容量之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則自該第二列表識別其上之該等區塊中具有最少量有效資料之一第二區塊,針對該第二區塊中之已抹除資料儲存容量之該數量調整 該第二區塊中之該有效資料量之後,基於其中所包含之有效資料之該數量選擇該第一或第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此使該被選定第一或第二區塊變為一已抹除區塊,其係可用於其他資料之儲存。
  9. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊,該內容包含個別區塊之一數量之資料以及可用之已抹除容量之一數量,及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊。
  10. 如請求項9之方法,其中為一再生操作選擇一區塊額外包括選擇在該至少部分區塊中具有較小數量之有效資料及較小已抹除容量之組合的區塊。
  11. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊,及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於有效資料之數量 以及該至少某些區塊之個別區塊中用於儲存資料之剩餘已抹除容量之一數量而選擇。
  12. 如請求項11之方法,其中為一再生操作選擇一區塊額外包括基於分別不包括過期資料之該等區塊中的至少某些區塊之內容而選擇一區塊。
  13. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊;及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於該等區塊中的至少某一區塊之內容而選擇一區塊,該等區塊分別包括剩餘在該等個別區塊中用以儲存資料之一數量的已抹除容量。
  14. 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊;及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於分別不包括過期資料之該等區塊中的至少某些區塊之內容而選擇。
  15. 一種可再程式化非揮發性記憶體系統,其包含:非揮發性記憶體單元之區塊,其特徵在於,重寫入資料至其中之前被抹除,及一控制器,其係功能性地與該等區塊連接且運作以基於儲存之有效資料之相對數量以及至少複數個該等區塊之個別區塊中剩餘之已抹除容量之相對數量之一組合,來選擇一區塊,該區塊具有未由有效資料佔據且將被再生之儲存容量的一部分以儲存有效資料,且接著致使將被選定之該區塊之該有效資料被複製至另一區塊,其中該控制器進一步運作以基於該至少複數個區塊中個別區塊內不包含過期資料之情況,來選擇將被再生之區塊。
  16. 如請求項15之記憶體系統,其中該控制器進一步運作以基於該至少複數個區塊之個別區塊中儲存之有效資料之最少數量,來選擇將被再生之區塊。
  17. 如請求項15之記憶體系統,其中該控制器進一步運作以基於剩餘在該至少複數個該等區塊中之個別區塊之用於儲存其中之資料之已抹除容量之一最少數量,來選擇將被再生之區塊。
  18. 一種可再程式化非揮發性記憶體系統,其包含:一非揮發性記憶體單元陣列,其係組織成可同時抹除之記憶體單元區塊,及一控制器,其係以可運作方式與該陣列連接且運作以:保存包括任何分別包含一數量的有效資料加上過期資料,但不具有已抹除資料儲存容量之區塊之一第一列表, 決定該第一列表上是否存在一或多個區塊,若答案為是,則自該第一列表識別其上之該等區塊中具有最少量有效資料之一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹除資料儲存容量之區塊之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則自該第二列表識別其上之該等區塊中具有最少量有效資料之一第二區塊,針對該第二區塊中之已抹除資料儲存容量之該數量調整該第二區塊中之該有效資料量之後,基於其中所包含之有效資料之該數量選擇該第一或第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及之後抹除該被選定區塊。
TW095128505A 2005-08-03 2006-08-03 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 TWI421684B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70538805P 2005-08-03 2005-08-03
US11/382,232 US7450420B2 (en) 2005-08-03 2006-05-08 Reclaiming data storage capacity in flash memories
US11/382,235 US7558905B2 (en) 2005-08-03 2006-05-08 Reclaiming data storage capacity in flash memory systems

Publications (2)

Publication Number Publication Date
TW200728977A TW200728977A (en) 2007-08-01
TWI421684B true TWI421684B (zh) 2014-01-01

Family

ID=37402587

Family Applications (6)

Application Number Title Priority Date Filing Date
TW095128507A TW200805134A (en) 2005-08-03 2006-08-03 Data operations in flash memories utilizing direct data file storage
TW095128508A TW200731065A (en) 2005-08-03 2006-08-03 Non-volatile memory with scheduled reclaim operations
TW095128497A TW200741526A (en) 2005-08-03 2006-08-03 Management of memory blocks that directly store data files
TW095128517A TW200745930A (en) 2005-08-03 2006-08-03 Data consolidation and garbage collection in direct data file storage memories
TW095128505A TWI421684B (zh) 2005-08-03 2006-08-03 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法
TW095128512A TW200745929A (en) 2005-08-03 2006-08-03 Enhanced host interface

Family Applications Before (4)

Application Number Title Priority Date Filing Date
TW095128507A TW200805134A (en) 2005-08-03 2006-08-03 Data operations in flash memories utilizing direct data file storage
TW095128508A TW200731065A (en) 2005-08-03 2006-08-03 Non-volatile memory with scheduled reclaim operations
TW095128497A TW200741526A (en) 2005-08-03 2006-08-03 Management of memory blocks that directly store data files
TW095128517A TW200745930A (en) 2005-08-03 2006-08-03 Data consolidation and garbage collection in direct data file storage memories

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW095128512A TW200745929A (en) 2005-08-03 2006-08-03 Enhanced host interface

Country Status (7)

Country Link
US (12) US7984084B2 (zh)
EP (2) EP1920337A2 (zh)
JP (2) JP4537482B2 (zh)
KR (2) KR20080038364A (zh)
CN (7) CN101233499A (zh)
TW (6) TW200805134A (zh)
WO (2) WO2007019174A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI609323B (zh) * 2016-01-29 2017-12-21 捷鼎國際股份有限公司 資料儲存方法及其系統

Families Citing this family (538)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7934064B1 (en) * 2004-12-21 2011-04-26 Acronis Inc. System and method for consolidation of backups
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
JP2006350476A (ja) * 2005-06-13 2006-12-28 Sony Computer Entertainment Inc コンテンツ配信装置およびシステム
US8321953B2 (en) * 2005-07-14 2012-11-27 Imation Corp. Secure storage device with offline code entry
US8335920B2 (en) * 2005-07-14 2012-12-18 Imation Corp. Recovery of data access for a locked secure storage device
US8015606B1 (en) 2005-07-14 2011-09-06 Ironkey, Inc. Storage device with website trust indication
US8438647B2 (en) * 2005-07-14 2013-05-07 Imation Corp. Recovery of encrypted data from a secure storage device
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US20070067620A1 (en) * 2005-09-06 2007-03-22 Ironkey, Inc. Systems and methods for third-party authentication
US8938591B2 (en) * 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US20070116023A1 (en) * 2005-11-23 2007-05-24 Broadcom Corporation Method and apparatus for dynamically configuring a generic processing module
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070136553A1 (en) * 2005-12-13 2007-06-14 Sinclair Alan W Logically-addressed file storage systems
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US8266378B1 (en) 2005-12-22 2012-09-11 Imation Corp. Storage device with accessible partitions
US8639873B1 (en) 2005-12-22 2014-01-28 Imation Corp. Detachable storage device with RAM cache
US7818726B2 (en) * 2006-01-25 2010-10-19 Microsoft Corporation Script-based object adaptation
US7454587B1 (en) * 2006-02-06 2008-11-18 Xilinx, Inc. Method and apparatus for memory management in an integrated circuit
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
US20070233752A1 (en) * 2006-03-30 2007-10-04 Kiran Bangalore Method and apparatus to reclaim nonvolatile memory space
US7469329B2 (en) 2006-03-30 2008-12-23 International Business Machines Corporation Methods for dynamically resizing memory pools
JP4135747B2 (ja) * 2006-04-06 2008-08-20 ソニー株式会社 データ処理装置及びフラッシュメモリへのアクセス方法
US8176249B2 (en) * 2006-05-21 2012-05-08 Amiram Grynberg Methods for embedding session secrets, within application instances
DE102006025133A1 (de) * 2006-05-30 2007-12-06 Infineon Technologies Ag Speicher- und Speicherkommunikationssystem
US20070300031A1 (en) * 2006-06-22 2007-12-27 Ironkey, Inc. Memory data shredder
US8429242B1 (en) * 2006-06-26 2013-04-23 Emc Corporation Methods and apparatus for providing content
JP2008009803A (ja) * 2006-06-30 2008-01-17 Sony Corp 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体
US20080010323A1 (en) * 2006-07-06 2008-01-10 An Chen Computer Co., Ltd. Method for duplicating data
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US8949555B1 (en) * 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
US7441071B2 (en) * 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070802A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for an in-server storage area network
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8209605B2 (en) * 2006-12-13 2012-06-26 Pado Metaware Ab Method and system for facilitating the examination of documents
EP1939751A1 (en) * 2006-12-22 2008-07-02 Telefonaktiebolaget LM Ericsson (publ) Storing compressed data
KR101464199B1 (ko) 2006-12-26 2014-11-21 샌디스크 테크놀로지스, 인코포레이티드 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US20080177782A1 (en) * 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
KR100825802B1 (ko) * 2007-02-13 2008-04-29 삼성전자주식회사 기입 데이터의 논리적 페이지보다 이전 논리적 페이지들을가지는 데이터들을 데이터 블록으로부터 복사하는 불휘발성메모리 장치의 데이터 기입 방법
US7639540B2 (en) * 2007-02-16 2009-12-29 Mosaid Technologies Incorporated Non-volatile semiconductor memory having multiple external power supplies
KR100875294B1 (ko) * 2007-03-16 2008-12-23 삼성전자주식회사 프로그래밍시 블럭단위의 상태 레지스터를 확인하는 플래시메모리와 그 방법
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
US20080235480A1 (en) * 2007-03-21 2008-09-25 Shai Traister Systems for storing memory operations in a queue
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
DE102007015535A1 (de) * 2007-03-30 2008-10-02 Siemens Ag Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
US8768898B1 (en) * 2007-04-26 2014-07-01 Netapp, Inc. Performing direct data manipulation on a storage device
US9785549B2 (en) * 2007-04-27 2017-10-10 Microsoft Technology Licensing, Llc Managing object lifetime for native/managed peers
US8041883B2 (en) 2007-05-09 2011-10-18 Stmicroelectronics S.R.L. Restoring storage devices based on flash memories and related circuit, system, and method
US7991942B2 (en) 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
US7882301B2 (en) * 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
US8041847B1 (en) 2007-05-10 2011-10-18 Marvell International Ltd. Periodic and conditional execution of DMA operations
US8010507B2 (en) * 2007-05-24 2011-08-30 Pado Metaware Ab Method and system for harmonization of variants of a sequential file
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
WO2009001514A1 (ja) * 2007-06-22 2008-12-31 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
TWI369633B (en) * 2007-06-27 2012-08-01 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
US20090006506A1 (en) * 2007-06-28 2009-01-01 Nokia Corportion Method and system for garbage collection of native resources
US7822791B2 (en) * 2007-06-28 2010-10-26 Intel Corporation Method and apparatus for flash memory reclaim
US8201188B2 (en) * 2007-09-20 2012-06-12 Microsoft Corporation Device-hosted services over media transfer protocol
US7805632B1 (en) * 2007-09-24 2010-09-28 Net App, Inc. Storage system and method for rapidly recovering from a system failure
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US8316277B2 (en) 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US9032154B2 (en) * 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
CA2708669A1 (en) * 2007-12-13 2009-06-18 Redknee Inc. Method and system for storage
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US20090228716A1 (en) * 2008-02-08 2009-09-10 Pado Metawsre Ab Method and system for distributed coordination of access to digital files
US9060046B2 (en) * 2008-02-18 2015-06-16 Google Technology Holdings LLC Method and apparatus for transferring media data between devices
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
TWI385520B (zh) * 2008-02-29 2013-02-11 Via Tech Inc 儲存單元管理方法及系統
JP4675985B2 (ja) 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
WO2009109877A1 (en) * 2008-03-04 2009-09-11 Nxp B.V. Mobile communication device and method for implementing mifare memory multiple sectors mechanisms
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
JP2009230205A (ja) * 2008-03-19 2009-10-08 Toshiba Corp メモリシステム
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
WO2009135196A1 (en) * 2008-05-02 2009-11-05 Ironkey, Inc. Enterprise device policy management
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
MX2010014374A (es) * 2008-06-24 2011-03-01 Nxp Bv Metodo para accesar aplicaciones en un ambiente movil seguro.
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20090327581A1 (en) * 2008-06-30 2009-12-31 Coulson Richard L Nand memory
KR100954039B1 (ko) 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
US8281062B2 (en) * 2008-08-27 2012-10-02 Sandisk Il Ltd. Portable storage device supporting file segmentation and multiple transfer rates
TWI399651B (zh) * 2008-09-12 2013-06-21 Communication protocol method and system for input / output device
US20100070544A1 (en) * 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US7953774B2 (en) * 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
CN101685381B (zh) 2008-09-26 2013-07-24 美光科技公司 固态大容量存储装置的数据串流
US8205203B2 (en) * 2008-10-16 2012-06-19 International Business Machines Corporation Scheduling for real-time garbage collection
US8429658B2 (en) * 2008-10-16 2013-04-23 International Business Machines Corporation Lock deferral for real-time garbage collection
CN101727398B (zh) * 2008-10-31 2012-07-11 西安奇维测控科技有限公司 经信息序列化实现闪存控制器管理数据存储与还原的方法
JP5364340B2 (ja) * 2008-11-07 2013-12-11 株式会社ケーヒン バックアップ方法及び装置並びに車両用電子制御装置
US8341311B1 (en) 2008-11-18 2012-12-25 Entorian Technologies, Inc System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface
KR101469771B1 (ko) * 2008-12-03 2014-12-08 삼성전자주식회사 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법
US9104686B2 (en) * 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
US20120173593A1 (en) * 2008-12-16 2012-07-05 Fabrice Jogand-Coulomb System and Method for Managing Discardable Objects
US8849856B2 (en) * 2008-12-16 2014-09-30 Sandisk Il Ltd. Discardable files
JP5268617B2 (ja) * 2008-12-17 2013-08-21 キヤノン株式会社 画像形成装置、画像形成装置の制御方法及びコンピュータプログラム
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8327040B2 (en) 2009-01-26 2012-12-04 Micron Technology, Inc. Host controller
US8386723B2 (en) * 2009-02-11 2013-02-26 Sandisk Il Ltd. System and method of host request mapping
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US9098396B2 (en) * 2009-02-13 2015-08-04 Sandisk Il Ltd. Enhancement of efficiency in power failure handling in flash memory
KR20100094241A (ko) * 2009-02-18 2010-08-26 삼성전자주식회사 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US20100228906A1 (en) * 2009-03-06 2010-09-09 Arunprasad Ramiya Mothilal Managing Data in a Non-Volatile Memory System
JP5485163B2 (ja) * 2009-03-13 2014-05-07 パナソニック株式会社 アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
WO2010125574A1 (en) 2009-04-27 2010-11-04 Kamlesh Gandhi Description
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8504759B2 (en) * 2009-05-26 2013-08-06 Micron Technology, Inc. Method and devices for controlling power loss
TWI455133B (zh) * 2009-05-26 2014-10-01 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR20140059102A (ko) * 2009-06-10 2014-05-15 마이크론 테크놀로지, 인크. 메모리 어레이들에서 감소된 읽기 지연시간에 대한 메모리 작업들의 서스펜션
WO2010144587A2 (en) * 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
JP5254141B2 (ja) * 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
WO2011013125A1 (en) 2009-07-27 2011-02-03 Storwize Ltd. Method and system for transformation of logical data objects for storage
US8683088B2 (en) * 2009-08-06 2014-03-25 Imation Corp. Peripheral device data integrity
US8745365B2 (en) * 2009-08-06 2014-06-03 Imation Corp. Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8234250B1 (en) * 2009-09-17 2012-07-31 Netapp. Inc. Processing data of a file using multiple threads during a deduplication gathering phase
TWI506422B (zh) * 2009-09-23 2015-11-01 Silicon Motion Inc 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器
US8745353B2 (en) * 2009-10-23 2014-06-03 Seagate Technology Llc Block boundary resolution for mismatched logical and physical block sizes
US8364929B2 (en) * 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8635422B1 (en) * 2009-10-29 2014-01-21 Symantec Corporation Systems and methods for reclaiming storage space from deleted volumes on thin-provisioned disks
US8549223B1 (en) 2009-10-29 2013-10-01 Symantec Corporation Systems and methods for reclaiming storage space on striped volumes
US8140740B2 (en) * 2009-10-29 2012-03-20 Hewlett-Packard Development Company, L.P. Data defragmentation of solid-state memory
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
JP5593682B2 (ja) * 2009-11-17 2014-09-24 セイコーエプソン株式会社 プリンター、プリンターの制御方法、及び、プログラム
TWI423024B (zh) * 2009-11-23 2014-01-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及其控制器與儲存系統
DE112010004667T5 (de) * 2009-12-03 2013-01-17 Hitachi, Ltd. Speichervorrichtung und Speichersteuerung
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
TWI409633B (zh) * 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
CN101799820B (zh) * 2010-02-08 2013-03-20 深圳市同洲电子股份有限公司 闪存、文件系统挂载方法及装置、数据管理方法及装置
JP2011192260A (ja) 2010-02-16 2011-09-29 Toshiba Corp 半導体記憶装置
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
JP2011209973A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム
US10013252B2 (en) * 2010-04-16 2018-07-03 Oracle International Corporation Software development compliance system
US8782327B1 (en) * 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
TW201140315A (en) * 2010-05-11 2011-11-16 Jmicron Technology Corp Method for estimating capacity usage status of storage unit, and associated memory device and controller thereof
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8683148B2 (en) * 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8369156B2 (en) 2010-07-13 2013-02-05 Sandisk Technologies Inc. Fast random access to non-volatile storage
CN101901263A (zh) * 2010-07-22 2010-12-01 华为终端有限公司 文件系统的访问方法及装置
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and atomic storage operations
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
JP5569936B2 (ja) * 2010-08-11 2014-08-13 国立大学法人 東京大学 制御装置およびデータ記憶装置
US8468007B1 (en) * 2010-08-13 2013-06-18 Google Inc. Emulating a peripheral mass storage device with a portable device
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
CN102455973A (zh) * 2010-10-19 2012-05-16 厦门华侨电子股份有限公司 一种利用Flash芯片剩余空间设置数据区擦写数据的方法
CN102004697B (zh) * 2010-10-21 2012-09-19 北京握奇数据系统有限公司 一种Flash的回收方法和装置
CN102467522B (zh) * 2010-11-10 2013-09-11 中兴通讯股份有限公司 一种基于nand闪存的文件系统的自编程方法及装置
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US9092337B2 (en) 2011-01-31 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing eviction of data
KR20120088454A (ko) * 2011-01-31 2012-08-08 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9575842B2 (en) * 2011-02-24 2017-02-21 Ca, Inc. Multiplex backup using next relative addressing
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8621328B2 (en) 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance
US8972696B2 (en) 2011-03-07 2015-03-03 Microsoft Technology Licensing, Llc Pagefile reservations
FR2965079A1 (fr) * 2011-03-15 2012-03-23 Continental Automotive France Procede de gestion d'une memoire non volatile
US8661221B2 (en) * 2011-03-16 2014-02-25 International Business Machines Corporation Leasing fragmented storage between processes
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US9311229B2 (en) * 2011-03-29 2016-04-12 Blackberry Limited System and method for managing flash memory
CN102736985B (zh) * 2011-03-30 2015-10-14 群联电子股份有限公司 数据合并方法、控制器与储存装置
US9009438B2 (en) 2011-06-01 2015-04-14 International Business Machines Corporation Space reclamation in multi-layered and thin provisioned storage systems
US9449692B2 (en) 2011-08-03 2016-09-20 Micron Technology, Inc. Functional data programming and reading in a memory
JP4988054B2 (ja) * 2011-08-12 2012-08-01 株式会社東芝 メモリシステム
CN102508784B (zh) * 2011-11-02 2015-01-07 杭州海康威视数字技术股份有限公司 视频监控设备中闪存卡的数据存储方法及其系统
KR101298191B1 (ko) 2011-11-04 2013-08-20 에스케이하이닉스 주식회사 반도체 메모리 장치, 이를 위한 연속 프로그램 제어 회로 및 프로그램 방법
US8832411B2 (en) 2011-12-14 2014-09-09 Microsoft Corporation Working set swapping using a sequentially ordered swap file
US9274945B2 (en) * 2011-12-15 2016-03-01 International Business Machines Corporation Processing unit reclaiming requests in a solid state memory device
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
KR20130075018A (ko) * 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
EP2798500A1 (en) 2011-12-29 2014-11-05 Memory Technologies LLC Method for erasing data entity in memory module
KR20130078973A (ko) * 2012-01-02 2013-07-10 삼성전자주식회사 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8868978B2 (en) 2012-02-14 2014-10-21 International Business Machines Corporation Reclaiming discarded solid state devices
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
DE102012006046A1 (de) * 2012-03-27 2013-10-02 Heidelberger Druckmaschinen Ag Adaptives Remote-Service-Protokoll
CN104272273A (zh) * 2012-04-25 2015-01-07 惠普发展公司,有限责任合伙企业 动态存储器分配
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
TWI477966B (zh) * 2012-05-31 2015-03-21 Silicon Motion Inc 資料儲存裝置與快閃記憶體操作方法
US9846641B2 (en) 2012-06-18 2017-12-19 International Business Machines Corporation Variability aware wear leveling
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US9201784B2 (en) 2012-09-07 2015-12-01 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
TWI479492B (zh) * 2012-11-20 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
US9411718B2 (en) * 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection
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
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
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
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
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
JP5619198B2 (ja) * 2013-02-04 2014-11-05 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US9361040B1 (en) * 2013-02-27 2016-06-07 Marvell International Ltd. Systems and methods for data storage management
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US8656255B1 (en) * 2013-03-15 2014-02-18 Avalanche Technology, Inc. Method for reducing effective raw bit error rate in multi-level cell NAND flash memory
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9632926B1 (en) * 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
CN103268291B (zh) * 2013-05-23 2016-02-24 清华大学 在闪存存储系统中延迟持久化索引元数据的方法
US9256371B2 (en) 2013-05-28 2016-02-09 Globalfoundries Inc. Implementing reinforcement learning based flash control
US9349450B2 (en) 2013-06-10 2016-05-24 Micron Technology, Inc. Memory devices and memory operational methods including single erase operation of conductive bridge memory cells
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
US9690837B1 (en) * 2013-06-28 2017-06-27 EMC IP Holding Company LLC Techniques for preserving redundant copies of metadata in a data storage system employing de-duplication
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US9477484B2 (en) 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9639463B1 (en) * 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
JP6271939B2 (ja) * 2013-10-11 2018-01-31 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US9569447B2 (en) * 2013-11-08 2017-02-14 Texas Instruments Incorporated File access method and system thereof
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
CN104699688A (zh) * 2013-12-04 2015-06-10 杭州鹰湾科技有限公司 一种搜索文件的方法和电子设备
KR20150068747A (ko) 2013-12-12 2015-06-22 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
US9766823B2 (en) 2013-12-12 2017-09-19 Memory Technologies Llc Channel optimized storage modules
CN104731710B (zh) * 2013-12-18 2018-06-29 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器储存装置
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
CA2881206A1 (en) * 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US11537290B2 (en) 2014-03-20 2022-12-27 International Business Machines Corporation Managing high performance storage systems with hybrid storage technologies
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
KR102164617B1 (ko) 2014-03-24 2020-10-12 삼성전자주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9996303B2 (en) * 2014-05-08 2018-06-12 Kabushiki Kaisha Toshiba Hybrid-HDD that gives up old NAND data at the last moment
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
US9383926B2 (en) * 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
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
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
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
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
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
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
KR102148389B1 (ko) 2014-06-11 2020-08-27 삼성전자주식회사 오버 라이트 동작을 갖는 메모리 시스템 및 그에 따른 동작 제어방법
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
TWI554944B (zh) * 2014-06-20 2016-10-21 慧榮科技股份有限公司 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
US9710326B2 (en) 2014-07-28 2017-07-18 SK Hynix Inc. Encoder by-pass with scrambler
TWI524180B (zh) * 2014-08-15 2016-03-01 財團法人資訊工業策進會 位元組定址儲存系統
US9600409B2 (en) * 2014-08-29 2017-03-21 EMC IP Holding Company LLC Method and system for garbage collection in a storage system based on longevity of stored data
US9652382B1 (en) * 2014-09-04 2017-05-16 Sk Hynix Memory Solutions Inc. Look-ahead garbage collection for NAND flash based storage
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9658966B2 (en) 2014-11-24 2017-05-23 Sandisk Technologies Llc Systems and methods of write cache flushing
US20160188495A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Event triggered erasure for data security
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
KR102277521B1 (ko) 2015-01-23 2021-07-16 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
CN105988935B (zh) * 2015-02-04 2019-04-23 群联电子股份有限公司 智能卡管理方法、存储器存储装置及存储器控制电路单元
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
JP2016170583A (ja) * 2015-03-12 2016-09-23 株式会社東芝 メモリシステムおよび情報処理システム
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
US9811462B2 (en) 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
KR102402783B1 (ko) * 2015-05-11 2022-05-27 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
US10248418B2 (en) 2015-06-30 2019-04-02 International Business Machines Corporation Cleared memory indicator
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
CN106325764B (zh) * 2015-07-08 2021-02-26 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
US10268400B2 (en) * 2015-09-03 2019-04-23 Sandisk Technologies Llc System and method for file detection and usage during compaction
JP2016026345A (ja) * 2015-09-03 2016-02-12 マイクロン テクノロジー, インク. メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止
KR102387956B1 (ko) 2015-09-09 2022-04-19 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US11188229B2 (en) * 2015-09-25 2021-11-30 Hitachi Vantara Llc Adaptive storage reclamation
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
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
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
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10102119B2 (en) * 2015-10-30 2018-10-16 Sandisk Technologies Llc Garbage collection based on queued and/or selected write commands
KR102468992B1 (ko) * 2015-11-06 2022-11-22 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US10303371B2 (en) 2015-12-02 2019-05-28 Toshiba Memory Corporation Data storage device that stabilizes write latency
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10739996B1 (en) 2016-07-18 2020-08-11 Seagate Technology Llc Enhanced garbage collection
US10481830B2 (en) * 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
KR102618699B1 (ko) 2016-09-28 2024-01-02 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
KR20180053027A (ko) 2016-11-11 2018-05-21 삼성전자주식회사 스토리지 장치 및 그 동작 방법
CN106598508A (zh) * 2016-12-30 2017-04-26 郑州云海信息技术有限公司 一种固态硬盘及其写入仲裁方法、系统
US10255179B2 (en) * 2016-12-30 2019-04-09 Western Digital Technologies, Inc. Garbage collection read throttling
US10838634B1 (en) * 2016-12-30 2020-11-17 EMC IP Holding Company LLC Managing storage capacity in version families having both writable and read-only data objects
CN108509349B (zh) * 2017-02-27 2022-10-14 得一微电子股份有限公司 一种nand flash的数据源区块回收方法及固态硬盘
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
CN108572887A (zh) * 2017-03-14 2018-09-25 上海骐宏电驱动科技有限公司 数据检验校正方法
CN107015764B (zh) * 2017-03-17 2020-03-27 深圳市江波龙电子股份有限公司 Nand flash的数据处理方法、装置和一种Nand flash
US11893265B2 (en) * 2017-05-02 2024-02-06 Google Llc Garbage collection for data storage
US10379765B2 (en) * 2017-06-27 2019-08-13 Western Digital Technologies, Inc. Geometry-aware command scheduling
US10521106B2 (en) 2017-06-27 2019-12-31 International Business Machines Corporation Smart element filtering method via gestures
KR102430791B1 (ko) * 2017-07-19 2022-08-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN107678684B (zh) * 2017-08-22 2020-11-10 深圳市硅格半导体有限公司 存储器的无效数据清除方法、装置和存储器
US11100996B2 (en) * 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
US11126546B2 (en) * 2017-10-09 2021-09-21 Huawei Technologies Co., Ltd. Garbage data scrubbing method, and device
KR20190052368A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108021630B (zh) * 2017-11-21 2021-03-30 深圳市雷鸟网络传媒有限公司 垃圾文件清理方法、智能终端及计算机可读存储介质
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
US10642602B2 (en) * 2017-12-12 2020-05-05 Nxp Usa, Inc. NVM architecture with OTA support
US11099760B2 (en) * 2017-12-14 2021-08-24 Intel Corporation Background data refresh using a system timestamp in storage devices
TWI644207B (zh) * 2017-12-29 2018-12-11 國科美國研究實驗室 Method for garbage collection of data storage device
CN114035749B (zh) * 2018-01-12 2023-02-28 珠海极海半导体有限公司 电子设备和Flash存储器
CN110109868B (zh) * 2018-01-18 2023-07-18 伊姆西Ip控股有限责任公司 用于索引文件的方法、装置和计算机程序产品
JP6443571B1 (ja) * 2018-02-02 2018-12-26 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
KR20190102790A (ko) * 2018-02-27 2019-09-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템
US10884916B2 (en) * 2018-03-29 2021-01-05 Intel Corporation Non-volatile file update media
CN108536614A (zh) * 2018-03-30 2018-09-14 天津麒麟信息技术有限公司 一种Flash直接随机写实现方法、装置及存储介质
KR20190120966A (ko) * 2018-04-17 2019-10-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102603916B1 (ko) * 2018-04-25 2023-11-21 삼성전자주식회사 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치
US11301376B2 (en) 2018-06-11 2022-04-12 Seagate Technology Llc Data storage device with wear range optimization
CN110633225B (zh) 2018-06-25 2022-11-15 慧荣科技股份有限公司 实体存储对照表产生装置及方法
KR20200016075A (ko) * 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US10891224B2 (en) 2018-09-06 2021-01-12 Micron Technology, Inc. Maintaining data consistency in a memory sub system that uses hybrid wear leveling operations
TWI703438B (zh) 2018-09-11 2020-09-01 慧榮科技股份有限公司 映射表更新方法
US11175802B2 (en) * 2018-09-21 2021-11-16 Sap Se Configuration object deletion manager
KR102645142B1 (ko) * 2018-10-25 2024-03-07 삼성전자주식회사 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
EP3866016A4 (en) * 2018-11-20 2021-11-10 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR DELETING INDEX ENTRY IN MEMORY
KR20200067035A (ko) * 2018-12-03 2020-06-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20200073017A (ko) * 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 저장 장치와, 그것의 동작 방법
JP7435470B2 (ja) * 2018-12-19 2024-02-21 ソニーグループ株式会社 情報処理装置、情報処理方法および情報処理プログラム
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
US11288185B2 (en) 2019-01-03 2022-03-29 Silicon Motion, Inc. Method and computer program product for performing data writes into a flash memory
CN111399750B (zh) * 2019-01-03 2023-05-26 慧荣科技股份有限公司 闪存数据写入方法及计算机可读取存储介质
US10976950B1 (en) * 2019-01-15 2021-04-13 Twitter, Inc. Distributed dataset modification, retention, and replication
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US11327809B2 (en) 2019-06-19 2022-05-10 International Business Machines Corporation Virtual machine memory removal increment selection
CN112544038A (zh) * 2019-07-22 2021-03-23 华为技术有限公司 存储系统数据压缩的方法、装置、设备及可读存储介质
US11508021B2 (en) * 2019-07-22 2022-11-22 Vmware, Inc. Processes and systems that determine sustainability of a virtual infrastructure of a distributed computing system
KR20210012329A (ko) * 2019-07-24 2021-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI688956B (zh) * 2019-08-28 2020-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN112486404A (zh) * 2019-09-12 2021-03-12 伊姆西Ip控股有限责任公司 用于管理存储块的方法、设备和计算机程序产品
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11650742B2 (en) * 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
KR20210044564A (ko) 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11762569B2 (en) * 2019-10-29 2023-09-19 International Business Machines Corporation Workload based relief valve activation for hybrid controller architectures
KR20210051873A (ko) * 2019-10-31 2021-05-10 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템
CN111049729A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种持久化消息传输方法与装置
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
JP2021099642A (ja) * 2019-12-20 2021-07-01 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
KR20210100265A (ko) 2020-02-06 2021-08-17 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US11748277B2 (en) 2020-03-05 2023-09-05 Seagate Technology, Llc Client input/output (I/O) access rate variation compensation
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
CN113495681A (zh) * 2020-04-07 2021-10-12 杭州萤石软件有限公司 一种nand flash文件数据存取方法、装置及存储介质
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory
KR20210138996A (ko) 2020-05-13 2021-11-22 삼성전자주식회사 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11567665B2 (en) * 2020-08-31 2023-01-31 Micron Technology, Inc. Data dispersion-based memory management
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
KR20220048864A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
KR20220060385A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11494111B2 (en) * 2020-12-17 2022-11-08 Micron Technology, Inc. Data operation based on valid memory unit count
US11556270B2 (en) * 2021-01-07 2023-01-17 EMC IP Holding Company LLC Leveraging garbage collection for raid transformation
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US20220222008A1 (en) * 2021-01-14 2022-07-14 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
CN114780014A (zh) * 2021-01-22 2022-07-22 伊姆西Ip控股有限责任公司 管理元数据存储单元的方法、电子设备和计算机程序产品
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
US20220291858A1 (en) * 2021-03-15 2022-09-15 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11775197B2 (en) * 2021-03-25 2023-10-03 Kyocera Document Solutions Inc. Single command for reading then clearing dynamic random access memory
US11740828B2 (en) * 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11740821B2 (en) * 2021-04-12 2023-08-29 EMC IP Holding Company LLC Cost-aware garbage collection for cloud storage
US11500578B2 (en) * 2021-04-19 2022-11-15 Micron Technology, Inc. Memory access threshold based memory management
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11513720B1 (en) * 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
US11543993B1 (en) * 2021-06-17 2023-01-03 Western Digital Technologies, Inc. Fast garbage collection in zoned namespaces SSDs
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11733893B2 (en) * 2021-07-28 2023-08-22 International Business Machines Corporation Management of flash storage media
US11907564B2 (en) * 2021-08-03 2024-02-20 Yadro International Ltd. Method of and system for initiating garbage collection requests
US11922047B2 (en) * 2021-09-16 2024-03-05 EMC IP Holding Company LLC Using RPO as an optimization target for DataDomain garbage collection
JP2023044330A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよび制御方法
US11847334B2 (en) * 2021-09-23 2023-12-19 EMC IP Holding Company LLC Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
US20230195351A1 (en) * 2021-12-17 2023-06-22 Samsung Electronics Co., Ltd. Automatic deletion in a persistent storage device
US11822813B2 (en) 2021-12-28 2023-11-21 Samsung Electronics Co., Ltd. Storage device, operation method of storage device, and storage system using the same
US20230280926A1 (en) * 2022-03-03 2023-09-07 Western Digital Technologies, Inc. Data Relocation With Protection For Open Relocation Destination Blocks
US11886735B2 (en) * 2022-03-22 2024-01-30 Micron Technology, Inc. Data movement based on address table activity
US11934656B2 (en) * 2022-04-11 2024-03-19 Netapp, Inc. Garbage collection and bin synchronization for distributed storage architecture
US11941297B2 (en) 2022-04-11 2024-03-26 Netapp, Inc. Garbage collection and bin synchronization for distributed storage architecture
US11947452B2 (en) * 2022-06-01 2024-04-02 Micron Technology, Inc. Controlling variation of valid data counts in garbage collection source blocks
US20240012579A1 (en) * 2022-07-06 2024-01-11 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for data placement in a storage device
US11977758B2 (en) * 2022-08-12 2024-05-07 Micron Technology, Inc. Assigning blocks of memory systems
CN115292247B (zh) * 2022-09-28 2022-12-06 北京鼎轩科技有限责任公司 一种文件读取方法、装置、电子设备和存储介质
US11960742B1 (en) * 2022-10-14 2024-04-16 Oracle International Corporation High-performance, block-level fail atomicity on byte-level non-volatile media
CN116610596B (zh) * 2023-07-19 2023-10-03 合肥康芯威存储技术有限公司 一种存储器件及其数据处理方法
CN116610597B (zh) * 2023-07-20 2023-10-17 合肥康芯威存储技术有限公司 一种存储器件及其垃圾回收的控制方法
CN117632039B (zh) * 2024-01-25 2024-05-03 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013879A1 (en) * 1998-03-18 2002-01-31 Sang-Wook Han Flash memory array access method and device
TW200414201A (en) * 2002-10-28 2004-08-01 Sandisk Corp Method and apparatus for managing an erase count block
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
TW200511008A (en) * 2003-09-05 2005-03-16 Megawin Technology Co Ltd Efficiently controlling method for access flash memory

Family Cites Families (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US614509A (en) * 1898-11-22 Hose-coupling
US5774A (en) * 1848-09-19 Steam-hammer
US676632A (en) * 1901-01-30 1901-06-18 Frederick G Rogers Boiler.
US4369754A (en) * 1980-11-04 1983-01-25 Bob Lofman Vacuum responsive injection system for engines
US4800520A (en) * 1985-10-29 1989-01-24 Kabushiki Kaisha Toshiba Portable electronic device with garbage collection function
US4802117A (en) * 1985-12-16 1989-01-31 Pitney Bowes Inc. Method of preserving data storage in a postal meter
US4864511A (en) 1987-01-27 1989-09-05 Storage Technology Corporation Automated cartridge system
GB2204973A (en) 1987-05-19 1988-11-23 Gen Electric Co Plc Data processing system
JP3015377B2 (ja) 1988-08-26 2000-03-06 株式会社東芝 Icカード
DE69024086T2 (de) 1989-04-13 1996-06-20 Sundisk Corp EEprom-System mit Blocklöschung
US5388086A (en) * 1989-06-13 1995-02-07 Kabushiki Kaisha Toshiba Electro-magnetic actuator for driving an objective lens
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US6256642B1 (en) 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JPH05233426A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5628014A (en) * 1992-03-20 1997-05-06 Paranode, Inc. Methods and apparatus for node caching at the file level
JP3017892B2 (ja) * 1992-09-30 2000-03-13 株式会社東芝 ファイル管理装置
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5479633A (en) 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5454103A (en) * 1993-02-01 1995-09-26 Lsc, Inc. Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US5581723A (en) 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5619690A (en) * 1993-06-21 1997-04-08 Hitachi, Ltd. Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US7137011B1 (en) 1993-09-01 2006-11-14 Sandisk Corporation Removable mother/daughter peripheral card
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
JP3507132B2 (ja) 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5809558A (en) 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
US5754817A (en) 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
EP0704803B1 (de) * 1994-09-30 1997-03-05 Alcatel SEL Aktiengesellschaft Verfahren zur Speicherverwaltung eines Flash-Speichers
JP2669365B2 (ja) * 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
GB2291990A (en) 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
GB2291991A (en) 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
FR2740237B1 (fr) 1995-10-18 1997-11-14 Schlumberger Ind Sa Composant electronique a memoire synchronisee
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6014724A (en) 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5875477A (en) * 1995-12-22 1999-02-23 Intel Corporation Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
US5799168A (en) * 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US5867341A (en) 1996-01-30 1999-02-02 Seagate Technology, Inc. Disc drive system using multiple pairs of embedded servo bursts
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US5787445A (en) 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
GB9606927D0 (en) 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5996047A (en) 1996-07-01 1999-11-30 Sun Microsystems, Inc. Method and apparatus for caching file control information corresponding to a second file block in a first file block
FR2752072B1 (fr) * 1996-08-01 1999-01-29 Solaic Sa Carte a circuit integre comportant des fichiers classes selon une arborescence
DE19633648A1 (de) * 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät
US5761536A (en) 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
JPH1069420A (ja) * 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US5907854A (en) * 1996-09-27 1999-05-25 Alcatel Usa Sourcing, L.P. Flash memory file system for writing data files without rewriting an entire volume
US6681239B1 (en) 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
FR2759795B1 (fr) * 1997-02-14 1999-05-07 Francois Charles Oberthur Fidu Procede de stockage de donnees dans une memoire reinscriptible de carte a puce
US5966047A (en) 1997-03-27 1999-10-12 Motorola, Inc. Programmable analog array and method
US6088759A (en) 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JPH10326227A (ja) 1997-05-23 1998-12-08 Nec Corp フラッシュメモリを記憶媒体とする記憶装置の管理方式
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US5928347A (en) * 1997-11-18 1999-07-27 Shuttle Technology Group Ltd. Universal memory card interface apparatus
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6493811B1 (en) 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
JP3714969B2 (ja) 1998-03-02 2005-11-09 レクサー・メディア・インコーポレイテッド 改良されたオペレーティングモード検出機能を備えたフラッシュメモリーカード及びユーザフレンドリなインターフェーシングシステム
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6151666A (en) * 1998-05-27 2000-11-21 Storage Technology Corporation Method for reclaiming fragmented space on a physical data storage cartridge
US6901457B1 (en) * 1998-11-04 2005-05-31 Sandisk Corporation Multiple mode communications system
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
JP2000148546A (ja) * 1998-11-10 2000-05-30 Nec Corp データ入出力装置およびデータ入出力方法、並びに記録媒体
US6256690B1 (en) 1999-01-15 2001-07-03 Todd Carper System and method for facilitating multiple applications on a smart card
US6480935B1 (en) 1999-01-15 2002-11-12 Todd Carper Smart card memory management system and method
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6725322B1 (en) * 1999-02-22 2004-04-20 Renesas Technology Corp. Memory card, method for allotting logical address, and method for writing data
KR100704998B1 (ko) 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4779183B2 (ja) * 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
GB9907280D0 (en) 1999-03-31 1999-05-26 Philips Electronics Nv A method of scheduling garbage collection
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6467015B1 (en) 1999-04-15 2002-10-15 Dell Products, L.P. High speed bus interface for non-volatile integrated circuit memory supporting continuous transfer
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6547150B1 (en) * 1999-05-11 2003-04-15 Microsoft Corporation Smart card application development system and method
JP3863330B2 (ja) 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
ATE247296T1 (de) 1999-10-25 2003-08-15 Sun Microsystems Inc Speichersystem mit unterstützung von dateistufenzugriffen und blockstufenzugriffen
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3726663B2 (ja) 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
US6865650B1 (en) 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US7039727B2 (en) 2000-10-17 2006-05-02 Microsoft Corporation System and method for controlling mass storage class digital imaging devices
US20020112116A1 (en) 2000-11-17 2002-08-15 Nelson Mark Edward Methods, systems, and computer program products for storing data in collections of tagged data pieces
US6684289B1 (en) 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
KR100365725B1 (ko) * 2000-12-27 2002-12-26 한국전자통신연구원 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6591358B2 (en) 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
JP2002251310A (ja) 2001-02-21 2002-09-06 Ricoh Co Ltd フラッシュメモリのファイルシステム作成方式
US6571326B2 (en) 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
CN1284356C (zh) 2001-04-06 2006-11-08 索尼公司 数字摄像机和数据传送方法
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
JP2002333384A (ja) * 2001-05-10 2002-11-22 Fujikura Ltd 定偏波光ファイバの偏波面の角度ずれ推定方法及び定偏波光ファイバの接続方法
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US20020188592A1 (en) 2001-06-11 2002-12-12 Storage Technology Corporation Outboard data storage management system and method
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4812192B2 (ja) * 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6823417B2 (en) 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP3641230B2 (ja) * 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US6859856B2 (en) * 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6668336B2 (en) * 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
US20040049627A1 (en) * 2001-11-09 2004-03-11 Flex-P Industries Method and system for controlling compact flash memory
TWI240861B (en) 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
JP2003208352A (ja) 2002-01-17 2003-07-25 Fujitsu Ltd 書き込み回数の制限とウエアレベリングを可能にしたフラッシュメモリ
US6542407B1 (en) 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
JP2003215495A (ja) 2002-01-28 2003-07-30 Fuji Photo Optical Co Ltd プロジェクタ用光学系およびこれを用いたプロジェクタ装置
US6771536B2 (en) 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
EP1355268B1 (en) * 2002-02-28 2006-04-05 Matsushita Electric Industrial Co., Ltd. Memory card
JP4206688B2 (ja) 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US6766432B2 (en) * 2002-05-24 2004-07-20 Sun Microsystems, Inc. Memory management system supporting object deletion in non-volatile memory
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
JP4059711B2 (ja) 2002-06-04 2008-03-12 株式会社日立グローバルストレージテクノロジーズ 多重書き込み型記憶装置
US6865659B2 (en) 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
KR100453053B1 (ko) 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
KR100541366B1 (ko) * 2002-07-19 2006-01-16 주식회사 하이닉스반도체 고속 데이터 억세스를 위한 디램
TWI246064B (en) * 2002-07-29 2005-12-21 Milsys Ltd Data storage and processing device, electronic appliance, electronic system and method of operating an appliance that responds to a plurality of commands
DE10234971B4 (de) 2002-07-31 2006-08-10 Giesecke & Devrient Gmbh Verfahren und Datenträger zum Erzeugen und Korrigieren von Programmcode
US6979481B2 (en) * 2002-08-19 2005-12-27 Mohawk Paper Mills, Inc. Microporous photo glossy inkjet recording media
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7093071B2 (en) * 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7254668B1 (en) 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7526599B2 (en) 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
AU2003274764A1 (en) 2002-10-30 2004-05-25 Matsushita Electric Industrial Co., Ltd. Recording method and recording apparatus
CN1260642C (zh) 2002-11-18 2006-06-21 深圳市朗科科技有限公司 一种向移动存储装置发送命令和数据的方法
EP1435576B1 (en) * 2003-01-03 2013-03-20 Austria Card Plastikkarten und Ausweissysteme GmbH Method and apparatus for block-oriented memory management provided in smart card controllers
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
JP4017178B2 (ja) 2003-02-28 2007-12-05 スパンション エルエルシー フラッシュメモリ及びメモリ制御方法
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
JP4245959B2 (ja) 2003-04-09 2009-04-02 日本電信電話株式会社 Icカードにおけるメモリ管理方法、及びicカード
US6865122B2 (en) * 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US7437557B2 (en) * 2003-06-03 2008-10-14 Lg Electronics Inc. Garbage collection system and method for a mobile communication terminal
US7760232B2 (en) * 2003-06-27 2010-07-20 Panasonic Corporation Slave device and communication setting method
JP4318075B2 (ja) * 2003-08-29 2009-08-19 富士フイルム株式会社 Usbファンクション装置
JP2005122439A (ja) 2003-10-16 2005-05-12 Sharp Corp デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
EP1704484A2 (en) * 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7519639B2 (en) * 2004-01-05 2009-04-14 International Business Machines Corporation Method and apparatus for dynamic incremental defragmentation of memory
US20060004950A1 (en) 2004-06-30 2006-01-05 Jeffrey Wang Flash memory file system having reduced headers
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US8607016B2 (en) 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
KR100631765B1 (ko) 2004-10-18 2006-10-09 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US20060101084A1 (en) * 2004-10-25 2006-05-11 International Business Machines Corporation Policy based data migration in a hierarchical data storage system
US7287145B1 (en) * 2004-12-13 2007-10-23 Nvidia Corporation System, apparatus and method for reclaiming memory holes in memory composed of identically-sized memory devices
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
KR100706242B1 (ko) 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US20080162782A1 (en) 2005-06-15 2008-07-03 Nagarajan Suresh Using Transacted Writes and Caching Mechanism to Improve Write Performance in Multi-Level Cell Flash Memory
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
EP1910928A2 (en) 2005-08-03 2008-04-16 SanDisk Corporation Non-volatile memory with scheduled reclaim operations
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
JP2009503743A (ja) 2005-08-03 2009-01-29 サンディスク コーポレイション データファイルを直接記憶するメモリブロックの管理
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
WO2007019155A1 (en) 2005-08-03 2007-02-15 Sandisk Corporation Reclaiming data storage capacity in flash memory systems
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070136553A1 (en) * 2005-12-13 2007-06-14 Sinclair Alan W Logically-addressed file storage systems
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7426606B2 (en) * 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
KR100806343B1 (ko) 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US7739444B2 (en) * 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013879A1 (en) * 1998-03-18 2002-01-31 Sang-Wook Han Flash memory array access method and device
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
TW200414201A (en) * 2002-10-28 2004-08-01 Sandisk Corp Method and apparatus for managing an erase count block
TW200511008A (en) * 2003-09-05 2005-03-16 Megawin Technology Co Ltd Efficiently controlling method for access flash memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI609323B (zh) * 2016-01-29 2017-12-21 捷鼎國際股份有限公司 資料儲存方法及其系統

Also Published As

Publication number Publication date
CN101233498A (zh) 2008-07-30
US20070033378A1 (en) 2007-02-08
CN101233499A (zh) 2008-07-30
EP1920337A2 (en) 2008-05-14
US20070033330A1 (en) 2007-02-08
TW200745929A (en) 2007-12-16
CN101278267B (zh) 2012-08-22
CN101258473B (zh) 2012-05-30
US7581057B2 (en) 2009-08-25
US20070033376A1 (en) 2007-02-08
CN101233498B (zh) 2014-03-12
KR20080038363A (ko) 2008-05-06
US20070033377A1 (en) 2007-02-08
US7590795B2 (en) 2009-09-15
TW200728977A (en) 2007-08-01
US8291151B2 (en) 2012-10-16
CN101288045B (zh) 2012-08-29
CN101258473A (zh) 2008-09-03
US20070033328A1 (en) 2007-02-08
KR20080038364A (ko) 2008-05-06
US7590794B2 (en) 2009-09-15
WO2007019174A2 (en) 2007-02-15
KR101377147B1 (ko) 2014-03-24
WO2007019220A3 (en) 2007-06-07
TW200741526A (en) 2007-11-01
CN101233480B (zh) 2012-08-29
TW200745930A (en) 2007-12-16
EP1920336A2 (en) 2008-05-14
US20070186032A1 (en) 2007-08-09
US7409489B2 (en) 2008-08-05
US20070033325A1 (en) 2007-02-08
US7984084B2 (en) 2011-07-19
JP2009503746A (ja) 2009-01-29
US7450420B2 (en) 2008-11-11
CN101233479B (zh) 2012-09-05
JP4537481B2 (ja) 2010-09-01
WO2007019174A3 (en) 2007-07-19
CN101278267A (zh) 2008-10-01
CN101233479A (zh) 2008-07-30
US20070030734A1 (en) 2007-02-08
US7610437B2 (en) 2009-10-27
JP2009503738A (ja) 2009-01-29
TW200805134A (en) 2008-01-16
US20070033329A1 (en) 2007-02-08
JP4537482B2 (ja) 2010-09-01
US20070033324A1 (en) 2007-02-08
US20070033326A1 (en) 2007-02-08
CN101233480A (zh) 2008-07-30
US20070033327A1 (en) 2007-02-08
US7558905B2 (en) 2009-07-07
US8055832B2 (en) 2011-11-08
CN101288045A (zh) 2008-10-15
TW200731065A (en) 2007-08-16
US7562181B2 (en) 2009-07-14
WO2007019220A2 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
TWI421684B (zh) 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法
TWI464584B (zh) 用於實施延伸以智慧型管理一大容量儲存系統之資源的系統與方法
TWI400608B (zh) 在一主機系統與一可重新程式化的非揮發性大量儲存系統之間傳輸資料之方法、在一快閃記憶體系統中之控制器之操作方法以及大量儲存記憶體系統
US7669003B2 (en) Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) Indexing of file data in reprogrammable non-volatile memories that directly store data files
US8452940B2 (en) Optimized memory management for random and sequential data writing
US7814262B2 (en) Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) Logically-addressed file storage methods
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
US20070136553A1 (en) Logically-addressed file storage systems
KR20080032636A (ko) 논리 어드레스 공간 전반에 걸쳐 그리고 직접 데이터 파일기반 위에서 동작하는 인터페이싱 시스템
KR101055324B1 (ko) 강화된 호스트 인터페이스
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
JP5266250B2 (ja) 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
TWI336856B (en) Method and system of logically-addressed file storage
TWI436210B (zh) 操作一可再程式化的非揮發性記憶體系統之方法以及非揮發性記憶體系統
JP2009503743A (ja) データファイルを直接記憶するメモリブロックの管理
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법

Legal Events

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