TWI457941B - 區塊為基礎快閃記憶體之位元組存取的方法與裝置 - Google Patents
區塊為基礎快閃記憶體之位元組存取的方法與裝置 Download PDFInfo
- Publication number
- TWI457941B TWI457941B TW099120887A TW99120887A TWI457941B TW I457941 B TWI457941 B TW I457941B TW 099120887 A TW099120887 A TW 099120887A TW 99120887 A TW99120887 A TW 99120887A TW I457941 B TWI457941 B TW I457941B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- field
- bit
- data structure
- segments
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
Description
本發明係關於快閃記憶體技術,特別是關於快閃記憶裝置的高速、隨機存取之資料管理技術。
電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶體包括將電荷儲存在通道與場效電晶體閘極之間的記憶胞。所儲存的電荷會影響電晶體的臨界電壓,且臨界電壓會根據所儲存電荷改變而可以用來感測指示資料。其中一種非常慣用的電荷儲存記憶胞被稱為一浮動閘極記憶胞。在一浮動閘極記憶胞中,其會儲存電荷於通道與閘極之間的一導電材料層中。另一種電荷儲存記憶胞型態被稱為一電荷捕捉記憶胞,其會使用一介電層來取代浮動閘極。
此處所使用的名詞”寫入”是指改變電晶體臨界電壓的操作,且是用來包括增加及減少電晶體臨界電壓的操作。在電性可程式可抹除唯讀記憶體(EEPROM)及快閃裝置中,寫入操作首先牽涉到一抹除步驟,將一記憶區段中的所有記憶胞設置為抹除狀態,之後再進行一程式化步驟,將此記憶區段中所選取之記憶胞設置為程式化狀態。此處所使用的名詞”程式化”則是指在一快閃記憶體中利用一位元組接著一位元組的方式所進行的操作,而此處所使用的名詞”抹除”則是指由於快閃記憶胞組態的關係,通常是以區段或是區塊的方式進行之操作。因此,在快閃記憶體中,為了程式化一單一位元組,寫入操作必須先抹除此記憶陣列中一個較大的區段,且再為整個區段重新儲存資料。
在一電性可程式可抹除唯讀記憶體(EEPROM)裝置中的記憶胞可以利用一位元組接著一位元組的方式進行抹除而與其他的資料位元組無關。然而,為了要致能一位元組接著一位元組的抹除方式,此電性可程式可抹除唯讀記憶體(EEPROM)的記憶密度相對較低。
電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶裝置通常是作為不同的應用。一般而言,因為其較高的密度,快閃記憶體在大量資料儲存應用方面是較電性可程式可抹除唯讀記憶體(EEPROM)更為經濟的。而電性可程式可抹除唯讀記憶體(EEPROM)是在需要對小量資料進行一位元組接著一位元組之資料讀寫更為合適,例如是儲存狀態資料或組態資料等需要不時改變或是類似的資料等。
許多電子裝置中同時包含有電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶體,以滿足此裝置中不同功能的不同記憶表現需求。然而,同時使用這兩種型態的記憶體增加了此裝置的成本及複雜程度。
快閃記憶體會產生一個特定的問題就是其具有有限的耐久性,此裝置中的記憶胞可維持其操作性及可靠性的抹除及/或程式化循環之數目是有限的。因此,重複及持續地寫入單一區段,或是少數的區段,會導致某些區段在相對短的時間之後變得老化並有缺陷了。
不同的”平均消耗”技術被提出以延長快閃記憶體的壽命。一種平均消耗方案是使用紀錄每一個區段被抹除的次數。此計數器然後被用來調整資料被映射至個別的區段中,以平衡其消耗。可參閱美國專利第6,000,006、5,485,595和5,341,339號專利。
雖然使用計數器可以延長快閃記憶裝置的壽命,然而有限的讀取/寫入耐久性問題仍會限制快閃記憶體在需要較多次數程式化及抹除操作的應用。
另一種平均消耗方案是將更新資料寫入快閃記憶裝置中的沒有使用之實體位置,而不是重新覆蓋原本的資料位置。如此會減少快閃記憶裝置中的一給定寫入操作時的區段抹除操作數目。可參閱美國專利第5,845,313和6,115,785號專利。
為了追蹤資料的實際位置改變,可以使用可程式化的映射表或是位址轉譯表。可程式化的映射表儲存由一外部系統所指示的邏輯位址與包含有效資料的快閃記憶裝置實體位址之間的映射資訊。為了正確地追蹤有效資料的實際位置,此可程式化的映射表在操作時必須被更新。
為了確保有效資料被保持,此映射資訊必須在中斷電源時被保持。然而,因為此可程式化的映射位址轉譯表被持續地更新,儲存此映射資訊於快閃記憶體中會減少此裝置的壽命。因為快閃記憶體相對慢的抹除速度,如此會嚴重地影響使用快閃記憶體之裝置的表現。此可程式化的映射位址轉譯表或許可以替代地儲存在此裝置中的另一個非揮發記憶體電路內。然而,也會增加了此裝置的成本及複雜程度。
因此需要提供一種快閃記憶裝置其可以適用於需要如同電性可程式可抹除唯讀記憶體(EEPROM)之高速位元組存取之性能特性,而同時也可以利用較低的成本及複雜程度並解決耐久性問題。
本發明係揭露一種操作一快閃記憶陣列的方法,其係適用於高速位元組存組。此方法包含安排該快閃記憶陣列中具有區段位址的資料記憶胞之複數個區段以儲存各自的資料結構,其中一資料結構安排為儲存資料的位元組(或是其他N位元寬的資料組),其由一邏輯位址所辨識,且包括一索引欄位及一資料欄位。藉由抹除該索引欄位及該資料欄位來初始化該資料結構。此資料的位元組織邏輯位址映射至與該資料的儲存一資料結構的區段之區段位址。寫入該資料的位元組具有一邏輯位址與特定區段位址匹配,該程序程式化該資料結構的該資料欄位中一特定區段位址,其中該資料記憶胞與該資料欄位中的一特定位元組寬的線段對應,且程式化該資料結構中對應的位元組寬線段以儲存該資料的位元組。為了響應一邏輯位址以讀取該資料的位元組,該資料結構中的索引欄位用來辨別儲存現有資料的該特定位元組寬的線段。該現有資料被提供已響應一讀取操作。
在一實施例中,該資料結構包括一索引欄位包含一指向器欄位具有一記憶胞儲存M位元(例如28位元),在區段中具有位址順序,且包含一資料欄位,其包含依序排列的M位元組寬(例如28位元組)的線段。此位址順序M位元的每一個可以與相同位址順序中M位元組寬線段之一者對應。該指向器欄位中M位元的最後一個已被程式化對應至資料欄位中最近使用的該M位元組寬線段之一者。
在此處所描述的一實施例中,提供一索引欄位包含一指向器欄位依位址順序儲存M位元,且該資料欄位包含依位址順序排列的M位元組寬線段。當每一資料記憶胞儲存一單一位元,則指向器欄位包含M個資料記憶胞。當指向器欄位中儲存一第一位元的一資料記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該位元組寬線段之位址順序的第一者,當該儲存該第一位元及一第二位元的記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該位元組寬線段之位址順序的第二者,且當該指向器欄位中的所有該M位元皆被程式化時,該指向器欄位指向該位元組寬線段之位址順序的最後一者。
在此處所描述的一實施例中,該資料結構提供一索引欄位,其包含該資料結構的一狀態欄位,且於初始化之後索引欄位中的所有記憶胞是在抹除狀態。該狀態欄位包含至少K-1個位元依位址順序排列,且於初始化該資料結構時指示K個進行狀態之目前一者。根據此處所描述之一範例,一初始狀態其中該狀態欄位中所有K-1個位元皆被抹除。在一第一狀態為當儲存該狀態欄位之一第一位元的一資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,在一第二狀態為當儲存該狀態欄位之該第一及一第二位元的一或多個資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,且在一最後狀態為該狀態欄位之所有該K-1個位元皆被程式化。
對一資料處理系統中的使用,位址轉譯表可以儲存此快閃記憶體中區段的記憶胞之資料位元組所映射的邏輯位址。此處所描述的複數個資料結構可以在記憶胞各自區段中被初始化,且根據位址轉譯表將其映射至對應的邏輯位址。索引欄位中的狀態欄位用來管理資料結構的狀態以維持位址轉譯表的正確。
在一特定資料結構中的所有位元組寬線段皆被使用的情況下,資料結構中的目前位元組可以被複製到一個新的資料結構,且此位址轉譯表可以用來更新以將舊的資料結構映射至新的資料結構。管理將目前位元組被複製到一個新的資料結構中的程序包括更新此狀態欄位。舉例而言,狀態欄位可以包括4個位元,且可以用來表示5個狀態。由狀態欄位指示之初始狀態係代表此資料結構被初始化且沒有邏輯位址被映射至此資料結構。由狀態欄位指示之第一狀態係代表邏輯位址所映射之新的資料結構被選取且適合用來取代舊的資料結構。由狀態欄位指示之第二狀態係代表自源資料結構(或其他資料結構)寫入目前資料位元組至新的資料結構已完成。由狀態欄位指示之第三狀態係代表一抹除程序已開始重新初始化舊的資料結構。由狀態欄位指示之第四狀態係代表一抹除舊的資料結構之程序已完成,且映射至新的資料結構已有效。
一快閃記憶陣列可以在區塊邊界抹除的程序包含分配第一及第二區塊,每一區塊包含L個區段,於該快閃記憶陣列的L個邏輯位址。在此程序中,於一特定區段初始化該資料結構包括抹除包含該特定區段的該L個區段之該第一及第二區塊之一者,且當該第一區塊中的該資料結構中M個N位元資料欄位經歷寫入操作時(例如此資料結構是滿的),將該第一區塊之區段的資料結構中所儲存的資料移至該第二區塊中的資料結構。
此外,本發明亦揭露一種快閃記憶陣列,包含具有區段位址的資料記憶胞之複數個區段,具有邏輯以根據上述方法儲存資料結構以在該快閃記憶體中進行位元組模式的讀取及寫入操作。此裝置也包含一資料處理器,其與該快閃記憶陣列集積在相同的晶片上,或是在一電腦系統中可以存取該快閃記憶陣列,且包含可以由該資料處理器執行的指令,包括此處所描述的可以在一快閃記憶陣列上執行的上述方法之指令。這些可以由該資料處理器所執行的指令,可以儲存在該快閃記憶陣列中或是其他可以由該資料處理器所存取之處。
本發明還揭露一種機器可讀資料儲存裝置,包含一機器可讀資料儲存媒介,儲存可由處理器執行的指令,該處理器具有存取一記憶陣列的功能,該記憶陣列包含具有區段位址的資料記憶胞之複數個區段。該指令包含執行上述方法之邏輯。
此處所描述之技術對位元組寬之操作加上參考值以幫助理解。此程序可以自有時寫入一位元組(例如8位元),有時寫入任何N位元寬資料組(例如16或32位元)而產生,具有在了解先前技術及適當地調整此資料結構之資料欄位的大小之情況。
此外,此處所使用的名詞”區段”或”區塊”是指一組或數組資料記憶胞。這些名詞並不是用來限制一組或數組資料記憶胞必須與快閃記憶陣列實際區段嚴格地對應,雖然可以在此處所描述的程序中將”區段”或”區塊”與快閃記憶陣列實際區段對應會具有其優點。
此處所描述的技術使用抹除一次程式化多次的漸進索引結構來管理快閃記憶裝置中的資料,可以避免在每次將儲存在快閃記憶裝置中的資料位元組進行區段抹除操作之後就必須更新的需求。儲存在此陣列之可定址區段中的資料結構包括索引資料、狀態資料及此資料的位元組以供邏輯位址映射至此區段,其可以使用抹除一次程式化多次的程序管理。其結果是,可以在一給定區段需要進行一區段抹除操作之前進行較大數量的寫入操作。所以,快閃記憶體可以用來作為高速位元組存取之用。
本發明之目的,特徵,和實施例,會在下列實施方式的章節中搭配圖式被描述。
本發明實施例搭配以下第1到12圖進行詳細描述。
第1A圖顯示一電腦系統100的簡要方塊示意圖,其適用於使用此處所描述技術之包括區塊為基礎快閃記憶裝置的記憶子系統120資料安排之用,此快閃記憶裝置可為例如是串列週邊介面(SPI)相容之快閃記憶裝置資料安排之用。電腦系統100通常包含至少一個處理器114其透過匯流排子系統112與許多週邊裝置進行溝通。這些週邊裝置可以包括額外的快閃記憶裝置(未示)、使用者介面輸入裝置122、使用者介面輸出裝置130及一個網路介面子系統116。這些輸入與輸出裝置可以允許使用者與電腦系統100互動。網路介面子系統116係作為提供給與外部網路的介面,包含一個與通信網路118的介面,且透過通信網路118與其他電腦系統中的對應介面裝置耦接。通信網路118可以包含許多互連的電腦系統及通信連接。這些通信連接可以是有線連接、光纖連接、無線連接、或是其他資訊傳輸的機制。其中一個實施例的通信網路118是網際網路,但是在其他的實施例中通信網路118可以是任何適用的電腦網路。
使用者介面輸入裝置122可以包括鍵盤,指向裝置例如是滑鼠,軌跡追蹤器、觸控板、或是圖形平板、掃瞄器、觸控螢幕、聲控輸入裝置例如是聲音辨識系統、麥克風或是其他型態的輸入裝置等等。一般而言,使用此名詞”輸入裝置”是代表希望包含所有可能用來輸入資訊進入電腦系統100或是通信網路118的裝置型態或是方式。
使用者介面輸出裝置130可以包括顯示次系統、印表機、傳真機、或是非視覺顯示例如一聲音輸出裝置等等。此顯示次系統可以包括映像管(CRT)、平面顯示裝置例如液晶顯示器,一投影裝置,以及其他產生視覺影像的機制等。此顯示次系統也可以包括提供非視覺顯示例如聲音輸出裝置。一般而言,使用此名詞”輸出裝置”是代表希望包含所有可能用來自電腦系統100或是其他機器輸出資訊的裝置型態或是方式。
記憶子系統120快閃記憶裝置120儲存基本的程式化及資料結構,其提供此處某些實施例中所描述的功能,包括邏輯至實體的位址映射及轉譯的指令,以及用來將資料安排於此記憶子系統120快閃記憶裝置120內的指令(會在以下描述)。這些軟體模組通常是由處理器114執行,基本的程式化及資料結構可以儲存在快閃記憶體或是其他的記憶裝置中。此外,此記憶子系統120可以包含其他的儲存裝置,包括隨機存取記憶體(RAM)以於程式執行時儲存指令或資料,可攜記憶裝置、磁碟驅動系統等。
此記憶子系統120可以包含機器可讀資料儲存裝置,包括儲存可以處理器執行的機器可讀資料儲存媒介所儲存的指令,此處理器具有存取包括複數個資料區段記憶胞之記憶陣列的能力,其中這些指令包含可以進行此處所描述的程序之邏輯。
在例示的實施例中,處理器114執行指令以進行此處所描述包括快閃記憶裝置外的許多操作。替代地,此快閃記憶裝置包括一處理器或是其他型態的控制器以控制資料管理及執行此處所描述的許多操作。舉例而言,此控制器可以是使用業界所熟知的特殊功能邏輯電路構成之狀態機構。在替代的實施例中,此控制器包含通用目的處理器,其可以應用於同一積體電路上,以執行一控制此快閃記憶裝置120的電腦程式。而在另一實施例中,通用目的處理器與特殊功能邏輯電路的組合可以用來實施此控制器。
匯流排子系統112提供一機制使電腦系統100中不同的元件及子系統可以如所需要的彼此互相溝通。雖然圖式中所顯示的匯流排子系統112是單一匯流排,匯流排子系統112的替代實施例可以使用多重匯流排。在某些實施例中,於快閃記憶裝置120與匯流排子系統112之間的資料、位址及命令信號可以利用串列方式施加在共享的線上,例如可以使用業界所熟知的串列週邊介面。
如第1B圖中所示,一快閃記憶陣列可以具有複數個實體區塊,其包含區塊0 125-0至區塊K 125-K,以儲存利用上述技術安排的資料。區塊0 125-0至區塊K 125-K中的每一個區塊可以自其他區塊中單獨的抹除。此區塊的大小和數目可以視實施例的不同而改變。舉例而言,在某些實施例中,每一個區塊的大小可以是2KB、4KB、8KB或16KB。替代地也可以使用其他的區塊大小。
如同以上所描述的,此快閃記憶陣列也可以包括額外的區塊以儲存將邏輯與實體位址映射及轉譯的指令,及如同上述將資料分配於區塊0 125-0至區塊K 125-K的指令。
指令包括自電腦系統100所指定的快閃記憶裝置120之邏輯位址與快閃記憶裝置120區塊0 125-0至區塊K 125-K的實體位址之間的映射。
區塊0 125-0至區塊K 125-K每一個包括一個或多個區段。舉例而言,一個4KB的區塊可以包括128個32位元組的區段。此128個區段中的每一個可以包含儲存一位元組資料的資料結構。128個邏輯位址可以映射至此區塊中的128個區段。如同以下所描述的,區段位址映射至資料位元組的特定邏輯位址,且適用於儲存作為位元組存取之資料結構。
在此處所描述範例中的一資料記憶胞之一給定區段中的資料結構包括一索引欄位及一資料欄位。此索引欄位包括一指向器至此資料欄位中一特定位元組寬的線段,此資料欄位係用來儲存此資料位元組所映射的邏輯位址。在實施例中,區段之一的索引欄位也包括儲存資料的狀態旗標欄位以指示此區段的狀態。在此處所描述的範例中,區段狀態維持在區塊的邊界內,且指示區塊中區段的狀態,例如在一給定區塊中的區段是否目前是工作(正在工作)、非工作(被抹除)、污染或是暫時的資料。因此,此區塊中的所有資料結構必須具有相同的狀態。替代地,區段狀態可以維持在區段邊界內。此外,在某些實施例中,每一個區塊可以使用一單獨的狀態旗標,且並不包含於每一區段之資料結構的索引欄位內。
在寫入操作時,在索引欄位中的一抹除記憶胞被程式化以更新此指向器至此資料欄位中位元組寬的線段之被抹除的那一個,且此位元組寬的線段之被抹除的那一個中的特定抹除之資料記憶胞被程式化以儲存此資料位元組的映射邏輯位址。
為了明瞭起見,以下的範例中,此名詞”程式化”是指將記憶胞中的資料值改變至邏輯”0”的操作,而”抹除”是指將記憶胞中的資料值改變至邏輯”1”的操作。與程式化和抹除狀態所對應的資料也可以分別是1和0。此外,在多階記憶胞中,程式化可以被假設為複數個值。然而,如同之前所描述的,此名詞”程式化”通常是指在快閃記憶體中一個記憶胞接著一個記憶胞為基礎進行的操作,而因為快閃記憶胞組態的緣故,”抹除”是指快閃記憶體中較大範圍為基礎所進行的操作,可以在一給定陣列結構中有效執行的範圍內。因此,根據快閃記憶胞的組態,在某些實施例中程式化和抹除分別包含減少和增加臨界電壓。
此資料欄位的大小必須在一區塊或區段進行抹除操作的頻率與可以映射至此快閃記憶裝置之一給定區塊的邏輯位址數目之間作取捨(以下將會討論),且因此可以視實施例的不同而改變。
此快閃記憶裝置也可以包括複數個非工作區塊或區段,其可以在當一目前資料結構中的資料欄位滿的時候,作為一預備單元以不時地儲存更新資料。
第2圖顯示一區塊內的資料排列方式,其包括複數個自區段0到區段M之區段。在實施例中,區段0到區段M之每一個區段或許可以獨立地抹除。而在此處所描述的範例中,區段不可以獨立地抹除,而是抹除操作係在區塊邊界內進行以作為此陣列區段中的高速位元組存取之用。如第1B圖中所示,資料結構被安置於可定址之區段,且包括一索引區域來儲存索引欄位及一資料區域來儲存資料欄位。
在區段0中的資料結構包括一索引欄位200-0,其包括一指向器至此資料欄位202-0中一特定位元組寬的線段,其儲存對應邏輯位址的資料位元組。此指向器代表此索引欄位200-0中一系列的程式化及抹除記憶胞。
當正在進行具有映射至區段0資料記憶胞之邏輯位址的一位元組的寫入操作時,此索引欄位中的一抹除資料記憶胞被程式化以更新索引欄位200-0的指向器指向至此資料欄位202-0中一特定位元組寬的線段,其儲存對應邏輯位址的資料位元組,且此位元組寬的線段之被抹除的那一個中的特定抹除之資料記憶胞被程式化以儲存此資料位元組的映射邏輯位址。
在此例示的範例中,在索引欄位中的資料記憶胞為了響應各自的寫入命令而以位址順序被程式化,自第一寫入操作的索引欄位中之資料記憶胞的第一位元開始,然後是第二寫入操作的第二位元,一直到最近被程式化記憶胞之後的資料記憶胞仍保持抹除。類似地,資料欄位中之位元組寬的線段按照一例如是位址順序的方式寫入,自第一寫入操作的第一位元組寬線段開始,然後是第二寫入操作的第二位元組寬線段,一直到最近被程式化之後的位元組寬線段仍保持抹除(或是空的)。
在替代實施例中,為了響應各自的寫入命令在索引欄位中的資料記憶胞依序被程式化,且資料欄位中的位元組寬線段也依序寫入,兩者的順序可以是與第2圖中所示不同的。舉例而言,在索引區域中的資料記憶胞可以自第一寫入操作的索引欄位中之最後資料記憶胞開始程式化,以此類推。
藉由寫入更新資料至資料欄位202-0中被抹除的位元組寬線段,而不是利用一抹除操作直接將其蓋掉,用來更新指向器及資料記憶胞以儲存將被程式化之資料的更新位元組之至索引欄位中的資料記憶胞並不需要經歷抹除程序。如此會在一程式化操作中與寫入操作的數目相較,僅需要一小數的區塊或區段之抹除操作,而可以有效地增加快閃記憶陣列的耐力。
因為更新資料是寫入資料欄位中的空節段,此資料欄位最終會變滿。因此,區塊1中區段0到區段M之區段所儲存的資料結構要不時使用一個區段接著一個區段或是一個區塊接著一個區塊的方式,重新映射至與區塊0中區段0到區段M之區段所對映的資料結構中。此名詞”不時”是指偶爾,且不需要規律或是定期或是以相等的時間間隔進行。
除了使用儲存在索引欄位200-0狀態旗標欄位的資料來辨別此區塊1中區段工作或非工作的狀態外,在狀態旗標欄位中的資料也被用來確認此更新資料區段被編排及正確地儲存在新的區塊中。這些會搭配以下的第9圖更詳細地描述。
第3圖顯示一介於邏輯位址空間300中的邏輯位址群組302-0至302-127映射至快閃記憶裝置120實體位址空間320中的具有區段-0至區段-127之區塊的映射範例。在此例示中,邏輯位址空間300中的每一個邏輯位址被映射至對資應的實體位址空間320中資料記憶胞的32位元組的區段。因此,邏輯位址0000000(參考標號302-0)被映射至區段0304-0,邏輯位址0000001(參考標號302-1)被映射至區段1304-1,以此類推。
在此範例中,資料記憶胞的每一個區段包含一4位元組的索引欄位及一32位元組的資料欄位,且用來儲存所對應邏輯位址之8位元(1位元組)的資料。因此,在此範例中,在資料記憶胞的一給定區段之資料欄位中可以在資料欄位變滿之前支持32個單一位元組寫入操作至所對應邏輯位址。
第4圖更顯示區段0304-0中的資料安排。如第4圖中所示,資料記憶胞的區段0304-0儲存包含索引欄位400和資料欄位410的資料結構。在此例示中,索引欄位400中位元0~27的資料構成一指向器420至資料欄位410中用來儲存邏輯位址0000000(參考標號302-0)所映射8位元資料之一特定位元組寬線段。索引欄位中的位元28~31的資料構成一狀態旗標欄位430,其指示此區段的一狀態,在此範例中以一區塊為基礎的方式保持,指示所有的區段區段-0至區段-127之共同狀態(以下會更詳細地描述)。
如第4圖所示,位元0~27的資料構成一指向器420來識別資料欄位410中用來儲存邏輯位址0000000(參考標號302-0)所映射8位元資料之一特定區段。舉例而言,對一每位元一記憶胞的應用而言,假如索引欄位中位元0的資料被程式化,且其餘所有的位元1~27之記憶胞被抹除,此指向器420會指向區段d0,其是資料欄位410中的位址順序之第一個區段。假如索引欄位中位元0~1的資料被程式化,且其餘所有的位元2~27之記憶胞被抹除,此指向器420會指向區段d1,其是資料欄位410中的位址順序之第二個區段。也可以使用替代地技術來安排資料以為指向器420辨識哪一個特定區段可以使用。此外,在多重位元記憶胞的實施例中,一資料記憶胞可以儲存兩個位元或以上的指向器。
第5圖顯示實體位址空間與邏輯位址空間之間的轉譯之示意圖。邏輯位址是使用一位址轉譯表520將其映射至對應的區塊。對一特定的邏輯位址而言,此位址轉譯表520辨識與此邏輯位址對應的資料記憶胞的區塊與區段提供對應至邏輯位址的區塊。儲存在對應資料記憶胞之資料結構的索引欄位之指向器然後被讀取以辨識儲存此邏輯位址資料的資料欄位中的區段。
指向器的使用排除了在快閃記憶裝置120每次更新資料或是當此區塊中的工作區段被改變之後就必須更新位址轉譯表520的需求,而且也可以致能有效資料的正確追蹤。因為位址轉譯表520並不需要持續地更新,其可以儲存於快閃記憶裝置120中。於操作時,位址轉譯表520可以被提取至較高存取速度的記憶體中,例如第1圖處理器的DRAM或是SRAM。
第6圖為根據本發明一實施例的一個由處理器114所執行寫入操作600的流程圖,其是儲存資料位元組或是其他N位元資料區段至一特定邏輯位址。如此處所示之流程圖,必須明白的是許多步驟可以被結合,平行地執行或是以不同的順序執行而不會影響所欲達成的功效,在某些情況下,不同步驟的重新安排僅會在一併調整某些步驟才會達成相同的功效,且在某些情況下,不同步驟的重新安排僅會在某些條件被滿足才會達成相同的功效。如此的重新安排對熟習此技藝人士而言是顯而易見的。
為了響應儲存資料位元組至一特定邏輯位址的寫入命令,在步驟610,使用之前討論過的位址轉譯表來決定對應至此特定邏輯位址的資料記憶胞之區塊或區段。
在步驟615,儲存在對應資料記憶胞之資料結構的索引欄位之指向器然後被讀取以決定儲存此資料欄位中的抹除區段以儲存此資料位元組。
在步驟620,假如此資料欄位並不包含一抹除區段,則此資料欄位是滿的。在如此情況下,此操作600繼續至方塊630,其中為此區段儲存此資料結構之更新資料結構被編排。此編排操作會在以下搭配第9圖來說明。
假如此資料欄位包含一抹除區段,則此操作600繼續至方塊640。在步驟640,在索引欄位中的一抹除資料記憶胞被程式化以更新此指向器至此被抹除區段,且此更新資料被寫入此被抹除區段。此操作600然後停止在步驟650。
第7圖顯示於操作時程式化此索引欄位中抹除資料記憶胞的範例。如第7圖所示,位元0~27用來儲存指向器,而位元28~31用來儲存一狀態旗標欄位,其指示此區段或區塊的一狀態(以下會更詳細地描述)。在此範例中,此區塊中每一個區段的狀態旗標被設置以指示區段是工作的,其所有位元被程式化至”00000”。
如第7圖所示,為了響應一第一寫入操作,此指向器藉由程式化位元1的記憶胞至邏輯0而更新,在第二寫入操作時,程式化位元2的記憶胞至邏輯0,以此類推直到此指向器欄位中的所有28個位元皆被程式化至邏輯0為止。於此程式化過程中並不需要進行抹除操作。雖然此指向器欄位中的一給定位元組在程式化過程中被存取多次,但是因為在此位元組中若沒有記憶胞需要自程式化改變至抹除狀態的話,一程式化過程係執行位元組讀取或其他類似的步驟以防止預抹除,所以並不需要進行抹除操作。
在替代實施例中,可以使用與第7圖中所示的不同順序來程式化索引欄位中的資料記憶胞。舉例而言,為了響應第一寫入操作,在索引區域中的資料記憶胞可以自指向器的資料記憶胞中的最後位元27之順序開始程式化,以此類推。
第8圖為根據本發明一實施例的一個由處理器114所執行讀取操作800的流程圖,其是讀取特定邏輯位址的資料。
為了響應讀取此特定邏輯位址資料的一讀取命令,在步驟810,使用之前討論過的位址轉譯表來決定對應至此特定邏輯位址的資料記憶胞之區塊或區段。
在步驟820,儲存在對應資料記憶胞之資料結構的索引欄位之指向器被讀取以決定儲存此邏輯位址資料之資料欄位中的(最後)工作區段。儲存在此工作區段中的資料然後在步驟830被讀取且輸出。
如同之前所討論過的,不時編排此區塊的一更新資料組,且寫入至一先前為非工作的區塊。
第9圖為根據本發明一實施例的一個由處理器114所執行編排操作900的流程圖。此操作900可以在一給定區塊之資料記憶胞一區段中的資料結構的資料欄位變滿時或是其他任何時間被啟動。
為了更清楚地在以下的討論說明起見,在操作900開始之前的工作區塊稱為”區塊A”,而在操作900開始之前的非工作區塊稱為”區塊B”。在此程序中所使用的區塊可以是對所用的快閃記憶體之抹除操作時最少被抹除的記憶胞組。每一個區塊中所分配的區段及資料結構的數目可以是自1到任何適用於一預設使用模式的數目。
在步驟910,儲存在區塊A資料欄位中主動區段內的資料被讀取以為映射至區塊A的邏輯位址群組編排一更新資料組。此更新資料組包括映射至區塊A的邏輯位址群之有效資料。
在步驟920,此更新資料組寫入區塊B區段的資料欄位中。在步驟930,位址轉譯表被更新以將邏輯位址群組重新映射至區塊B。在步驟940,區塊A被抹除。在某些實施例中,在步驟940中的區塊A抹除操作並不會在步驟930的重新映射之後馬上進行,而是在例如是處理器114的資源沒有進行其他操作時才進行。
如同上面所描述的,狀態旗標欄位中的資料被用來確保此更新資料組被編排且正確地存在先前是非工作的區塊中。
第10圖為根據本發明一實施例的一個由處理器114所執行轉換操作1000的流程圖。其係於第9圖的編排操作900時改變儲存在區塊A和區塊B所有資料結構的狀態旗標欄位中的資料。
如第10圖中所示,於編排操作900開始時用來儲存工作區塊A狀態旗標欄位中的資料記憶胞之位元是在一程式化狀態(0000),且用來儲存非工作區塊B狀態旗標欄位中的資料記憶胞之位元是在一抹除狀態(1111)。
當區塊B被選取,且在更新資料組被寫入區塊B的資料欄位之前,在步驟1010區塊B區段中所有28個位元之資料記憶胞被程式化以將區塊B狀態旗標欄位中的資料自”1111”改變至“0111”。藉由如此方式將將區塊B狀態旗標欄位中的資料改變,在更新資料組被寫入區塊B之前,此狀態旗標欄位中的資料可以用來決定是否發生例如是電源消失的中斷事件。
之後,在步驟1020區塊A資料結構中的資料被寫入區塊B的初始化資料結構中。之後在步驟1030,此程序決定此寫入是否完成。於將更新資料組寫入區塊B的資料欄位中之後(步驟1020和1030),在步驟1040區塊B狀態旗標欄位中位元29之資料記憶胞被程式化以將區塊B狀態旗標欄位中的資料自”0111”改變至“0011”。狀態旗標欄位中的資料被用來確保區塊B中包含邏輯位址群組的更新資料組。之後,可以安全地進行區塊A的資料結構抹除操作,且重新映射此邏輯位址。於此抹除程序開始時,可以是馬上進行或是在處理器具有可用的資源時進行,在步驟1041區塊B區段之狀態旗標欄位中的資料被更新至“0001”。之後,區塊A的抹除操作可以在步驟1050開始,且此程序等候直到步驟1060完成抹除。
因為區塊A的狀態旗標欄位是在區塊之內,此區塊A的抹除操作(步驟1050到1060)也會抹除狀態旗標欄位中的資料,其會將區塊A狀態旗標欄位中的資料改變至“1111”(非工作)。於此區塊A的抹除操作之後,在步驟1070區塊B狀態旗標欄位中位元31之資料記憶胞被程式化以將區塊B區段之狀態旗標欄位中的資料自”0001”改變至“0000”(工作)。
在此轉換操作1000的流程圖中,將區塊B狀態旗標欄位自”1111”(非工作)至“0000”(工作)的轉換牽涉到此狀態旗標欄位中已被抹除記憶胞的程式化。此技術消除了在每次需要改變狀態旗標欄位時就必須抹除資料記憶胞的需求。其結果是,狀態旗標欄位的資料可以儲存在區塊B,而不需要分開地儲存。
在替代實施例中,改變狀態旗標欄位的資料時必須被程式化的位元可以與第10圖中所示的不同。
如同以上所觀察到的,在某些實施例中,在步驟1050中的區塊A抹除操作並不需要馬上進行,而是在例如是處理器114的資源沒有進行其他操作時才進行。
第11圖顯示根據本發明一實施例快閃記憶裝置120中不同軟體階級之間的關係圖。使用者程式碼1130包括邏輯以提供邏輯位址及命令以讀取和寫入資料至此快閃記憶裝置120。
此智慧快閃應用程式介面(API)1120是一個軟體模組包括邏輯以進行邏輯-實體位址映射及轉譯,及邏輯以管理讀取和寫入至此快閃記憶裝置120的資料以進行此處所描述的不同操作。此智慧快閃應用程式介面(API)1120自使用者程式碼1130轉譯命令並提供指令給低階快閃應用程式介面(API)1110。此智慧快閃應用程式介面(API)1120也使用位址轉譯表將使用者程式碼1130的邏輯位址轉譯成對應的實體位址,其然後提供給低階快閃應用程式介面(API)1110軟體模組。
此低階快閃應用程式介面(API)1110是一個軟體驅動器特別適用於與快閃記憶裝置120搭配工作。此低階快閃應用程式介面(API)1110包括邏輯以進行實際的讀取和程式化資料以及區段抹除至此快閃記憶裝置120以回應由智慧快閃應用程式介面(API)1120所提供的指令及實體位址。
此快閃記憶裝置120、低階快閃應用程式介面(API)1110及智慧快閃應用程式介面(API)1120以此處所描述的一位元組接著一位元組的方式共同模擬快閃記憶裝置120的讀寫。
此快閃記憶裝置120可以使用商業上常用的快閃記憶裝置來施行,例如旺宏公司的MX25L512 CMOS串列快閃。其結果是,此智慧快閃應用程式介面(API)1120提供模擬此處所描述的一位元組接著一位元組的方式進行快閃記憶裝置120的讀寫之能力,而不需要重新寫入這些裝置前必須先執行抹除區塊動作。
在第11圖中,此智慧快閃應用程式介面(API)1120係安排在介於使用者程式碼1130與低階快閃應用程式介面(API)1110之間。
第12圖顯示根據本發明一第二實施例快閃記憶裝置120中不同軟體階級之間的關係圖,其中快閃記憶裝置120包括一位元組讀寫模式區域1200及一快閃記憶裝置存取區域1210。
在第12圖中,此智慧快閃應用程式介面(API)1120操作快閃記憶裝置120中的位元組讀寫模式區域1200以模擬此處所描述的一位元組接著一位元組的方式之資料讀寫。此外,此低階快閃應用程式介面(API)1110操作快閃記憶裝置存取模式區域1210以一位元組接著一位元組或一頁面接著一頁面的方式對快閃記憶裝置120進行資料讀取或程式化,並以一區塊接著一區塊的方式對快閃記憶裝置120進行抹除。
在如此的實施例中,快閃記憶裝置120可以同時作為一電性可程式可抹除唯讀記憶體(EEPROM)及一快閃記憶體。其結果是,快閃記憶裝置120可以取代分別的電性可程式可抹除唯讀記憶體(EEPROM)與快閃記憶體,其降低了系統成本及複雜性。
此處所描述之技術可以致能使用區塊為基礎的快閃記憶體於較大數目資訊的處理系統之中。作為一個範例,此處所描述之技術可以模擬單一位元組資料的讀寫。更一般而言,此處所描述之技術可以用來讀寫使用區塊為基礎的快閃記憶體中的其他大小資料,其中讀寫的資料大小是小於區塊的大小。
此處所描述之技術的優點包含藉由以區塊為基礎的快閃記憶體取代高成本低密度的電性可程式可抹除唯讀記憶體(EEPROM),可以節省系統的成本。藉由施行此處所描述的技術,此快閃記憶體的讀取/寫入壽命可以被增加為超過傳統區塊存取演算法的1000倍。
雖然本發明係已參照實施例來加以描述,然本發明創作並未受限於其詳細描述內容。替換方式及修改樣式係已於先前描述中所建議,且其他替換方式及修改樣式將為熟習此項技藝之人士所思及。特別是,所有具有實質上相同於本發明之構件結合而達成與本發明實質上相同結果者,皆不脫離本發明之精神範疇。因此,所有此等替換方式及修改樣式係意欲落在本發明於隨附申請專利範圍及其均等物所界定的範疇之中。
100...電腦系統
112...匯流排子系統
114...處理器
116...網路介面
118...通信網路
120...快閃記憶裝置
122...使用者介面輸入裝置
125...區塊
128...區段
130...使用者介面輸出裝置
200...初始資料區域
210...寫入紀錄區域
230...寫入紀錄資料
300...邏輯位址空間
310...實體位址空間
520...位址轉譯表
1110...低階快閃應用程式介面
1120‧‧‧智慧快閃應用程式介面
1130‧‧‧使用者程式碼
1200‧‧‧位元組讀寫模式區域
1210‧‧‧快閃記憶裝置存取模式區域
本發明係由申請專利範圍所界定。這些和其它目的,特徵,和實施例,會在下列實施方式的章節中搭配圖式被描述,其中:
第1A圖顯示一電腦系統的簡要方塊示意圖,其適用於使用此處所描述技術之快閃記憶裝置的資料安排之用。
第1B圖顯示高速位元組存取所用之快閃記憶陣列所儲存資料結構的區塊或區段之資料安排。
第2圖顯示於一範例區塊內的資料排列方式,其包括複數個區段。
第3圖顯示一邏輯位址的映射範例,其係介於128位元組的邏輯位址與快閃記憶裝置實體位址空間中具有128個區段之一區塊的映射。
第4圖顯示於一範例資料記憶胞之一區段的資料結構內的資料排列方式。
第5圖顯示實體位址空間與邏輯位址空間之間的轉譯之示意圖。
第6圖為根據本發明一實施例的一個寫入操作的流程圖,其是儲存一更新資料位元組至一特定邏輯位址。
第7圖顯示於操作時程式化此索引欄位中一被抹除資料記憶胞的範例。
第8圖為根據本發明一實施例的一個讀取操作的流程圖,其是讀取特定邏輯位址的資料。
第9圖為根據本發明一實施例的一個編排操作的流程圖。
第10圖為根據本發明一實施例的一個轉換操作1000的流程圖,其係於第9圖的編排操作時改變儲存在狀態旗標欄位中的資料。
第11圖顯示根據本發明一實施例快閃記憶裝置中不同軟體階級之間的關係圖。
第12圖顯示根據本發明一第二實施例快閃記憶裝置中不同軟體階級之間的關係圖。
本圖為一流程圖,已說明於圖中。
Claims (24)
- 一種操作一快閃記憶陣列的方法,包含:安排該快閃記憶陣列中具有區段位址的資料記憶胞之複數個區段以儲存各自的資料結構,安排該複數個區段之一的一資料結構以儲存資料的N位元,且包括一索引欄位及一資料欄位;藉由抹除該索引欄位及該資料欄位來初始化該資料結構;藉由程式化該索引欄位中儲存有與該資料欄位中一特定N位元線段對應之一位元的一資料記憶胞,寫入具有一邏輯位址之該資料的N位元,且程式化該資料結構的該資料欄位中該特定N位元線段以儲存該資料的N位元;以及藉由程式化該資料結構的該索引欄位中有與該資料欄位中另一不同N位元線段對應之另一位元,再次寫入具有該相同邏輯位址之資料的N位元於該資料結構中,且程式化該不同的N位元線段。
- 如申請專利範圍第1項所述之方法,更包含:映射該資料的N位元之該邏輯位址至資料記憶胞之該複數個區段的區段位址。
- 如申請專利範圍第1項所述之方法,其中藉由讀取由該索引欄位所辨別之該資料欄位中的一N位元線段來讀取該資料結構中的該資料的N位元。
- 如申請專利範圍第1項所述之方法,其中該索引欄位包含一指向器欄位依序儲存M位元,且該資料欄位包含依序排列的M個N位元線段,其中該指向器欄位中M位元的最後一個已被程式 化對應至該資料欄位中的該M個N位元線段最近使用之一者。
- 如申請專利範圍第1項所述之方法,其中該索引欄位包含一指向器欄位依序儲存M位元,且該資料欄位包含依序排列的M個N位元線段,其中當該儲存一第一位元的一資料記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該N位元線段之位址順序的第一者,當該儲存該第一位元及一第二位元的一或多個資料記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該N位元線段之位址順序的第二者,且當該指向器欄位中的所有該M位元皆被程式化時,該指向器欄位指向該N位元線段之位址順序的最後一者。
- 如申請專利範圍第1項所述之方法,其中該資料欄位包含M個N位元線段,包括:藉由抹除一索引欄位及一資料欄位,來初始化資料記憶胞之該複數個區段中的另一資料結構,該另一資料結構包含該索引欄位及該資料欄位;當該資料結構中的M個N位元資料欄位即將經歷寫入操作時,藉由程式化與其他資料結構的該資料欄位中一特定N位元線段對應之該其他資料結構的該索引欄位中的一資料記憶胞,寫入具有該相同邏輯位址之該資料的N位元於該其他資料結構中,且程式化該其他資料結構的該資料欄位中該特定N位元線段以儲存該資料的N位元。
- 如申請專利範圍第1項所述之方法,其中該資料結構包含一狀態欄位,且該初始化包含抹除該狀態欄位,其中該狀態欄位包含至少K-1個位元,且於初始化該資料結構時指示K 個進行狀態之目前一者。
- 如申請專利範圍第1項所述之方法,其中該資料結構包含一狀態欄位,且該初始化包含抹除該狀態欄位,其中該狀態欄位包含至少K-1個位元,且於初始化該資料結構時指示K個進行狀態之目前一者,包括一初始狀態其中該狀態欄位中所有的資料記憶胞皆被抹除,其中該K個進行狀態之一第一狀態為當儲存該狀態欄位之一第一位元的一資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,且該K個進行狀態之一第二狀態為當儲存該狀態欄位之該第一及一第二位元的一或多個資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,且該K個進行狀態之一最後狀態為該狀態欄位之所有該K-1個位元皆被程式化時。
- 如申請專利範圍第8項所述之方法,其中該初始狀態被初始化且沒有邏輯位址映射至該資料結構,該第二狀態為該資料結構被選取進行映射,一第三狀態為自源資料結構或是其他來源寫入N位元資料完成時,一第四狀態為開始(假如有的話)抹除該源資料結構,而該最後狀態為在當任何完成且邏輯位址映射至資料結構時抹除該源資料結構。
- 如申請專利範圍第1項所述之方法,包含分配第一及第二區塊,每一區塊包含L個區段,於該快閃記憶陣列的L個邏輯位址,且其中於一特定區段初始化該資料結構包括抹除包含該特定區段的該L個區段之該第一及第二區塊之一者。
- 如申請專利範圍第1項所述之方法,包含分配第一及第二區塊,每一區塊包含L個區段,於該快閃記憶陣列的L個邏 輯位址,且其中該區段之該資料結構中的該資料欄位包括M個N位元區段,包括:藉由抹除該第二區塊,初始化該第二區塊中的資料結構,且包括:當該第一區塊中的該資料結構中的M個N位元資料欄位即將經歷寫入操作時,將該第一區塊中所儲存的資料移至該第二區塊中的資料結構。
- 一種操作一快閃記憶陣列的裝置,包含:一記憶陣列,包含具有區段位址的資料記憶胞之複數個區段;儲存資料結構於以儲存該資料記憶胞之複數個區段中的邏輯,該資料結構安排儲存資料的N位元,在該複數個區段之一的一資料結構包括一索引欄位及一資料欄位;藉由抹除該索引欄位及該資料欄位來初始化該資料結構的邏輯;藉由程式化該索引欄位中儲存有與該資料欄位中一特定N位元線段對應之一位元的一資料記憶胞,寫入具有一邏輯位址之該資料的N位元,且程式化該資料結構的該資料欄位中該特定N位元線段以儲存該資料的N位元,以及藉由程式化該資料結構的該素引欄位中有與該資料欄位中另一不同N位元線段對應之另一位元,再次寫入具有該相同邏輯位址之資料的N位元於該資料結構中,且程式化該不同的N位元線段的邏輯。
- 如申請專利範圍第12項所述之裝置,其中該儲存的邏輯、該初始化的邏輯及該寫入的邏輯之至少一部分包括一處理器及儲存於該記憶陣列中可由該處理器執行之指令。
- 如申請專利範圍第12項所述之裝置,更包含:記憶體,儲存一邏輯位址映射表以映射該資料的N位元之該邏輯位址至該資料記憶胞之該複數個區段的區段位址。
- 如申請專利範圍第12項所述之裝置,包括藉由讀取由該索引欄位所辨別之該資料欄位中的一N位元線段來讀取該資料結構中的該資料的N位元之邏輯。
- 如申請專利範圍第12項所述之裝置,其中該索引欄位包含一指向器欄位依序儲存M位元,且該資料欄位包含依序排列的M個N位元線段,其中該指向器欄位中M位元的最後一個已被程式化對應至該資料欄位中的該M個N位元線段最近使用之一者。
- 如申請專利範圍第12項所述之裝置,其中該索引欄位包含一指向器欄位依序儲存M位元,且該資料欄位包含依序排列的M個N位元線段,其中當該儲存一第一位元的一資料記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該N位元線段之位址順序的第一者,當該儲存該第一位元及一第二位元的一或多個資料記憶胞被程式化且其餘的資料記憶胞在該指向器欄位中仍保持抹除時,該指向器欄位指向該N位元線段之位址順序的第二者,且當該指向器欄位中的所有該M位元皆被程式化時,該指向器欄位指向該N位元線段之位址順序的最後一者。
- 如申請專利範圍第12項所述之裝置,其中該資料欄位包含M個N位元線段,包括:藉由抹除一該索引欄位及一資料欄位,來初始化資料記憶胞 之該複數個區段的另一資料結構的邏輯,該另一資料結構包含該索引欄位及該資料欄位,且包括:當該資料結構中M個N位元資料欄位即將經歷寫入操作時,藉由程式化與其他資料結構的該資料欄位中一特定N位元線段對應之該其他資料結構的該索引欄位中的一資料記憶胞,寫入具有該相同邏輯位址之該資料的N位元於該其他資料結構中,且程式化該其他資料結構的該資料欄位中該特定N位元線段以儲存該資料的N位元的邏輯。
- 如申請專利範圍第12項所述之裝置,其中該資料結構包含一狀態欄位,且該初始化包含抹除該狀態欄位,其中該狀態欄位包含至少K-1個位元,且於初始化該資料結構時指示K個進行狀態之目前一者。
- 如申請專利範圍第12項所述之裝置,其中該資料結構包含一狀態欄位,且該初始化包含抹除該狀態欄位,其中該狀態欄位包含至少K-1個位元,且於初始化該資料結構時指示K個進行狀態之目前一者,包括一初始狀態其中該狀態欄位中所有的資料記憶胞皆被抹除,其中該K個進行狀態之一第一狀態為當儲存該狀態欄位之一第一位元的一資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,且該K個進行狀態之一第二狀態為當儲存該狀態欄位之該第一及一第二位元的一或多個資料記憶胞被程式化且該狀態欄位之其餘的資料記憶胞被抹除時,且該K個進行狀態之一最後狀態為該狀態欄位之所有該K-1個位元皆被程式化時。
- 如申請專利範圍第20項所述之裝置,其中該初始狀態被初始化且沒有邏輯位址映射至該資料結構,該第二狀態為該資 料結構被選取進行映射,一第三狀態為自源資料結構或是其他來源寫入N位元資料完成時,一第四狀態為開始(假如有的話)抹除該源資料結構,而該最後狀態為在當任何完成且邏輯位址映射至資料結構時抹除該源資料結構。
- 如申請專利範圍第12項所述之裝置,包含分配第一及第二區塊的邏輯,每一區塊包含L個區段,於該記憶陣列的L個邏輯位址,且其中於一特定區段初始化該資料結構包括抹除包含該特定區段的該L個區段之該第一及第二區塊之一者。
- 如申請專利範圍第12項所述之裝置,包含分配第一及第二區塊的邏輯,每一區塊包含L個區段,於該記憶陣列的L個邏輯位址,且其中該區段之該資料結構中的該資料欄位包括M個N位元區段,包括:藉由抹除該第二區塊,初始化該第二區塊中的資料結構的邏輯,且包括:當該第一區塊中的該資料結構中M個N位元資料欄位即將經歷寫入操作時,將該第一區塊中所儲存的資料移至該第二區塊中的資料結構的邏輯。
- 一種機器可讀資料儲存裝置,包含:一機器可讀資料儲存媒介,儲存可由處理器執行的指令,該處理器具有存取一記憶陣列的功能,該記憶陣列包含具有區段位址的資料記憶胞之複數個區段,該指令包含:儲存資料結構於以儲存該資料記憶胞之複數個區段中的邏輯,該資料結構安排儲存資料的N位元,在該複數個區段之一的一資料結構包括一索引欄位及一資料欄位; 藉由抹除該索引欄位及該資料欄位來初始化該資料結構的邏輯;藉由程式化該索引欄位中儲存有與該資料欄位中一特定N位元區段對應之一位元的一資料記憶胞,寫入具有一邏輯位址之該資料的N位元,且程式化該資料結構的該資料欄位中該特定N位元區段以儲存該資料的N位元,以及藉由程式化該資料結構的該索引欄位中有與該資料欄位中另一不同N位元線段對應之另一位元,再次寫入具有該相同邏輯位址之資料的N位元於該資料結構中,且程式化該不同的N位元線段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099120887A TWI457941B (zh) | 2010-06-25 | 2010-06-25 | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099120887A TWI457941B (zh) | 2010-06-25 | 2010-06-25 | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201201214A TW201201214A (en) | 2012-01-01 |
TWI457941B true TWI457941B (zh) | 2014-10-21 |
Family
ID=46755736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099120887A TWI457941B (zh) | 2010-06-25 | 2010-06-25 | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI457941B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690695B2 (en) | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
TWI505090B (zh) * | 2013-03-12 | 2015-10-21 | Macronix Int Co Ltd | 差異邏輯至實體方法 |
TWI546666B (zh) | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
JP7020989B2 (ja) * | 2018-04-23 | 2022-02-16 | 株式会社メガチップス | 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341339A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for wear leveling in a flash EEPROM memory |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5845313A (en) * | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
US20100161880A1 (en) * | 2006-12-27 | 2010-06-24 | Guangqing You | Flash initiative wear leveling algorithm |
-
2010
- 2010-06-25 TW TW099120887A patent/TWI457941B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341339A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for wear leveling in a flash EEPROM memory |
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5845313A (en) * | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6115785A (en) * | 1995-07-31 | 2000-09-05 | Lexar Media, Inc. | Direct logical block addressing flash memory mass storage architecture |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US20100161880A1 (en) * | 2006-12-27 | 2010-06-24 | Guangqing You | Flash initiative wear leveling algorithm |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
Also Published As
Publication number | Publication date |
---|---|
TW201201214A (en) | 2012-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8239619B2 (en) | Method and apparatus for high-speed byte-access in block-based flash memory | |
TWI457940B (zh) | 區塊為基礎快閃記憶體之位元組存取 | |
US8296498B2 (en) | Method and system for virtual fast access non-volatile RAM | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US7814264B2 (en) | Memory card, semiconductor device, and method of controlling semiconductor memory | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
JP7010667B2 (ja) | メモリシステムおよび制御方法 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TW201432447A (zh) | 用於非揮發性儲存裝置的再編址記憶體 | |
US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
TWI457941B (zh) | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
CN117555478A (zh) | 一种基于闪存的模拟eeprom读写方法 | |
US20060059296A1 (en) | Emulating small block size of flash memory | |
JP2021068129A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US20230076365A1 (en) | Fast lba/pba table rebuild | |
EP4435579A1 (en) | Storage controller providing status information of zone region |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |