TWI417717B - 具多流更新之非揮發性記憶體及方法 - Google Patents

具多流更新之非揮發性記憶體及方法 Download PDF

Info

Publication number
TWI417717B
TWI417717B TW094144468A TW94144468A TWI417717B TW I417717 B TWI417717 B TW I417717B TW 094144468 A TW094144468 A TW 094144468A TW 94144468 A TW94144468 A TW 94144468A TW I417717 B TWI417717 B TW I417717B
Authority
TW
Taiwan
Prior art keywords
data
block
page
memory
recording
Prior art date
Application number
TW094144468A
Other languages
English (en)
Other versions
TW200636458A (en
Inventor
Peter John Smith
Sergey Anatolievich Gorobets
Alan David Bennett
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/016,285 external-priority patent/US7315916B2/en
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Publication of TW200636458A publication Critical patent/TW200636458A/zh
Application granted granted Critical
Publication of TWI417717B publication Critical patent/TWI417717B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

具多流更新之非揮發性記憶體及方法
本發明大體而言係關於非揮發性快閃記憶體系統之操作,且更具體言之,係關於在一非揮發性快閃記憶體內程式化資料之較有效方法。
存在很多現今正在使用之商業上成功的非揮發性記憶體產物,尤其是以小外形尺寸卡之形式,其使用形成於一或多個積體電路晶片上之一快閃EEPROM(電子可擦可程式唯讀記憶體)單元陣列。一通常但不必須處於一獨立積體電路晶片上之記憶體控制器與一主機建立介面(該卡可移除地連接至該主機),且控制該卡內之該記憶體陣列之操作。該控制器通常包括一微處理器、一些非揮發性唯讀記憶體(ROM)、一揮發性隨機存取記憶體(RAM)及一或多個特殊電路,諸如在程式化及讀取資料期間在資料通過控制器時自資料計算出一錯誤修正碼(ECC)的電路。某些市售卡為CompactFlashT M (CF)卡、多媒體卡(MMC)、安全數位(SD)卡、個人標記(P-Tag)及記憶棒卡。主機包括個人電腦、筆記型電腦、個人數位助理(PDA)、各種資料通訊裝置、數位相機、蜂巢式電話、攜帶式音訊播放器、汽車語音系統及相似類型之設備。在某些系統中,一可移除卡不包括一控制器,且該主機控制該卡內記憶體陣列之操作。此類型記憶體系統之實例包括智慧媒體卡及xD卡。因此,記憶體陣列之控制可藉由該卡片中一控制器上之軟體或主機中之控制軟體達成。除記憶體卡實施外,此類型之記憶體或者可被嵌入各種類型之主機系統中。在可移除式與嵌入式應用中,可根據一由記憶體控制軟體實施之儲存機制,將主機資料儲存於記憶體陣列中。
兩通用記憶體單元陣列架構創建了商業應用,NOR與NAND。在一典型NOR陣列中,記憶體單元連接於沿一行方向延伸之鄰近位元線源極與汲極擴散間,其中控制閘極連接至沿單元列延伸的字線。一記憶體單元包括定位於源極與汲極間之單元通道區域之至少一部分上方的至少一儲存元件。儲存元件上之程式化位準之電荷因此控制該等單元之一操作特徵,其隨後可藉由將適當電壓施加至定址記憶體單元而被讀取。該等單元之實例,在美國專利第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053及6,222,762號中給出其在記憶體系統中之使用及製造其之方法。此等專利案與此申請案中所引用之所有其它專利案及專利申請案以引用之方式全部併入本文中。
NAND陣列利用兩個以上記憶體單元之串聯串(諸如16或32),其與個別位元線與一參考電位間之一個或一個以上選擇電晶體連接以形成單元之行。字線延伸橫跨此等行內之大量單元。藉由致使串中之剩餘單元被努力開啟,在程式化期間讀取並驗證一行內之一個別單元,以便使流過一串之電流視儲存於定址單元中之電荷位準而定。NAND架構陣列之實例及其作為一記憶體系統之部分之操作見於美國專利第5,570,315、5,774,397、6,046,935及6,522,580號中。
如前述參考專利案中所論述之當前快閃EEPROM陣列之電荷儲存元件大多數通常為導電浮動閘極,通常由傳導摻雜之多晶矽材料形成。一可用於快閃EEPROM系統之替代類型之記憶體單元利用一非傳導介電材料替代傳導浮動閘極,從而以一非揮發性方式來儲存電荷。一由氧化矽、氮化矽及氧化矽形成之三層介電(ONO)夾於一傳導控制閘極與記憶體單元通道之上的一半導基板之一表面間。藉由自該單元通道將電子注入該氮化物中以程式化該單元,其中該等電子被收集並儲存於一有限區域中,且藉由將熱電洞注入該氮化物中以擦除該單元。Harari等人之美國專利申請公告案第2003/0109093號中描述了使用介電儲存元件之若干特定單元結構及陣列。
如在大多數全積體電路應用中,用以縮減需要實施某些積體電路功能之矽基板面積之壓力亦存在於快閃EEPROM記憶體單元陣列中。不斷需要增加可儲存於一矽基板之給定面積內之數位資料量,以便增加一給定尺寸記憶體卡及其它類型封裝之儲存容量,或既增加容量又減少尺寸。一種增加資料儲存密度之方式為每一記憶體單元及/或每一儲存單元或元件儲存一個以上位元之資料。此藉由將一儲存元件電荷位準電壓範圍之一視窗劃分為兩種以上狀態。使用四種該等狀態允許每一單元儲存兩位元之資料,使用八種狀態則每儲存元件儲存三位元之資料,等等。美國專利第5,043,940及5,172,338號描述了使用浮動閘極之多狀態快閃EEPROM結構及其操作,且對於使用介電浮動閘極之結構則描述於前述美國專利申請公告案第2003/0109093號中。一多狀態記憶體單元陣列之所選擇部分因多種原因亦可在兩種狀態(二元)下操作,以美國專利第5,930,167及6,456,528號中所描述之方式,該等專利案及此申請案中所引用之所有專利案及專利申請案以引用之方式完全併入本文中。
一典型快閃EEPROM陣列之記憶體單元被劃分為離散之單元區塊,其被共同擦除(一擦除區塊)。即,該擦除區塊為擦除單元,可同時擦除的一最小數目之單元。每一擦除區塊通常儲存一或多個頁面之資料,該頁面為程式化及讀取之最小單元,儘管可在不同子陣列或平面中並行程式化或讀取一個以上頁面。每一頁面通常儲存一或多個區段之資料,該區段之尺寸藉由主機系統界定。一實例區段包括512位元組之使用者資料,遵循一以磁盤驅動器建立之標準,加上關於該使用者資料及/或儲存其之擦除區塊之額外負擔資訊的某些數目之位元組。該等記憶體在每一擦除區塊內通常以16、32或更多頁面組態,且每一頁面儲存一或僅少數主機區段之資料。
為在將使用者資料程式化至記憶體陣列中及自其讀取使用者資料期間增加並行性之程度,通常將陣列劃分為子陣列(一般被稱作平面),其含有其自身之資料暫存器及其它電路以允許並行操作,以便可同時將區段之資料程式化至若干或所有平面中或自若干或所有平面讀取區段之資料。一單積體電路上之一陣列可實體劃分為平面,或每一平面可由一獨立之一或多個積體電路晶片形成。美國專利第5,798,968及5,890,192號中描述了該記憶體實施例之實例。
為進一步有效地管理記憶體,可將擦除區塊鏈接在一起以形成虛擬區塊或元區塊(metablock)。即,界定每一元區塊以包括來自每一平面之一擦除區塊。美國專利第6,763,424號中描述了該元區塊之使用。該元區塊作為程式化及讀取資料之目標而藉由一主機邏輯區塊位址界定。同樣,一元區塊之所有擦除區塊被共同擦除。一元區塊可經程式化於一元頁面之一單元中,該元頁面之一單元包含來自一元區塊中每一擦除區塊之一頁面。一與該等大區塊及/或元區塊一起操作之記憶體系統中之控制器執行許多功能,包括自一主機接收之邏輯區塊位址(LBA)與記憶體單元陣列內之實體區塊編號(PBN)間之轉譯。擦除區塊內之個別頁面通常由區塊位址內之偏移識別。位址轉譯通常包括一邏輯區塊編號(LBN)之中間項及邏輯頁面的使用。在一使用元區塊之記憶體系統中,該元區塊可為記憶體陣列之有效最小擦除單元。因此,視記憶體架構而定,最小擦除單元(一區塊)可為一擦除區塊或一元區塊。視該架構而定,術語"區塊"可指一擦除區塊或一元區塊。同樣,術語"頁面"可指記憶體系統之最小程式化單元。視記憶體系統之架構而定,此可為一單一擦除區塊內之一頁面,或可為一延伸橫跨若干擦除區塊之元頁面。
儲存於一元區塊中之資料經常更新,更新之可能性隨該元區塊之資料容量之增加而增加。一元區塊之更新區段通常寫入另一元區塊中。未改變之區段通常亦自原始(元區塊)複製至新的元區塊,從而作為相同程式化操作之部分以合併資料。或者,未改變之資料可保留於該原始元區塊中,直至稍後再次與更新之資料合併入一單一元區塊中。將當前資料合併至一新區塊並擦除一僅含有過時資料之區塊的操作通常稱為"記憶體回收"操作。
操作具有保持於一已擦除區塊集區中之某些額外區塊的大區塊或元區塊系統是普遍的。當少於一區塊之容量的一或多個頁面之資料正被更新時,通常將已更新頁面自該集區寫入至一已擦除區塊,且隨後將未改變頁面之資料自原始區塊複製至擦除集區區塊。前述美國專利第6,763,424號中描述了此技術之變化。隨時間流逝,由於主機資料檔案正被重新寫入及更新,許多區塊可以一相對較少數目之含有有效資料之其頁面結束,並保留含有不再是當前資料之頁面。為能夠有效地使用陣列之資料儲存容量,時常自多個區塊中之斷片將有效資料之邏輯相關資料頁面集合在一起,並共同合併為一較少數目之區塊。此處理通常稱為"記憶體回收"。
在某些記憶體系統中,實體記憶體單元亦分組為兩個或兩個以上區域。一區域可為實體記憶體或記憶體系統之任一分割子集,其中一指定範圍之邏輯區塊位址映射至該實體記憶體或記憶體系統。舉例而言,一能夠儲存64兆位元組之資料的記憶體系統可分割為四個區域,其中每一區域儲存16兆位元組之資料。邏輯區塊位址之範圍隨後亦劃分為四組,向該等四個區域中之每一者之實體區塊指派一組。在一典型實施例中,抑制邏輯區塊位址,以便每一者之資料決不被寫入邏輯區塊位址所映射之單一實體區域之外。在一劃分為平面(子陣列)之記憶體單元陣列中,其中每一平面具有其自身之定址、程式化及讀取電路,每一區域較佳包括來自多平面之區塊,通常包括來自每一平面之相同數目之區塊。區域主要被用於簡化位址管理,諸如邏輯至實體之轉譯,從而產生較小之轉譯表、保持此等表所需之較少RAM記憶體及用以定址記憶體之當前作用區域之較快存取時間,但由於其限制性性質,可產生不及最佳損耗水平的損耗水平。
獨立快閃EEPROM單元在一電荷儲存元件或單元中儲存大量電荷,其表示一或多個位元之資料。一儲存元件之電荷位準控制其記憶體單元之臨界電壓(通常稱為VT ),其用作讀取該單元儲存狀態之基礎。一臨界電壓視窗通常劃分為許多範圍,記憶體單元之兩個或兩個以上儲存狀態中之每一者具有一範圍。此等範圍由包括一允許判定個別單元之儲存狀態的標稱感應位準之安全帶分隔。此等儲存位準由於干擾在鄰近或其它相關記憶體單元、頁面或區塊中執行之程式化、讀取或擦除操作的電荷而偏移。因此錯誤修正碼(ECC)通常由控制器計算,並與正被程式化之主機資料共同儲存,且在讀取期間用於驗證資料並在必要時執行某位準之資料修正。又,在干擾操作致使電荷位準完全偏移出其被界定之範圍並因此導致讀取錯誤資料前,偏移之電荷位準可時常被重新儲存回至其狀態範圍之中心。美國專利第5,532,962及5,909,449號中描述了此處理,被稱為資料刷新或擦洗。
在某些記憶體陣列中,一頁面可由可保留多資料區段之一擦除區塊之一部分組成。一旦該頁面已被寫入,在不破壞已寫入資料之情況下無進一步寫入之可能。對於使用該系統之記憶體陣列,可藉由連接至相同字線之一組記憶體單元界定一頁面。該等記憶體陣列可被無效率地程式化,其中以少於一頁面之尺寸的量接收資料。舉例而言,當每次一區段接收資料時,僅一區段可經程式化為一頁面。在不冒破壞已儲存於該處的資料區段之風險的情況下,無額外資料可被程式化為該頁面。有時,可接收一系列單一區段,其間具有某些延遲。在此情況下,每一區段寫入該記憶體陣列之一獨立頁面中。因此,以一方式儲存該等區段,該方式在如何使用記憶體陣列中之空間上無效。在使用多位準邏輯時,記憶體單元尤其對附近單元之稍後程式化之效果敏感。另外,多位準單元之程式化通常藉由程式化具有一第一頁面資料之一組單元,且稍後程式化具有一第二頁面資料之單元以完成。在某些情況下,該第二頁面資料之程式化可導致該第一頁面資料的破壞。因此,當記憶體陣列接收數量上少於一頁面的資料時,需要一更有效之方式以在一具有一多區段頁面之記憶體陣列中儲存資料。當程式化一組多位準單元時,亦需要一種防止在程式化一後繼頁面期間破壞第一頁面之資料的方式。
在一具有一作為擦除單元之區塊的記憶體陣列中,可將一或多個區塊指定為暫存記憶體區塊,且可將其用於改良記憶體系統之效能。一暫存記憶體區塊可操作為一緩衝器,以便以一低程度之並行性將資料寫入該暫存記憶體區塊,且隨後以一高程度之並行性複製至該記憶體陣列內之另一位置。資料可積累於該暫存記憶體區塊內,直至可將其較有效地寫入另一位置。在具有多區段頁面之記憶體中,可積累區段,直至可使用系統之最大並行性將一全頁面寫入。在多位準單元記憶體中,可將一下部頁面儲存於一暫存記憶體區塊中,直至上部頁面可用,以便將上部及下部頁面儲存在一起。
一特定程式化操作之並行性程度與共同程式化之資料位元之數目成比例。因此,共同程式化大量資料被認為以高並行性以寫入,而共同程式化小量資料被認為並行性低。在使用少於一頁面之並行性時,記憶體陣列中之空間被浪費,且此浪費之空間意謂必須更頻繁地執行記憶體回收,因此對記憶體系統之效率產生負面影響。有時,必須將少量資料儲存於記憶體系統中。藉由在一位置(一暫存記憶體區塊)中寫入此等小寫入,且隨後以較高之並行性將其共同寫入至另一位置,可改良該記憶體系統之效率。
在一具有一由多資料區段組成之頁面之最小程式化單元的記憶體系統中,揭示了一種儲存被以少於一頁面的量接收之資料的方法。一指定為一暫存記憶體區塊的區塊用於儲存所接收之區段,直至可將一完整頁面寫入至快閃記憶體陣列。將一第一區段儲存於該暫存記憶體區塊之一第一頁面中。隨後接收之區段可儲存於該暫存記憶體區塊之額外頁面中。個別接收之區段或成組之區段當其被接收時被儲存於該暫存記憶體區塊之一新頁面中。來自該暫存記憶體區塊中其它頁面的先前儲存之區段與新資料共同複製至最新頁面。因此,只要在該暫存記憶體區塊之一頁面中存在少於一全頁面之新資料,則將資料區段積累於該暫存記憶體區塊中。以一較區塊之最大可用並行性較低程度之並行性將區段寫入該暫存記憶體區塊中。當儲存於該暫存記憶體區塊中時可更新區段。當接收一新資料區段(其導致一全頁面之資料可用於程式化)時,該新區段與先前儲存於該暫存記憶體區塊中之區段可被共同程式化為該記憶體陣列之另一區塊中的相同頁面。此頁面完全由資料佔據,並被以最大可用並行性寫入。儲存於該暫存記憶體區塊中之資料可隨後被標記為過時,並可在一適宜之時間擦除。因此,較有效地使用了快閃記憶體中之空間,且降低了記憶體回收操作之頻率。
在具有多位準單元之記憶體中,一暫存記憶體區塊可儲存亦被寫入至一作用區塊的一頁面之資料。該儲存之頁面可保留於該暫存記憶體區塊中,直至接收到另一頁面之資料,以便可將兩頁面之資料共同寫入至其在一作用區塊中之目標。可使用一高程度並行性將其作為上部頁面及下部頁面共同寫入,且較若將其分開寫入時則具有一較低之破壞資料的風險。亦可使用該暫存記憶體區塊以在程式化相關聯之上部頁面期間保留一先前程式化之下部頁面之複製,以便若存在一功率損失,則可自該暫存記憶體區塊恢復該下部頁面中之資料。
一暫存記憶體區塊可允許臨時儲存將被寫入至另一位置的資料。可在一區塊之資料區段的更新期間,將資料儲存於一暫存記憶體區塊中。在一區塊內之一頁面含有來自不同檔案之資料區段時,在更新任一區塊時更新該頁面。使用習知方法可能需要一個以上之區塊來儲存來自兩檔案之更新資料,因為可能需要多檔案頁面之兩個複製。使用一暫存記憶體區塊允許儲存來自一檔案之頁面之部分,直至(來自其它檔案的)該頁面之剩餘部分可用。隨後,使用最大並行性將完整之更新頁面程式化至其目標。
一暫存記憶體區塊可含有不相關之資料區段。主機資料區段與控制資料區段均可儲存於一暫存記憶體區塊中。主機資料區段與控制資料區段可儲存於一暫存記憶體區塊內之相同頁面中。來自兩個不同檔案或來自同一檔案之邏輯上遠端部分之區段可儲存於一暫存記憶體區塊之相同頁面中。此可允許以最大並行性程式化該暫存記憶體區塊,以便在接收資料時保持高速度。當以一低速度接收資料時,一頁面中之額外空間可由含有控制資料之區段佔據。此可允許較不頻繁地更新控制資料結構,因此降低記憶體回收之頻率。
通常,儲存於一暫存記憶體區塊之相同頁面中之區段不需要屬於不同之檔案。作為獨立資料對象,其僅需為例如相同頁面之兩個邏輯區段,但由不同之寫入命令寫入。
暫存記憶體可由一標記區段識別,以便一控制器可容易地將其識別。一儲存於一暫存記憶體區塊中之資料索引可保留於一自身儲存於該暫存記憶體區塊中的索引區段中。由於新區段儲存於該暫存記憶體區塊中,該索引區段藉由以一新索引區段替換舊索引區段來更新。同樣,由於將該暫存記憶體區塊中之區段複製至其它位置,可更新該索引區段以指示該暫存記憶體區塊中之此等區段為過時的。
暫存記憶體及更新區塊之改良索引-保留於暫存記憶體區塊中之SPBI/CBI索引
根據本發明另一態樣,當除一更新區塊外使用一暫存記憶體區塊時,使用一相關聯之暫存記憶體區塊索引("SPBI")以記住記錄於該暫存記憶體區塊中之更新區段。除一索引(例如,"CBI")外此被用於記住記錄於該更新區塊中之邏輯區段。無論何時將使用者資料儲存於暫存記憶體區塊之一部分頁面中,其意謂該頁面之至少最後狹槽未填滿。在一實施例中,SPBI可儲存於該暫存記憶體區塊中部分頁面之最後狹槽中。在一較佳實施例中,SPBI及CBI可封裝於一SPBI/CBI區段內,並儲存於無論如何都不使用的暫存記憶體區塊中之一部分頁面之最後狹槽中。每次寫入一新部分頁面,則在末端狹槽處寫入一更新之SPBI/CBI區段,使所有先前之版本變為過時。
同時,索引機制利用暫存記憶體區塊中未使用之儲存裝置以在一非揮發性記憶體中儲存一索引。
根據本發明又一態樣,儲存於一記憶體區塊中之資料使其索引儲存於一部分頁面之一未被資料佔據之部分中。因此,在一經組織為記憶體單元之記憶體中,其中一頁面之記憶體單元係可共同程式化的且一區塊之記憶體頁面係可共同擦除的,當儲存於該等記憶體單元中之資料單元根據一預定順序在該頁面中對準時,且尤其若該頁面在每一擦除後為可一次程式化的,則將存在部分填充之頁面。該區塊之索引隨後儲存於一未填充以更新資料之部分頁面中。該部分頁面可在當前區塊中或另一區塊中。
多流更新尋軌-兩個或兩個以上流間之同步
根據本發明之另一態樣,提供一種方法以將更新資料寫入至一具有同步資訊的非揮發性記憶體中,該同步資訊允許識別可存在於多個記憶體區塊上的資料之最近寫入之版本。來自一主機之更新資料可經由多流被指引至多個區塊。該同步資訊之維護藉由儲存關於在該等流中之至少一者之每次更新時該等流/區塊有多滿的資訊來完成。
在一較佳實施例中,一指向一區塊中第一空位的寫入指標將指示該區塊有多滿。舉例而言,在兩流之間,一第二區塊之一寫入指標之值指示在將該寫入指標寫入至一第一區塊時該第二區塊有多滿。此外,該寫入指標儲存於該第一區塊中之位置亦指示在此時該第一區塊有多滿。
本發明尤其適用於一非揮發性記憶體,其經組織為可擦除區塊之記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦經組織為一或多個頁面。此外,每一頁面在一擦除後為可一次程式化的,具有多個邏輯單元,每一邏輯單元以一給定頁面偏移而處於一預定順序。該方法大體上提供用於儲存或緩衝一組邏輯單元之更新資料的兩個區塊(例如一更新區塊及一暫存記憶體區塊),並維護用於幫助識別一邏輯單元之最近寫入版本是否位於第一或第二區塊中之同步資訊。
根據一較佳實施例,每當一寫入指標形式之同步資訊在一暫存記憶體區塊中被緩衝時,該同步資訊與主機資料共同被儲存。該寫入指標為一更新區塊寫入指標,其給出在將該寫入指標儲存於該暫存記憶體區塊中時該更新區塊中之下一寫入位置之位址。特定言之,其被儲存於該暫存記憶體區塊中無論如何不用於儲存主機資料之一部分中。較佳地,該更新區塊寫入指標包括於儲存於該暫存記憶體區塊之一部分頁面之索引SPBI/CBI中。該更新區塊寫入指標將允許判定一緩衝於該暫存記憶體區塊中之給定邏輯區段是否已藉由隨後至該更新區塊之寫入而變為過時。
根據本發明之另一實施例,維護同步資訊,其將允許判定一緩衝於該暫存記憶體區塊中之給定邏輯區段是否已藉由至該更新區塊之隨後寫入而變為過時。此藉由包括一暫存記憶體寫入指標以完成,該寫入指標給出在將該同步資訊儲存於更新區塊之一頁面中時該暫存記憶體區塊中下一寫入之位置之位址。
在又一實施例中,可將該同步資訊編碼為寫入至多流之資料區段之時間戳記,以便可正確找到測試版本。
在該較佳實施例中,該時間戳記資訊儲存於一正被寫入之頁面中之至少之一區段的額外負擔部分中。
具有管線操作之多流更新
根據本發明之另一態樣,一種更新一非揮發性記憶體之方法包括使用一用於記錄更新資料的第一區塊(更新區塊)及一用於在記錄至該更新區塊前臨時儲存某些更新資料的第二區塊(暫存記憶體區塊)。該非揮發性記憶體經組織為可擦除區塊之記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦經組織為一或多個頁面,其中每一頁面能夠儲存具有確定頁面偏移之多個邏輯單元,且在一擦除後共同為可一次程式化的。該方法進一步包括自一主機接收該等邏輯單元,並將該等接收之邏輯單元逐頁對準,以便當滿足一在一接收之邏輯單元具有一頁面末端偏移之預定條件時,將該接收之邏輯單元與先前任何邏輯單元以適當之頁面對準儲存至該更新區塊中之一頁面,否則,將任何剩餘接收之邏輯單元臨時儲存至該暫存記憶體區塊中之一部分頁面。當滿足該預定條件時,最終將該暫存記憶體區塊中之該等邏輯單元傳送至該更新區塊。
在一較佳實施例中,接收該更新資料,並逐頁剖析,用於傳送至該第一區塊(例如更新區塊)。將任何剩餘的接收資料之部分頁面傳送至該第二區塊(例如暫存記憶體區塊),且其將保留於該處直至資料之一全頁面變得可用於記錄至該第一區塊。當將該接收資料傳送至該第二區塊時,其被逐頁記錄,儘管所記錄之頁面僅被部分地填充以該接收之資料。該部分頁面中之空閒(通常為未使用之)空間用於儲存一用於在第二及第一區塊中定位該資料之索引。
根據另一較佳實施例,實施一預示性管線操作,其中,並非等待直至確定用於記錄至該更新區塊之預定條件,而是設置該更新區塊,從而一旦該主機寫入命令指示由期望被寫入之資料單元潛在地滿足預定條件則進行寫入。以此方式,當等待來自主機之資料單元時,該設置可具有一跳躍式開始。當最終接收之實際資料單元確實滿足該預定條件時,該更新區塊中該頁面之程式化可立即進行,而無需等待設置,藉此改良寫入效能。在該主機寫入中斷及所接收之實際資料單元不再滿足該預定條件之情況下,將放棄該用於記錄至該更新區塊之設置,且作為替代,該等資料單元將被記錄於該暫存記憶體區塊中。
在另一較佳實施例中,在資料正被接收時且當在將該所接收之資料記錄至該第一儲存裝置還是第二儲存裝置上初始存在不確定性時,將該接收之資料載入至程式化電路之資料鎖存器用於第一與第二儲存裝置。以此方式,該資料將總為可立即用於程式化第一或第二儲存裝置。在一特殊情況下,該等第一及第二儲存裝置共用相同之資料鎖存器組。舉例而言,當第一及第二儲存裝置處於相同記憶體平面中時,其可由具有相同感應放大器及資料鎖存器組的相同之程式化電路組提供服務。在該情況下,資料將被載入至一預設資料鎖存器組,而與將程式化第一儲存裝置還是第二儲存裝置無關。
本發明額外之特徵及優勢將在應與所附圖式相結合之本發明之較佳實施例的以下描述中被理解。
記憶體架構及其操作
先參看圖1A,一快閃記憶體包括一記憶體單元陣列及一控制器。在所示之實例中,兩個積體電路裝置(晶片)11及13包括一記憶體單元陣列15及多個邏輯電路17。該等邏輯電路17經由資料、命令及狀態電路在一獨立晶片上與一控制器19建立介面,且亦提供定址、資料傳送與感應及對該陣列13之其它支援。視所提供之儲存容量而定,許多記憶體陣列晶片可自一至很多。或者可將該控制器及部分或整個陣列組合至一單積體電路晶片上,但此目前並非一經濟選擇。
一典型之控制器19包括一微處理器21、一主要儲存韌體之唯讀記憶體(ROM)23及一主要用於臨時儲存被寫入至該等記憶體晶片11及13或自該等記憶體晶片11及13讀取的使用者資料之緩衝記憶體(RAM)25。電路27與記憶體陣列晶片建立介面,且電路29經由連接31與一主機建立介面。在此實例中資料之完整性藉由以專門計算程式碼之電路33計算一ECC以判定。在使用者資料自該主機正被傳送至該快閃記憶體陣列用於儲存時,該電路計算一來自資料之ECC,且該程式碼儲存於該記憶體中。當稍後自該記憶體讀取使用者資料時,再次使其經過該電路33,其藉由相同之演算法計算該ECC並將該程式碼與使用資料計算並儲存的程式碼相比較。若其相當(compare),則確定資料之完整性。若其不同,則視所利用之特定ECC演算法而定,可識別並修正彼等錯誤位元(多達該演算法所支援之數目)。
圖1A之記憶體之連接31與一主機系統之連接31'配對,在圖1B中給出了其之一實例。圖1A之該主機與該記憶體間之資料傳送經由介面電路35。一典型之主機亦包括一微處理器37、一用於儲存韌體程式碼之ROM 39及RAM 41。視特定主機系統而定,其它電路及子系統43通常包括一高容量磁性資料儲存磁碟驅動器,用於一鍵盤、一監視器及其類似物之介面電路。該等主機之某些實例包括桌面型電腦、膝上型電腦、手持式電腦、掌上型電腦、個人數位助理(PDA)、MP3及其它音訊播放器、數位相機、視訊攝像機、電子遊戲機、無線及有線電話裝置、答錄機、語音記錄器、網路路由器及其它。
圖1A之記憶體可被實施為一含有控制器及其所有記憶體陣列電路裝置之小型封閉式卡片,且其所有記憶體陣列電路裝置處於一可與圖1B之主機可移除地連接的形式。即,配對連接31及31'允許將一卡片分離且移動至另一主機,或藉由將另一卡片連接至該主機而替代。或者,可將該等記憶體陣列裝置封閉於一獨立卡片中,該卡片可與一含有控制器及連接31之卡片電連接或機械連接。作為一進一步選擇,可將圖1A之記憶體嵌入圖1B之主機內,其中永久地產生連接31及31'。在此情況下,該記憶體通常與其它組件一起含於該主機之外殼中。
圖2說明了一記憶體陣列之一部分,其中將記憶體單元分組為擦除區塊,每一擦除區塊中之單元作為一單一擦除操作之部分通常可同時被共同擦除。一擦除區塊係此類型記憶體中之最小擦除單元。
圖2之個別記憶體單元擦除區塊之尺寸可變化,但一商業實用形式在一個別擦除區塊中包括資料之一單一區段。圖3中說明了該資料區段之內容。使用者資料51通常為512位元組。除使用者資料51以外的是額外負擔資料,其包括一自使用者資料計算之ECC 53、關於區段資料及/或於其中程式化區段的擦除區塊之參數55,及一自該等參數55計算的ECC 57,及可被包括的任何其它額外負擔資料。
在該等參數55中亦可包括指示狀況或狀態的一或多個旗標。用於程式化及/或擦除該擦除區塊的電壓位準之指示亦可儲存於該等參數55內,此等電壓隨該擦除區塊經歷循環的數目及其它因素改變而更新。該等參數55之其它實例包括該擦除區塊內任何缺陷單元之指示、映射至此實體擦除區塊的該擦除區塊之邏輯位址及在原始擦除區塊損壞之情況下任何替代擦除區塊之位址。用於任何記憶體系統之參數55的特定組合將根據設計而變化。又,可將某些或所有額外負擔資料儲存於專用於該功能之擦除區塊中,而非儲存於含有使用者資料或與額外負擔資料有關之擦除區塊中。
與圖2之單一資料區段擦除區塊不同的是圖4之多區段擦除區塊。一仍為最小擦除單元之實例擦除區塊59含有四個頁面0-3,每一頁面為最小程式化單元。資料之一或多個主機區段通常與包括至少自該區段之資料計算的ECC之額外負擔資料共同儲存於每一頁面中,且可處於圖3之資料區段之形式。
重新寫入一整個區塊之資料通常包括將新資料程式化為一塊擦除區塊集區,原始區塊隨後被擦除並置放於該擦除集區中。當更新少於一區塊之所有頁面的資料時,該更新之資料通常儲存於來自該擦除區塊集區的一區塊之一頁面中,並將剩餘未改變頁面中之資料自原始區塊複製至新區塊。隨後擦除該原始區塊。此大區塊管理技術之變化包括將該更新資料寫入至另一區塊之一頁面中,而非自該原始區塊移動資料或將其擦除。此導致具有相同邏輯位址之多個頁面。資料之最近頁面藉由某些適宜技術(諸如記錄為區段或頁面額外負擔資料中之欄位的程式化時間)來識別。
圖5中說明另一多區段區塊配置。此處,將全部記憶體單元陣列實體上劃分為兩個或兩個以上平面,圖解說明了四個平面0-3。每一平面為記憶體單元之一子陣列,其具有其自身之資料暫存器、感應放大器、定址解碼器及其類似物,以便能夠很大程度上獨立於其它平面而操作。可在一單一積體電路裝置或多個裝置上提供所有該等平面,一實例為由一或多個不同之積體電路裝置形成每一平面。圖5之實例系統中之每一區塊含有16頁面P0-P15,每一頁面具有一個、兩個或兩個以上主機資料區段及一些額外負擔資料之容量。
圖6中說明了又一記憶體單元配置。每一平面含有大量擦除單元區塊。為增加操作並行性之程度,將不同平面內之擦除區塊邏輯上鏈接以形成元區塊。圖6中說明了一該元區塊,其由平面0之擦除區塊3、平面1之擦除區塊1、平面2之擦除區塊1及平面3之擦除區塊2形成。每一元區塊為邏輯上可定址的,且記憶體控制器指派並記住形成個別元區塊之擦除區塊。主機系統較佳以等於該等個別元區塊之容量的資料單元與記憶體系統建立介面。圖6之該邏輯資料區塊61例如由一邏輯區塊位址(LBA)識別,該邏輯區塊位址由控制器映射至組成該元區塊之該等區塊的實體區塊編號(PBN)。該元區塊之所有擦除區塊被共同擦除,且來自每一擦除區塊之頁面較佳地被同時程式化及讀取。一元區塊可被認為是擦除區塊以此方式鏈接之系統中的擦除單元。在某些具有元區塊架構之記憶體陣列中,頁面僅可與該元區塊之其它頁面並行程式化。在此等記憶體陣列中,一元頁面為一元區塊之一最小程式化單元,其由來自該元區塊之每一平面的一頁面組成。
存在許多可用於實施關於圖2-6的上述記憶體之不同記憶體陣列架構、配置及特定單元結構。圖7中展示了NAND類型記憶體陣列之一擦除區塊。大量行定向之串聯連接記憶體單元串連接於一電壓Vss的共同源極65與位元線BL0-BLN其中之一之間,其接著與含有位址解碼器、驅動器、讀取感應放大器及其類似物之電路67連接。具體言之,一該串含有在選擇電晶體77與該等串之相對末端處之選擇電晶體79間串聯連接的電荷儲存電晶體70、71…72及74。在此實例中,每一串含有16個儲存電晶體,但其它數目是可能的。字線WL0-WL15延伸橫越每一串之一儲存電晶體,且連接至含有位址解碼器及該等字線之電壓源極驅動器之電路81。線83及84上之電壓控制經由其選擇電晶體共同至該電壓源65及/或該等位元線BL0-BLN的擦除區塊中所有串之連接。資料及位址來自記憶體控制器。
該擦除區塊之每一列電荷儲存電晶體(記憶體單元)可形成一共同程式化及讀取之頁面。將一適當電壓施加至該頁面之字線(WL)用於程式化或讀取其資料,而選擇施加至剩餘字線之電壓以使其各自儲存電晶體為傳導的。在程式化或讀取儲存電晶體之一列(頁面)期間,由於施加於所有串上及施加至其字線上之電壓,可干擾未選擇列上之先前儲存之電荷位準。此可防止在該列中其它單元已被程式化後一特定列之單元的程式化。多狀態快閃記憶體對干擾尤其敏感。增加數目之邏輯狀態導致個別狀態之狹窄的臨界電壓範圍,以致電荷位準之小改變可產生邏輯狀態之改變。由於資料儲存密度藉由在一單元中使用增加數目之邏輯狀態而增加,對干擾之敏感性亦增加。因此,在程式化一列中單元後,可能不能將資料程式化至該列中之其它單元而不破壞該等已程式化單元中之資料。因此,來自鄰近單元之隨後程式化的干擾可界定頁面尺寸。若在程式化一列中之單元後不可程式化相同列中之其它單元,則該列界定最小程式化單元。因此,一列單元可含有一資料頁面。在該記憶體陣列中,若一列中之一組單元被程式化,則認為該列已被程式化,即使該列中某些單元不含有資料。在記憶體陣列中具有不可被隨後程式化之空單元為無效的。
一已程式化頁面中之空單元可由記憶體系統一次接收之少量區段產生。舉例而言,一單一區段可由一主機發送至一記憶體系統。該區段儲存於快閃記憶體陣列之一頁面中。該區段防止至該頁面之隨後寫入。在一頁面保留多個區段之一記憶體系統中,此可為無效的。舉例而言,在一頁面包含四個資料區段時,當將一單一區段寫入至該頁面時,該可保留三個資料區段之記憶體陣列之一部分為空的。隨著頁面尺寸增加,來自該部分填充頁面之浪費空間增加。元頁面可含有大量區段,所以在使用元區塊之記憶體陣列中,儲存可尤其是無效的。在接收兩個或兩個以上區段但所接收之區段數目少於一頁面中之區段數目時,此問題相似。該等部分頁面可儲存於暫存記憶體區塊中,直至接收到一全頁面之資料。
在寫入部分填充頁面之資料後,可執行所儲存資料之合併,從而將來自該部分填充頁面之資料組合入填充頁面中。此可作為週期性執行之記憶體回收之部分來完成。該資料之合併將來自部分填充頁面之資料複製至處於一不同擦除區塊中之全頁面。保留該等部分填充頁面之該等擦除區塊隨後被標記為過時,以便可將其擦除或重新使用。該操錯可佔用可用於其它功能的系統資源。
單區段寫入至記憶體之實例
圖8展示了一擦除區塊,其表示為一記憶體系統中一記憶體陣列之作用區塊800,其中一頁面包含四個資料區段。其展示了頁面0-5,每一者沿水平方向延伸。每一頁面可含有四個資料區段,表示為區段0、區段1、區段2及區段3。一主機將單一資料區段發送至該記憶體系統,其儲存於作用區塊800中。接收區段X,並儲存為頁面0之區段0。此防止頁面0之隨後程式化。因此,頁面0之區段1、2及3未經程式化並保持為空的(已擦除)。在程式化頁面0後,接收區段X+1。區段X+1被儲存為頁面1之區段0。頁面1之區段1、2及3保持為空的。在程式化區段X+1後,接收區段X+2。區段X+2被儲存為頁面2之區段0。頁面2之區段1、2及3保持為空的。在程式化區段X+2後,接收區段X+3。區段X+3被儲存為頁面3之區段0。頁面3之區段1、2及3保持為空的。
圖9展示了在一擦除區塊中儲存區段之替代方式,表示為作用區塊900。此處,替代每頁面僅儲存一區段,將先前儲存之區段複製至一相同擦除區塊中之新頁面,其中將其與一較新近接收之區段一起儲存。如前所述,區段X被儲存為頁面0之區段0。隨後,接收區段X+1,並儲存為頁面1之區段1,其中將區段X自頁面0複製至頁面1之區段0。因此,區段X及區段X+1都儲存於頁面1中。隨後,接收區段X+2,並儲存為頁面2之區段2。區段X被儲存為頁面2之區段0,且區段X+1被儲存為頁面2之區段1。因此,區段X、X+1及區段X+2共同儲存於頁面2中。隨後,接收區段X+3,並儲存為頁面3之區段3。區段X被儲存為區段0,區段X+1被儲存為區段1,且區段X+2被儲存為頁面3之區段2。因此,四個資料區段儲存於頁面3中,以便頁面3完全由資料佔據。
在儲存圖8或圖9中所示之區段之後,可將資料合併。可將圖8或圖9之區段X、X+1、X+2及X+3複製至一新擦除區塊之一單一頁面。此可在適宜時作為記憶體回收之部分以完成。圖10A展示了儲存於表示為作用區塊1000之頁面0中之區段X、X+1、X+2及X+3。擦除區塊1000之頁面0充滿資料。當以區段X、X+1、X+2及X+3來程式化作用區塊1000之頁面0時,可自將該等區段複製之擦除區塊擦除區段X、X+1、X+2及X+3。當在記憶體回收期間將作用區塊800、900之內容合併時,可擦除作用區塊800、900並使其可用於儲存新資料。
在程式化頁面0後,接收區段X+4並儲存為作用區塊1000之頁面1之區段0。隨後,個別地接收區段X+5、X+6及X+7,並分別儲存為頁面2、3及4。可需要再次合併區段,以將區段X+4、X+5、X+6及X+7合併至一單一頁面。該區段之合併花費時間,在其間不可寫入主機資料。在第二次將資料合併至另一擦除區塊後,將其自其複製的擦除區塊1000被標記為過時,並可隨後被擦除。
圖10B展示了在第二記憶體回收操作自先前作用區塊1000重新定位資料後的一作用區塊1010。將區段X+4至X+7合併入作用區塊1010之一單一頁面(頁面1)中。隨後,可接收更多區段,並可儲存於作用區塊1010中。若以單一區段之形式接收該等區段,則可如前所述將一單一區段儲存於一頁面。
圖10C展示了作用區塊1010,其中額外區段X+8至X+11儲存於頁面2-5中。在此時可需要另一記憶體回收操作以合併區段X+8至X+11。因此,為將自一主機接收之區段儲存為單一區段,此方法使用多個記憶體回收操作,其需要將資料自一擦除區塊傳送至另一擦除區塊並擦除第一擦除區塊。在較大之擦除區塊中,記憶體回收操作之數目較大。在使用元區塊之記憶體系統中,可鏈接一組擦除區塊,以便其被共同擦除且共同程式化。可在含有很多區段之元頁面中程式化資料。因此,儲存單一區段由於所必須之記憶體回收之數目而變得非常無效。
圖11A展示了儲存資料之替代方法。圖11A展示了一記憶體陣列之兩個擦除區塊。作用區塊1110為一可程式化資料用於長期儲存之擦除區塊。暫存記憶體區塊1120為一可程式化資料用於短期儲存之擦除區塊。當接收少量區段時,首先將其儲存於暫存記憶體區塊1120中。區段繼續儲存於該暫存記憶體區塊1120中,直至接收足夠之區段以填充一資料頁面。隨後將此等區段複製至作用區塊1110之一頁面。
如前所述,接收區段X並在暫存記憶體區塊1120中程式化為頁面0之區段0。隨後,接收區段X+1,並儲存為暫存記憶體區塊1120之頁面1之區段1,其中將區段X複製至頁面1之區段0。隨後,接收區段X+2,並儲存為暫存記憶體區塊1120之頁面2之區段2,其中將區段X及X+1分別儲存為頁面2之區段0及區段1。在將區段X+2儲存於暫存記憶體區塊1120中之後,接收區段X+3。在此時,將區段X、X+1、X+2及X+3寫入至作用區塊1110之頁面0。此等四個區段形成一全頁面之資料。因此,將區段X、X+1、X+2及X+3有效地儲存於作用區塊1110之頁面0中。隨後,個別地接收區段X+4、X+5、X+6及X+7。當接收X+7時,將區段X+4、X+5及X+6儲存於暫存記憶體區塊1120之頁面3、4及5中,並將其複製至作用區塊1110之頁面1之區段0、1及2。將區段X+7直接程式化至作用區塊1110之頁面1之區段3。在此時,暫存記憶體區塊1120不具有可用頁面用於儲存資料,並可表示為已準備好擦除(過時)。對於將接收之下一區段或下一組區段,可將一新擦除區塊表示為一暫存記憶體區塊。雖然此實例展示了所接收之單一區段,此方法亦可用於區段組,其中該區段組具有較一頁面中之區段數目更少的區段。又,雖然上述實例展示了以最大並行性將資料自一暫存記憶體區塊寫入至一作用區塊,該寫入可以較最大並行性較少之並行性完成,並仍提供一效率益處。因此,以一程度之並行性將區段寫入至該暫存記憶體區塊,且隨後以一較高程度之並行性將其寫入至另一區塊,以便較密集地封裝該資料,且需要較小頻率之記憶體回收。
一暫存記憶體區塊亦可用於使用元區塊之記憶體陣列中。舉例而言,圖11B展示了兩個元區塊,作用區塊1130及暫存記憶體區塊1140。作用區塊1130及暫存記憶體區塊1140都具有四個平面,指示為平面0-3。每一平面為一區段寬,所以四個區段儲存於一區塊1130或1140之元頁面中。兩個區塊都具有6元頁面,指示為元頁面0-5。用於有效地儲存資料之技術與以上關於擦除區塊所述之技術相同。將區段積累於暫存記憶體區塊1140中,直至資料之一全元頁面可用,在此時將一全元頁面程式化至作用區塊1130。舉例而言,當接收區段X+3時,將一全元頁面(區段X、X+1、X+2及X+3)程式化至作用區塊1130之元頁面0。一元頁面可具有大量區段,因為元區塊可具有很多平面,且平面可為若干頁面寬。上文描述之技術對於該等大元頁面尤其有價值,因為否則將被浪費之記憶體陣列中之大量空間。如關於圖11A及11B所示,關於使用擦除區塊架構所描述之本發明之態樣亦可應用於元區塊架構,且反之亦然。視記憶體陣列之配置而定,術語"區塊"可指一擦除區塊或一元區塊。在無論哪一情況下,一區塊為該配置中使用之擦除單元。同樣,術語"頁面"可指一單一擦除區塊內之一頁面或一元區塊之一元頁面。在無論哪一情況下,一頁面為該配置之程式化單元。
在接收具有多於一頁面中之區段數目的一組區段時,可將區段直接程式化至該記憶體陣列之作用區塊,而無需首先儲存於該暫存記憶體區塊中。因此,可以一高程度之並行性將資料之全部頁面直接程式化至該作用區塊,而以一較低程度之並行性將部分頁面之資料程式化至該暫存記憶體區塊,直至其可作為一全頁面程式之部分被寫入該作用區塊。一控制器可判定一特定區段或一組區段之目標。當將一組區段寫入至作用區塊時將包括部分頁面寫入及全頁面寫入,可將該等全頁面寫入至該作用區塊,並可將該部分頁面寫入至該暫存記憶體區塊。
圖12A展示了另一實例,其中當將來自一主機之區段儲存於一暫存記憶體區塊中時使該等區段更新。接收一第一區段X0 ,並儲存於暫存記憶體區塊1250之頁面0中。在此實例中一頁面儲存資料之四個區段。隨後接收X0 之一替代,展示為X1 。此實例中之區段根據其邏輯位址編號,以一下標指示該區段是否為一更新,且若是,則指示是何版本。因此,區段X1 為一具有邏輯位址X之區段,且為此區段之第一更新版本。此為一具有與X0 相同邏輯位址之資料區段,但可含有反映某些更新資訊之不同資料。將區段X1 寫入至暫存記憶體區塊1250之頁面1。控制器記住哪些區段為當前的及哪些區段為過時的。在暫存記憶體區塊1250中,具有一特定邏輯位址之一區段之最近寫入複製為當前版本。任何其它版本為過時的。因此,當程式化X1 時,X0 變為過時的。在接收區段X1 後,接收(X+1)0 。此為一邏輯上在區段X1 之後的區段。將區段X1 及(X+1)0 寫入至頁面2。隨後,用(X+1)1 替代區段(X+1)0 。此為區段(X+1)0 之一更新版本,其替換區段(X+1)0 。將區段(X+1)1 與區段X1 共同寫入至頁面3。隨後,接收區段(X+2)0 並寫入至頁面4。區段(X+2)0 隨後由區段(X+2)1 替換,並與區段X1 及(X+1)1 共同被寫入至頁面5。隨後,接收區段(X+3)0 。因此,一頁面之資料(區段X1 、(X+1)1 、(X+2)1 及(X+3)0 )可用。將區段X1 、(X+1)1 、(X+2)1 及(X+3)0 寫入至一表示為作用區塊1252之區塊。以一全頁面寫入之並行性將區段X1 、(X+1)1 、(X+2)1 及(X+3)0 寫入至該作用區塊1252。此為在此情況下之最大可能並行性。因此,即使以一低程度之並行性將區段X1 、(X+1)1 、(X+2)1 及(X+3)0 寫入至暫存記憶體區塊1250,隨後將其以一高程度之並行性寫入至作用區塊1252。此意謂將區段X1 、(X+1)1 、(X+2)1 及(X+3)0 更有效地儲存於該作用區塊中。更有效之儲存可導致較不頻繁地需要記憶體回收,因此改良效能。
圖12B中提供了一替代實例。此實例與圖12A中所示之實例相似,但此處區段(X+3)0 在被複製至作用區塊1252前儲存於暫存記憶體區塊1250中。此允許區段(X+3)0 在其被寫入至作用區塊1252前被更新。藉由用區段(X+3)1 替換,以展示區段(X+3)0 被更新。資料之完整頁面(區段X1 、(X+1)1 、(X+2)1 及(X+3)1 )可保留於暫存記憶體區塊1250中,準備被更新,直至某些觸發事件。在此情況下,接收區段(X+4)0 ,提供一觸發事件。在此時以一最大並行性將區段X1 、(X+1)1 、(X+2)1 及(X+3)1 寫入至作用區塊1252。將區段(X+4)0 寫入至暫存記憶體區塊1250中之下一可用頁面(頁面8)。
圖12C展示了使用暫存記憶體區塊1250更新資料之另一實例。將資料之區段X0 至(X+15)0 儲存於一原始區塊1254中。一主機發送區段(X+6)1 ,其為一具有與區段(X+6)0 相同邏輯位址之更新區段。因此,區段(X+6)1 將替換(X+6)0 。為替換區段(X+6)0 ,原始區塊1254之頁面1(含有區段(X+4)0 至(X+7)0 )與區段(X+6)1 組合,且將該組合寫入至暫存記憶體區塊1250之頁面0。組合此等區段可在一諸如控制器隨機存取記憶體25之隨機存取記憶體中進行,或可在連接至該記憶體陣列之記憶體暫存器中完成。更新之頁面資料可保留於暫存記憶體區塊1250中,而在一段時間內不需將其寫入至一作用區塊。在自一主機接收一隨後更新之區段(X+5)1 時,可藉由將區段(X+5)1 與所複製之區段(X+4)0 、(X+6)1 及(X+7)0 共同寫入至暫存記憶體區塊1250之另一頁面(在此情況下為頁面1)而在暫存記憶體區塊1250中更新資料。在暫存記憶體區塊1250中之一資料頁面之多個更新可以此方式執行。藉由在暫存記憶體區塊1250中之一新頁面中替換更新之資料區段並複製未改變之資料區段來進行一更新。該等複製之區段被複製於相同平面內,以便可有效地執行複製。隨後,可將更新之資料頁面複製至該記憶體陣列中之作用區塊1252。非連續之更新可以此方式來執行,而無需一無序更新區塊。舉例而言,在上述實例中非連續地接收更新區段(X+6)1 及(X+5)1 ,但作用區塊1252為連續的。以此方式,多個資料頁面可保留於一暫存記憶體區塊中並可同時更新。可將一頁面複製至一作用區塊,當不再期望更新該頁面時。
多位準單元程式化之實例
藉由將一浮動閘極記憶體單元之臨界電壓範圍劃分為兩個以上位準,某些類型之記憶體可在該記憶體陣列之每一單元中儲存一位元以上之資料。圖13展示了該多位準單元(MLC)記憶體可如何程式化以提供表示不同邏輯狀態之多個臨界電壓的一實例。其展示了四個不同臨界電壓,標記為A、B、C及D。將多個單元程式化至每一電壓。圖13表示單元狀態之分佈,其中單元之數目表示於垂直軸線上。每一臨界電壓A、B、C及D表示一不同邏輯狀態。四個狀態表示兩位元之資料,一位元來自資料之一下部頁面,且一位元來自資料之一上部頁面,如圖所示。在某些實例中,可首先程式化該下部頁面。在程式化該下部頁面後,該單元處於狀態A或B。隨後,可程式化該上部頁面,以便該單元停留於狀態A或B(對於上部位元=1)或被修改為狀態C或D(對於上部位元=0)。因為此等四種狀態各具有相對較窄之電壓視窗,所以MLC記憶體尤其易受由於臨界電壓之相對較小改變而產生的資料破壞而損壞。在某些實例中,其可有利於同時程式化下部及上部頁面。此可幫助減少由於諸如可在程式化上部頁面資料期間出現的程式化鄰近單元而導致之一單元中之資料破壞。
圖14展示了在MLC記憶體中一暫存記憶體區塊1460可如何用於減少資料破壞。圖14將作用區塊1462及暫存記憶體區塊1460二者展示為MLC記憶體之區塊。兩個區塊之頁面被編號,並視使用何臨界電壓狀態以儲存該頁面之資料位元而定被展示為"上部"或"下部"。在此實例中,該記憶體首先接收區段X至X+3,並將此等區段儲存於暫存記憶體區塊1460之下部頁面0中。隨後,該記憶體接收區段X+4至X+7。在此時,將該下部頁面(區段X至X+3)與該上部頁面(X+4至X+7)同時寫入至作用區塊1462。此可在程式化作用區塊1462之上部頁面0期間避免作用區塊1462之下部頁面0之破壞。通常,共同程式化上部及下部頁面所必需之時間與單獨程式化該上部頁面所必需之時間相同,以便此系統不受一時間損失。在以區段X至X+7程式化作用區塊1462之下部頁面0及上部頁面0之後,接收區段X+8至X+11,並將其程式化至暫存記憶體區塊1460之上部頁面0。當接收區段X+12至X+15時,將區段X+8至X+11與區段X+12至X+15並行程式化至該作用區塊之上部頁面1及下部頁面1。此系統為隨後資料區段而繼續,如所展示。因此,將一頁面之資料寫入暫存記憶體區塊1460,且隨後將此頁面與一額外頁面共同寫入至作用區塊1462,作為相同組之記憶體單元之上部及下部頁面。程式化至暫存記憶體區塊1460以一頁面之並行性出現,而程式化至作用區塊1462以一頁面之並行性之兩倍出現。
在一替代實施例中,可在不同時間將上部及下部頁面寫入至一作用區塊,但將該下部頁面之一複製保留於一暫存記憶體區塊,以防在程式化該上部頁面期間該作用區塊中之下部頁面變得被破壞。在圖14中,可接收區段X至X+3,並同時將其程式化至作用區塊1462之下部頁面0及暫存記憶體區塊1460之下部頁面0。隨後,接收區段X+4至X+7,並將其程式化至作用區塊1462之上部頁面0。區段X+4至X+7不儲存於暫存記憶體區塊1460中。若在將X+4至X+7程式化至作用區塊1462之上部頁面0期間存在任何問題(諸如功率損耗),則作用區塊1462之下部頁面0中之資料可被破壞。即,可修改正被程式化之單元的臨界電壓,以致其不再處於一表示該下部頁面之資料的狀態,但已不被完全程式化至一表示該上部頁面之資料的狀態。舉例而言,正在自圖13中之狀態A被程式化至狀態D之一單元在當程式化停止時可處於狀態B或C。若資料以此方法被破壞,則正被寫入之資料之上部頁面可自其被複製的位置被恢復。然而,在很多情況下,不存在其它下部頁面之複製。此處,該下部頁面之一複製保留於暫存記憶體區塊1460中,直至完成該上部頁面之程式化。因此,存在該下部頁面之一未破壞之複製,並可用於恢復該下部頁面之資料。
多個檔案之實例
來自一個以上主機資料檔案之資料可儲存於一單一區塊中。檔案間之斷裂可出現於一頁面內,以致一頁面之部分含有來自一檔案之資料,而一頁面之部分含有來自另一檔案之資料。圖15展示了一實例,其中原始區塊1570之頁面0至頁面i-1含有來自一第一檔案(檔案1)之資料,而頁面i+1至頁面n-1含有來自一第二檔案(檔案2)之資料。頁面i含有來自檔案1之區段(i*4)與(i*4)+1及來自檔案2之區段(i*4)+2與(i*4)+3。檔案2之區段被繪上陰影,以說明存在來自兩個檔案之區段。
圖15展示了正被更新至一新區塊1572之檔案2。以原始區塊1570之頁面i之內容寫入新區塊1572之第一頁面(頁面0)。因此,新區塊1572之頁面0含有來自檔案2及檔案1二者之區段。在此時不更新來自檔案1之區段(i*4)及(i*4)+1,而可將其複製以便程式化資料之一全頁面。將更新之檔案2之剩餘部分程式化至新區塊1572之頁面1至i-1。隨後,更新檔案1。區段0至區段(i*4)-1儲存於頁面i至頁面n-1。然而,區段(i*4)及(i*4)+1亦為檔案1之部分,且必須被更新。因為此時新區塊1572是滿的,將更新之區段(i*4)及(i*4)+1程式化至另一區塊。隨後,作為一記憶體回收操作之部分,可將區段(i*4)及(i*4)+1與新區塊1572中之區段合併至一單一區塊。然而,此花費時間及系統資源,且通常為不需要的。
圖16展示了一用於更新含有來自兩個不同檔案之區段的圖15之原始區塊1570之區段的替代技術。此技術使用一暫存記憶體區塊1674以儲存更新之區段,直至可以系統之最大並行性將其作為一全更新頁面之部分寫入時。當更新檔案2時,將更新之區段(i*4)+2及(i*4)+3寫入暫存記憶體區塊1674。此處,將其寫入暫存記憶體區塊1674之頁面0,且不將資料寫入該頁面之剩餘部分,以便使用一低程度之並行性。將檔案2之剩餘區段(區段(i*4)+4至N-1)複製至一新區塊1676之頁面0至n-i。此等區段使用最大並行性而都寫入於全頁面寫入中。隨後,更新檔案1。以最大並行性將區段0至(i*4)-1程式化入頁面n-i+1至n-2。隨後與將區段(i*4)+2及(i*4)+3複製至新區塊1676之頁面n-1並行,寫入檔案1之區段(i*4)及(i*4)+1。因此,現在將一先前保留於原始區塊1570中之所有區段之更新複製保留於新區塊1676中,且在新區塊1676中不保留過時資料。通常不需要對一諸如新區塊1676之區塊進行記憶體回收。以最大並行性來程式化新區塊1676之每一頁面,以在該區塊中達成最大之資料密度。在此時,可將暫存記憶體區塊1674中之區段(i*4)+2及(i*4)+3標記為過時。然而,暫存記憶體區塊1674可用於進一步之操作,而無需一記憶體回收操作,因為該暫存記憶體區塊常規地含有當前及過時資料。
儲存非連續資料區段之實例
在某些先前實例中,以一較寫入一完整頁面較少程度之並行性將資料區段寫入至該暫存記憶體區塊。在該等實例中,正被寫入的該暫存記憶體區塊之頁面中之剩餘空間可保持為空,因為不可能稍後將其程式化而不干擾已儲存之資料。在某些情況下,可能使用此否則為空的空間且否則不被使用之程式化頻寬以在相同頁面中儲存不相關之資料。舉例而言,在一記憶體系統以單一區段或少於一頁面之區段組接收主機資料時,此等主機資料之區段可以頁面儲存於暫存記憶體區塊中,該等頁面亦保留諸如不相關主機資料之不相關資料或控制資料之區段。同樣,被儲存於一暫存記憶體區塊中用於稍後作為一全頁面之部分儲存的來自一檔案開頭之區段可具有儲存於相同暫存記憶體區塊非邏輯相關頁面中之額外區段。
圖17展示了一實例,其中如先前實例,將區段X、X+1及X+2儲存於一暫存記憶體區塊1780中。然而,此處,保留區段X、X+1及X+2之暫存記憶體區塊之該等頁面中之剩餘空間用於儲存其它資料。區段Y、Y+1及Y+2與區段X儲存於頁面0中。區段Y、Y+1及Y+2可與區段X、X+1及X+2邏輯上無關。其可來自另一主機資料檔案或來自相同檔案內另一區段叢集。區段Y、Y+1及Y+2可與區段X、X+1及X+2為不連續的,且可在邏輯位址空間中分隔。同樣,區段Z及Z+1與區段X及X+1儲存於頁面1中。區段Z及Z+1可與區段X、X+1及X+2與區段Y、Y+1及Y+2二者在邏輯上無關。當接收區段X+3時,隨後將區段X、X+1、X+2及X+3寫入至另一區塊之一頁面。當接收區段Y+3時,隨後將區段Y、Y+1、Y+2及Y+3寫入至另一區塊之一頁面。因此,可將不相關之資料儲存於該暫存記憶體區塊之相同頁面中,以較有效地使用可用資源。
圖18展示了儲存於一暫存記憶體區塊1890中之不相關資料之另一實例。此處,如前所述,儲存及更新區段X、X+1及區段X+2。然而,此處,亦並行儲存及更新區段Y。更新之區段藉由一指示儲存何版本之下標表示。舉例而言,區段X0 為區段X之原始版本,而X1 為區段X之第一更新版本。區段Y可為頻繁更新之一主機資料區段或一控制資料區段。在某些系統中,諸如FAT資訊之控制資料在儲存主機資料時更新。在接收少量主機資料時,在暫存記憶體區塊1890中更新控制資料可為有利的。此可在僅更新控制資料之一單一區段時避免更新一控制結構。在稍後某時,可使用來自該暫存記憶體區塊之控制資料來更新該等控制資料結構。
暫存記憶體區塊管理
一暫存記憶體區塊可為記憶體陣列中之一指定區塊。可選擇一固定實體位置作為該暫存記憶體區塊。然而,此將導致記憶體陣列之不均勻損耗。或者,該指定區塊可時常改變,以便在該暫存記憶體區塊變得由過時資料填滿時,可選擇另一擦除區塊作為暫存記憶體區塊。在此情況下,由記憶體控制器使用之資料結構可識別該暫存記憶體區塊之位置,或可標記該指定暫存記憶體區塊,使得若該控制器掃描該記憶體陣列之擦除區塊,則其可判定何擦除區塊為暫存記憶體區塊。可使用一區段標記一暫存記憶體區塊,以將其識別為一暫存記憶體區塊。舉例而言,圖19展示了將區段2110標記為暫存記憶體區塊2100之第一區段。當卡片通電時,可掃描記憶體陣列(或該記憶體陣列之一部分)之擦除區塊,以判定暫存記憶體區塊之位置。在圖19之實例中,讀取每一擦除區塊之第一區段以查看其是否為一指示一暫存記憶體區塊之標記區段。
可將資料寫入至一暫存記憶體區塊作為一資料組。一資料組為自一主機接收之一邏輯連續區段組。當一資料組儲存於暫存記憶體區塊中時,亦寫入一索引區段,其提供關於所儲存資料組之資訊。資料組之區段之位置可儲存於一索引區段中。一諸如圖19之暫存記憶體區塊2100之暫存記憶體區塊可用於儲存多個資料組。圖20展示了儲存一資料組之暫存記憶體記憶體2100。資料組1由兩個區段2220、2221組成。此等區段,標記區段2110及一索引區段2230儲存於暫存記憶體記憶體2100中。索引區段2230儲存關於組1之資訊。
圖21展示了程式化由兩個區段2340、2341組成之資料組2之後的圖20之暫存記憶體區塊2100。索引區段2350為一儲存關於組1及組2之資訊之新索引區段。因此,索引區段2230為過時的,因為索引區段2350含有一包括組1的暫存記憶體區塊2100之資料組的完整記錄。
圖22展示了在程式化由區段2460、2461及2462組成之資料組3之後的圖21之暫存記憶體區塊2100。索引區段2470為一儲存關於資料組1、2及3之資訊之新索引區段。索引區段2470含有暫存記憶體區塊2100之資料的一完整記錄,且因此使索引區段2350過時。
圖23展示了在自暫存記憶體區塊2100讀取資料組1及資料組2,並將其作為一單一頁面寫入該記憶體陣列之另一區塊後的圖22之暫存記憶體區塊2100。索引區段2560儲存關於資料組3之資訊。暫存記憶體記憶體2100中之資料組1及資料組2為過時的,且因為其被儲存於別處而不需要索引。因此,索引區段2560含有暫存記憶體區塊2100中所有當前資料之一完整記錄。
當一主機自該記憶體陣列請求資料之一區段或(多個)區段時,一控制器可首先檢查所請求之區段是否處於該暫存記憶體區塊中。若該等區段不存在於該暫存記憶體區塊中,則可以常規方式尋找該等區段。因此,該暫存記憶體記憶體不需要改變用於在該記憶體陣列中記住資料區段之位置的常規媒體管理。
多流更新與索引
圖24說明了以一習知方式藉由將更新儲存於一具有單區段頁面的更新區塊中以更新一邏輯組中之區段之一實例。資料被封裝入邏輯區段並儲存於元區塊中(亦簡稱作"區塊"),其中一元區塊之所有邏輯區段為可共同擦除的。將該資料逐頁記錄至一區塊中,其中每一頁面中之所有邏輯區段係可共同程式化的。該實例展示了一每一區段尺寸通常為大約512位元組的單區段頁面。在某些情況下,由一整個邏輯區段組形成一"原始"區塊10,該整個邏輯區段組根據一諸如以遞升邏輯區段編號排序之預定順序儲存於該"原始"區塊中。該區塊被認為是一完整區塊,其具有較佳處於連續順序之完整的邏輯組之所有區段。
因此,當一主機發送更新作為該邏輯組之某些此等邏輯區段之最新版本時,將所更新之區段寫入至一專用於該邏輯組之更新區塊20。若更新資料原來是處於該預定順序中,則可將其依序地記錄於該更新區塊中。該更新區塊被認為是一有可能變為一完整區塊之連續更新區塊。另一方面,當更新之區段不處於連續順序時,該更新區塊被認為是非連續的,或"無序"。在此情況下,區段之任何最新版本將最終被複製至別處,以形成一新的完整區塊。
在主機寫入#1中,將更新之邏輯區段LS10'發送至記憶體,並將其記錄於更新區塊20之頁面0中。在主機寫入#2中,將更新之邏輯區段LS11'發送至記憶體,並將其記錄於更新區塊20中之下一可用位置(頁面1)中。在主機寫入#3中,將更新之邏輯區段LS6'及LS7'分別記錄於頁面2及3中。最後,在主機寫入#4中,將更新之邏輯區段L10"發送至記憶體,並將其記錄於更新區塊之頁面4中。該邏輯組之更新被稱為形成一流,諸如STREAM 1,其中更新資料自主機流至該更新區塊。通常,若存在分佈於原始區塊及更新區塊中之一邏輯區段之多個版本,則僅最近寫入之版本將為有效的,其使得所有先前版本過時。舉例而言,圖24展示了記錄於更新區塊之頁面4中之LS10",其為最近寫入之版本,且因此對於邏輯區段編號10之資料為當前有效之區段。先前版本,原始區塊10中之LS10及更新區塊20中之LS10'為過時的。
最終,將關閉該更新區塊,且該更新區塊與該原始區塊間之有效區段(邏輯區段之最新版本)將以預定順序合併,從而形成一新的原始區塊。過時之原始區塊及更新區塊將再循環。
圖25說明了當應用於頁面為多區段且可能為可一次寫入的記憶體時,圖24中所展示的相同次序之寫入。該實例頁面結構與圖24中所示結構之不同之處在於,每一頁面現在含有四個區段而非一個,且在某些實施例中,在一擦除後僅可被寫入一次。與現有術語一致,一記憶體裝置佔用之最小程式化單元將被稱為一"實體頁面",而一系統佔用之最小程式化單元將被稱為一"元頁面",其可由多個實體頁面組成。為方便起見,"元頁面"與"頁面"將可互換使用,除非另外規定。
如前所述,每一邏輯區段最初以升序邏輯編號順序連續地儲存於一原始區塊10中。若該區塊具有一四區段頁面結構,則該區塊將被進一步分為頁面,且每一邏輯區段較佳在每一頁面中具有一確定之頁面偏移。舉例而言,頁面P0具有儲存於其中之邏輯區段LS0-LS3。因此,LS0儲存於該頁面之四個狹槽之第一者中,且LS1儲存於第二狹槽中,等等。在四區段頁面之實例中,一給定區段LSn之頁面偏移將由MOD[(n+1),4]給出,若將該區塊之第一邏輯區段被編號為LS0。
每當一主機向一記憶體寫入時,其發出一寫入命令以寫入若干資料單元,通常為邏輯區段,隨後是該等邏輯區段自身之傳輸。為防止資料丟失,該主機與該記憶體間之協定為,直至將當前之寫入資料成功寫入至記憶體後才開始下一主機寫入。
如先前所解釋,在一具有多區段頁面之記憶體架構中,較佳在一頁面中實施區段對準,因為此可避免在記憶體回收期間對重新對準之需要。因此,當對準時,自每一主機寫入接收之區段無需填滿一更新區塊中之一整數頁面。此可導致一部分填充之頁面被程式化。該部分填充之頁面可再該主機資料之前或之後具有間隙。此等間隙亦可用現有邏輯區段來預先填補或隨後填補,以便盡可能地保持該連續順序。再下一主機寫入為下一邏輯區段之情況下,通常較佳不隨後填補該部分頁面。然而,在一記憶體架構具有可一次寫入之頁面的情況下,一旦其已被寫入,則不存在重寫一部分頁面之未填充部分之選擇。
在該等實例中,可視需要將一更新流(SPB)中之有效頁面之數目限制為一。此足以說明該原理,但應注意,可在SPB中儲存一個以上頁面,其中需要分析較多資訊(例如較舊的寫入指標),以便尋找最新寫入之區段。
例如在圖25中,在主機寫入#1中,更新之區段LS10'儲存於更新區塊20之頁面P0之第三偏移中。視需要,為了完整性,可用有效資料填補最初兩個狹槽,諸如來自原始區塊10之LS8及LS9。然而,當在該主機寫入#1結束時儲存該頁面P0時,此仍使第四狹槽處於未填滿的。該部分頁面可視需要用LS11之最新版本來隨後填補。由於該頁面為可一次寫入的,該未填滿之第四狹槽將對進一步程式化關閉。
在主機寫入#2中,該命令為將接收之更新區段LS11'寫入,其原來是處於與最後區段LS10'連續順序的。理想地,此應被記錄於P0中LS10'後之下一狹槽中。然而,P0對於進一步寫入關閉,且因此,LS11'儲存於下一空頁面P1中之最後狹槽,此為其適當之頁面偏移。用LS8、LS9及LS10'來填補P1之最初三個狹槽,其為連續處於LS11'前的邏輯區段之有效版本。
在主機寫入#3中,該命令為寫入LS6'及LS7'。將此等分別寫入至P2的第三及第四狹槽,其為該更新區塊中之下一空頁面。用諸如LS4及LS5之有效資料來填補第一及第二狹槽。
最後,在主機寫入#4中,該命令為寫入LS10",且將此儲存於P3之狹槽3中,而分別用LS8及LS9來填補狹槽1及2,且狹槽4保持為空。
可見,在試圖在每一可一次程式化頁面內保持區段對準時,由於許多填補及死空間而無效地使用了該更新區塊。一不需要之特徵為,即使主機連續寫入(處於兩獨立寫入命令中之區段10及隨後11),該更新區塊停止為連續的,且由於其具有某些過時資料而不能變得完整。
為避免上述問題,並最小化歸因於部分填充頁面及過多填補的該更新區塊20中之無效儲存,先前已描述使用一額外之暫存記憶體區塊30。該暫存記憶體區塊(SPB)30充當用於傳入資料之一臨時緩衝器及預備區域(staging area),以便資料之一全頁面可在被寫入至一更新區塊20前進行準備。在上文四區段頁面之實例中,預備該等區段,以便寫入四個區段,從而在更新區塊中完全填滿一頁面。在當主機在獨立寫入中寫入連續資料之情況下,SPB允許緩衝部分頁面之寫入並使更新區塊保持連續。然而,其亦意謂,除原始及更新區塊外,有效資料現可分佈於SPB上。
為方便起見,暫存記憶體區塊之頁面尺寸與更新區塊之頁面尺寸相同,儘管通常其可為不同的。舉例而言,若記憶體系統支持在實體頁面位準上程式化,則暫存記憶體區塊之頁面可具有一實體頁面之尺寸。
暫存記憶體區塊及更新區塊索引管理
2004年8月13日申請之美國專利申請案第10/917,725號揭示了一具有區塊管理之記憶體系統,其整個揭示內容以引用之方式併入本文中。區塊管理提供一更新區塊以與在更新中之每一資料邏輯組相關聯。所揭示內容為定位可存在於原始區塊或更新區塊上的有效資料之多種索引機制之實例。詳言之,當更新區塊含有處於非連續順序的邏輯區段時,其被認為是一"無序更新區塊"。一無序更新區塊索引("CBI")用於記住記錄於無序更新區塊中之邏輯區段。
儲存於一便攜式區塊中之SPBI/CBI索引
根據本發明另一態樣,當除一更新區塊外使用一暫存記憶體區塊時,一相關聯之暫存記憶體區塊索引("SPBI")用於記住記錄於該暫存記憶體區塊中之更新區段。除一索引(例如"CBI")外,此用於記住記錄於該更新區塊中之邏輯區段。只要使用者資料儲存於暫存記憶體區塊之一部分頁面中,其意謂至少該頁面之最新狹槽未填滿。在一實施例中,SPBI可儲存於該暫存記憶體區塊中之部分頁面之最新狹槽中。在一較佳實施例中,SPBI及CBI可封裝於一SPBI/CBI區段內,並儲存於無論如何都不使用的暫存記憶體區塊中之一部分頁面之最新狹槽處。每次寫入一新的部分頁面,則在末端狹槽處寫入一更新之SPBI/CBI區段,使得所有先前版本為過時的。
圖26為一根據本發明一通用實施例說明一種更新資料之方法的流程圖,該方法藉由將一第一記憶體區塊與一第二記憶體區塊結合使用,其中儲存資料之一索引儲存於該第二區塊中。
步驟80:提供第一及第二非揮發性儲存裝置,每一者用於連續記錄資料。
步驟81:維護已被記錄於第一及第二非揮發性儲存裝置中之至少一資料索引。
步驟82:接收輸入資料。
步驟84:判定是否滿足用於將緩衝之輸入資料記錄至該第一儲存裝置中的一第一預定條件。若滿足,進行至步驟85,否則進行至步驟86。
步驟85:將該緩衝之資料記錄至該第一儲存裝置。進行至步驟88。
步驟86:將該緩衝之輸入資料與至少一索引共同記錄至該第二儲存裝置。進行至步驟88。
步驟88:若存在較多將被處理之輸入資料,則進行至步驟72,否則結束處理。
圖27A根據本發明之一較佳實施例說明了一更新資料及維護索引之特定實例,其藉由將一更新區塊與一暫存記憶體區塊結合使用。每一區塊為一元區塊,其中所有其記憶體位置為可共同擦除的。該區塊經組織為頁面,其中一頁面中之所有記憶體位置為可共同程式化的。此外,每一頁面具有一儲存一個以上區段之尺寸,且每當該區塊已被擦除時其為可一次寫入的。
除該更新區塊("UB")20外,提供一暫存記憶體區塊("SPB")30。若"STREAM 1"用於標記向該更新區塊20之資料流動,相應之向該暫存記憶體區塊30的流動將被標記為"STREAM 0"。
圖24及圖25中之相同主機寫入實例將用於說明圖27A中所示的本發明之優勢。在主機#1中,命令為寫入LS10'。由於LS10'應佔據狹槽3,一全頁面不可被寫入至該更新區塊20。實情為,其藉由在該SPB 30之一新頁面中被緩衝而進行準備。因此,LS10'儲存於該SPB 30之下一可用部分頁面PP0之狹槽3中。同時,狹槽1及2視需要分別用LS8及LS9填補。又,根據本發明之特徵,SPBI及CBI都封裝於一區段內,即一索引區段SPBI/CBI1 50內,且該索引區段50有利地儲存於該部分頁面PP0之最新未使用之狹槽中。
在主機寫入#2中,該命令為寫入LS11'。由於LS11'屬於狹槽4,其處於一頁面末端處,一以來自該SPB 30之連續LS8、LS9及LS10'預先填補之全頁面可被寫入至該更新區塊20之下一可用頁面P0。在此情況下,不更新SPBI/CBI之索引區段,因為其未被寫入至該SPB 30中之一部分頁面。對準及SPB中之預先填補為較佳的,但亦為可選的。
在主機寫入#3中,該命令為寫入LS6'及LS7'。其分別屬於狹槽3及4。因此,當以LS4及LS5填補先前狹槽時,寫入另一全頁面,該更新區塊20之P1。再次,不更新SPBI/CBI之索引區段,因為其未被寫入至該SPB 30中之一部分頁面。
在主機寫入#4中,該命令為寫入LS10"。由於LS10"屬於狹槽3,其將被寫入至該SPB 30之下一部分頁面PP1。同樣,以LS8及LS9填補先前狹槽1及2,而上一狹槽亦將儲存索引區段之最新更新SPBI/CBI3
與圖25之機制在主機寫入#4結束時對更新區塊20之使用相比明顯的是,圖27A中所示之機制係對更新區塊更有效的利用。對於相同之主機寫入,圖27A中所示之機制消耗較少之儲存,且在更新區塊中需要較少之填補,即使以暫存記憶體區塊30為代價。同時,索引機制利用暫存記憶體區塊中未使用之儲存在一非揮發性記憶體中儲存一索引。
本發明一重要特徵及優勢為,在連續邏輯區段之一系列獨立主機寫入期間,保持更新區塊中更新區段之連續順序,此不同於圖25中所示之實例。此將由圖27B中所說明之實例而顯而易見。
圖27B根據本發明之一較佳實施例說明了更新正被維護之資料的連續順序之另一實例,其藉由將一更新區塊與一暫存記憶體區塊結合使用。在此實例中,依次但經由若干獨立主機寫入將邏輯區段LS10'-LS16'寫入。
在主機寫入#1中,寫入LS10'。由於其應佔據一頁面之並非頁面末端狹槽之狹槽3,將其被記錄至一暫存記憶體區塊30之狹槽3中。同時,將一索引SPBI/CBI1記錄於該頁面末端狹槽中。
在主機寫入#2中,寫入LS11'。由於其應佔據一頁面末端狹槽,將其直接記錄至一更新區塊20中之一新頁面之最後狹槽。同時,將臨時儲存於該暫存記憶體區塊中之LS10'複製至狹槽3,而使用來自原始或完整區塊10之LS8及LS9預先填補狹槽1及2。
在主機寫入#3中,寫入LS12'-LS14'。由於其不具有一末端頁面偏移,所以將其儲存於該暫存記憶體區塊中一新頁面之狹槽1-3中。同時,將一更新索引SPBI/CBI3記錄於該頁面末端狹槽中。
在主機寫入#4中,寫入LS15'及LS16'。由於LS15'屬於一頁面末端狹槽,將其直接寫入至該更新區塊中之下一頁面之最後狹槽。同時,使用來自該暫存記憶體區塊之LS12'-LS14'分別填充狹槽1-3。
可見,以一連續方式將連續之邏輯區段LS10'-LS16'記錄於該更新區塊中,即使其經由若干獨立主機寫入而寫入。
在較佳實施例中,在該暫存記憶體區塊中之每一邏輯組維護一有效部分頁面(例如最後寫入之部分頁面)。本發明可同等應用於在該暫存記憶體區塊中之每一邏輯組維護一個以上有效部分頁面。在該情況下,需要分析來自一個以上頁面之索引資訊,以便定位所記錄之區段。
一暫存記憶體區塊之頁面內的區段對準及填補為較佳的,但亦為可選的。該對準及填補將有助於向該更新區塊之隨後傳送。
在某些記憶體架構中,一更新區塊之一頁面內的過時區段對準將簡化索引及複製。該頁面中之區段亦被認為是頁面對準的,即使當該頁面中所有連續區段由某數目之狹槽循環轉移時。在該情況下,一指示該頁面中第一邏輯區段之位置的頁面標記將提供偏移位址。
該等所示之較佳實施例具有兩個儲存裝置作為兩個不同可擦除區塊。通常,本發明可同等應用於作為該記憶體之兩部分之兩個儲存裝置。
本發明亦可同等應用於每一記憶體單元儲存一位元資料之兩狀態記憶體,及每一記憶體單元能夠儲存一位元以上資料之多狀態記憶體。對於支持多頁面儲存之多狀態記憶體,下部頁面較佳用於儲存暫存記憶體區塊之操作。部分頁面較佳被預先填補,若將寫入之第一區段並非開始於一多狹槽頁面之狹槽1位置。
頁面位準索引用於無序區塊,且區段位準索引用於暫存記憶體區塊。為了快速存取及處理,在控制器SRAM中維護用於存取所有無序區塊及暫存記憶體區塊之所有必須之索引資訊,即SPBI/CBI。其被週期性寫至該暫存記憶體區塊,只要寫入一新的部分頁面。
通常,將部分元頁面重定位資料與傳入資料共同程式化,以減少程式化循環之數目。當一暫存記憶體區塊(SPB)變滿時,對其進行壓縮。該SPB壓縮是將所有有效資料重定位至一新區塊。由於在SPB中每UB僅有一具有有效資料之頁面,僅需要將彼等頁面複製至新區塊。若每更新區塊存在具有有效資料之多個頁面(其可含有不同或相同之邏輯位址;稍後較佳將其合併。)
儲存於部分頁面中之更新區塊索引
根據本發明又一態樣,儲存於一記憶體區塊中之資料使其索引儲存於一部分頁面之未被資料佔據之部分中。因此,在一經組織成記憶體單元之記憶體中,其中一頁面之記憶體單元為可共同程式化的且一區塊之記憶體頁面為可共同擦除的,當儲存於該等記憶體單元中之資料單元根據一預定順序在該頁面中對準時,且尤其若該頁面在每一擦除後為可一次程式化的,則將存在部分填充之頁面。該區塊之索引隨後儲存於一未填充以更新資料之部分頁面中。該部分頁面可在當前區塊中或另一區塊中。
圖28說明了一用於儲存一記憶體區塊之一索引的較佳機制,其用於將更新資料儲存於該區塊之一部分頁面中。
步驟90:將一非揮發性記憶體組織為記憶體單元之可擦除區塊,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦被組織為一或多個頁面,其中每一頁面中之記憶體單元具有預定頁面偏移,且在一擦除後共同為可一次程式化的。
步驟92:提供一區塊作為一更新區塊,用於記錄邏輯單元之資料之更新版本。
步驟94:自一主機接收邏輯單元之資料。
步驟96:維護該更新區塊中之一資料索引。
步驟98:逐頁記錄至該更新區塊,其中在頁面中根據其頁面偏移將所接收之資料對準,且當將被記錄之頁面具有一未被資料佔據之部分時,亦將該索引記錄至未被資料佔據之部分。
多流尋軌與同步
圖29圖解說明了一用於多流更新之暫存記憶體區塊,其中若干邏輯組同時經受更新。舉例而言,若存在k個正經受更新之邏輯組,則將存在使用k個更新區塊20-1,...,20-k的k個更新流。為避免該等更新區塊中之部分頁面,在另一流(流0)中使用一暫存記憶體區塊30,以在k個更新區塊之k個相應部分頁面中緩衝資料。因此,將存在開放之k+1個區塊及k個部分頁面,以服務k個更新區塊中k個邏輯組之邏輯單元的並行更新。該所示之實例係用於該較佳實施例,其中在暫存記憶體區塊中每更新區塊存在一有效頁面。
由於有效區段分佈於更新及暫存記憶體區塊中,在可在更新及暫存記憶體區塊中找到作為相同邏輯區段之不同複製的功率循環之情況下,可在識別區段之最近寫入版本上出現一問題。在一電源重設後之更新區塊上的一記憶體掃描將建立一邏輯區段之多個版本(若有的話)的優先級,因為該更新區塊之位置以一確定順序填充。同樣掃描該暫存記憶體區塊,可識別一邏輯區段之最後寫入版本。然而,若存在該暫存記憶體區塊中之一最新版本及該更新區塊中之一最新版本,則不易於判定哪一者為真正最新的。舉例而言,在圖27A中,可在兩個流中都找到區段LS8-LS10。藉由不同命令序列-寫入LS8'-LS10';寫入LS8"-LS10";寫入LS8'"-LS11'";寫入LS4'-LS7'可產生相同之資料圖案,如圖27A上。在此情況下,將在該更新區塊中而非在該暫存記憶體區塊中定位該等有效區段。
根據本發明之另一態樣,提供一種方法以將更新資料寫入至一具有同步資訊之非揮發性記憶體,該同步資訊允許識別可存在於多個記憶體區塊上的資料之最近寫入版本。
圖30說明了一將一序列輸入資料寫入至一區塊的習知情況。非揮發性記憶體區塊22經組織以使其以一確定順序被填充。其圖解展示為自頂部填充。因此,資料"A"、"B"、"C"及"A'"之片斷之連續寫入被連續置放於區塊中。以此方式,若例如"A'"為"A"之另一版本,則可自區塊22中之記錄位置判定其為替代"A"的一稍後版本。下文之實施例儘管有效但僅為儲存關於在更新一確定流時該等流有多滿的資訊之較廣想法的特殊情況。
圖31A根據本發明之一較佳實施例說明了一即使當不同之寫入交叉於兩區塊上時記住記錄順序或優先級的機制。諸如資料片段"A"、"B"、"C"及"A'"之每一寫入視一或多個預定條件而定而可被記錄至一第一區塊(例如區塊22)上或一第二區塊(例如區塊32)上。在該實例中,"A"在第一寫入中被記錄於該第二區塊32中。此隨後為一"B"被記錄至該第一區塊22中的第二寫入,及"C"被記錄至該第二區塊32中的第三寫入,及最後"A'"被記錄至該第一區塊22中的第四寫入。
在所示之圖式中,STREAM 0為記錄至該第二區塊32之資料流,且STREAM 1為記錄至該第一區塊22之資料流。在兩個或兩個以上流中之相同邏輯資料之交叉更新的情況下,記住更新之優先級是必要的,其界定最近記錄資料之位置。在一較佳實施例中,此藉由至少每當記錄一給定流時儲存該優先級資訊以完成。
每當STREAM 0中之寫入資料記錄至該區塊32上時,共同儲存該優先級資訊與寫入資料。在該較佳實施例中,該優先級資訊為一寫入指標40,其指向該第一區塊22中之下一空位置(即,下一記錄位置之位址)。該寫入指標與儲存於STREAM 0中之資料共同儲存。
因此,在寫入"A"之操作中,在STREAM 0中將一指向區塊22中之下一空位置之指標PA 40-A與"A"共同儲存於區塊32中。在寫入"B"操作中,由於在STREAM 1中該寫入為向該區塊22的,不儲存指標。在寫入"C"中,在STREAM 0中將一指標PC 40-C與"C"共同儲存於該區塊32中。在向該區塊22之寫入"A'"中,在STREAM 1中不儲存指標。
若在寫入"A'"結束時,該記憶體在一電源中斷後被重設,控制器RAM中之任何索引將丟失,並不得不藉由掃描記憶體以重建。藉由向後掃描,該等區塊22及32中之每一者將定位資料"A"之最後寫入版本。該寫入指標40可用於在該等兩個區塊間判定真正最新版本。舉例而言,指標PC 在記錄"A'"之前指向該區塊22中之一位置,因此"A'"在"C"之後被記錄。又,由於"C"在"A"之後被記錄於該區塊32中一位置,因此可推斷"A'"為"A"的稍後版本。
在另一實施例中,其中每UB存在SPB中之一個以上有效頁面,於是為偵測最近寫入之資料,將不得不分析一個以上寫入指標。
圖31B說明了當該等寫入記錄於兩區塊上時記住記錄順序的另一實施例。此實施例與圖31A所示的相似,除了該寫入指標指向該區塊32中之下一空位置且將其儲存於該區塊22中以外。STREAM 0被記錄至一第二區塊(例如區塊32),而STREAM 1被記錄至一第一區塊(例如區塊22)。每當STREAM 1被記錄至一第一區塊上時,一給出該第二區塊22中之下一記錄位置之位址的第二區塊寫入指標40'與其共同被儲存。在此實例中,將指標P'B 40'-B用"B"記錄。同樣,在STREAM 1中將指標P'A ' -40'-A'用"A'"(記錄於該第一區塊22中)。
圖32A為根據本發明之一通用實施例說明一種在兩資料流間同步記錄順序之方法的流程圖。
步驟100:提供第一及第二非揮發性儲存裝置,每一者用於連續記錄資料。
步驟102:將第一或第二儲存裝置指定為用於優先級資訊之儲存裝置,該優先級資訊用於判定該第一儲存裝置中之第一資料單元是在該第二儲存裝置中之一第二資料之前還是之後被記錄。
步驟110:接收該輸入資料。
步驟120:判定是否滿足用於將接收之輸入資料記錄至該第一儲存裝置中的一預定條件。若滿足,則進行至步驟130',否則進行至步驟140'。
步驟130:將該接收之資料記錄至該第一儲存裝置。同時,若該第一儲存裝置為該指定之儲存裝置,則額外將該優先級資訊記錄至該第一儲存裝置。進行至步驟150。
步驟140:將該接收之資料記錄至該第二儲存裝置。同時,若該第二儲存為該指定之儲存裝置,則額外將該優先級資訊記錄至該第二儲存裝置。進行至步驟150。
步驟150:若存在將被處理之較多輸入資料,則進行至步驟110,否則結束處理。
在一較佳實施例中,該優先級資訊為一寫入指標,其為在非指定儲存裝置中將發生之下一記錄位置之一位址。
圖32B為根據一使用一寫入指標之實施例說明一種在兩個資料流間同步記錄次序之方法的流程圖。
步驟100':提供第一及第二非揮發性儲存裝置,每一者用於連續記錄資料。
步驟110':接收該輸入資料。
步驟120':判定是否滿足用於將接收之輸入資料記錄至該第一儲存裝置中的一預定條件。若滿足,則進行至步驟130',否則進行至步驟140'。
步驟130':獲得在該第二儲存裝置中將發生下一記錄之位置的一位址。
步驟132':將該位址及該接收之輸入資料記錄至該第一儲存裝置。進行至步驟150'。
步驟140':將該接收之輸入資料記錄至該第二儲存裝置。進行至步驟150'。
步驟150':若存在將被處理之較多輸入資料,則進行至步驟110,否則結束處理。
本發明尤其可應用於一非揮發性記憶體,其經組織為記憶體單元之可擦除區塊,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦經組織成一或多個頁面。此外,每一頁面在一擦除後為可一次程式化的,具有多個邏輯單元,每一邏輯單元以一給定頁面偏移而處於一預定順序。該方法大體上提供用於儲存或緩衝一組邏輯單元之更新資料的兩個區塊(例如一更新區塊及一暫存記憶體區塊),並維護用於幫助識別一邏輯單元之最近寫入版本是否位於第一或第二區塊中之同步資訊。關於圖29,若存在多個流,則圖31A所示之實施例為較佳的,因為將所有寫入指標儲存於該SPB中之一位置為較方便的。
更新區塊寫入指標實施例
根據一較佳實施例,每當一寫入指標形式之同步資訊在一暫存記憶體區塊中被緩衝時,該同步資訊與主機資料共同被儲存。該寫入指標為一更新區塊寫入指標,其給出在將該寫入指標儲存於該暫存記憶體區塊中時該更新區塊中之下一寫入位置之位址。特定言之,其被儲存於該暫存記憶體區塊中無論如何不用於儲存主機資料之一部分中。較佳地,該更新區塊寫入指標包括於儲存於該暫存記憶體區塊之一部分頁面之索引SPBI/CBI中。該更新區塊寫入指標將允許判定一緩衝於該暫存記憶體區塊中之給定邏輯區段是否已藉由隨後至該更新區塊之寫入而變為過時。
若存在電源重設,且在兩個區塊中找到所述邏輯區段之兩個版本,則寫入指標將允許決定何版本為真正最新的。舉例而言,若在所指位置之後記錄該更新區塊中之邏輯區段,則其將替代該SPB中部分頁面中之版本。另一方面,若邏輯區段未在該更新區塊中被找到或記錄於一較早之位置處,則結果將是緩衝於該暫存記憶體區塊中之版本仍為有效的。
圖33A展示了在根據一第一次序之兩主機寫入#1及#2後,暫存記憶體區塊及更新區塊之狀態。第一次序是為主機寫入#1而寫入LS10',且為主機寫入#2而寫入LS10"及LS11'。
在主機寫入#1中,該命令為寫入LS10'。由於LS10'並非處於一頁面邊界,其被記錄於一暫存記憶體區塊30中之部分頁面PP0中,該暫存記憶體區塊30以LS8及LS9預先填補並以當前索引SPBI/CBI1 終止。當寫入該部分頁面PP0時,將一寫入指標40包括於儲存於最後狹槽中之該當前索引SPBI/CBI1 50中。寫入指標40指向更新區塊20中之第一空頁面P0。
在主機寫入#2中,該命令為寫入LS10"及LS11。由於LS11'處於一頁面末端,其被直接寫入至該更新區塊20中之P0之最後狹槽(狹槽4)。同時,以LS10'寫入狹槽3,且分別以LS8及LS9來填補狹槽1及2。
若該記憶體現在經受一電源中斷,丟失了在RAM中維護之索引資訊,則對該實體記憶體之向後掃描將試圖重建該索引資訊。將可見,該更新區塊及該暫存記憶體區塊(SPB)都將產生其LS10之最新版本,即LS10'與LS10"。然而,由於LS10"是在該寫入指標記錄於該SPB之PP0中之後記錄的,可推斷其為一較LS10'更後之版本。
圖33B展示了在根據一與圖33A中所示之該第一次序相反之第二次序的兩個主機寫入#1及#2後,暫存記憶體區塊及更新區塊之狀態。該相反次序用於主機寫入#1寫入LS10'及LS11',且用於主機寫入#2寫入LS10"。
在主機寫入#1中,該命令為寫入LS10'及LS11'。由於LS11'處於一頁面末端,其被直接寫入至該更新區塊20中之P0之最後狹槽(狹槽4)。同時,以LS10'寫入狹槽3,且分別以LS8及LS9填補狹槽1及2。
在跟隨主機寫入#1之主機寫入#2中,該命令為寫入LS10"。由於LS10"並非處於一頁面邊界,其被記錄於暫存記憶體區塊30中之部分頁面PP0中,該暫存記憶體區塊30以LS8及LS9預先填補並以當前索引SPBI/CBI2 終止。當寫入該部分頁面PP0時,一寫入指標40包括於儲存於最後狹槽中之該當前索引SPBI/CBI2 50中。該寫入指標40指向更新區塊20中之下一空頁面P1。
在此情況下,在一電源重設後,更新區塊中之邏輯區段LS10'(例如)被發現記錄於該更新區塊20之被指向位置之前。隨後可推斷該更新區塊20中LS10'之最新版本由存在於該暫存記憶體區塊30之部分頁面中的另一版本LS10"替代。
圖34A說明了暫存記憶體區塊索引(SPBI)之一較佳資料結構。該SPBI資訊對於K個更新區塊中之每一者含有以下欄位。此為每邏輯組/UB具有一有效頁面之SPB的特殊情況。
一邏輯組編號識別一給定流中正經受更新之邏輯組。較佳的,對於自由更新區塊或不具有有效暫存記憶體資料之更新區塊儲存空值"FFFF"。
一頁面開始區段為寫入至該暫存記憶體區塊之部分頁面之第一邏輯區段。
一區段運行長度(Sector Run Length)為寫入至一暫存記憶體頁面之部分頁面之有效區段的數目。
一有效頁面編號識別寫入於該暫存記憶體區塊中之唯一有效(唯一有效的)部分頁面。此將為該暫存記憶體區塊中之最後寫入部分頁面。或者,可以區段偏移來實施定址,其指向一更新區塊之部分頁面之第一有效區段。相對於該區塊之開始以計算該區段偏移。在該較佳實施例中,僅一實體頁面含有一給定更新區塊之有效資料。對於未寫入至該暫存記憶體區塊之區段儲存FFFF。
一更新區塊寫入指標40為當最後寫入該暫存記憶體記憶體時相應更新區塊之第一未寫入區段位置之區段位址。自此區段位置寫入至該更新區塊之任何區段將替代寫入至該暫存記憶體區塊中之區段。
圖34B說明了圖33A中所示之主機寫入#1之暫存記憶體區塊索引中的實例值。在此實例中,邏輯組編號為"1",其含有邏輯區段LS0至LSN-1。其在STREAM 1中與一附隨之更新區塊及一暫存記憶體區塊一起更新。該部分頁面為PP0,且其以LS8或"8"開始並具有"3"之行程從而以LS10'結束。該有效部分頁面編號為"0"。最終,寫入指標指向該更新區塊中下一寫入位置,其具有一區段偏移"0"。
顯而易見,若更新之索引僅儲存於暫存記憶體區塊中,且無論何時將資料直接寫入至更新區塊都不寫入該暫存記憶體區塊,則該索引將在彼等情況下變得無效。
通常,整個SPB索引資訊及CBI索引資訊總是維護於控制器SRAM中之資料結構中。基於區段位準索引資訊存取該SPB中之有效區段。在該較佳實施例中,該等SPBI/CBI索引儲存於該暫存記憶體區塊中之非揮發性記憶體中。尤其每當在該暫存記憶體區塊(SPB)中寫入一部分頁面時,將最新之SPBI/CBI儲存於該部分頁面之最後區段中。
該SPB支持多達一預定數目(例如8)之更新區塊。當主機寫入該頁面之最後區段時,該SPB區塊中之部分頁面資料合併至相關聯之更新區塊。在一給定情況下,對於一邏輯組,資料可存在於該SPB中之一個以上部分頁面中,但僅最後寫入之部分頁面之資料係有效的。同樣,一SPBI/CBI區段之多個複製可存在於該SPB中,但僅最後寫入之複製係有效的。當需要將區段寫入至該SPB且該SPB已滿時,將該區塊首先複製至一新SPB區塊,並擦除舊SPB,其後將該等區段寫入至該新的SPB。當因為一連續更新區塊變得無序或因為一先前含有暫存記憶體資料之更新區塊被關閉,SPBI/CBI需要被更新時,亦寫入SPB。
在該較佳實施例中,該暫存記憶體區塊(SPB)寫入為每次一頁面。每流/邏輯組/更新區塊之頁面數目亦被限制為一,所以僅需要最新之SPBI,因為僅存在一可關於所述的該有效複製處於UB或SPB中之邏輯頁面。同樣,若SPB中每UB之頁面數目多於一,則亦將需要分析舊SPBI。
上文描述之實施例儲存一更新區塊寫入指標,作為該暫存記憶體區塊之最新部分頁面中SPBI/CBI區段之部分。替代實施例可能自可存在於多個區塊中之多個版本識別一邏輯區段之有效版本。亦有可能在該暫存記憶體區塊中每流具有一個以上頁面,或若每一邏輯組具有一個以上更新區塊或流。
暫存記憶體區塊寫入指標實施例
根據本發明之另一實施例,維護同步資訊,其將允許判定一緩衝於該暫存記憶體區塊中之給定邏輯區段是否已藉由至該更新區塊之隨後寫入而變為過時。此藉由包括一暫存記憶體寫入指標以完成,該寫入指標給出在將該同步資訊儲存於更新區塊之一頁面中時該暫存記憶體區塊中下一寫入之位置之位址
圖35A及圖35B展示了在圖33A及33B之連續主機寫入後,暫存記憶體區塊及更新區塊分別相對於該暫存記憶體寫入指標之中間狀態。
圖35A說明了在主機寫入#1之後該暫存記憶體區塊及該更新區塊之狀態。在主機寫入#1中,邏輯區段LS10'屬於頁面之狹槽3,且不處於一頁面之邊界處,且因此被記錄於該暫存記憶體區塊30之一部分頁面PP0中。視需要將其以LS8及LS9填補並以當前索引SPBI/CBI1終止。若該記憶體在一電源關閉後已被重新啟動,則該邏輯區段LS10'之有效版本將由最終之SPBI/CBI1索引而正確地定位。此為真的,因為對該更新區塊20未進行任何寫入。
圖35B說明了跟隨主機寫入#1之主機寫入#2,其中該命令為寫入LS11'。由於LS11'處於一頁面邊界(狹槽4),其被記錄於一填滿頁面P0之第四狹槽中,該頁面P0以LS8、LS9及LS10預填補。同步資訊為SPB寫入指標40'之形式,其指向該SPB 30中之下一空位置。不同於早先之實施例,該SPB寫入指標40'不包括於該SPB 30之SPBI/CBI索引中。實情為,其儲存於該更新區塊20中當前正被記錄的頁面中之一區段之一標頭部分中。若該記憶體在一電源關閉後已被重新啟動,則該邏輯區段LS10'之有效版本將在該更新區塊20中被正確定位,因為在由該SPB寫入指標40'所指向之位置前記錄了該SPB中之LS10之版本。
圖36說明了儲存於一被記錄至更新區塊的區段之一額外負擔部分中之暫存記憶體寫入指標。該暫存記憶體寫入指標40'儲存於當前正被記錄至該更新區塊之頁面中的區段中之至少一者中。在該較佳實施例中,將其儲存於一正被寫入之頁面中之區段中之至少一者的額外負擔部分中。
時間戳記實施例
在又一實施例中,可將該同步資訊編碼為寫入至多流之資料區段之時間戳記,以便可正確找到最新版本。
圖37說明了記住兩更新流間之記錄次序的時間戳記之使用。如前所述,更新資料之每一區段可記錄於一第一區塊(STREAM 1)中或一第二區塊(STREAM 2)中。該實例展示:在時刻T1,將"A"記錄於第一區塊,在T2,將"B"記錄於第二區塊中,在T3,將"C"記錄於該第一區塊中,且在T4,將"A'"記錄於該第二區塊中。
對於每個新的資料更新部分儲存至少一時間戳記。因此,"A"將具有時間戳記TS1,"B"具有TS2,"C"具有TS3且"A'"具有TS4。因此,舉例而言,"A'"為"A"之稍後版本,因為其具有一較後之時間戳記。在該較佳實施例中,該時間戳記資訊儲存於一正彼寫入之頁面中之至少之一區段的額外負擔部分中。
具有多區段頁面之區塊的多流更新
根據本發明之另一態樣,一種更新一非揮發性記憶體之方法包括使用一用於記錄更新資料的第一區塊(更新區塊)及一用於在記錄至該更新區塊前臨時儲存某些更新資料的第二區塊(暫存記憶體區塊)。該非揮發性記憶體經組織成可擦除區塊之記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦經組織為一或多個頁面,其中每一頁面能夠儲存具有確定頁面偏移之多個邏輯單元,且在一擦除後共同為可一次程式化的。該方法進一步包括自一主機接收該等邏輯單元,並將該等接收之邏輯單元逐頁對準,以便當滿足一在一接收之邏輯單元具有一頁面末端偏移之預定條件時,將該接收之邏輯單元與先前任何邏輯單元以適當之頁面對準儲存至該更新區塊中之一頁面,否則,將任何剩餘接收之邏輯單元臨時儲存至該暫存記憶體區塊中之一部分頁面。當滿足該預定條件時,最終將該暫存記憶體區塊中之該等邏輯單元傳送至該更新區塊。
在一較佳實施例中,接收該更新資料,並逐頁剖析,用於傳送至該第一區塊(例如更新區塊)。將任何剩餘的緩衝資料之部分頁面傳送至該第二區塊(例如暫存記憶體區塊),且其將保留於該處直至資料之一全頁面變得可用於記錄至該第一區塊。當將該緩衝資料傳送至該第二區塊時,其被逐頁記錄,儘管所記錄之頁面僅被部分地填充以該接收之資料。該部分頁面中之空閒(通常為未使用之)空間用於儲存一用於在第二及第一區塊中定位該資料之索引。
圖38為根據本發明之一通用實施例說明一種將更新資料同時記錄及索引至兩記憶體區塊之方法的流程圖,每一記憶體區塊具有多區段之頁面。
步驟200:將一非揮發性記憶體組織成記憶體單元之可擦除區塊,每一記憶體單元用於儲存一邏輯單元之資料,且每一區塊亦經組織成一或多個頁面,其中每一頁面含有多個記憶體單元,且在一擦除後共同為可一次程式化的。
步驟210:提供一用於全頁面地記錄邏輯單元資料之更新版本的第一區塊。
步驟220:提供一用於緩衝自一主機接收之邏輯單元之資料之更新版本的第二區塊。
步驟232:自一主機接收邏輯單元中之資料。
步驟234:藉由定位具有一頁面末端偏移之任何邏輯單元,逐頁剖析所接收之邏輯單元;步驟236:在以先前邏輯單元之最新版本填充該新頁面時,將具有一頁面末端偏移之每一邏輯單元記錄至該第一區塊中之一新頁面,並將一部分頁面中任何剩餘之所接收的邏輯單元記錄於該第二區塊中。
圖39為一說明了使用一暫存記憶體區塊及一更新區塊的圖37之方法之較特定實施例的流程圖。
步驟310:提供一用於全頁面地記錄邏輯單元之更新版本的更新區塊(UB),每一邏輯單元根據一預定順序具有一預定頁面偏移。
步驟322:提供一用於臨時逐頁緩衝被導向該處的更新之暫存記憶體區塊(SPB)。
步驟324:提供一用於在該SPB中定位有效(最新版本)資料之SPBI索引。
步驟332:藉由邏輯單元接收一當前寫入請求之資料。
步驟334:若該當前邏輯單元於頁面末端處偏移,則進行至步驟340,否則進行至步驟336。
步驟336:若該寫入請求具有將被接收較多資料,則進行至步驟332,否則進行至步驟350。
步驟340:記錄當前邏輯單元處於一頁面末端的UB之一新頁面,且根據該預定順序以有效(最新版本)之邏輯單元填充該頁面之剩餘部分。進行至步驟336。
步驟350:若所有接收之資料已被記錄,則進行至步驟180,否則進行至步驟360。
步驟360:若未記錄之所接收資料不屬於與該SPB中任何現有有效(最新版本)資料相同之頁面,則進行至步驟370,否則進行至步驟362。
步驟362:更新該SPB索引。
步驟364:將該未記錄之所接收資料及任何現有有效資料於其頁面偏移處記錄於該SPB之一新頁面中,以SPB索引終止。進行至步驟380。
步驟370:藉由合併,將來自SPB之當前頁面的現有有效資料重新定位至該UB之一新頁面。
步驟372:更新該SPB索引。
步驟374:將未記錄之所接收資料於其頁面偏移處寫入該SPB之一新頁面中,以SPB索引終止。
步驟380:結束該當前寫入請求。
該SPB支持多達一預定數目(例如,8)之更新區塊。當主機寫入該頁面之最後區段時,該SPB區塊中之部分頁面資料合併至相關聯之更新區塊。在一給定情況下,對於一邏輯組,資料可存在於該SPB中一個以上部分頁面中,但在該較佳實施例中僅最後寫入之部分頁面之資料係有效的。同樣,一SPBI/CBI區段之多個複製可存在於該SPB中,但僅最後寫入之複製係有效的。出於相同考慮,若SPB中每UB之有效頁面數目被限制為一,則僅需要最後之寫入指標。當需要將區段寫入至該SPB且該SPB已滿時,將該區塊首先複製至一新SPB區塊並擦除舊SPB,其後將該等區段寫入至該新的SPB。當因為一連續更新區塊變得無序,或因為一先前含有暫存記憶體資料之更新區塊被關閉,SPBI/CBI需要被更新時,亦寫入SPB。
通常,如先前已提及,每一更新區塊之一個以上SPB部分頁面可用於儲存有效資料。以此方式,若下一主機寫入該頁面之外的區段,則無需將該部分頁面合併以避讓一新頁面。
多流更新機制允許一對更新區塊之較有效利用。此對於具有可一次寫入之多區段頁面之區塊尤其是真的。該機制在更新區塊中消耗較少儲存且需要較少之填補。更重要的是,在連續邏輯區段之一系列獨立主機寫入期間維持該更新區塊中之更新區段之連續順序。
具有預示性管線操作之多流更新
在上文所述之多流更新機制中,每當存在一主機寫入時,將不得不進行決策,以將所接收之資料記錄至更新區塊或暫存記憶體區塊。來自主機之資料單元在其被接收時被逐一監視,直至接收到一具有一末端頁面偏移之資料單元。在此時,確定對於寫入一全頁面之預定條件,儘管可能預先填補。
為寫入至該更新區塊,需要設置將被寫入之頁面用於程式化。此包括定址該頁面,且隨後為該頁面將該資料載入至資料鎖存器。
根據一較佳實施例,實施一預示性管線操作,其中,並非等待直至確定用於記錄至該更新區塊之預定條件,而是設置該更新區塊,從而一旦該主機寫入命令指示由期望被寫入之資料單元潛在地滿足預定條件則進行寫入。以此方式,當等待來自主機之資料單元時,該設置可具有一跳躍式開始。當最終接收之實際資料單元確實滿足該預定條件時,該更新區塊中該頁面之程式化可立即進行,而無需等待設置,藉此改良寫入效能。在該主機寫入中斷及所接收之實際資料單元不再滿足該預定條件之情況下,將放棄該用於記錄至該更新區塊之設置,且作為替代,該等資料單元將被記錄於該暫存記憶體區塊中。
圖40A圖解說明了一具有一組讀取/寫入電路之記憶體裝置,其提供實施本發明之內容。該記憶體裝置包括一兩維記憶體單元陣列400、控制電路410及讀取/寫入電路470。該記憶體陣列400可藉由經由一列解碼器430之字線及藉由經由一行解碼器460之位元線定址。讀取/寫入電路470經實施為一組感應模組480(未圖示),且允許一組(亦被稱為一"頁面")之記憶體單元被並行讀取或程式化。並行操作之一整組p個感應模組480允許沿一列之一頁面之p單元被並行讀取或程式化。一實例記憶體陣列可具有p=512位元組(512×8位元)。在該較佳實施例中,該區塊具有整列單元之布局。在另一實施例中,該區塊為該列中單元之一子集。舉例而言,單元之子集可為整列之一半或整列之四分之一。單元之子集可為鄰近單元或每隔一個單元或每隔一預定數目單元之布局。因此,在一較佳實施例中,自一鄰近之記憶體單元列組成一頁面。在另一實施例中,其中一列記憶體單元被分為多個頁面,提供一頁面多工器350以將讀取/寫入電路470多路傳輸至個別頁面。
控制電路410與讀取/寫入電路470合作以在記憶體陣列400上執行記憶體操作。該控制電路410包括一狀態機412、一晶片上位址解碼器414及一功率控制模組416。該狀態機412提供記憶體操作之晶片位準控制。該晶片上位址解碼器414在由主機或一記憶體控制器使用之位址至由解碼器330及370使用的硬體位址間提供一位址介面。該功率控制模組416控制在記憶體操作期間供應至字線及位元線之功率及電壓。
圖40B說明了一圖40A中所示之記憶體裝置的較佳配置。藉由多個周邊電路對記憶體陣列400之存取在該陣列之相對側上以一對稱樣式實施,以便每一側上之存取線及電路減半。因此,列解碼器被分為列解碼器430A及430B,且行解碼器被分為行解碼器460A及460B。在一將一列記憶體單元劃分為多個區塊之實施例中,該頁面多工器450被分為頁面多工器450A及450B。同樣,該等讀取/寫入電路被分為連接至來自該陣列400底部之位元線的讀取/寫入電路470A及連接至來自該陣列400頂部之位元線的讀取/寫入電路470B。以此方式,讀取/寫入模組之密度及因此之該組感應模組480之密度大體上減半。導引至位於該陣列頂部的該等讀取/寫入模組之資料將經由頂部之I/O傳送。同樣,導引至位於該陣列底部的該等讀取/寫入模組之資料將經由底部之I/O傳送。
圖41更詳細地說明了圖40A中所示之感應模組。每一感應模組480大體上包括一用於感應一記憶體單元之一傳導狀態的感應放大器482、用於儲存所感應資料或將被程式化之資料的一資料鎖存器組484及一用於與外部通訊之I/O電路486。美國專利公告案第2004-0109357-A1號中揭示了一較佳感應放大器,其整個揭示內容以引用之方式併入本文中。
在一程式化操作期間,首先定址所選擇之字線及位元線。此隨後是經由一I/O埠向個別資料鎖存器傳送將被程式化之資料。隨後,在將程式化電壓施加至字線以開始程式化之前將位元線預充電。程式化電壓之實際施加前的步驟可被認為是程式化設置。當頁面尺寸相當大時,將程式資料傳送至該等資料鎖存器所需之時間亦將相當多。
在一主機寫入期間,該主機首先發送一主機寫入命令,其指示記憶體裝置期望寫入之資料單元之範圍。此隨後是逐一資料單元地傳輸該範圍內之資料單元,直至達到該範圍之末端。視協定而定,有可能的是,該傳輸可被意外中斷,且在一新的寫入命令中發送剩餘資料單元。
為改良寫入效能,將需要具有一管線操作,其中可在仍在接收資料單元時進行程式化設置過程。然而,在一可視是否接收到確定資料單元而定將資料單元記錄至多個儲存裝置中之任一者的多流機制中,記錄至一給定儲存裝置之定址將不確定,直至實際上無中斷地接收到該等確定資料單元。
為克服此問題,使用一預示性管線機制。若在由主機寫入命令所指示之範圍內找到導致一向一給定儲存裝置記錄的該等確定資料單元,則該給定儲存裝置將被立即設置用以程式化。當實際上接收到該等確定資料單元時,該給定儲存裝置將能夠程式化該等資料單元而無歸因於程式化設置之延遲。另一方面,若彼等確定資料單元由於中斷而未能物化,則將放棄對該給定儲存裝置之程式化設定,且將選擇另一儲存裝置用於設置及隨後程式化作為替代。
圖42為根據一較佳實施例說明一使用一預示性管線機制之多流更新的流程圖。
步驟500:提供用於記錄主機資料單元之第一及第二儲存裝置。舉例而言,該第一儲存裝置為一更新區塊,其為一專用於儲存更新資料之可擦除區塊,且該第二儲存裝置為一暫存記憶體區塊,其為用於臨時緩衝向該更新區塊傳送中的更新資料之另一可擦除區塊。
步驟510:接收指示將被寫入之資料單元之範圍的主機寫入命令。
步驟512:若該範圍之資料單元含有滿足一用於將資料單元記錄至該第一儲存裝置之預定條件之資料單元,則進行至步驟520,否則進行至步驟530。舉例而言,將該可擦除區塊組織為頁面,每一頁面能儲存可共同程式化之多個資料單元。該等資料單元以一邏輯連續順序儲存於一頁面中,以便每一資料單元具有一預定之頁面偏移。該用於記錄至該更新區塊之預定條件為當可記錄一全頁面時。一充分條件為當存在一具有一末端頁面偏移之資料單元時,其中若需要,藉由在該頁面中預填補任何先前資料單元以形成一全頁面。若未滿足該預定條件,則將該主機資料記錄至該暫存記憶體區塊。
步驟520:設置位址,為向該第一儲存裝置記錄做準備。舉例而言,若該範圍包括一具有一末端頁面偏移之資料單元,則將假定將一全頁面記錄至該更新區塊。在該情況下,該更新區塊中之一新頁面將被定址以用於記錄。
步驟522:載入具有所接收之資料的資料鎖存器,為向該第一儲存裝置記錄做準備。一旦自主機接收到資料單元,則將其載入至該資料鎖存器用於程式化一新頁面。
步驟524:若實際上接收到滿足該預定條件之資料單元,則進行至步驟540,否則進行至步驟526。舉例而言,當自主機實際上接收到具有一末端頁面偏移之資料單元時,可明確地形成預示性全頁面。
步驟526:中止向該第一儲存裝置之記錄的設置。進行至步驟530。舉例而言,若所期望之具有一末端頁面偏移之資料單元由於中斷而未到達,則將被記錄至該更新區塊的一全頁面之預示不再為真。在該情況下,將不得不放棄該更新區塊之程式化設置。實情為,現將設置該暫存記憶體區塊以用於程式化。
步驟530:設置位址,為向該第二記錄做準備。舉例而言,當未滿足用於將一全頁面記錄至該更新區塊之預定條件時,主機資料將被記錄至該暫存記憶體區塊。在該情況下,將定址該暫存記憶體區塊中之一新頁面以用於記錄。
步驟532:載入具有所接收資料之資料鎖存器,為向該第二儲存裝置記錄做準備。一旦自主機接收到資料單元,則將其載入至該等資料鎖存器用於程式化一新頁面。
步驟540:將該等資料鎖存器中之資料程式化至已定址之儲存裝置。舉例而言,當藉由接收之資料單元確定向該更新區塊或向該暫存記憶體區塊之預示性記錄時,可程式化該設置區塊而無延遲。
步驟550:結束當前之主機寫入。
視記憶體架構而定,步驟520及530可處於不同順序,諸如可在步驟522或步驟532中載入該等資料鎖存器後選擇位址。
在另一較佳實施例中,在資料正被接收時且當在將該所接收之資料記錄至該第一儲存裝置還是第二儲存裝置上初始存在不確定性時,將該接收之資料載入至程式化電路之資料鎖存器用於第一與第二儲存裝置。以此方式,該資料將總為可立即用於程式化第一或第二儲存裝置。在一特殊情況下,該等第一及第二儲存裝置共用相同之資料鎖存器組。舉例而言,當第一及第二儲存裝置處於相同記憶體平面中時,其可由具有相同感應放大器及資料鎖存器組的相同之程式化電路組提供服務。在該情況下,資料將被載入至一預設資料鎖存器組,而與將程式化第一儲存裝置還是第二儲存裝置無關。
在該等第一及第二儲存裝置由不同之資料鎖存器組提供服務之情況下,例如在處於相同平面中或處於不同記憶體平面中之不同記憶體頁面中之情況下,將該資料載入至兩資料鎖存器組。
圖43為根據另一實施例說明一多流更新之流程圖,其中在發送正確目標位址前載入程式化資料。
步驟600:提供用於記錄主機資料單元之第一及第二儲存裝置。
步驟610:接收主機資料。
步驟620:在資料正被接收至用於程式化該第一儲存裝置的資料鎖存器及用於程式化該第二儲存裝置之資料鎖存器時載入資料。
步驟630:視所接收之資料是否滿足一預定條件而定來定址第一或第二儲存裝置以用於記錄。
步驟640:將資料自其資料鎖存器程式化至已定址之儲存裝置。
步驟650:結束當前之主機寫入。
儘管本發明已關於多種例示性實施例而描述,但是應瞭解本發明有權在所附申請專利範圍之整個範疇內受保護。
10...原始區塊
11...積體電路裝置、記憶體晶片
13...積體電路裝置、記憶體晶片
15...記憶體單元陣列
17...邏輯電路
19...控制器
20...更新區塊
20-1…20-k...更新區塊
21...微處理器
22...非揮發性記憶體區塊
23...唯讀記憶體(ROM)
25...緩衝記憶體(RAM)
27...電路
29...電路
30...暫存記憶體區塊
31...連接
31'...連接
32...區塊
33...電路
35...介面電路
37...微處理器
39...ROM
40...寫入指標
40-A...指標PA
40-C...指標PC
40'...寫入指標
40'-B...指標
41...RAM
43...子系統
50...索引區段
51...使用者資料
53...ECC
55...參數
57...ECC
59...實例擦除區塊
61...邏輯資料區塊
65...共同源極
67...電路
70...電荷儲存電晶體
71...電荷儲存電晶體
72...電荷儲存電晶體
74...電荷儲存電晶體
77...選擇電晶體
79...選擇電晶體
81...電路
83...線
84...線
350...頁面多工器
400...記憶體單元陣列
410...控制電路
412...狀態機
414...晶片上位址解碼器
416...功率控制模組
430...列解碼器
430A...列解碼器
430B...列解碼器
450...頁面多工器
450A...頁面多工器
450B...頁面多工器
460...行解碼器
460A...行解碼器
460B...行解碼器
470...讀取/寫入電路
470A...讀取/寫入電路
470B...讀取/寫入電路
480...感應模組
482...感應放大器
484...資料鎖存器組
486...I/O電路
800...作用區塊
900...作用區塊
1000...作用區塊
1010...作用區塊
1110...作用區塊
1120...暫存記憶體區塊
1130...作用區塊
1140...暫存記憶體區塊
1252...作用區塊
1250...暫存記憶體區塊
1254...原始區塊
1460...暫存記憶體區塊
1462...作用區塊
1570...原始區塊
1572...新區塊
1674...暫存記憶體區塊
1676...新區塊
1780...暫存記憶體區塊
1890...暫存記憶體區塊
2100...暫存記憶體區塊
2110...區段
2220...區段
2221...區段
2230...索引區段
2340...區段
2341...區段
2350...索引區段
2460...區段
2461...區段
2462...區段
2470...索引區段
2560...索引區段
圖1A及1B分別為共同操作之一非揮發性記憶體及一主機系統之方塊圖。
圖2說明了圖1A之記憶體陣列之一第一實例組織。
圖3展示了一具有如儲存於圖1A之記憶體陣列中的額外負擔資料之實例主機資料區段。
圖4說明了圖1A之記憶體陣列之一第二實例組織。
圖5說明了圖1A之記憶體陣列之一第三實例組織。
圖6展示了圖1A之記憶體陣列之該第三實例組織之一擴展。
圖7係一處於一特殊組態的圖1A之陣列之一組記憶體單元的電路圖。
圖8展示了一諸如圖1A之記憶體陣列的記憶體陣列區塊中之資料區段之儲存。
圖9展示了一諸如圖1A之記憶體陣列的記憶體陣列區塊中之資料區段之替代儲存。
圖10A展示了在一記憶體回收操作期間在複製至另一區塊後圖8或9之資料區段。
圖10B展示了在一第二記憶體回收操作期間在複製至另一區塊後圖10A之資料區段。
圖10C展示了在接收較多資料區段後圖10B之區塊。
圖11A展示了一使用兩擦除區塊、一作用區塊及一暫存記憶體區塊以儲存圖10A及10B之資料區段的替代儲存配置。
圖11B展示了一使用兩元區塊、一作用區塊及一暫存記憶體區塊以儲存圖10A及10B之資料區段的替代儲存配置。
圖12A展示了用於儲存資料區段,以便可在儲存而未觸發一記憶體回收操作時更新該等資料區段的兩區塊、一作用區塊及一暫存記憶體區塊。
圖12B展示了一圖12A之替代儲存系統,其允許在儲存而未觸發一記憶體回收時更新一頁面之所有區段,且圖12C展示了使用暫存記憶體區塊1250更新資料之另一實例。
圖13展示了用於在多位準單元中儲存兩位元資料之四個臨界電壓範圍。
圖14展示了多位準單元之兩區塊,一作用區塊及一暫存記憶體區塊,其中該暫存記憶體區塊保留一作用區塊之一下部頁面的一複製。
圖15展示了來自儲存於一區塊中之兩檔案的資料區段,及當更新該等兩個檔案需要該記憶體陣列中一個以上空間區塊時該等資料區段之後隨儲存。
圖16展示了一更新圖15之該等資料區段之替代系統,其中一暫存記憶體區塊在其被複製至一作用區塊之前儲存某些區段。
圖17展示了在相同頁面中儲存不相關資料之區段並隨後將此資料複製至不同位置的一暫存記憶體區塊。
圖18展示了一儲存經受多個更新的不相關資料之區段的暫存記憶體區塊。
圖19展示了由一標記區段識別之暫存記憶體區塊。
圖20展示了儲存一組區段及一索引區段的圖19之暫存記憶體區塊。
圖21展示了儲存一第二組區段及一替換該第一索引區段之第二索引區段的圖20之暫存記憶體區塊。
圖22展示了儲存一第三組區段及一替換該第二索引區段之第三索引區段的圖21之暫存記憶體區塊。
圖23展示了當將一組複製至另一區塊時具有一替換該第三索引區段之第四索引區段的圖22之暫存記憶體區塊。
圖24說明了一以習知方式正被更新並儲存於一具有單區段頁面之更新區塊中的邏輯組中之區段之實例。
圖25說明了當應用於頁面為多區段且可能為可一次寫入的一記憶體時,圖24中展示的相同寫入次序。
圖26為一根據本發明一通用實施例說明一種更新資料方法之流程圖,該方法藉由將一第一記憶體區塊與一第二記憶體區塊結合使用,其中儲存資料之一索引儲存於該第二區塊中。
圖27A根據本發明之一較佳實施例說明一更新資料及維護索引之特定實例,其藉由將一更新區塊與一暫存記憶體區塊結合使用。
圖27B根據本發明之一較佳實施例說明更新正被維護之資料的連續順序之另一實例,其藉由將一更新區塊與一暫存記憶體區塊結合使用。
圖28說明了一用於儲存一記憶體區塊之一索引的較佳機制,該記憶體區塊用於將更新資料儲存於該區塊之一部分頁面中。
圖29圖解說明了一用於多流更新之暫存記憶體區塊,其中若干邏輯組同時經受更新。
圖30說明了一將一序列輸入資料寫入至一區塊的習知情況。
圖31A根據本發明之一較佳實施例說明一即使當不同之寫入交叉於兩區塊上時記住記錄順序或優先級的機制。
圖31B說明了當該等寫入記錄於兩區塊上時記住記錄順序之另一實施例。
圖32A為根據本發明之一通用實施例說明一種在兩資料流間同步記錄次序之方法的流程圖。
圖32B為根據一使用寫入指標之實施例說明一種在兩資料流間同步記錄次序之方法的流程圖。
圖33A展示了在兩主機根據一第一次序寫入#1及#2後,暫存記憶體區塊及更新區塊之狀態。
圖33B展示了在兩主機根據一與圖33A中所示之該第一次序相反之第二次序寫入#1及#2後,暫存記憶體區塊及更新區塊之狀態。
圖34A說明了一暫存記憶體區塊索引(SPBI)之較佳資料結構。
圖34B說明了暫存記憶體區塊索引中對於圖33A中所示之主機寫入#1之實例值。
圖35A及圖35B展示了在圖33A及圖33B之連續主機寫入後,暫存記憶體區塊及更新區塊分別相對於該暫存記憶體寫入指標的中間狀態。
圖36說明了儲存於一被記錄至更新區塊的區段之一額外負擔部分中的暫存記憶體寫入指標。
圖37說明了使用時間戳記以記住兩個更新流間之記錄次序。
圖38為根據本發明之一通用實施例說明一種將更新資料同時記錄及索引至兩個記憶體區塊之方法的流程圖,每一記憶體區塊具有多區段頁面。
圖39為一說明一使用暫存記憶體區塊及更新區塊的圖37之方法的較特定實施例之流程圖。
圖40A圖解說明了一具有一組讀取/寫入電路之記憶體裝置,其提供實施本發明之內容。
圖40B說明了圖40A中所示之記憶體裝置的較佳配置。
圖41更詳細地說明了圖40A中所示之感應模組。
圖42為根據一較佳實施例說明一使用一預示性管線機制之多流更新的流程圖。
圖43為根據另一實施例說明一多流更新之流程圖,其中在發送正確目標位址前載入程式資料。

Claims (61)

  1. 一種記錄來自一主機之資料單元之方法,其包含:提供第一及第二非揮發性儲存裝置;接收一主機寫入命令,其指示該等將被寫入之資料單元;基於該等將被寫入之資料單元視是否滿足一預定條件而定,設置該第一非揮發性儲存裝置或該第二非揮發性儲存裝置以用於記錄;在自該主機接收該等資料單元時,將該等資料單元發送至該正被設置之非揮發性儲存裝置;及當基於該等經接收之資料單元確定該預定條件時,將該等資料單元記錄至該設置之非揮發性儲存裝置,否則若未設置則設置該第二非揮發性儲存裝置,並將該等經接收之資料單元記錄至該第二非揮發性儲存裝置。
  2. 如請求項1之方法,其中該設置包括定址該經選擇之非揮發性儲存裝置。
  3. 如請求項1之方法,其中該將該等資料單元發送至該非揮發性儲存裝置包括將該等資料單元發送至一用於程式化該經選擇之非揮發性儲存裝置之資料鎖存器組。
  4. 如請求項1之方法,其進一步包含:將資料組織為具有一預定順序之資料單元;及將該等第一及第二非揮發性儲存裝置組織為頁面,每一頁面用於共同程式化具有預定頁面偏移之多個資料單元;且其中: 該預定條件為當該等資料單元其中之一具有一頁面末端偏移時;及該將該資料記錄至該第一非揮發性儲存裝置包括將該頁面末端資料單元及該頁面中之任何先前資料單元記錄至該第一非揮發性儲存裝置之一頁面。
  5. 如請求項4之方法,其中該等第一及第二非揮發性儲存裝置中之每一非揮發性儲存裝置係用於儲存可共同擦除的一區塊之記憶體單元。
  6. 如請求項4之方法,其中:該來自該主機之資料為一組資料單元之更新資料;該第一非揮發性儲存裝置用於儲存該更新資料;及該第二非揮發性儲存裝置用於在將該更新資料傳送至該第一非揮發性儲存裝置之前緩衝該更新資料。
  7. 如請求項4之方法,其進一步包含:將該資料組織為具有一預定順序之資料單元;及將該等第一及第二非揮發性儲存裝置組織為頁面,每一頁面用於共同程式化具有預定頁面偏移之多個資料單元。
  8. 如請求項7之方法,其中每一頁面在一擦除後為可一次程式化的。
  9. 如請求項7之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將該儲存於該第二非揮發性儲存裝置中之資料的至少一索引記錄於其之一頁面。
  10. 如請求項9之方法,其中將該儲存於該第二非揮發性儲存裝置中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  11. 如請求項7之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將該儲存於該等第一及第二非揮發性儲存裝置中之資料的至少一索引記錄於其之一頁面。
  12. 如請求項11之方法,其中該儲存於該等第一及第二非揮發性儲存裝置中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  13. 如請求項7之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將一指向該第一非揮發性儲存裝置之下一記錄位置的指標記錄於其之一頁面。
  14. 如請求項13之方法,其中將該指標記錄於一具有該頁面末端偏移之頁面之一位置。
  15. 如請求項1至14中任一項之方法,其中該等第一及第二非揮發性儲存裝置由個別地儲存一位元之資料之記憶體單元組成。
  16. 如請求項1至14中任一項之方法,其中該等第一及第二非揮發性儲存裝置由個別地儲存一位元以上之資料之記憶體單元組成。
  17. 一種非揮發性記憶體,其包含:一經組織為複數個區塊之記憶體,每一區塊為可共同 擦除之複數個記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料;一用於控制該等區塊之操作的控制器;第一及第二區塊,每一者用於記錄來自一主機之資料;一用於自該主機接收該資料之緩衝器;及該控制器基於該等將被寫入之資料單元視是否滿足一預定條件而定,設置該第一區塊或該第二區塊以用於記錄;及在自該主機接收該等資料單元時將該等資料單元發送至該正被設置之區塊;及當基於該等經接收之資料單元確定該預定條件時,將該等資料單元記錄至該設置之區塊,否則若未設置則設置該第二區塊,並將該等經接收之資料單元記錄至該第二區塊。
  18. 如請求項17之非揮發性記憶體,其中該非揮發性記憶體為一可移除記憶卡之形式。
  19. 如請求項17之非揮發性記憶體,其中:該來自該主機之資料為一組資料單元之更新資料;該第一區塊用於儲存該更新資料;及該第二區塊用於在將該更新資料傳送至該第一區塊之前緩衝該更新資料。
  20. 如請求項17之非揮發性記憶體,其中:該資料經組織為具有一預定順序之資料單元;及該等第一及第二區塊經組織為頁面,每一頁面用於共 同程式化具有預定頁面偏移之多個資料單元。
  21. 如請求項20之非揮發性記憶體,其中每一頁面在一擦除後為可一次程式化的。
  22. 如請求項17之非揮發性記憶體,其中:該預定條件為當該等經接收之資料單元其中之一具有一頁面末端偏移時;及該控制器控制將該資料記錄至該第一區塊,該記錄包括將該頁面末端資料單元及該頁面中之任何先前資料單元記錄至該第一區塊之一頁面。
  23. 如請求項17之非揮發性記憶體,其中:該控制器控制將該資料記錄至該第二區塊,該記錄包括將該儲存於該第二區塊中之資料的至少一索引記錄於其之一頁面。
  24. 如請求項23之非揮發性記憶體,其中該儲存於該第二區塊中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  25. 如請求項17之非揮發性記憶體,其中:該控制器控制將該資料記錄至該第二區塊,該記錄包括將該儲存於該等第一及第二區塊中之資料的至少一索引記錄於其之一頁面。
  26. 如請求項25之非揮發性記憶體,其中該儲存於該等第一及第二區塊中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  27. 如請求項17之非揮發性記憶體,其中: 該控制器控制將該資料記錄至該第二區塊,該記錄包括將一指向該第一區塊之下一記錄位置的指標記錄於其之一頁面。
  28. 如請求項27之非揮發性記憶體,其中該指標記錄於一具有該頁面末端偏移之頁面之一位置。
  29. 如請求項17至28中任一項之非揮發性記憶體,其中該等第一及第二區塊由個別地儲存一位元之資料之記憶體單元組成。
  30. 如請求項17至28中任一項之非揮發性記憶體,其中該等第一及第二區塊由個別地儲存一位元以上之資料之記憶體單元組成。
  31. 一種非揮發性記憶體,其包含:一經組織為複數個區塊之記憶體,每一區塊為可共同擦除之複數個記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料;一用於控制該等區塊之操作的控制器;第一及第二區塊,每一者用於連續記錄來自一主機之資料;一用於自該主機接收該資料之緩衝器;及用於控制當滿足一預定條件時將該資料記錄至該第一區塊,或當未滿足該預定條件時將該資料記錄至該第二區塊的構件。
  32. 一種記錄來自一主機之資料之方法,其包含: 提供第一及第二非揮發性儲存裝置;自該主機接收該資料;在該資料被接收至用於程式化該第一非揮發性儲存裝置之一資料鎖存器組及用於程式化該第二非揮發性儲存裝置之一資料鎖存器組時載入該資料;基於該經接收之資料視是否滿足一預定條件而定,定址該第一非揮發性儲存裝置或該第二非揮發性儲存裝置;及將該資料自其資料鎖存器組記錄至該已定址之非揮發性儲存裝置。
  33. 如請求項32之方法,其中該用於程式化該第一非揮發性儲存裝置之資料鎖存器組與用於程式化該第二非揮發性儲存裝置之資料鎖存器組相同。
  34. 如請求項32之方法,其進一步包含:將該資料組織為具有一預定順序之資料單元;及將該等第一及第二非揮發性儲存裝置組織為頁面,每一頁面用於共同程式化具有預定頁面偏移之多個資料單元;且其中:該預定條件為當該等資料單元其中之一具有一頁面末端偏移時;及該將該資料記錄至該第一非揮發性儲存裝置包括將該頁面末端資料單元及該頁面中之任何先前資料單元記錄至該第一非揮發性儲存裝置之一頁面。
  35. 如請求項34之方法,其中該等第一及第二非揮發性儲存 裝置中之每一者用於儲存可共同擦除的一區塊之記憶體單元。
  36. 如請求項34之方法,其中:該來自該主機之資料為一組資料單元之更新資料;該第一非揮發性儲存裝置用於儲存該更新資料;及該第二非揮發性儲存裝置用於在將該更新資料傳送至該第一非揮發性儲存裝置之前緩衝該更新資料。
  37. 如請求項34之方法,其進一步包含:將該資料組織為具有一預定順序之資料單元;及將該等第一及第二非揮發性儲存裝置組織為頁面,每一頁面用於共同程式化具有預定頁面偏移之多個資料單元。
  38. 如請求項37之方法,其中每一頁面在一擦除後為可一次程式化的。
  39. 如請求項37之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將該儲存於該第二非揮發性儲存裝置中之資料的至少一索引記錄於其之一頁面。
  40. 如請求項39之方法,其中將該儲存於該第二非揮發性儲存裝置中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面一位置。
  41. 如請求項37之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將該儲存於該等第一及第二非揮發性儲存裝置中之資料的至少 一索引記錄於其之一頁面。
  42. 如請求項41之方法,其中將該儲存於該等第一及第二非揮發性儲存裝置中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  43. 如請求項37之方法,其中:該將資料記錄至該第二非揮發性儲存裝置包括將一指向該第一非揮發性儲存裝置之下一記錄位置的指標記錄於其之一頁面。
  44. 如請求項43之方法,其中將該指標記錄於一具有該頁面末端偏移之頁面之一位置。
  45. 如請求項32至44中任一項之方法,其中該等第一及第二非揮發性儲存裝置由個別地儲存一位元之資料之記憶體單元組成。
  46. 如請求項32至44中任一項之方法,其中該等第一及第二非揮發性儲存裝置由個別地儲存一位元以上之資料之記憶體單元組成。
  47. 一種非揮發性記憶體,其包含:一經組織為複數個區塊之記憶體,每一區塊為可共同擦除之複數個記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料;一用於控制該等區塊之操作的控制器;第一及第二區塊,每一者用於記錄來自一主機之資料;一用於自該主機接收該資料之緩衝器;及該控制器控制在該資料被接收至用於程式化該第一區 塊之一資料鎖存器組及用於程式化該第二區塊之一資料鎖存器組時載入該資料;基於該經接收之資料視是否滿足一預定條件而定,定址該第一區塊或該第二區塊;及將該資料自其資料鎖存器組程式化至該已定址之區塊。
  48. 如請求項47之非揮發性記憶體,其中該非揮發性記憶體為一可移除記憶卡之形式。
  49. 如請求項47之非揮發性記憶體,其中:該來自該主機之資料為一組資料單元之更新資料;該第一區塊用於儲存該更新資料;及該第二區塊用於在將該更新資料傳送至該第一區塊之前緩衝該更新資料。
  50. 如請求項47之非揮發性記憶體,其中:該資料經組織為具有一預定順序之資料單元;及該等第一及第二區塊經組織為頁面,每一頁面用於共同程式化具有預定頁面偏移之多個資料單元。
  51. 如請求項49之非揮發性記憶體,其中每一頁面在一擦除後為可一次程式化的。
  52. 如請求項47之非揮發性記憶體,其中:該預定條件為當該等經接收之資料單元其中之一具有一頁面末端偏移時;及該控制器控制將該資料記錄至該第一區塊,該記錄包括將該頁面末端資料單元及該頁面中之任何先前資料單 元記錄至該第一區塊之一頁面。
  53. 如請求項47之非揮發性記憶體,其中:該控制器控制將該資料記錄至該第二區塊,該記錄包括將該儲存於該第二區塊中之資料的至少一索引記錄於其之一頁面。
  54. 如請求項52之非揮發性記憶體,其中該儲存於該第二區塊中之資料的至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  55. 如請求項47之非揮發性記憶體,其中:該控制器控制將該資料記錄至該第二區塊,該記錄包括將該儲存於該等第一及第二區塊中之資料的至少一索引記錄於其之一頁面。
  56. 如請求項54之非揮發性記憶體,其中該儲存於該等第一及第二區塊中之資料的該至少一索引記錄於該具有一頁面末端偏移之頁面的一位置。
  57. 如請求項47之非揮發性記憶體,其中:該控制器控制將該資料記錄至該第二區塊,該記錄包括將一指向該第一區塊之下一記錄位置的指標記錄於其之一頁面。
  58. 如請求項57之非揮發性記憶體,其中該指標記錄於一具有該頁面末端偏移之頁面之一位置。
  59. 如請求項47至58中任一項之非揮發性記憶體,其中該等第一及第二區塊由個別地儲存一位元之資料之記憶體單元所組成。
  60. 如請求項47至58中任一項之非揮發性記憶體,其中該等第一及第二區塊由個別地儲存一位元以上之資料之記憶體單元所組成。
  61. 一種非揮發性記憶體,其包含:一經組織為複數個區塊之記憶體,每一區塊為可共同擦除之複數個記憶體單元,每一記憶體單元用於儲存一邏輯單元之資料;第一及第二區塊,每一者用於連續記錄來自一主機之資料;一用於自該主機接收該資料之緩衝器;用於在該資料被接收至用於程式化該第一區塊之一資料鎖存器組及用於程式化該第二區塊之一資料鎖存器組時載入該資料的構件;用於基於該經接收之資料視是否滿足一預定條件而定,定址該第一區塊或該第二區塊的構件;及用於將該資料自其資料鎖存器組記錄至該已定址之區塊的構件。
TW094144468A 2004-12-16 2005-12-15 具多流更新之非揮發性記憶體及方法 TWI417717B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/016,285 US7315916B2 (en) 2004-12-16 2004-12-16 Scratch pad block
US11/191,686 US7412560B2 (en) 2004-12-16 2005-07-27 Non-volatile memory and method with multi-stream updating

Publications (2)

Publication Number Publication Date
TW200636458A TW200636458A (en) 2006-10-16
TWI417717B true TWI417717B (zh) 2013-12-01

Family

ID=36127498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094144468A TWI417717B (zh) 2004-12-16 2005-12-15 具多流更新之非揮發性記憶體及方法

Country Status (7)

Country Link
US (2) US7412560B2 (zh)
EP (2) EP2336891A1 (zh)
JP (1) JP4431175B2 (zh)
KR (1) KR101202620B1 (zh)
IL (1) IL183978A0 (zh)
TW (1) TWI417717B (zh)
WO (1) WO2006065668A2 (zh)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877543B2 (en) * 2004-12-03 2011-01-25 Hewlett-Packard Development Company, L.P. System and method for writing data and a time value to an addressable unit of a removable storage medium
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage 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
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
JP2006285600A (ja) * 2005-03-31 2006-10-19 Tokyo Electron Device Ltd 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム
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
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile 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
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
US8307149B2 (en) * 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
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
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
JP4418439B2 (ja) * 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
MX2009001345A (es) * 2006-08-05 2009-07-17 Benhov Gmbh Llc Elemento y metodo de almacenamiento de estado solido.
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
KR100816761B1 (ko) * 2006-12-04 2008-03-25 삼성전자주식회사 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
JP2008152464A (ja) 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
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
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US20080189473A1 (en) * 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
KR100866959B1 (ko) * 2007-02-13 2008-11-05 삼성전자주식회사 불휘발성 메모리 장치의 부분 페이지 데이터 기입 방법
JP4398988B2 (ja) * 2007-03-26 2010-01-13 株式会社東芝 構造化文書を管理する装置、方法およびプログラム
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
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
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
EP2183671B1 (en) * 2007-08-29 2018-08-29 Lifescan Scotland Limited A data management system and method
JP4949176B2 (ja) * 2007-09-10 2012-06-06 ソニー株式会社 情報処理装置、記録方法およびコンピュータプログラム
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US20090109755A1 (en) * 2007-10-24 2009-04-30 Mori Edan Neighbor block refresh for non-volatile memory
US7855916B2 (en) 2007-10-24 2010-12-21 Rao G R Mohan Nonvolatile memory systems with embedded fast read and write memories
CN101425338B (zh) * 2007-10-29 2011-05-18 群联电子股份有限公司 非易失性存储器的写入方法及使用此方法的控制器
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
TWI363966B (en) * 2008-01-23 2012-05-11 Phison Electronics Corp Method, system and controller for transmitting and dispatching data stream
KR101032671B1 (ko) 2008-03-01 2011-05-06 가부시끼가이샤 도시바 메모리 시스템
JP4691122B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
CN101604291B (zh) * 2008-06-12 2012-07-18 联阳半导体股份有限公司 增进多级单元非挥发性内存的数据存取可靠度的方法
US8762654B1 (en) * 2008-07-02 2014-06-24 Marvell International Ltd. Selectively scheduling memory accesses in parallel based on access speeds of memory
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
US7827336B2 (en) * 2008-11-10 2010-11-02 Freescale Semiconductor, Inc. Technique for interconnecting integrated circuits
US7830700B2 (en) * 2008-11-12 2010-11-09 Seagate Technology Llc Resistive sense memory array with partial block update capability
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
WO2010078222A1 (en) * 2009-01-05 2010-07-08 Sandisk Corporation Non-volatile memory and method with write cache partitioning
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
EP2264604A1 (en) * 2009-06-15 2010-12-22 Thomson Licensing Device for real-time streaming of two or more streams in parallel to a solid state memory device array
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
WO2011021367A1 (ja) * 2009-08-21 2011-02-24 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4956593B2 (ja) * 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
TWI417889B (zh) * 2009-12-30 2013-12-01 Silicon Motion Inc 快閃記憶體之寫入逾時控制方法及其記憶裝置
TWI446349B (zh) * 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
JP2012128643A (ja) * 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
KR101686010B1 (ko) 2010-12-21 2016-12-13 삼성전자주식회사 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
US8848445B2 (en) * 2011-05-17 2014-09-30 Sandisk Technologies Inc. System and method for minimizing write amplification while maintaining sequential performance using logical group striping in a multi-bank system
US8924629B1 (en) * 2011-06-07 2014-12-30 Western Digital Technologies, Inc. Mapping table for improving write operation efficiency
KR101904581B1 (ko) 2011-11-18 2018-10-04 샌디스크 테크놀로지스 엘엘씨 고장난 워드 라인 스크린 및 데이터 복원을 갖는 비휘발성 저장장치
KR20130078973A (ko) * 2012-01-02 2013-07-10 삼성전자주식회사 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US9202577B2 (en) 2012-03-30 2015-12-01 Intel Corporation Solid state drive management in power loss recovery
WO2013147894A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Solid state drive management in power loss recovery
JP2013229086A (ja) * 2012-04-27 2013-11-07 Sony Corp メモリ装置、メモリ制御装置、メモリ制御方法
US20140258347A1 (en) * 2013-03-11 2014-09-11 Microsoft Corporation Grouping files for optimized file operations
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US10599697B2 (en) 2013-03-15 2020-03-24 Uda, Llc Automatic topic discovery in streams of unstructured data
US10204026B2 (en) 2013-03-15 2019-02-12 Uda, Llc Realtime data stream cluster summarization and labeling system
US10698935B2 (en) 2013-03-15 2020-06-30 Uda, Llc Optimization for real-time, parallel execution of models for extracting high-value information from data streams
US9471656B2 (en) 2013-03-15 2016-10-18 Uda, Llc Massively-parallel system architecture and method for real-time extraction of high-value information from data streams
US10430111B2 (en) 2013-03-15 2019-10-01 Uda, Llc Optimization for real-time, parallel execution of models for extracting high-value information from data streams
KR20150015621A (ko) * 2013-07-31 2015-02-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US8631325B1 (en) 2013-08-09 2014-01-14 Zoomdata, Inc. Real-time data visualization of streaming data
TWI498899B (zh) * 2013-08-23 2015-09-01 Phison Electronics Corp 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
US9466383B2 (en) * 2013-12-30 2016-10-11 Sandisk Technologies Llc Non-volatile memory and method with adaptive logical groups
US9542321B2 (en) 2014-04-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Slice-based random access buffer for data interleaving
US9564212B2 (en) 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US10482008B2 (en) * 2015-01-23 2019-11-19 Hewlett Packard Enterprise Development Lp Aligned variable reclamation
US9251276B1 (en) 2015-02-27 2016-02-02 Zoomdata, Inc. Prioritization of retrieval and/or processing of data
US9892800B2 (en) 2015-09-30 2018-02-13 Sunrise Memory Corporation Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US9842651B2 (en) 2015-11-25 2017-12-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin film transistor strings
US10121553B2 (en) 2015-09-30 2018-11-06 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays
KR102523965B1 (ko) * 2016-03-21 2023-04-21 에스케이하이닉스 주식회사 데이터 저장 장치
TWI619023B (zh) * 2016-11-30 2018-03-21 瑞昱半導體股份有限公司 記憶體控制電路及其方法
US9942312B1 (en) 2016-12-16 2018-04-10 Zoomdata, Inc. System and method for facilitating load reduction at a landing zone
TWI615711B (zh) * 2017-03-28 2018-02-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10608008B2 (en) 2017-06-20 2020-03-31 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
US10692874B2 (en) 2017-06-20 2020-06-23 Sunrise Memory Corporation 3-dimensional NOR string arrays in segmented stacks
KR20200015743A (ko) 2017-06-20 2020-02-12 선라이즈 메모리 코포레이션 3차원 nor 메모리 어레이 아키텍처 및 그의 제조 방법
EP3788512A4 (en) 2017-12-30 2022-03-09 Target Brands, Inc. HIERARCHICAL, PARALLEL MODELS FOR REAL-TIME EXTRACTING HIGH VALUE INFORMATION FROM DATA STREAMS AND THE ASSOCIATED CREATION SYSTEM AND METHOD
EP3685271A4 (en) 2018-01-29 2021-05-12 Hewlett-Packard Development Company, L.P. VALIDITY OF RECORDS STORED IN MEMORY
US10475812B2 (en) 2018-02-02 2019-11-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin-film transistor strings
US10579548B2 (en) * 2018-03-29 2020-03-03 Western Digital Technologies, Inc. Adaptive interleaving of data transfer requests
KR102080089B1 (ko) * 2018-05-18 2020-02-21 최영준 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치
CN110888593B (zh) 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) 2018-09-07 2023-05-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI696916B (zh) * 2018-09-07 2020-06-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
KR20200055349A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
EP3891780A4 (en) 2018-12-07 2022-12-21 Sunrise Memory Corporation METHODS OF FORMING NETWORKS OF MULTILAYER VERTICAL NOR TYPE MEMORY CHAINS
KR20200087487A (ko) * 2019-01-11 2020-07-21 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US11354357B2 (en) * 2019-01-29 2022-06-07 Sap Se Database mass entry insertion
US10969990B2 (en) * 2019-01-29 2021-04-06 Sap Se Parallel database page flushing
JP2022519537A (ja) 2019-02-11 2022-03-24 サンライズ メモリー コーポレイション 垂直型薄膜トランジスタ、及び、垂直型薄膜トランジスタの、3次元メモリアレイのためのビット線コネクタとしての応用メモリ回路方法
US10732878B1 (en) * 2019-07-12 2020-08-04 Western Digital Technologies, Inc. Enabling secondary scratchpad cache with solid-state devices for low cost hosts
US11515309B2 (en) 2019-12-19 2022-11-29 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor in a 3-dimensional thin-film transistor array
WO2021159028A1 (en) 2020-02-07 2021-08-12 Sunrise Memory Corporation High capacity memory circuit with low effective latency
WO2021173209A1 (en) 2020-02-24 2021-09-02 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
WO2021207050A1 (en) 2020-04-08 2021-10-14 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional nor memory string array
US11842777B2 (en) 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11848056B2 (en) 2020-12-08 2023-12-19 Sunrise Memory Corporation Quasi-volatile memory with enhanced sense amplifier operation
TW202310429A (zh) 2021-07-16 2023-03-01 美商日升存儲公司 薄膜鐵電電晶體的三維記憶體串陣列

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
TW200406683A (en) * 2002-05-17 2004-05-01 Koninkl Philips Electronics Nv Device and method for storing information
TW200421349A (en) * 2003-01-28 2004-10-16 Sandisk Corp Non-volatile semiconductor memory with large erase blocks storing cycle counts

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6134793A (ja) 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
DE69131471T2 (de) 1990-03-29 2000-03-30 Canon K.K., Tokio/Tokyo Textverarbeitungsvorrichtung mit Textformatierung
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5504760A (en) 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5263032A (en) 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5623620A (en) 1993-06-30 1997-04-22 Intel Corporation Special test modes for a page buffer shared resource in a memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
JPH08147988A (ja) 1994-11-17 1996-06-07 Sony Corp 半導体不揮発性記憶装置
FR2728380A1 (fr) 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3176019B2 (ja) 1995-04-05 2001-06-11 株式会社東芝 不揮発性半導体記憶部を含む記憶システム
US5699297A (en) 1995-05-30 1997-12-16 Kabushiki Kaisha Toshiba Method of rewriting data in a microprocessor additionally provided with a flash memory
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5696929A (en) 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
JPH09128165A (ja) 1995-10-27 1997-05-16 Toshiba Corp 固体記録再生装置
US5950222A (en) * 1996-03-14 1999-09-07 Sanyo Electric Co., Ltd. Microcomputer using a non-volatile memory
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5715193A (en) 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
JPH09319645A (ja) 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5745418A (en) 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP3177207B2 (ja) 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
JP2000187992A (ja) 1998-12-17 2000-07-04 Mitsubishi Electric Corp 電気的書換可能な不揮発性メモリのリフレッシュ制御回路
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
JP4173642B2 (ja) 1999-02-22 2008-10-29 株式会社ルネサステクノロジ メモリカードのデータ書き込み方法
JP2000251483A (ja) 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
DE60030876T2 (de) * 1999-04-01 2007-05-03 Lexar Media, Inc., Fremont Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
JP4141581B2 (ja) 1999-04-05 2008-08-27 株式会社ルネサステクノロジ フラッシュメモリを搭載する記憶装置
WO2001008015A1 (fr) 1999-07-28 2001-02-01 Sony Corporation Systeme d'enregistrement, dispositif d'enregistrement de donnees, dispositif a memoire et procede d'enregistrement de donnees
WO2001022232A1 (fr) 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre
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
JP3942807B2 (ja) 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3812933B2 (ja) 2001-04-19 2006-08-23 シャープ株式会社 ファイルシステムおよびその制御方法
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
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
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
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US20030065699A1 (en) 2001-10-01 2003-04-03 Koninklijke Philips Electronics N.V. Split multiplier for efficient mixed-precision DSP
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6560152B1 (en) 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
US6825846B2 (en) 2001-12-10 2004-11-30 American Megatrends, Inc. Systems and methods for capturing screen displays from a host computing system for display at a remote terminal
JP4206688B2 (ja) 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US6968439B2 (en) 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
CN100483552C (zh) 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储***中执行自动磨损平衡的方法
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US6829167B2 (en) 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
US7127564B2 (en) * 2003-02-28 2006-10-24 Standard Microsystems Corporation Double buffered flash programming
US6928511B2 (en) 2003-03-03 2005-08-09 High Tech Computer, Corp. Method and system for managing virtual memory
US20040193782A1 (en) * 2003-03-26 2004-09-30 David Bordui Nonvolatile intelligent flash cache memory
US7606993B2 (en) * 2003-06-10 2009-10-20 Tdk Corporation Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
US7076598B2 (en) * 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
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
US20050169259A1 (en) 2004-01-29 2005-08-04 Rdc Semiconductor Co., Ltd, Taiwan, R.O.C. Switching hub architecture and index-shared packet transfer method thereof
JP2005222201A (ja) 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd メモリアクセス装置、及び半導体メモリカード
JP2006139556A (ja) 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
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
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
TW200406683A (en) * 2002-05-17 2004-05-01 Koninkl Philips Electronics Nv Device and method for storing information
TW200421349A (en) * 2003-01-28 2004-10-16 Sandisk Corp Non-volatile semiconductor memory with large erase blocks storing cycle counts

Also Published As

Publication number Publication date
EP2336891A1 (en) 2011-06-22
KR101202620B1 (ko) 2012-11-19
IL183978A0 (en) 2007-10-31
KR20070101264A (ko) 2007-10-16
TW200636458A (en) 2006-10-16
EP1839115A2 (en) 2007-10-03
US20080301359A1 (en) 2008-12-04
WO2006065668A3 (en) 2006-12-07
JP2008524711A (ja) 2008-07-10
US8151035B2 (en) 2012-04-03
WO2006065668A2 (en) 2006-06-22
US7412560B2 (en) 2008-08-12
WO2006065668B1 (en) 2007-02-22
JP4431175B2 (ja) 2010-03-10
US20060155920A1 (en) 2006-07-13
EP1839115B1 (en) 2014-07-02

Similar Documents

Publication Publication Date Title
TWI417717B (zh) 具多流更新之非揮發性記憶體及方法
TWI394044B (zh) 記錄來自一主機之資料之非揮發性記憶體及方法
JP4399008B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
KR100914263B1 (ko) 스크래치 패드 블록
US7882299B2 (en) System and method for use of on-chip non-volatile memory write cache
US20050144363A1 (en) Data boundary management
KR20070012630A (ko) 데이터 런 프로그래밍

Legal Events

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