TWI421684B - 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 - Google Patents
可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External 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之方法,其中選擇一區塊包括基於相對於該列表上之其他區塊中之有效資料量之其中有效資料量自該至少一列表選擇該區塊。
- 如請求項1之方法,其中選擇一區塊包括自相對於該列表上之其他區塊中之有效資料量而言具有最少量有效資料之該至少一列表選擇區塊。
- 如請求項1之方法,其中自該至少一列表選擇一區塊額外包括基於相對於該至少一列表上之其他區塊中之已抹除儲存容量之數量之其中已抹除儲存容量之一數量,以自該至少一列表選擇該區塊。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在 再程式化之前被抹除之記憶體單元區塊,該方法包含:保存至少一包括區塊之列表,該等區塊分別包含一數量的有效資料加上過期資料或某些已抹除資料儲存容量或兩者,藉由考量該至少一列表上之該等區塊之有效資料與該已抹除儲存容量之相對數量而自該至少一列表選擇一區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此使已被抹除之該區塊變得可用於其他資料之儲存。
- 如請求項5之方法,其中自該至少一列表選擇該區塊包括折衷考量該被選定區塊相對於該至少一列表上的其他區塊而言具有一低數量之有效資料以及該被選定區塊相對於該至少一列表上的其他區塊而言具有一高數量之已抹除儲存容量之益處。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:保存包括任何分別包含一數量的有效資料加上過期資料但不具有已抹除資料儲存容量之區塊之一第一列表,決定該第一列表上是否存在一或多個區塊,若答案為是,則基於其上之該等區塊中之有效資料量自該第一列表識別一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹 除資料儲存容量之區塊之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則基於該等區塊中之有效資料以及已抹除儲存容量之數量自該第二列表識別一第二區塊,基於再生(reclaim)該等區塊對該記憶體系統之操作之價值(value)選擇該第一或該第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此將該被選定第一或第二區塊再生成一已被抹除之區塊,其係可用於其他資料之儲存。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前抹除之記憶體單元區塊,該方法包含:保存包括任何分別包含一數量的有效資料加上過期資料但不具有已抹除資料儲存容量之區塊之一第一列表,決定該第一列表上是否存在一或多個區塊,若答案為是,則自該第一列表識別其上之該等區塊中具有最少量有效資料之一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹除資料儲存容量之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則自該第二列表識別其上之該等區塊中具有最少量有效資料之一第二區塊,針對該第二區塊中之已抹除資料儲存容量之該數量調整 該第二區塊中之該有效資料量之後,基於其中所包含之有效資料之該數量選擇該第一或第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及此後抹除該被選定區塊,藉此使該被選定第一或第二區塊變為一已抹除區塊,其係可用於其他資料之儲存。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊,該內容包含個別區塊之一數量之資料以及可用之已抹除容量之一數量,及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊。
- 如請求項9之方法,其中為一再生操作選擇一區塊額外包括選擇在該至少部分區塊中具有較小數量之有效資料及較小已抹除容量之組合的區塊。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊,及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於有效資料之數量 以及該至少某些區塊之個別區塊中用於儲存資料之剩餘已抹除容量之一數量而選擇。
- 如請求項11之方法,其中為一再生操作選擇一區塊額外包括基於分別不包括過期資料之該等區塊中的至少某些區塊之內容而選擇一區塊。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊;及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於該等區塊中的至少某一區塊之內容而選擇一區塊,該等區塊分別包括剩餘在該等個別區塊中用以儲存資料之一數量的已抹除容量。
- 一種操作一非揮發性記憶體系統之方法,該非揮發性記憶體系統具有資料儲存單元,該等資料儲存單元被分組成在再程式化之前被抹除之記憶體單元區塊,該方法包含:基於該等區塊中的至少某些區塊之一內容而為一再生操作選擇一區塊;及此後,藉由將該被選定區塊之有效資料複製到另一區塊中且接著抹除該被選定區塊來再生該被選定區塊;其中為一再生操作選擇一區塊包括基於分別不包括過期資料之該等區塊中的至少某些區塊之內容而選擇。
- 一種可再程式化非揮發性記憶體系統,其包含:非揮發性記憶體單元之區塊,其特徵在於,重寫入資料至其中之前被抹除,及一控制器,其係功能性地與該等區塊連接且運作以基於儲存之有效資料之相對數量以及至少複數個該等區塊之個別區塊中剩餘之已抹除容量之相對數量之一組合,來選擇一區塊,該區塊具有未由有效資料佔據且將被再生之儲存容量的一部分以儲存有效資料,且接著致使將被選定之該區塊之該有效資料被複製至另一區塊,其中該控制器進一步運作以基於該至少複數個區塊中個別區塊內不包含過期資料之情況,來選擇將被再生之區塊。
- 如請求項15之記憶體系統,其中該控制器進一步運作以基於該至少複數個區塊之個別區塊中儲存之有效資料之最少數量,來選擇將被再生之區塊。
- 如請求項15之記憶體系統,其中該控制器進一步運作以基於剩餘在該至少複數個該等區塊中之個別區塊之用於儲存其中之資料之已抹除容量之一最少數量,來選擇將被再生之區塊。
- 一種可再程式化非揮發性記憶體系統,其包含:一非揮發性記憶體單元陣列,其係組織成可同時抹除之記憶體單元區塊,及一控制器,其係以可運作方式與該陣列連接且運作以:保存包括任何分別包含一數量的有效資料加上過期資料,但不具有已抹除資料儲存容量之區塊之一第一列表, 決定該第一列表上是否存在一或多個區塊,若答案為是,則自該第一列表識別其上之該等區塊中具有最少量有效資料之一第一區塊,保存包括任何分別包含一數量的有效資料加上某些已抹除資料儲存容量之區塊之一第二列表,決定該第二列表上是否存在一或多個區塊,若答案為是,則自該第二列表識別其上之該等區塊中具有最少量有效資料之一第二區塊,針對該第二區塊中之已抹除資料儲存容量之該數量調整該第二區塊中之該有效資料量之後,基於其中所包含之有效資料之該數量選擇該第一或第二區塊,及將該有效資料自該被選定區塊複製到另一區塊中,及之後抹除該被選定區塊。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
Families Citing this family (538)
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)
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)
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 |
-
2005
- 2005-10-25 US US11/259,439 patent/US7984084B2/en active Active
- 2005-10-25 US US11/259,423 patent/US7409489B2/en active Active
- 2005-12-21 US US11/316,577 patent/US20070033326A1/en not_active Abandoned
- 2005-12-21 US US11/316,578 patent/US8291151B2/en active Active
-
2006
- 2006-05-08 US US11/382,228 patent/US7581057B2/en active Active
- 2006-05-08 US US11/382,235 patent/US7558905B2/en active Active
- 2006-05-08 US US11/382,224 patent/US8055832B2/en active Active
- 2006-05-08 US US11/382,232 patent/US7450420B2/en active Active
- 2006-08-01 EP EP06789293A patent/EP1920337A2/en not_active Withdrawn
- 2006-08-01 CN CNA2006800283184A patent/CN101233499A/zh active Pending
- 2006-08-01 CN CN200680028197.3A patent/CN101233498B/zh not_active Expired - Fee Related
- 2006-08-01 KR KR1020087004671A patent/KR20080038364A/ko not_active Application Discontinuation
- 2006-08-01 CN CN200680028003XA patent/CN101233479B/zh not_active Expired - Fee Related
- 2006-08-01 CN CN2006800348564A patent/CN101288045B/zh active Active
- 2006-08-01 WO PCT/US2006/030093 patent/WO2007019174A2/en active Application Filing
- 2006-08-01 CN CN2006800284045A patent/CN101258473B/zh not_active Expired - Fee Related
- 2006-08-01 CN CN2006800281668A patent/CN101233480B/zh not_active Expired - Fee Related
- 2006-08-01 JP JP2008525181A patent/JP4537482B2/ja not_active Expired - Fee Related
- 2006-08-01 WO PCT/US2006/030242 patent/WO2007019220A2/en active Application Filing
- 2006-08-01 JP JP2008525155A patent/JP4537481B2/ja not_active Expired - Fee Related
- 2006-08-01 EP EP06789194A patent/EP1920336A2/en not_active Withdrawn
- 2006-08-01 CN CN2006800360852A patent/CN101278267B/zh active Active
- 2006-08-02 US US11/462,001 patent/US7562181B2/en active Active
- 2006-08-02 US US11/462,013 patent/US7590795B2/en active Active
- 2006-08-02 US US11/462,007 patent/US7590794B2/en active Active
- 2006-08-02 US US11/461,997 patent/US7610437B2/en active Active
- 2006-08-03 TW TW095128507A patent/TW200805134A/zh unknown
- 2006-08-03 TW TW095128508A patent/TW200731065A/zh unknown
- 2006-08-03 TW TW095128497A patent/TW200741526A/zh unknown
- 2006-08-03 TW TW095128517A patent/TW200745930A/zh unknown
- 2006-08-03 TW TW095128505A patent/TWI421684B/zh not_active IP Right Cessation
- 2006-08-03 TW TW095128512A patent/TW200745929A/zh unknown
-
2008
- 2008-02-27 KR KR1020087004662A patent/KR101377147B1/ko not_active IP Right Cessation
Patent Citations (4)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
Also Published As
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 |