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

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

Info

Publication number
TWI436210B
TWI436210B TW095137810A TW95137810A TWI436210B TW I436210 B TWI436210 B TW I436210B TW 095137810 A TW095137810 A TW 095137810A TW 95137810 A TW95137810 A TW 95137810A TW I436210 B TWI436210 B TW I436210B
Authority
TW
Taiwan
Prior art keywords
data
memory
blocks
memory system
group
Prior art date
Application number
TW095137810A
Other languages
English (en)
Other versions
TW200731068A (en
Inventor
Alan W Sinclair
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/250,299 external-priority patent/US7529905B2/en
Priority claimed from US11/250,794 external-priority patent/US7814262B2/en
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW200731068A publication Critical patent/TW200731068A/zh
Application granted granted Critical
Publication of TWI436210B publication Critical patent/TWI436210B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

操作一可再程式化的非揮發性記憶體系統之方法以及非揮發性記憶體系統
本申請案係關於諸如半導體快閃記憶體之可再程式化非揮發性記憶體系統之操作,且更特定而言,係關於具有不同尺寸且隨時間而改變之資料檔案的邏輯單元之初始儲存及後續更新。為所有目的,本文中所參考之所有專利、專利申請案、技術論文及其他公開案、文獻及事項之全文據此以引用方式併入本文中。
在早期的商用快閃記憶體系統中,將記憶體單元之矩形陣列分為大量單元群,每一單元群儲存一標準硬碟機扇區之資料量(亦即512位元組)。通常在每一群中亦包括諸如16位元組之額外資料量以儲存誤差校正碼(ECC)及可能地與使用者資料及/或與在其中儲存使用者資料之記憶體單元群相關的其他附加項資料。在每一此群中之記憶體單元係可一起被擦除之最小數目的記憶體單元。亦即,擦除單元有效地係儲存一資料扇區及所包括之任何附加項資料之數目的記憶體單元。此類型記憶體系統之實例描述於美國專利第5,602,987及6,426,893號中。快閃記憶體之特徵為:在使用資料再程式化記憶體單元之前,其需要被擦除。
最一般地以記憶卡或快閃磁碟之形式提供快閃記憶體系統,記憶卡或快閃磁碟可移除地與諸如個人電腦、相機或類似物之各種主機連接,但亦可將其嵌入此等主機系統內。當向記憶體寫入資料時,主機通常在記憶體系統之連續虛擬位址空間內向扇區、叢集或其他資料單元分配唯一邏輯位址。類似於磁碟作業系統(DOS),主機向在記憶體系統之邏輯位址空間內的位址寫入資料且自在記憶體系統之邏輯位址空間內的位址讀取資料。記憶體系統內之控制器將自主機接收之邏輯位址轉譯為實際上儲存資料之記憶體陣列內之實體位址,且接著記錄該等位址轉譯。記憶體系統之資料儲存容量至少與在記憶體系統之所界定的全體邏輯位址空間上可定址之資料量一樣大。
在後期快閃記憶體系統中,將擦除單元之尺寸增大至足夠儲存多個資料扇區之記憶體單元區塊。儘管與記憶體系統連接之主機系統在諸如扇區之小型最小單元中可程式化及讀取資料,但在快閃記憶體之單一擦除單元中仍儲存大量扇區。對於區塊內之某些資料扇區而言,隨著主機更新或替代邏輯資料扇區而變為陳舊的係普通的。由於在可覆寫區塊中儲存的任何資料之前必須擦除全體區塊,故新的或經更新之資料通常儲存於已被擦除且具有用於資料之剩餘容量之另一區塊中。此方法留下具有佔據記憶體內的有用空間之陳舊資料之原始區塊。但若在其中存在保留之任何有效資料,則彼區塊不能被擦除。
因此,為更好地利用記憶體之儲存容量,藉由將有效部分區塊資料量複製至經擦除之區塊中而合併或收集有效部分區塊資料量,使得接著可擦除自其複製該等資料之區塊且可再利用其全體儲存容量係普通的。亦希望複製資料以便以其邏輯位址次序群分在區塊內之資料扇區,因為此增大讀取資料及將所讀取資料傳送至主機之速度。若此等資料複製出現過於頻繁,則可使記憶體系統之操作效能降級。在記憶體之儲存容量稍微大於由主機可定址遍佈系統之邏輯位址空間之資料量的典型情形下,此尤其影響記憶體系統之操作。在此情形下,在可執行主機程式化指令之前,可要求資料合併或收集。接著程式化時間被增大。
在後續代記憶體系統中,區塊尺寸係不斷增加的以便增大在給定半導體區域中可儲存之資料位元的數目。儲存256個資料扇區或更多資料扇區之區塊變成普通的。另外,通常將不同陣列或子陣列之兩個、四個或更多區塊一起邏輯地鏈接於元區塊(metablock)中,以便增大在資料程式化及讀取中之並行度。連同此等大容量操作單元一起,在記憶體系統有效操作中出現難題。導致所儲存資料的改變的且非規則尺寸之群分之資料之壓縮、加密或其他轉換使得甚至更加難以保持記憶體系統之適當的效能等級。
將待儲存於記憶體系統中之資料分為獨特的位址單元,較佳具有相等的資料量之單元,且將單元內之資料轉換(較佳分別地)至接著儲存於記憶體之區塊或元區塊中的經轉換資料單元中。可(例如)藉由記憶體系統編碼、壓縮或加密資料而出現資料轉換。經轉換之資料單元通常具有比轉換前之尺寸更小或更大之不同尺寸,且經多次轉換之資料單元之尺寸通常係不等的。由具有位址邊界之資料群識別記憶體內所儲存之經轉換資料單元,該等位址邊界係與經轉換資料單元之彼等位址邊界及可由經轉換之資料單元橫跨之區塊或元區塊之任何實體邊界一致。對於由實體區塊邊界分裂為兩個或兩個以上資料群之經轉換的資料單元而言,可將該等資料群鏈接在一起。較佳在可用空間中一個接一個實體連續地儲存變化尺寸之資料群。在記憶體系統內之任一進一步處理期間,與經轉換之資料單元之彼等邊界一致之資料群邊界較佳保持被獨立地識別。
可使用各具有其自己的位址範圍之個別檔案物件形式的資料或使用共用記憶體系統中之一共同邏輯位址空間之多個檔案物件來建構該等技術。在任一情形下,將資料之邏輯位址範圍分為獨特的資料單元。在轉換後,將經轉換資料之一或多個唯一識別之資料群映射至實體儲存位置中。在一實施例中,不以任何方式將一經轉換資料單元之(多個)資料群與另一經轉換資料單元之(多個)資料群合併或結合,藉此維護獨立識別之個別單元的資料。當讀出時,此允許在單元依次基礎上再轉換所儲存群之資料。由記憶體系統轉換及儲存之資料可源自記憶體系統外之主機,或源自由在記憶體系統內之處理器執行的應用。
本發明之其他態樣、優勢、特徵及細節包括於下文中本發明之例示性實例的描述中,其中描述應與附圖相結合而進行。
關於圖1至圖8,描述當前快閃記憶體系統及主機裝置之典型操作。在此系統中,可建構本發明之各種態樣。圖1之主機系統1將資料儲存至快閃記憶體2中且自快閃記憶體2擷取資料。雖然可將快閃記憶體嵌入主機內,但記憶體2經說明為經由機械及電連接器之配合零件3及配合零件4可移除地連接至主機之卡之更風行形式。當前存在可購得之許多不同的快閃記憶卡,實例為緻密快閃(CF)、多媒體卡(MMC)、安全數位(SD)、微型SD、記憶棒、智能媒體及快閃轉存卡。雖然該等卡之每一者具有根據其標準化規範之一唯一機械及/或電介面,但包括於每一者中之快閃記憶體係非常類似的。該等卡皆可購自本申請案之受讓人SanDisk Corporation。SanDisk亦以其Cruzer商標提供快閃磁碟線,其為具有藉由插入主機之USB插孔中而用於與主機連接之通用串行匯流排(USB)插頭之在小型封裝中的手持式記憶體系統。該等記憶卡及快閃磁碟之每一者包括與主機建立介面且控制在其內部之快閃記憶體之操作的控制器。
使用此等記憶卡及快閃磁碟之主機系統有許多且為各種各樣的。其包括個人電腦(PC)、膝上型及其他攜帶型電腦、蜂巢式電話、個人數位助理(PDA)、數位相機、數位攝影機及攜帶型音訊播放器。主機通常包括內置插孔,其用於一或多種類型的記憶卡或快閃磁碟但某些需要將記憶卡插入其中之配接器。
在關於記憶體2之範圍內,圖1之主機系統1可被視為具有由電路及軟體之組合構成之兩個主要零件。其為與記憶體2建立介面之應用程式部分5及驅動器部分6。在個人電腦中,舉例而言,應用程式部分5可包括執行文書處理、圖形、控制或其他風行應用程式軟體之處理器。在主要專用於執行單一組的功能之相機、蜂巢式電話或其他主機系統中,應用程式部分5包括操作相機以拍攝照片並儲存照片、操作蜂巢式電話撥出及接收電話及類似操作之軟體。
圖1之記憶體系統2包括快閃記憶體7,以及電路8,電路8與用於來回傳遞資料而將卡連接至其之主機建立介面且控制記憶體7。在資料程式化及讀取期間,控制器8通常在由主機1使用之資料邏輯位址與記憶體7之實體位址之間轉換。
參看圖2,描述可用作圖1之非揮發性記憶體2之典型快閃記憶體系統電路。系統控制器通常建構於在系統匯流排13上與一或多個積體電路記憶體晶片平行連接之單一積體電路晶片11上,此單一記憶體晶片15於圖2中展示。所說明之特別匯流排13包括載運資料之導體17之獨立集合、記憶體位址之集合19及控制及狀態信號之集合21。或者,導體之單一集合在該等三個功能之間可分時。此外,可使用系統匯流排之其他組態,諸如在序號10/915,039、於2004年8月9日申請、標題為"Ring Bus Structure and It's Use in Flash Memory Systems"之美國專利申請案中描述之環狀匯流排。
典型控制器晶片11具有經由介面電路25與系統匯流排13建立介面之其自己的內部匯流排23。通常連接至匯流排13之主要功能為主要用於緩衝在記憶體與主機之間傳送的資料之處理器27(諸如微處理器或微控制器)、含有初始化("啟動")系統之碼之唯讀記憶體(ROM)29及隨機存取記憶體(RAM)31。計算且檢查通過記憶體與主機之間的控制器之資料的誤差校正碼(ECC)之電路33亦可連接至匯流排23。亦可包括專用於編碼及解碼通過控制器之資料之電路34。此編碼包括壓縮及安全加密,但大多數任一類型之資料轉換可以此方式執行。當利用時,專用電路33及34執行可在韌體控制下另外由處理器27執行之特定算法。控制器匯流排23經由電路35與主機系統建立介面,在圖2之系統被容納於記憶卡內之情況下,此建立介面經由為連接器4之部分的卡之外部接觸37完成。時鐘39與控制器11之其他組件的每一者連接且由控制器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。經由通過各別行控制電路45及47連接至平面的的線69及71,電路65及67提供將資料程式化至記憶體單元中且用於自其各別平面之記憶體單元讀取資料兩者。
雖然控制器11控制記憶體晶片15之操作以程式化資料、讀取資料、擦除及注意各種內務處理事件,但每一記憶體晶片亦含有執行來自控制器11之指令之某些控制電路以執行此等功能。介面電路73連接至系統匯流排13之控制及狀態部分21。將來自控制器之指令提供至狀態機75,其接著提供其他電路之特定控制以便執行該等指令。如圖2所示,控制線77至控制線81使狀態機75與該等其他電路連接。來自狀態機75之狀態資訊係透過線83傳遞至介面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之一部分。提供大量全域位元線,但為說明清楚起見,在圖3中僅展示四個此等線91至94。在該等位元線之一者與參考電位之間連接若干串接式記憶體單元串97至104。使用記憶體單元串99為代表,複數個電荷儲存記憶體單元107至110在串之任一末端處與選擇的電晶體111及112串聯連接。當致使串之選擇的電晶體導電時,在其位元線與參考電位之間連接串。接著一次程式化或讀取在彼串內之一記憶體單元。
圖3之字線115至118個別地越過在若干記憶體單元串之每一者中的一記憶體單元之電荷儲存元件延伸,且閘極119及120控制串之每一末端處之選擇的電晶體之狀態。共用共同字線及控制閘極線115至120之記憶體單元串用以形成可一起被擦除之記憶體單元區塊123。單元之此區塊含有可同時實體擦除之最小數目之單元。一次程式化沿字線115至118之一者之彼等記憶體單元之一列。通常,以指定次序(在此情況下)自沿字線118且最接近連接至接地或另一共同電位之串的末端之列開始程式化NAND陣列之列。貫穿區塊123,接著程式化沿字線117之記憶體單元列等等。最後程式化沿字線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之每一者之記憶體單元各被分為8頁P0至P7。或者,在每一區塊中可存在16、32或更多的記憶體單元頁。頁為含有同時程式化之最小資料量的區塊內之資料程式化及讀取之單元。在圖3之NAND架構中,在區塊內沿字線的記憶體單元形成頁。然而,為增大記憶體系統操作並行度,可將兩個或兩個以上區塊內之此等頁邏輯鏈接為元頁。在圖5中說明由來自四個區塊131至134之每一者的一實體頁形成之元頁151。元頁151(例如)包括四個區塊之每一者中的頁P2,但元頁之頁在區塊之每一者內不必必須具有相同的相對位置。對於高的系統效能而言,雖然平行地越過所有四個平面程式化及讀取最大資料量係較佳的,但記憶體系統亦可經操作以形成不同平面中的獨立區塊中之一個、兩個或三個頁中之任一或全部之元頁。此允許程式化及讀取操作與可方便地經平行處理之資料量自適應地匹配,且減小元頁之部分保留未程式化資料之機會。
如圖5所說明之由多個平面之實體頁形成之元頁含有沿彼等多個平面之字線列的記憶體單元。勝於同時程式化在一字線列中之所有單元,更一般地交替程式化兩個或兩個以上之交錯群中的單元,每一群儲存一資料頁(在單一區塊中)或一資料元頁(越過多個區塊)。藉由同時程式化交替的記憶體單元,不必向每一位元線提供包括資料暫存器及感測放大器之周邊電路單元,而是在相鄰位元線之間分時。此節省周邊電路所需要之基板空間量且允許沿列以增大的密度封裝記憶體單元。另外,同時程式化沿一列之每一個單元以便最大化自給定記憶體系統可用之並行度係較佳的。
參看圖3,藉由沿NAND串之至少一末端提供兩列選擇的電晶體(未圖示)而非所展示之單一列而可最方便地達成將資料同時程式化至沿一列之一個隔一個的記憶體單元中。接著一列之選擇的電晶體回應於一控制信號而將區塊內之一個隔一個的串連接至其各別位元線,且另一列之選擇的電晶體回應於另一控制信號而將介入的一個隔一個的串連接至其各別位元線。因此,資料之兩頁被寫入記憶體單元之每一列中。
每一邏輯頁中之資料量通常為一整數的資料之一或多個扇區,根據慣例,每一扇區含有512位元組的資料。圖6展示頁或元頁之資料的兩個扇區153及155之邏輯資料頁。每一扇區通常含有512位元組的所儲存之使用者或系統資料之一部分157及與部分157中之資料相關或與在其中儲存資料之實體頁或區塊相關的附加項資料之另一數目的位元組159。附加項資料之位元組數目通常為16個位元組,從而構成扇區153及155之每一者之總計528個位元組。附加項部分159可含有在程式化期間自資料部分157計算之一ECC、其邏輯位址、區塊已被擦除及再程式化次數之經歷計數、一或多個控制旗標、操作電壓位準及/或類似物,加上自此等附加項資料159計算之ECC。或者,附加項資料159或其一部分可儲存於其他區塊中之不同頁中。
隨著記憶體之並行度增大,結果元區塊之資料儲存容量增大且資料頁及元頁之尺寸亦增大。資料頁接著可含有兩個以上之資料扇區。根據一資料頁中之兩個扇區,且每元頁兩個資料頁,一元頁中存在四個扇區。因此每元頁儲存2048個位元組的資料。此為高的並行度,且甚至可進一步隨著列中之記憶體單元之數目的增大而增大。由於此原因,擴展快閃記憶體之寬度,以便增大頁及元頁中之資料量。
市售如上識別之具有512百萬位元組(MB)、1十億位元組(GB)、2 GB及4 GB且可變得更高之資料儲存容量之實體上小型可再程式化非揮發性記憶卡及快閃磁碟。圖7說明在主機與此大量記憶體系統之間的最普通介面。主機處理由主機執行之應用程式軟體或韌體程式產生或使用之資料檔案。主要在諸如PC、膝上型電腦及類似物之一般電腦主機中發現,文書處理資料檔案為一實例,且電腦輔助設計(CAD)軟體之圖形檔案為另一實例。pdf格式之文件亦為此檔案。靜態數位視訊相機產生儲存於記憶卡上之每一圖片之一資料檔案。蜂巢式電話利用來自內部記憶卡上之諸如電話簿之檔案。PDA儲存並使用諸如位址檔案、行事曆檔案及類似物之若干不同檔案。在任一此應用中,記憶卡亦可含有操作主機之軟體。
主機與記憶體系統之間的共同邏輯介面於圖7中說明。連續的邏輯位址空間161足夠大以向可儲存於記憶體系統中之所有資料提供位址。通常將主機位址空間分為資料叢集之增量。給定主機系統中之每一叢集可經設計以含有若干資料扇區,約在4與64個扇區之間為典型的。一標準扇區含有512個位元組資料。
在圖7之實例中展示已產生之三個檔案1、2及3。在主機系統上執行之應用程式產生作為一資料之有序集合之每一檔案且由唯一名稱或其他參考識別檔案。尚未配置至其他檔案之足夠的可用邏輯位址空間由主機分配至檔案1。檔案1經展示以已被分配連續範圍之可用邏輯位址。為特別目的,亦可共同地配置諸如主機操作軟體之特別範圍的位址範圍,接著即使該等位址在主機正在向資料分配邏輯位址的時候尚未利用,亦避免該等位址用於儲存資料。
如圖7所示,當隨後由主機產生檔案2時,主機類似地分配在邏輯位準空間161內之兩個不同範圍的連續位址。不必向一檔案分配連續的邏輯位址而是可為已配置至其他檔案之位址範圍之間的位址片段。接著展示此實例,向由主機產生之又一檔案3配置未預先未配置至檔案1及檔案2及其他資料之主機位址空間的其他部分。
主機藉由維護檔案配置表(FAT)而記錄記憶體邏輯位址空間,在該檔案配置表處維護主機分配至各種主機檔案之邏輯位址。FAT表通常儲存於非揮發性記憶體中以及主機記憶體中,且隨著儲存新檔案、刪除其他檔案、修改檔案及類似操作而由主機頻繁更新。舉例而言,當刪除一主機檔案時,主機藉由更新FAT表而重新配置先前分配至該刪除檔案之邏輯位址以展示邏輯位址現可用於其他資料檔案。
主機並不關注記憶體系統控制器選擇以儲存檔案之實體位置。典型主機僅瞭解其邏輯位址空間及其已配置至其各個檔案之邏輯位址。另一方面,經由典型主機/卡介面之記憶體系統僅瞭解向已寫入資料之邏輯位址空間之部分,但並不瞭解配置至特定主機檔案之邏輯位址或甚至不瞭解主機檔案之數目。記憶體系統控制器將由主機提供之用於資料儲存或擷取的邏輯位址轉換為在儲存主機資料之快閃記憶體單元陣列內之唯一實體位址。區塊163表示該等邏輯位址至實體位址轉換之工作表,其由記憶體系統控制器維護。
記憶體系統控制器經程式化而以保持處於高位率的系統之效能之方式在記憶體陣列165之區塊及元區塊內儲存資料檔案。在此說明中使用四個平面或子陣列。較佳越過來自平面之每一者之區塊形成的整個元區塊、使用系統允許之最大並行度程式化並讀取資料。通常將至少一元區塊167配置為用於儲存由記憶體控制器使用之操作韌體及資料的保留區塊。可配置另一元區塊169或多個元區塊用於主機操作軟體、主機FAT表及類似物之儲存。保留用於資料檔案儲存之大多數實體儲存空間。然而,記憶體控制器並不瞭解在主機之各種檔案物件之間主機如何已配置所接收的資料。所有記憶體控制器通常自與主機之互動瞭解,由主機寫入特定邏輯位址之資料係儲存於如由控制器之邏輯至實體位址表163維護之對應的實體位址中。
在典型記憶體系統中,與在位址空間161內儲存資料量所必需的區塊相比,提供儲存容量之少許額外區塊。該等額外區塊之一或多者可被提供為在記憶體壽命期間可能變為有缺陷之其他區塊之取代的冗餘區塊。含有於個別元區塊內之區塊的邏輯分組通常可由於各種原因而改變,該等原因包括由冗餘區塊取代最初分配至元區塊之缺陷區塊。諸如元區塊171之一或多個額外區塊通常保持於一經擦除區塊集區中。當主機向記憶體系統中寫入資料時,控制器將由主機分配之邏輯位址轉換為在經擦除區塊集區中之元區塊內之實體位址。在邏輯位址空間161內並未用於儲存資料之其他元區塊接著被擦除且被表示為在後續資料寫入操作期間使用之經擦除之集區區塊。
由於原始的所儲存資料變為陳舊的,故儲存於特定主機邏輯位址處之資料由新資料頻繁地覆寫。記憶體系統控制器回應地在經擦除區塊中寫入新資料且接著改變彼等邏輯位址之邏輯至實體位址表以識別彼等邏輯位址處之資料所儲存至的新實體區塊。接著擦除含有彼等邏輯位址處之原始資料之區塊且使其可用於新資料之儲存。若在寫入開始時在來自擦除區塊集區之預擦除區塊中不存在足夠的儲存容量,則通常在可完成當前資料寫入操作之前必須進行此擦除。此可不利地影響系統資料程式化速度。僅當主機向其相同邏輯位址寫入新資料時,記憶體控制器通常獲悉已由主機致使在給定邏輯位址處之資料陳舊。因此記憶體之許多區塊一度可正在儲存此無效資料。
區塊及元區塊之尺寸係不斷增大的以便有效地使用積體電路記憶體晶片之區域。此導致個別資料之大部分寫入小於元區塊之儲存容量(且在許多情形下甚至低於區塊之儲存容量)之儲存資料量。由於記憶體系統控制器通常將新資料導向經擦除之集區元區塊,故此可導致元區塊之部分成為未填充的。若新資料為儲存於另一元區塊中之某些資料的更新,則亦希望以邏輯位址次序將來自具有與新資料元頁之邏輯位址相鄰的邏輯位址之彼其他元區塊的資料之剩餘有效元頁複製至新元區塊中。舊的元區塊可保留其他有效資料元頁。隨著時間的過去,此導致個別元區塊之某些元頁之資料被致使陳舊及無效,且被具有相同邏輯位址、寫入不同元區塊之新資料替代。
為保持足夠的實體記憶體空間以在整個邏輯位址空間161上儲存資料,將此資料週期性地壓緊或合併(廢料收集)。亦希望以與其邏輯位址相同之次序使元區塊內之資料扇區保持盡可能多,此係因為此使得讀取連續邏輯位址中之資料更有效。故資料壓緊及廢料收集通常以此額外目標執行。當接收部分區塊資料更新時管理記憶體之某些態樣及元區塊之使用描述於美國專利第6,763,424號中。
資料壓緊通常包含自元區塊讀取所有有效資料元頁且將其寫入新區塊中,在處理中忽視具有無效資料之元頁。具有有效資料之元頁亦較佳以與儲存於其中之資料的邏輯位址次序相匹配之實體位址次序排列。由於未將含有無效資料之元頁複製至新元區塊中,故在新元區塊中佔據之元頁數目將小於在舊元區塊中佔據之元頁數目。接著將舊區塊擦除且使其可用於儲存新資料。由合併獲得之額外容量元頁接著可用以儲存其他資料。
在廢料收集期間,自兩個或兩個以上元區塊收集具有連續或接近連續的邏輯位址之有效資料元頁且將其再寫入另一元區塊中,通常為在經擦除區塊集區中之另一元區塊中。當自兩個或兩個以上原始元區塊複製所有有效資料元頁時,可擦除該等原始元區塊以用於將來使用。
資料合併及廢料收集花費時間且可影響記憶體系統之效能,尤其是若在可執行來自主機之指令之前需要發生資料合併或廢料收集時。此等操作通常由記憶體系統控制器排程以盡可能多地在背景中發生,但執行該等操作之需要可導致控制器必須給予主機繁忙狀態信號,直到此操作完成為止。其中可延遲主機指令之執行之實例為:其中在經擦除區塊集區中不存在足夠的預擦除元區塊以儲存主機需要寫入記憶體中之所有資料,且首先需要資料合併或廢料收集以清除可接著被擦除之有效資料之一或多個元區塊。因此已指示注意管理記憶體之控制以便最小化此等中斷。在以下美國專利申請案中描述許多此等技術:序號10/749,831、於2003年12月30日申請、標題為"Management of Non-Volatile Memory Systems Having Large Erase Blocks";序號10/750,155、於2003年12月30日申請、標題為"Non-Volatile Memory and Method with Block Management System";序號10/917,888、於2004年8月13日申請、標題為"Non-Volatile Memory and Method with Memory Planes Alignment";序號10/917,867、於2004年8月13日申請;序號10/917,889、於2004年8月13日申請、標題為"Non-Volatile Memory and Method with Phased Program Failure Handling";及序號10/917,725、於2004年8月13日申請、標題為"Non-Volatile Memory and Method with Control Data Management"。
有效控制具有非常大的擦除區塊之記憶體陣列之操作的難題係使在給定寫入操作期間儲存之資料扇區之數目與記憶體之區塊容量及邊界相匹配及對準。一方法為如儲存小於填充整個元區塊之量的資料數量所必需,組態用於以小於最大數目的區塊儲存來自主機之新資料之元區塊。自適應元區塊之使用描述於序號10/749,189、於2003年12月30日申請、標題為"Adaptive Metablocks"之美國專利申請案中。資料區塊之間的邊界及元區塊之間的實體邊界之適配描述於序號10/841,118、於2004年5月7日申請及序號11/016,271、於2004年12月16日申請、標題為"Data Run Programming"之專利申請案中。
記憶體控制器亦可使用來自由主機儲存於非揮發性記憶體中之FAT表之資料以更有效地操作記憶體系統。一此使用為藉由去配置資料之邏輯位址而獲悉何時由主機已將資料識別為陳舊的資料。瞭解此允許在通常將藉由主機將新資料寫入彼等邏輯位址而獲悉此之前,記憶體控制器排程含有此無效資料之區塊的擦除。此描述於序號10/897,049、於2004年7月21日申請、標題為"Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems"之美國專利申請案中。其他技術包括監控將新資料寫入記憶體中之主機模式以便推斷給定寫入操作是一單一檔案,還是其中在檔案之間存在邊界之多個檔案。序號11/022,369、於2004年12月23日申請、標題為"FAT Analysis for Optimized Sequential Cluster Management"之美國專利申請案描述此類型技術之使用。
為有效操作記憶體系統,對於控制器而言,需要瞭解如其可瞭解盡可能多的關於由主機分配至其個別檔案之資料的邏輯位址。接著可由控制器將檔案資料儲存於單一元區塊或元區塊群內,而不是當檔案邊界係未知時,將資料檔案散射於大量元區塊之間。結果為資料合併及廢料收集操作之數目及複雜度被減小。結果改良記憶體系統之效能。但對於記憶體控制器而言,如上所述,當主機/記憶體介面包括邏輯位址空間161(圖7)時,難以瞭解較多關於主機資料檔案結構。
參看圖8,說明不同於如圖7中已展示之典型邏輯位址主機/記憶體介面。由主機向由主機形成之資料檔案配置邏輯位址。接著記憶體系統知曉該等邏輯位址且將其映射至實際上儲存資料之記憶體單元區塊的實體位址中。
直接資料檔案儲存
主機與記憶體系統之間、用於儲存大量資料之改良的介面消除邏輯位址空間之使用。此係前述直接資料檔案應用之主題。主機實際上由唯一的檔案ID(或其他唯一參考)及在檔案內之資料單元(諸如位元組)之偏移位址邏輯地定址每一檔案。將此檔案位址直接給予記憶體系統控制器,其接著保存其中實體地儲存每一主機檔案之資料之其自己的表。此新介面可使用與上文關於圖2至圖6所描述之記憶體系統相同的記憶體系統來建構。與上文所描述介面之主要差異為記憶體系統與主機系統進行通信及儲存檔案資料之方式。
此基於檔案之介面於圖9中說明,其應與圖7中之邏輯位址介面相比較。圖9之檔案1、檔案2及檔案3之每一者的識別及檔案內之資料之偏移被直接傳遞至記憶體控制器。接著由記憶體控制器功能173將此邏輯位址資訊轉譯為記憶體165之元區塊及元頁之實體位址。
此基於檔案之介面亦由圖10說明,其應與圖8之邏輯位址介面相比較。在圖10中並未呈現圖8之邏輯位址空間及主機之經維護的FAT表。相反地,由檔案數目及在檔案內之資料的偏移來將由主機產生之資料檔案識別至記憶體系統。記憶體系統接著直接將檔案映射至記憶體單元陣列之實體區塊。
當使用直接資料檔案儲存技術將新資料檔案程式化至記憶體中時,自區塊中之第一實體位置開始且按照順序依序通過區塊之位置進行而將資料寫入記憶體單元之經擦除區塊中。按照次序程式化自主機接收之資料,而不考慮檔案內之彼資料的偏移。繼續程式化,直到已將檔案中之所有資料寫入記憶體中為止。若檔案中之資料量已超出單一記憶體區塊之容量,則當第一區塊填滿時,在第二經擦除區塊中繼續程式化。以與第一區塊相同之方式程式化第二記憶體區塊,按照次序自第一位置直到儲存所有檔案資料或第二區塊填滿為止。可使用檔案之任何剩餘資料程式化第三或額外區塊。儲存單一檔案之資料的多個區塊或元區塊不必實體或邏輯地連續。為易於說明起見,除非另有規定,否則視在特定系統中是否使用元區塊而定,如本文中使用之術語"區塊"意欲指代任一擦除之區塊單元或多個區塊"元區塊"。
圖11至圖13提供快閃記憶體之直接資料檔案操作而無需在記憶體系統內發生編碼、壓縮、加密或其他資料轉換之實例。參看圖11A,說明將資料檔案寫入記憶體系統中。在此實例中,資料檔案181大於記憶體系統之一區塊或元區塊183的儲存容量,資料檔案181經展示以在實垂直線之間延伸。因此資料檔案181之一部分184亦被寫入第二區塊185中。該等記憶體單元區塊經展示以係實體連續的,但其不必為此。由於來自檔案181之資料為自主機接收之串流,將其寫入直到檔案之所有資料已被寫入記憶體中為止。在圖11A之實例中,資料181為在已由主機發佈寫入指令之後自主機接收的檔案之初始資料。
對於記憶體系統而言,管理及記錄所儲存資料之較佳方式為藉由使用可變尺寸的資料群。亦即,將檔案之資料儲存為可以已經界定次序鏈接於一起以形成完整檔案之複數個資料群。然而,較佳地,檔案內之資料群次序由記憶體系統控制器經由檔案索引表(FIT)之使用而維護。由於來自主機之資料流正被寫入,因此只要在檔案資料之邏輯偏移位址中或在其中儲存資料之實體位址中存在不連續,就起始新資料群。此實體不連續之實例為當檔案之資料填滿一區塊且開始將其寫入另一區塊中時。此在圖11A中說明,其中第一資料群填滿第一區塊183,檔案之剩餘部分184儲存於作為第二資料群之第二區塊185中。第一資料群可由(F0,D0)表示,其中F0為資料檔案之起始的邏輯偏移,且D0為檔案起始處之記憶體內的實體位置。第二資料群表示為(F1,D1),其中F1為在第二區塊185之起始處儲存之資料的邏輯檔案偏移且D1為儲存資料處之實體位置。
經由主機記憶體介面轉換之資料量可以資料位元組之數目、資料扇區之數目或使用某些其他粒度來表現。主機大多數以位元組粒度界定其檔案資料,但當經由當前邏輯位址介面與大容量記憶體系統進行通信時,主機則將位元組群分為每扇區512位元組之扇區,或群分為每叢集多個扇區之叢集。此通常經完成以簡化記憶體系統之操作。雖然本文中正描述之基於檔案之主機記憶體介面可使用某些其他資料單元,但原始主機檔案位元組粒度通常為較佳的。亦即,較佳以資料之最小的合理單元之位元組形式而不是由扇區、叢集或類似物來表達資料偏移、長度及類似物。此允許藉由本文中所描述之技術來更有效地使用快閃記憶體儲存之容量。
在一般現有邏輯位址介面中,主機亦規定寫入資料之長度。此亦可由本文中描述之基於檔案的介面完成,但由於對於寫入指令之執行而言其並非必需,故主機不提供寫入資料之長度係較佳的。
以圖11A中說明之方式寫入記憶體中之新檔案接著在FIT中以彼次序表示為資料群之索引項(F0,D0)、(F1,D1)之序列。亦即,只要主機系統需要存取特別檔案,主機就向記憶體系統發送該檔案之檔案ID或其他識別,記憶體系統接著存取檔案之FIT以識別組成彼檔案之資料群。為方便記憶體系統之操作,個別資料群之長度亦可包括於其個別項中。當時用時,記憶體控制器計算並儲存資料群之長度。
只要主機保持圖11A之檔案處於打開狀態,則實體寫入指標P亦較佳經維護以界定用於寫入自主機接收之彼檔案之任何另外的資料之位置。在實體記憶體中於檔案之末端處寫入檔案之任何新資料而不考慮新資料在檔案內之邏輯位置。記憶體系統允許同時保持打開多個檔案(諸如4個或5個此等檔案)並維護其每一者的寫入指標P。不同檔案之寫入指標指向不同記憶體區塊中的位置。當已存在記憶體系統之打開檔案之數目的限制時,若主機系統需要打開新檔案,則首先關閉已打開檔案之一者且接著打開新檔案。在已關閉一檔案後,不再存在維護彼檔案之寫入指標P之任何需要。
圖11B說明亦藉由使用寫入指令而由主機向圖11A之預先寫入但仍打開的檔案之末端附加資料。展示由主機系統向檔案之末端添加資料187,在彼檔案之資料末端處之資料187亦被寫入第二區塊185中。由於在現有資料群184與所附加的資料189之間既不存在邏輯位址不連續亦不存在實體位址不連續,故所附加的資料變為資料群(F1,D1)之部分,因此資料群(F1,D1)現含有更多的資料。因此完整檔案仍表示為FIT中之索引項(F0,D0)、(F1,D1)之序列。指標P之位址亦被改變為所儲存之附加資料的末端之彼位址。
將資料區塊191插入圖11A之預先寫入檔案中之實例係於圖11C中展示。雖然主機正在將資料191插入檔案中,但記憶體系統將插入的資料附加於在預先寫入的資料檔案之末端處之位置193處。雖然此可在主機關閉檔案之後隨後在背景中完成,但當將資料插入打開的檔案中時,不必以其邏輯次序重寫檔案之資料。由於插入的資料係整體儲存在第二記憶體區塊185內,故其形成單一新群(F1,D3)。但進行此插入導致圖11A之前一資料群(F0,D0)被分為在插入之前的一者(F0,D0)及在插入之後的一者(F2,D1)之兩個群。此係因為只要存在諸如在插入之起始F1處及在插入之結束F2處出現的資料之邏輯不連續,則需要形成新資料群。群(F3,D2)係為第二區塊185之起始的實體位址D2之結果。亦保持群(F1,D3)及(F3,D2)獨立,即使其被儲存於同一記憶體區塊中,此係因為在其中儲存之資料的偏移中存在不連續。接著在記憶體系統FIT中以彼次序由資料群索引項(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)表示具有插入之原始檔案。請注意,自圖11A、圖11B及圖11C之實例,可寫入新檔案或現有檔案之新資料而無需使得記憶體中之任何資料陳舊。亦即,寫入及插入指令之執行並不導致致使任何其他資料無效或陳舊。
圖11D說明另一實例,其中使用更新指令更新最初以圖11A中展示之方式寫入的資料之某部分。展示待更新之資料檔案之部分195。並非使用更新來重寫記憶體統中之整個檔案,而是將檔案之經更新部分197附加至預先寫入之資料。預先寫入之資料部分199現為陳舊的。雖然通常需要合併經更新之檔案以便釋放由陳舊資料佔用之空間,但此通常並不在主機保持檔案打開時完成,而是可在關閉檔案之後於背景中完成。在更新後,以彼次序由資料群索引項(F0,D0)、(F1,D3)、(F2,D1)、(F3,D2)表示記憶體系統FIT中之檔案。將圖11A之單一資料群(F0,D0)再次分為圖11D中之若干片段,在經更新部分之前的一者、更新部分及在經更新部分之後的一者。
為進一步說明可變長度資料群之使用,由圖12A至圖12E順次展示包含同一檔案之若干寫入操作之序列。如圖12A所示,由寫入指令之使用首先將原始檔案資料W1寫入記憶體系統之兩個區塊中。接著由兩個資料群界定檔案,第一資料群起始於實體記憶體區塊之開始且在實體記憶體區塊邊界後需要第二群。接著由資料群之索引項之以下序列:(F0,D0)、(F1,D1)識別圖12A之檔案。
在圖12B中,由更新指令之使用來更新在圖12A中寫入之檔案資料。在經更新資料之前一版本變為陳舊之情況下,在前一群(F1,D1)後立即寫入經更新檔案資料U1。將圖12A之前一群(F0,D0)縮短為圖12B之經修正群(F0,D0),且將前一群(F1,D1)縮短為群(F4,D2)。將經更新資料寫入兩個群(F2,D3)及(F3,D4)中,此係因為其與記憶體區塊之一邊界重疊。資料之某些儲存於第三記憶體區塊中。現由資料群之索引項的以下序列:(F0,D0)、(F2,D3)、(F3,D4)、(F4,D2)描述檔案。
在圖12C中,使用插入指令由新檔案資料I1之插入而進一步修改圖12B之檔案。如圖12C之新群(F5,D6)及(F6,D7),在圖12B之前一群(F4,D2)之後立即將新資料I1寫入記憶體中,此係因為經插入資料與記憶體區塊之一邊界重疊。使用第四記憶體區塊。因為新資料I1之插入,圖12B之先前群(F0,D0)被分裂為縮短的群(F0,D0)及(F7,D5)。現由資料群之索引項之以下序列:(F0,D0)、(F5,D6)、(F6,D7)、(F7,D5)、(F8,D3)、(F9,D4)、(F10,D2)描述檔案。
圖12D展示使用寫入指令向檔案之末端附加新資料W2的圖12C之資料檔案之進一步修改。如圖12D之新群(F11,D8),在圖12C之先前群(F10,D2)之後立即寫入新資料W2。現由資料群之索引項之以下序列:(F0,D0)、(F5,D6)、(F6,D7)、(F7,D5)、(F8,D3)、(F9,D4)、(F10,D2)、(F11,D8)描述檔案。
在圖12E中展示對打開檔案之第二更新,其中藉由主機發佈一更新指令而將經更新檔案資料U2寫入圖12D之檔案中。在圖12E中,在資料之前一版本變為陳舊的情況下,在圖12D之前一群(F11,D8)之後立即寫入經更新資料U2。圖12D之前一群(F9,D4)在圖12E中被縮短為經修正之群(F9,D4),前一群(F10,D2)完全變為陳舊的,且前一群(F11,D8)經縮短以形成新群(F14,D9)。將經更新資料寫入圖12E之兩個新群(F12,D10)及(F13,D11)中,與一區塊邊界重疊。現需要第五區塊以儲存檔案。現由以下資料群之索引項之序列:(F0,D0)、(F5,D6)、(F6,D7)、(F7,D5)、(F8,D3)、(F9,D4)、(F12,D10)、(F13,D11)、(F14,D9)描述檔案。
在根據前一描述產生或修改檔案後,較佳以正確的邏輯次序繼續維護每一檔案之資料的偏移。因此,作為執行插入指令(圖12C)之部分,例如,由主機提供之經插入資料的偏移自就在插入前之偏移係連續的且在插入之後已在檔案中之資料增加了經插入資料的量。更新指令最一般地導致由類似量之經更新資料替代現有檔案之給定位址範圍內的資料,因此通常不必替代檔案之其他資料之偏移。
應注意,如上所述及由圖11及圖12說明之資料配置及索引功能之全部由記憶體系統的控制器執行。連同寫入、插入或更新指令中之一者,主機僅傳遞正發送至記憶體系統之檔案內的檔案ID及資料之偏移。記憶體系統進行剩餘傳遞。
以剛所描述之方式直接將檔案資料自主機寫入快閃記憶體中之優勢為可與主機相同而維護如此儲存之資料的粒度或解析度。例如若主機應用使用一位元組粒度寫入檔案資料,則亦可使用一位元組粒度將資料寫入至快閃記憶體中。接著以若干位元組量測個別資料群內之資料的量及位置。亦即,當儲存於快閃記憶體中時,在主機應用檔案內可獨立定址之資料的同一偏移單元在彼檔案內亦可獨立定址。接著在索引表中規定至最接近位元組或其他主機偏移單元之區塊內之同一檔案的資料群之間的任何邊界。類似地,在主機偏移之單元中界定區塊內的不同檔案之資料群之間的邊界。
自圖12B及圖12E應瞭解,更新指令之執行導致儲存檔案所必需的實體空間大於檔案中之資料量。此係因為已由更新替代之資料保留儲存於記憶體中。因此非常需要藉由消除陳舊、無效的資料而將檔案之資料合併(廢料收集)至較小的實體儲存空間中。因此更多的儲存空間對於其他資料變為可用的。
亦可注意,除圖12B及圖12E之檔案資料更新外,圖12C之資料插入導致所儲存之檔案資料次序紊亂。亦即,在進行更新及插入時,將其添加至儲存於記憶體中之檔案的末端,而其幾乎總是在檔案內之某處經邏輯定位。此為圖12B、圖12C及圖12E之實例之情形。因此可需要重排序儲存於記憶體中之檔案的資料以與檔案內之偏移次序相匹配。由於順次讀取頁及區塊將以其偏移次序給出檔案資料,故此接著改良所儲存資料之讀取速度。此亦提供檔案之最大可能磁碟重組。但重排序檔案資料以進行更有效讀取對於記憶體系統之效能並不如檔案資料合併一樣重要,檔案資料合併潛在地釋放一或多個記憶體區塊以用於儲存其他資料。重排序檔案中之資料將因此通常並不由自身完成,其中益處並不值得所添加的操作耗用,但可作為具有小的或不添加操作耗用之許多廢料收集操作之部分而完成。
因為已進行兩個資料更新U1及U2,故圖12E之檔案包括儲存於記憶體中之陳舊的資料群(灰色部分)。如由12E而為顯而易見,結果用於儲存檔案之記憶體容量的量實質上大於檔案之尺寸。因此廢料收集係適當的。圖13提供收集圖12E之資料檔案之廢料的結果之說明。在廢料收集之前,彼檔案佔用儲存容量之近五個區塊(圖12E),而在廢料收集後,同一檔案配合在稍微多於三個記憶體單元區塊內(圖13)。作為廢料收集操作之部分,將資料自其被初始寫入之區塊複製至其他經擦除區塊中,且接著擦除原始區塊。若整個檔案為經收集之資料,則可將其資料以具有與檔案內之資料邏輯偏移次序相同的實體次序複製至新區塊中。在廢料收集(圖13)後,例如以與其在主機檔案中顯現的相同次序儲存更新U1及U2及插入I1。
廢料收集通常亦導致在經合併檔案內之新的及不同資料群之形成。在圖13之情形中,由新資料群之索引項之以下新序列:(F0,D0)、(F1,D1)、(F2,D2)、(F3,D3)描述檔案。此為比在圖12E中展示之檔案狀態情況下存在之資料群的數目小得多之數目的資料群。對於已將檔案之資料複製至其中之記憶體單元區塊的每一者而言,現存在一資料群。作為廢料收集操作之部分,檔案索引表(FIT)經更新以反映形成檔案之新資料群。
可變尺寸資料單元之儲存
在快閃記憶體之當前操作中,將邏輯位址空間中之資料之給定區塊映射至具有與資料區塊中之資料量相同的資料儲存容量之記憶體之實體區塊或元區塊中係習知的。此使得記憶體系統之操作更有效。但當在邏輯位址空間與實體記憶體之間存在於儲存之前改變邏輯資料區塊之尺寸的資料轉換時,在邏輯與實體資料區塊之間所要的此尺寸等值不再存在。此時不可使用習知映射機制。
克服此問題之一技術為向不規則尺寸之經轉換資料群配置中間邏輯位址,且接著將中間位址之區塊映射至具有等值尺寸之快閃記憶體區塊。但由後續更新導致之資料的此等中間尺寸群之尺寸的變化在中間位址至實體記憶體區塊的配置中產生顯著的片段。此導致所必需之更頻繁的資料合併及廢料收集,其大大降低記憶體系統之效能。
已發現容納此等經轉換或不規則尺寸之資料單元同時仍保持記憶體系統的良好效能之技術為使用在先前部分中描述之直接資料檔案技術。可變尺寸資料群之使用尤其經調適以處理不同且改變量之資料單元。
圖14說明藉由使用上文所述之直接資料檔案技術來寫入資料檔案的實例,但其中以儲存與由主機提供之資料量不同的資料量之方式在記憶體系統內轉換資料。資料轉換可由在將所接收資料寫入記憶體中之前所接收資料之壓縮、加密或其他編碼而產生。壓縮演算法具有顯著地降低資料量之主要目的,以便降低儲存來自主機之給定資料量所必需的實體記憶體量。另一方面,資料加密方法通常增大所儲存之資料量。本文中所描述之技術同樣適用於任一情形且亦可適用於其中所儲存之資料的一部分尺寸增大且另一部分尺寸減小之情形。
參看圖14,在檔案201內之資料具有自0延伸至N之邏輯偏移位址202。檔案偏移位址由主機連同資料一起提供。在記憶體系統內之此位址空間由轉換203分為資料HD1、HD2、HD3及HD4之連續單元204。接著將主機資料單元轉換(如由區塊205指示)為如在207處指示之各別邏輯資料群DG1、DG2、DG3及DG4。為此說明,經轉換之資料群DG2大於對應的主機資料單元HD2,經轉換之資料群DG3為與主機單元HD3相同之尺寸,且其他兩個資料群含有比其未經轉換的主機資料對應物少之資料。然而,更通常地,視所執行之轉換類型而定,經轉換資料群將皆大於或皆小於其對應的主機資料單元。在資料轉換後,如由區塊211所示,類似於上述直接資料檔案技術,藉由將邏輯資料群207分配至快閃記憶體單元陣列209內之實體位址而將邏輯資料群207儲存於快閃記憶體單元陣列209中。
檔案邏輯位址範圍203之個別主機資料單元HD1等較佳經選擇以含有相等或大體上相等的資料量。此資料量亦較佳經設定以等於由資料轉換205利用之資料量。亦即,至少許多壓縮及加密演算法每次僅處理檔案之一設定量資料,且可使得主機資料單元HD1等之尺寸等於彼量。此量通常亦可藉由設定轉換演算法之參數而選擇,因此此量及主機資料單元HD1等之尺寸可一起經選擇以最佳化特別系統之操作。
如圖15說明,該等技術並不限於如上所述之主機資料檔案介面,而是亦可用於單一邏輯位址空間與在主機與記憶體系統之間的多個檔案建立介面之情況。此為習知磁碟儲存系統介面。藉由位址轉換功能214將邏輯位址空間215內的唯一位址由主機分配至資料檔案213。如吾人所熟知,主機將新檔案之邏輯位址分配至位址空間215內之未經佔據之位址,其對於特別檔案可能不為且通常不為連續的。因此,記憶體系統不具有關於分配至任一特別檔案之邏輯位址的直接資訊。
但如在216處所指示,可將圖15之單一邏輯位址介面215分為資料之連續集合217,集合之每一者較佳含有相同的資料量。接著將每一集合看作類似於資料檔案物件,其邏輯位址範圍在218處分為邏輯主機資料單元HD1、HD2及HD3(如219處所展示)。此為在Sergey A.Gorobets於2005年8月3日申請之序號11/196,869的美國專利申請案中描述的一技術之實施例。在資料集合217之每一者內之位址由邏輯位址轉換218映射至主機資料單元219中。主機資料(HD)單元之尺寸較佳係相同的或大體上相同,且較佳經選擇以與每次由轉換功能223轉換之資料量相對應。因此,以與關於圖14之上述處理相同的方式將該等主機資料(HD)單元轉換為不同尺寸的邏輯資料群(DG)之對應的若干者(如在225處所指示)。接著將邏輯資料群在由位址轉譯227判定的實體位址處儲存於記憶體209中。
在執行資料轉換205(圖14)或223(圖15)中,邏輯集合(204或219)之主機資料(HD)單元之整個一者通常係同時臨時地儲存於記憶體控制器(諸如RAM 31(圖2))中。接著編碼或另外轉換所儲存之HD單元。類似地,當修改以經轉換之方式儲存之主機資料單元時,資料被讀取、再轉換,且接著再轉換資料單元中之某些或所有資料單元臨時儲存於RAM中,同時被修改。由於當執行程式化及讀取功能時,當前快閃記憶體通常僅需要資料之一頁或元頁之儲存容量,故此可需要較高容量RAM。
雖然已描述將資料傳送至外部主機及自外部主機傳送資料之圖14及圖15之記憶體系統,但"主機"或者可為在記憶體系統內部執行之軟體應用程式。除記憶體之此處理器控制操作外,將儲存於快閃記憶體陣列內之應用軟體載入RAM 31中且由控制器處理器27(圖2)執行。或若有必要,可向記憶體系統添加用於此目的之一額外微處理器。
根據圖16之初始參考,將描述用於轉譯及儲存圖14或圖15之實例之任一者的經轉換邏輯資料群(DG)之技術。圖16中之資料之實例檔案或集合231表示主機資料檔案介面之一主機檔案201(圖14)或邏輯位址空間215之一部分或全部(圖15)之檔案或集合。將主機資料231之邏輯位址範圍分為相等尺寸之主機資料單元HD1、HD2、HD3等,其每一者具有各別起始邏輯位址A1、A2、A3等。諸如由壓縮、加密或其他類型編碼在記憶體系統內將主機資料單元HD1、HD2、HD3等分別個別地轉換為具有可變長度L1、L2、L3等之對應資料群DG1、DG2、DG3等。
接著將經轉換資料群DG1、DG2、DG3等作為關於圖11至圖13上述直接資料檔案操作的資料群處理。資料群儲存於實體記憶體233中,說明兩個區塊或元區塊X及Y。以相互鄰接之次序儲存資料群,資料群DG1起始於記憶體區塊X之位址0,資料群DG2在DG1結束後立即起始於區塊X之位址1等等。在此實例中,在區塊X及Y之間分裂資料群DG5,因此其被分為具有各別長度L5a及L5b且起始於區塊X中的記憶體位址4及區塊Y中的記憶體位址0之兩個子群DG5a及DG5b。隨著配合入區塊X中自群DG5之起始之許多資料儲存於此處,且接著群DG5之剩餘量儲存於區塊Y中。
圖16之實例中之主機不瞭解用於儲存於記憶體系統中的資料之其邏輯位址空間被分為主機資料單元HD1、HD2、HD3等。主機亦不瞭解在記憶體系統中發生之資料轉換。當主機自記憶體系統讀取資料時,出現關於圖16所述之寫入處理之反向。當主機請求在系統邏輯位址空間(圖15)內之規定位址中的規定資料檔案(圖14)或資料時,自儲存區塊X及Y讀取所儲存資料群DG1、DG2、DG3等且個別地將其反向轉換為主機資料HD1、HD2、HD3等之各別單元,接著將主機資料HD1、HD2、HD3等之各別單元組合為待發送至主機之資料群231。
將對應於主機資料(HD)單元之資料群(DG)之實體位置作為記憶體系統附加項之部分而由檔案索引表(FIT)維護。在圖16中說明之資料儲存之此表之一部分的一實例於圖17中給出。當第一次寫入資料時形成此表、隨著修改經寫入資料而修改此表且在讀取期間使用此表以搜尋由主機請求之資料。在表中存在資料單元231之每一所儲存資料群(DG)之至少一線。表之行中的每一資料群之資訊包括給出資料群對應之主機資料單元(HD)之偏移位址A的行235。行237儲存經轉換資料群(DG)之長度L。在指標行239中提供資料群起始處之實體記憶體233之起始位元組位置或其他位址。
直接資料檔案技術之此應用與關於圖11至圖13之以上描述的技術之間存在一重要差異。其中在未經轉換資料儲存情形下之資料群易於組合以便減小其數目,且因此減小FIT之尺寸及記錄FIT時之其他耗用,在經轉換資料群情況下並不為此情形。因為個別主機資料(HD)單元經個別地轉換,故需要繼續記錄各別的個別相應經轉換資料群(DG)。此維護記憶體儲存區塊內之所儲存資料群之間的邊界之記錄,且因此允許將自儲存區塊讀取之資料分離成個別資料群。接著將對應的主機資料(HD)單元個別地自FIT之線的一者識別之對應資料群(DG)再轉換。
因此,在圖17之FIT中包括具有指示每一資料群是否保持固定之單一位元之行241。"1"位元指示此為該情形。藉由不合併資料群,維護所儲存資料群之間的邊界之識別。"0"位元指示可以上文中關於圖11至圖13之一般直接資料檔案描述及直接資料檔案應用之方式將資料群與其他資料群組合。此允許記憶體系統儲存經轉換及未經轉換資料兩者。對於已經轉換之資料群而言,行241之位元為"1",且對於未經轉換之資料群而言,此位元為"0"。
在儲存經轉換資料及未經轉換資料兩者之系統中,在記憶體系統內將自主機接收之一寫入指令轉換為兩個特定寫入指令之一者。根據描述直接資料檔案儲存之前述部分的技術,一寫入指令導致所接收之資料被寫入記憶體中作為可被合併之自由資料群。根據此部分之描述,一Write_Group指令導致所接收之資料被寫入記憶體中作為不可被合併之固定資料群。由自Write_Group指令之資料轉換功能的傳輸,繼之以形成群之串流資料,且接著一界定資料群之末端的Close_Group指令來界定固定資料群。
圖17之FIT之另一行243指示每一資料群是否鏈接至另一資料群。當在兩個記憶體區塊之間分裂一資料群時,例如在圖16之實例中在儲存區塊X及Y之間分裂資料群DG5,此將出現。結果形成兩個子群。對於每一經鏈接之資料子群而言,在此行中儲存"1",且對於未經鏈接之群而言,在此行中儲存"0"。在此實例中,子群244及246之每一者在此行中具有"1"以展示其僅為資料群A5之一部分。此顯示:兩者為在任何未來資料合併或廢料收集期間(若此導致整個資料群A5儲存於一單一記憶體區塊中)可被組合回為一單一資料群A5之子群。此對於由行241中之位元"1"導致之不允許個別資料群組合之限制為一例外。作為兩個子群之第一者之記錄244的部分,在圖17中資料群A5之偏移位址及長度僅包括一次。或者,在記錄244及246兩者中可重複該等資料。
在圖17之實例FIT中提供最終行245以標記為主機檔案之末端之資料群。在圖17之表中之最後資料群係使用"1"如此標記,且其他資料群藉由使用"0"標記來指示為除主機檔案之最後資料群以外的資料群。當記憶體系統具有一具有主機之資料檔案物件介面時(圖14中展示之情形),使用此。但當主機介面為圖15之連續單一邏輯位址空間時,通常將不使用此。
將注意到,諸如資料群DG3之長度L3的資料群之長度並不等於此資料群之起始位址A3與下一資料群之起始位址A4之間的差。當然,此係因為主機資料單元HD3之轉換已改變其長度。
圖18及圖19展示各別圖16及圖17之改變,若隨後向最初由主機資料單元HD1至HD8表示之資料檔案附加資料,則出現該等改變。在此情形中,將主機資料群HD9添加於檔案之末端。將此主機資料單元個別地轉換至資料群DG9中。在此實例中,接著在保持於記憶體儲存區塊Y之末端處之空間中儲存經轉換資料群DG9之第一部分,且在新儲存區塊Z之起始處儲存資料群DG9之剩餘部分。或者,可將資料群DG9儲存於亦用於儲存其他檔案之一或多個資料群之共同區塊中。共同區塊之使用在直接資料檔案應用中描述。
在此實例中,如圖19所示,藉由在FIT末端添加兩個項而更新圖17之FIT。一項為儲存區塊Y中之子群,且另一項為儲存區塊Z中之子群。對於該等子群之每一者而言,將"鏈接"位元設定為"1"且將"檔案末端"位元移動至最後子群。
圖20及圖21展示對各別圖16及圖17之所儲存資料群的另一類型改變。在此情形中,正更新主機資料單元HD4之一部分。更新處理包括:首先自記憶體儲存區塊X讀取整個對應的經轉換資料群DG4,且接著如由圖20之247所示反向轉換此群之資料以重建原始主機資料單元(HD4)249。一旦獲得原始主機資料單元,就如251處所指示由主機更新原始主機資料單元,在此情形下替代原始資料之部分。如在253處所指示,接著由用於轉換原始主機資料單元HD4之同一演算法轉換經更新之主機資料單元。此導致具有長度L9之經更新的資料群(DG4)255,長度L9通常將與原始資料群之長度L4不同。
作為圖18之經附加資料群DG9之儲存之替代,在圖20中展示待整體儲存於新儲存區塊Z內而非部分儲存於儲存區塊Y中之經更新資料群。此避免將經添加之資料群分裂為兩個子群。接著將原始資料群DG4標記為陳舊的且下次合併或廢料收集所儲存資料時將其消除。
接著更新圖17之原始FIT以反映此改變。如圖21所示,改變資料群DG4之線上的資訊以展示其新長度L9及其新起始記憶體位址Z0。由於其仍為單元之最後資料群,故檔案之末端位元為資料群DG8保持固定。
圖20及圖21說明被稱為讀取/修改/寫入之形式。此可以使用諸如RAM 31(圖1)之不同量的緩衝記憶體之方法執行。一方法為:讀取待修改之整個資料群(DG)、將其再轉換、將整個所得主機資料群(DG)儲存於緩衝記憶體中,藉由覆寫具有新傳入資料之其某些而修改所儲存資料,且接著轉換用於再寫入記憶體中之所儲存的修改資料。需要較小緩衝記憶體之另一方法為:僅儲存不修改之經再轉換資料之部分,且接著讀取所儲存資料、使用新傳入替代資料將其組合且接著轉換用於寫入記憶體中之經修改資料。
結論
雖然已相對於本發明之例示性實施例描述本發明之各種態樣,但將瞭解,本發明將在所附申請專利範圍之全部範疇內有權受到保護。
1...主機系統
2...記憶體系統
3...配合零件
4...配合零件
5...應用程式
6...驅動器
7...快閃記憶體
8...主機介面與記憶體控制器
11...單一積體電路晶片
13...系統匯流排
15...記憶體晶片
17...導體之集合
19...記憶體位址之集合
21...控制及狀態信號之集合
23...內部匯流排
25...介面電路/記憶體介面
27...處理器
29...唯讀記憶體
31...隨機存取記憶體
33...主機電路
34...電路
35...電路
37...外部接觸
39...時鐘
41...平面
43...平面
45...電路
47...電路
49...位元線
51...位元線
53...字線
55...列控制電路
57...源電壓控制電路
59...源電壓控制電路
61...p型井電壓控制電路
63...p型井電壓控制電路
65...資料輸入/輸出電路
67...資料輸入/輸出電路
69...線
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...附加項資料
161...邏輯位址空間
163...區塊/邏輯至實體位址表
165...記憶體陣列
167...元區塊
169...元區塊
171...元區塊
173...記憶體控制器功能
181...資料檔案
183...元區塊/區塊
184...部分
185...區塊
187...資料
189...附加資料
191...資料區塊
193...位置
195...部分
197...更新部分
199...部分
201...檔案
202...邏輯偏移位址
203...轉換
204...資料單元
205...區塊
207...邏輯資料群
209...快閃記憶體單元陣列
211...區塊
213...資料檔案
214...位址轉換功能
215...位址空間
217...資料集合
218...邏輯位址轉換
219...主機資料單元
223...轉換功能
227...位址轉譯
231...資料集合
233...實體記憶體
235...行
237...行
239...行
241...行
243...行
244...列
245...行
246...列
249...原始主機資料單元
255...更新資料群
A1...位址
A2...位址
A3...位址
A4...位址
A5...資料群
DG1...邏輯資料群
DG2...邏輯資料群
DG3...邏輯資料群
DG4...邏輯資料群
DG5...邏輯資料群
DG9...邏輯資料群
HD1...主機資料單元
HD2...主機資料單元
HD3...主機資料單元
HD4...主機資料單元
HD5...主機資料單元
HD6...主機資料單元
HD7...主機資料單元
HD8...主機資料單元
HD9...主機資料單元
I1...插入
L1...長度
L2...長度
L3...長度
L5a...長度
L5b...長度
L9...長度
U1...更新
U2...更新
W1...原始檔案資料
W2...新資料
X...儲存區塊
Y...儲存區塊
Z...儲存區塊
Z0...新起始記憶體位址
圖1示意性說明如當前建構之主機及所連接非揮發性記憶體系統;圖2為用作圖1之非揮發性記憶體之實例快閃記憶體系統之方塊圖;圖3為可在圖2之系統中使用的記憶體單元陣列之代表性電路圖;圖4說明圖2之系統的實例實體記憶體組織;圖5展示圖4之實體記憶體之一部分的放大圖;圖6展示圖4及圖5之實體記憶體之一部分的進一步之放大圖;圖7說明主機與可再程式化記憶體系統之間的普通先前技術邏輯位址介面;圖8以不同於圖7之方式說明主機與可再程式化記憶體系統之間的一普通先前技術邏輯位址介面;圖9說明根據直接資料檔案應用之主機與可再程式化記憶體系統之間的直接資料檔案儲存介面;圖10以不同於圖9之方式說明根據直接資料檔案應用之主機與可再程式化記憶體系統之間的直接資料檔案儲存介面;圖11A至圖11D展示將資料檔案直接寫入記憶體中之四個不同的實例;圖12A至圖12E說明將單一資料檔案直接寫入記憶體中之一序列;圖13展示在圖12E中說明之收集資料檔案廢料之結果;圖14展示根據本發明之具有資料轉換之直接資料檔案記憶體系統之操作;圖15展示根據本發明之具有資料轉換之邏輯位址空間記憶體系統之操作;圖16為圖14或圖15中之資料的轉換之一說明性實例;圖17為圖16之實例中儲存的資料之檔案索引表(FIT);圖18說明將資料附加至圖16之實例所儲存之彼等資料;圖19為在根據圖18向所儲存資料附加某些資料後之所儲存資料的檔案索引表;圖20說明由圖13之實例儲存之資料的更新;及圖21為根據圖20更新後之所儲存資料的檔案索引表。
201...檔案
202...邏輯偏移位址
203...轉換
204...資料單元
205...區塊
207...邏輯資料群
209...快閃記憶體單元陣列
211...區塊

Claims (29)

  1. 一種操作一可再程式化的非揮發性記憶體系統以儲存資料之方法,該資料係由該記憶體系統以在一邏輯位址區域(logical address range)內的邏輯位址所接收,其中該記憶體系統包含多個記憶體格(memory cells),該等記憶體格經組織成各異的操作格之區塊(distinct operating blocks of cells),個別的該等區塊包含一最小數目的記憶體格,該等最小數目的記憶體格係在被寫入資料於其中之前一起被抹除,該方法包含:將由該記憶體系統接收之資料分成具相等單元尺寸的資料單元(units of data),具相等單元尺寸的該等資料單元個別地含有一數量的資料,該數量等於或小於該等記憶體格之個別區塊之一儲存容量,在個別的單元中的資料具有在該邏輯位址區域中的連續的(contiguous)多個邏輯位址,藉由對經接收之資料進行編碼、壓縮或加密之至少一者,而將經接收之個別的該等資料單元轉換成對應的多個資料群組(groups of data),該等資料群組個別地含有一不同數量的資料,該數量與在轉換之前存在於其對應的資料單元中之資料的數量不同,將該等資料群組寫入一或多個記憶體格之區塊中的多個連續的位置,該等記憶體格之區塊具有的邊界至少與該等資料群組的邊界及記憶體格之區塊的實體邊界一致(coincident),包含將一個別的群組(an individual group) 分為兩個次群組(two sub-groups),該個別的群組跨越(span across)兩個記憶體格之區塊,且該等次群組中之一者係位於該兩個記憶體格之區塊中之每一者,及維持(maintain)在該等記憶體格之區塊中的個別的該等資料群組及該等資料次群組的位置之一中心目錄(central table),包含維持界定給該等個別的資料群組及資料次群組之多個邊界,該等個別的資料群組及資料次群組之邊界係位於該等記憶體格之區塊之邊界內。
  2. 如請求項1之方法,且為了回應於接收到用以更新的資料,其係用以更新先前曾被接收的至少一資料單元中的資料,且該至少一資料單元已經被轉換且被寫入該記憶體,該方法另外包含,在該記憶體系統中:讀取一或多個被轉換的資料群組,其形成被轉換的該至少一個別的資料單元,藉由解碼、解壓縮或解密被讀取的資料中之至少一者而反向轉換被讀取且被轉換的該等資料群組,藉此重建該至少一個別的資料單元,其後,藉由被接收的該用以更新的資料,修改經重建的該至少一個別的資料單元,其後,藉由對於經修改且經重建的資料中實行編碼、壓縮或加密中之至少一者,將經修改之該至少一資料單元轉換成為對應的資料群組,將該等資料群組重寫入位於一或多個該種記憶體格之區塊內的連續位置,包含將一個別的群組分成兩個次群 組,該個別的群組跨越(span across)兩個記憶體格之區塊,且該等次群組中之一者係位於該兩個記憶體格之區塊中之每一者,及修正在該等記憶體格之區塊中個別的且經重寫的該等資料群組及該等資料次群組之位置的該中心目錄,包含維持界定給該等個別的資料群組及資料次群組之多個邊界,該等個別的資料群組及資料次群組之邊界係位於該等記憶體格之區塊的實體邊界內。
  3. 如請求項1之方法,其中轉換經接收之該等資料單元之步驟導致:經轉換的經接收之該等資料單元中的至少某些包括個別地含有比被轉換之前存在之資料量小之一資料量的單元。
  4. 如請求項1之方法,其中轉換經接收之該等資料單元之步驟導致:經轉換的經接收之該等資料單元中的至少某些包括個別地含有比被轉換之前存在之資料量大之一資料量的單元。
  5. 如請求項1之方法,其中界定經轉換之該等資料群組之步驟包括:將駐留(reside)於不同格之區塊(blocks of cells)中之一資料群組之次群組鏈接在一起(linking together)。
  6. 如請求項1之方法,其進一步包含:在該等記憶體格之區塊之至少一額外者中,不涉及轉換地儲存由該記憶體系統接收之額外的資料單元,及藉由在該等記憶體格之區塊內之額外資料群組,識別 該等額外的資料單元之儲存位置。
  7. 如請求項1之方法,其中該方法係在一記憶體系統模組中執行,且藉由接收資料所使用之一記憶體連接器使該記憶體系統模組係可移除地連接至一主機裝置(host device)。
  8. 如請求項1之方法,其中由該記憶體系統接收之資料來自在該記憶體系統內由一處理器執行之一應用程式。
  9. 如請求項1之方法,其中該邏輯位址區域係該記憶體系統的邏輯位址區域。
  10. 如請求項1之方法,其中該邏輯位址區域係儲存有資料的一檔案物件(file object)之邏輯位址區域。
  11. 一種操作一可再程式化的非揮發性記憶體系統以壓縮資料及儲存經壓縮的該資料之方法,該資料係由該記憶體系統以在一邏輯位址區域中的邏輯位址所接收,其中該記憶體系統包含多個記憶體格,該等記憶體格經組織成各異的操作格之區塊,個別的該等區塊包含一最小數目的記憶體格,該等最小數目的記憶體格係在被寫入資料於其中之前一起被抹除,該方法包含:將由該記憶體系統接收之資料分成具相等單元尺寸的資料單元,具相等單元尺寸的該等資料單元個別地含有一數量的資料,該數量等於或小於該等記憶體格之個別區塊之一儲存容量,在個別的群組中的資料具有在該邏輯位址區域中的連續的多個邏輯位址,壓縮所接收的個別的該等資料單元,藉此產生對應的 資料群組,對應的該等資料群組個別地比其壓縮前所對應的資料單元更小,將該等資料群組寫入一或多個記憶體格之區塊中的多個連續的位置,該等記憶體格之區塊具有的邊界至少與該等資料群組的邊界及記憶體格之區塊的實體邊界一致,包含將一個別的群組分為兩個次群組,該個別的群組跨越兩個記憶體格之區塊,且該等次群組中之一者係位於該兩個記憶體格之區塊中之每一者,及維持在該等記憶體格之區塊中的個別的該等資料群組及該等資料次群組的位置之一中心目錄,包含維持界定給該等個別的資料群組及資料次群組之多個邊界,該等個別的資料群組及資料次群組之邊界係位於該等記憶體格之區塊之邊界內。
  12. 如請求項11之方法,其中該邏輯位址區域係該記憶體系統的邏輯位址區域。
  13. 如請求項11之方法,其中該邏輯位址區域係儲存有資料的一檔案物件之邏輯位址區域。
  14. 如請求項11之方法,其中該記憶體系統係在一模組中,該方法係在該記憶體系統中執行,該模組係藉由接收資料所使用之一記憶體連接器而可移除地連接至一主機裝置。
  15. 如請求項11之方法,該方法額外地包含以下述的方式操作該等記憶體格:在個別的該等格之至少某幾格中,儲存多於一位元(one bit)的經接收的資料。
  16. 一種非揮發性記憶體系統,其包含:一快閃記憶體,其被分為資料儲存元件(data storage elements)之若干個別的區塊(individual blocks),該等個別的區塊包含一最小數目的儲存元件,該等最小數目的儲存元件在寫入資料於其中之前一起被抹除,並且儲存至多(up to)一給定量的資料(a given amount of data),及一控制器,其與該快閃記憶體相連接且包括由韌體操作之一微處理器,其中該控制器以一方式操作以轉換在連續的(continuous)多個邏輯位址之各異的(distinct)單元內的資料,該方式會改變該等單元的至少數者中的資料量,並將經轉換的資料儲存在數個單元,該數個單元係如儲存元件的該等區塊中之對應的資料群組,該等單元的每一者包含一數量的資料,該數量等於或小於該給定量的資料之量,且其中該控制器藉由資料群組的實體位址來辨識儲存位置,該等資料群組具有與該等群組的邏輯邊界一致(coincident)的實體邊界,該等群組之某些係完全地儲存在儲存元件之個別的多個區塊中,而該等群組之其他部分係以分開的次群組之方式儲存於儲存元件的兩個不同的區塊中,其中該兩個不同的區塊之邊界在儲存元件的多個區塊內,該等群組及該等次群組被連續地(contiguously)儲存在儲存元件的個別的多個區塊中,且該等次群組包含少於該給定量的資料之一數量的資料,其中該控制器進一步維持一中心目錄,該中心目錄具有關於個別的該等資料群組及該等資料次群組之多個 項目(entries),該等項目包含該等資料群組及該等資料次群組之實體位址。
  17. 如請求項16之記憶體系統,其中該控制器進一步操作以維持該中心目錄,使該等資料次群組之實體位址與該等資料群組之實體位址分開且各異。
  18. 如請求項16之記憶體系統,其中該控制器進一步操作以藉由編碼、壓縮或加密資料中之至少一者來轉換經接收的資料。
  19. 如請求項18之記憶體系統,其中該控制器進一步操作而以下述的方式轉換經接收之該資料:減少在該轉換之前已存在之資料的數量。
  20. 如請求項18之記憶體系統,其中該控制器進一步操作而以下述的方式轉換經接收之該資料:增加在該轉換之前已存在之資料的數量。
  21. 如請求項16之記憶體系統,其中該控制器進一步操作以轉換在實質上含有相等數量的的資料之各異的邏輯位址單元內所接收之資料。
  22. 如請求項16之記憶體系統,其中經轉換之由該控制器接收之該資料係源自該記憶體系統之外部。
  23. 如請求項16之記憶體系統,其中經轉換之由該控制器接收之該資料係源自該控制器執行之一應用程式。
  24. 如請求項16之記憶體系統,其中該等儲存元件包括導電浮動閘(electrically conductive floating gates)。
  25. 如請求項16之記憶體系統,其中該控制器另外包括一電 路,該電路專用於執行對於經接收之資料之該轉換的至少一部分轉換。
  26. 如請求項16之記憶體系統,其中該控制器進一步操作以在該等儲存元件之若干個別者中儲存多於一位元的資料。
  27. 如請求項16之記憶體系統,其中該控制器額外地操作以將由該記憶體系統所接收的資料的一邏輯位址區域劃分成連續邏輯位址的複數個各異的單元,該等各異的單元個別地能夠儲存一數量的資料,該數量等於或小於該給定量的資料。
  28. 如請求項16之記憶體系統,其中該控制器將接收的資料劃分為各異的該等單元,各異的該等單元係具有相等尺寸,各異的該等單元的每一者個別地包含一數量的資料,該數量等於或小於儲存元件的個別的該等區塊之一儲存容量,在各異的該等單元的每一者內的那些資料在一邏輯位址區域內具有連續(contiguous)的邏輯位址。
  29. 如請求項16之記憶體系統,其中儲存元件的該等區塊之一區塊儲存一第一資料群組,該一區塊具有可用於儲存該第一資料群組以外的資料之儲存容量,該控制器在該一區塊中儲存一第二資料群組的一次群組,該第二資料群組與該一區塊中的該第一資料群組各異。
TW095137810A 2005-10-13 2006-10-13 操作一可再程式化的非揮發性記憶體系統之方法以及非揮發性記憶體系統 TWI436210B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/250,299 US7529905B2 (en) 2005-10-13 2005-10-13 Method of storing transformed units of data in a memory system having fixed sized storage blocks
US11/250,794 US7814262B2 (en) 2005-10-13 2005-10-13 Memory system storing transformed units of data in fixed sized storage blocks

Publications (2)

Publication Number Publication Date
TW200731068A TW200731068A (en) 2007-08-16
TWI436210B true TWI436210B (zh) 2014-05-01

Family

ID=37499547

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095137810A TWI436210B (zh) 2005-10-13 2006-10-13 操作一可再程式化的非揮發性記憶體系統之方法以及非揮發性記憶體系統

Country Status (5)

Country Link
EP (1) EP1938195B1 (zh)
JP (1) JP4441577B2 (zh)
KR (1) KR101348255B1 (zh)
TW (1) TWI436210B (zh)
WO (1) WO2007047062A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
EP2333660B1 (en) * 2009-12-04 2016-10-05 ST-Ericsson SA Method of and apparatus for providing a logical view of data stored in an non-volatile memory
US9134918B2 (en) 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
KR101113755B1 (ko) * 2011-01-28 2012-02-27 엘아이지넥스원 주식회사 프리 메모리 관리 구조체를 사용하는 메모리 관리 방법
TW201234384A (en) * 2011-02-14 2012-08-16 Sheng-Chuang Zhang Semiconductor memory device with compression and decompression functions
US8943266B2 (en) 2013-03-13 2015-01-27 Hitachi, Ltd. Storage system and method of control for storage system
US10671317B2 (en) * 2016-05-25 2020-06-02 Samsung Electronics Co., Ltd. Block cleanup: page reclamation process to reduce garbage collection overhead in dual-programmable NAND flash devices
JP7440167B2 (ja) 2020-02-19 2024-02-28 Necソリューションイノベータ株式会社 情報格納方法
KR102583244B1 (ko) * 2022-01-28 2023-09-26 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Also Published As

Publication number Publication date
TW200731068A (en) 2007-08-16
KR20080074124A (ko) 2008-08-12
JP2009512066A (ja) 2009-03-19
JP4441577B2 (ja) 2010-03-31
WO2007047062A3 (en) 2007-07-05
EP1938195A2 (en) 2008-07-02
WO2007047062A2 (en) 2007-04-26
EP1938195B1 (en) 2018-08-29
KR101348255B1 (ko) 2014-01-08

Similar Documents

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

Legal Events

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