TWI457940B - 區塊為基礎快閃記憶體之位元組存取 - Google Patents
區塊為基礎快閃記憶體之位元組存取 Download PDFInfo
- Publication number
- TWI457940B TWI457940B TW099107668A TW99107668A TWI457940B TW I457940 B TWI457940 B TW I457940B TW 099107668 A TW099107668 A TW 099107668A TW 99107668 A TW99107668 A TW 99107668A TW I457940 B TWI457940 B TW I457940B
- Authority
- TW
- Taiwan
- Prior art keywords
- segment
- data
- logical address
- write
- area
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 6
- 238000013506 data mapping Methods 0.000 claims 1
- 230000000087 stabilizing effect Effects 0.000 claims 1
- 238000013519 translation Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000000463 material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013523 data management Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係關於快閃記憶體技術,特別是關於區塊為基礎快閃記憶裝置的資料管理技術。
電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶體包括將電荷儲存在通道與場效電晶體閘極之間的記憶胞。所儲存的電荷會影響電晶體的臨界電壓,且臨界電壓會根據所儲存電荷改變而可以用來感測指示資料。其中一種非常慣用的電荷儲存記憶胞被稱為一浮動閘極記憶胞。在一浮動閘極記憶胞中,其會儲存電荷於通道與閘極之間的一導電材料層中。另一種電荷儲存記憶胞型態被稱為一電荷捕捉記憶胞,其會使用一介電層來取代浮動閘極。
此處所使用的名詞”程式化”是指增加電晶體臨界電壓的操作。此處所使用的名詞”抹除”則是指減少電晶體臨界電壓的操作。此外,此處所使用的名詞”寫入”則是指改變電晶體臨界電壓的操作,且其用意是包含增加或減少電晶體臨界電壓的操作。
在一電性可程式可抹除唯讀記憶體(EEPROM)裝置的記憶胞可以利用一位元組接著一位元組的方式進行資料讀寫,而與其他資料位元組無關。然而,為了實現一位元組接著一位元組的方式進行資料讀寫,此電性可程式可抹除唯讀記憶體(EEPROM)的記憶密度是相對低的。
快閃記憶體通常提供較電性可程式可抹除唯讀記憶體(EEPROM)更高的記憶密度。在一快閃記憶體裝置的記憶胞可以利用一位元組接著一位元組的方式進行程式化。然而,因為此快閃記憶胞的組態,抹除必須以更大的區段接著區段的方式進行,其中每一個區段包括相對較大數目的位元組。因此,為了抹除一區段內的一記憶胞,該區段內的所有記憶胞都必須也被抹除。換句話說,快閃記憶體提供一位元組接著一位元組的方式進行程式化,但是並無法如同電性可程式可抹除唯讀記憶體(EEPROM)一般提供一位元組接著一位元組的方式抹除或寫入。
電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶裝置通常是作為不同的應用。一般而言,因為其較高的密度,快閃記憶體在大量資料儲存應用方面是較電性可程式可抹除唯讀記憶體(EEPROM)更為經濟的。而電性可程式可抹除唯讀記憶體(EEPROM)是在需要對小量資料進行一位元組接著一位元組之資料讀寫更為合適。
許多電子裝置中同時包含有電性可程式可抹除唯讀記憶體(EEPROM)及快閃記憶體,以滿足此裝置中不同功能的不同記憶表現需求。然而,同時使用這兩種型態的記憶體增加了此裝置的成本及複雜程度。
因為快閃記憶體無法提供一位元組接著一位元組的方式抹除,寫入更新資料於一區段可以利用先執行一區段讀取操作以記錄此區段中的所有記憶胞內容,之後執行一區段抹除操作以抹除此區段中的所有記憶胞,之後再程式化更新資料至此區段的方式進行。此方法的一個缺點是此區段中的所有記憶胞需要經歷一讀取-抺除-程式化的循環流程,即使是此區段中的僅有某些記憶胞的資料被改變。且此流程也是非常耗時的。
快閃記憶體會產生一個特定的問題就是其具有有限的耐久性,此裝置中的記憶胞可維持其操作性及可靠性的抹除及/或程式化循環之數目是有限的。因此,重複及持續地寫入單一區段,或是少數的區段,會導致某些區段在相對短的時間之後變得老化並有缺陷了。
不同的”平均消耗”技術被提出以延長快閃記憶體的壽命。一種平均消耗方案是使用紀錄每一個區段被抹除的次數。此計數器然後被用來調整資料被映射至個別的區段中,以平衡其消耗。可參閱美國專利第6,000,006、5,485,595和5,341,339號專利。
雖然使用計數器可以延長快閃記憶裝置的壽命,然而有限的讀取/寫入耐久性問題仍會限制快閃記憶體在需要較多次數程式化及抹除操作的應用。
另一種平均消耗方案是將更新資料寫入快閃記憶裝置中的沒有使用之實體位置,而不是重新覆蓋原本的資料位置。如此會減少快閃記憶裝置中的一給定寫入操作時的區段抹除操作數目。可參閱美國專利第5,845,313和6,115,785號專利。
為了追蹤資料的實際位置改變,可以使用可程式化的映射表或是位址轉譯表。可程式化的映射表儲存由一外部系統所指示的邏輯位址與包含有效資料的快閃記憶裝置實體位址之間的映射資訊。為了正確地追蹤有效資料的實際位置,此可程式化的映射表在操作時必須被更新。
為了確保有效資料被保持,此映射資訊必須在中斷電源時被保持。然而,因為此可程式化的映射位址轉譯表被持續地更新,儲存此映射資訊於快閃記憶體中會減少此裝置的壽命。因為快閃記憶體相對慢的抹除速度,如此會嚴重地影響使用快閃記憶體之裝置的表現。此可程式化的映射位址轉譯表或許可以替代地儲存在此裝置中的另一個非揮發記憶體電路內。然而,也會增加了此裝置的成本及複雜程度。
因此需要提供一種快閃記憶裝置其可以模擬如同電性可程式可抹除唯讀記憶體(EEPROM)所提供的一位元組接著一位元組的方式進行資料寫入,而同時也可以利用較低的成本及複雜程度並解決耐久性問題。
此處所描述之區塊為基礎快閃記憶裝置的資料管理技術可以避免在每次更新儲存於此快閃記憶裝置中的資料時就必須進行區塊抹除操作。映射至此快閃記憶裝置區塊中的邏輯位址具有較此區塊中更小的位址數目。此區段抹除操作可以藉由寫入更新資料至對應區塊的可用預抹除位置之邏輯位址而不是直接覆蓋舊資料而避免。其結果是,可以在需要一區段抹除操作之前進行更多次數的寫入操作。此外,此以區塊為基礎的快閃記憶裝置,可以同時模擬如同電性可程式可抹除唯讀記憶體(EEPROM)所提供的一位元組接著一位元組的方式進行資料寫入。
本發明亦描述一種操作一快閃記憶裝置的方法,該快閃記憶裝置包括複數個區塊,每一個區塊包含複數個區段。該方法包含將邏輯位址映射至該複數個區塊中的對應區塊。
對該複數個區塊中的一特定區塊,此方法亦包含將該特定區塊之該複數個區段中的一第一區段標示為一具有一初始資料區域及一寫入紀錄區域的工作區段。該初始資料區域係使用儲存此對應邏輯位址中的一資料組,而此寫入紀錄區域是用來儲存此資料組中的更新資料。且將該特定區塊之該複數個區段中的一第二區段標示為一非工作區段。此非工作區段作為一預備單元以儲存對應邏輯位址群組的更新資料組,此資料組將被寫入此區段之初始資料區域。
為了回應一寫入命令與映射至該特定區塊的邏輯位址寫入更新資料,該寫入更新資料包含將寫入記錄資料寫入至該寫入紀錄區域中的一可寫位置,該寫入記錄資料指示該邏輯位址及指示該更新資料。
使用來自該初始資料區域及該寫入紀錄區域的資料不時編排一更新資料組,例如當寫入紀錄區域是滿的時候,如此寫入紀錄區域並不會溢出。該更新資料組寫入至該第二區段中的一初始資料區域內,且標示該特定區塊的第二區段為該工作區段。該第一區段然後被抹除,且標示該第一區段為該非工作區段。
該第一及該第二區段每一個包含一狀態旗標區域,其中該標示該第二區段為該工作區段包含程式化該第二區段的該狀態旗標區域中的一預定位置,且該標示該第一區段為該非工作區段包含抹除該第一區段的該狀態旗標區域。
此區段的標示可以藉由改變狀態旗標區域中的資料而不是總是需要抹除此狀態旗標區域而達成。舉例而言,當此區段是非工作時,狀態旗標區域中的資料可以在二位元表示中都是”1”或是在十六位元表示中都是”F”。之後,此狀態旗標區域的資料可以藉由程式化至此狀態旗標區域中的預設位置來改變,所以特定位元自邏輯狀態”1”(抹除)改變至邏輯狀態”0”(程式化),而保留原本已經是邏輯狀態”0”的位元。舉例而言,當此非工作區段之狀態旗標區域中的資料是”0xFFFFFF”時,後續操作時的程式化會將狀態旗標區域的資料先改變為”0xFFFF00”,然後至”0xFF0000”,且最後至”0x000000”。因為狀態旗標區域是位於區段之內,此狀態旗標區域然後在此區段被抹除時抹除回到”0xFFFFFF”。此技術消除了需要在每一次改變狀態旗標區域的資料時就必須抹除狀態旗標區域。
此處所描述之技術可以有效率地管理邏輯位址與包含有效資料區塊的實體位址之間的映射,而不需要經常地更新邏輯-實體位址映射資訊。
此處所描述之映射技術辨別對應一特定邏輯位址的區塊,且標示一偏移量其指示此初始資料區域中的一相對實體位址。在此寫入紀錄區域並不包括此特定邏輯位址的更新資料的情況下,當一區段被標示為工作區段時,此工作區段的偏移量用來指示初始資料區域中的對應輸入包含此特定邏輯位址的有效資料。使用此映射技術,狀態旗標及寫入紀錄區域並不需要在每一次更新此快閃記憶裝置中的資料後就被更新。因此,不需要於操作時讀取及更新較大的映射表,此更新資訊可以保持靜態穩定的。
本發明亦描述一種包含資料處理器及與處理器耦接的記憶體之裝置。該記憶體儲存可以由該資料處理器執行的指令,包括此處所描述的可以在一快閃記憶陣列上執行的許多不同的指令。
本發明之目的,特徵,和實施例,會在下列實施方式的章節中搭配圖式被描述。
本發明實施例搭配以下第1到12圖進行詳細描述。
第1圖顯示一電腦系統100的簡要方塊示意圖,其適用於使用此處所描述技術之區塊為基礎快閃記憶裝置120的資料安排之用。電腦系統100通常包含至少一個處理器114其透過匯流排子系統112與許多週邊裝置進行溝通。這些週邊裝置可以包括快閃記憶裝置120、使用者介面輸入裝置122、使用者介面輸出裝置130及一個網路介面子系統116。這些輸入與輸出裝置可以允許使用者與電腦系統100互動。網路介面子系統116係作為提供給與外部網路的介面,包含一個與通信網路118的介面,且透過通信網路118與其他電腦系統中的對應介面裝置耦接。通信網路118可以包含許多互連的電腦系統及通信連接。這些通信連接可以是有線連接、光纖連接、無線連接、或是其他資訊傳輸的機制。其中一個實施例的通信網路118是網際網路,但是在其他的實施例中通信網路118可以是任何適用的電腦網路。
使用者介面輸入裝置122可以包括鍵盤,指向裝置例如是滑鼠,軌跡追蹤器、觸控板、或是圖形平板、掃瞄器、觸控螢幕、聲控輸入裝置例如是聲音辨識系統、麥克風或是其他型態的輸入裝置等等。一般而言,使用此名詞”輸入裝置”是代表希望包含所有可能用來輸入資訊進入電腦系統100或是通信網路118的裝置型態或是方式。
使用者介面輸出裝置130可以包括顯示次系統、印表機、傳真機、或是非視覺顯示例如一聲音輸出裝置等等。此顯示次系統可以包括映像管(CRT)、平面顯示裝置例如液晶顯示器,一投影裝置,以及其他產生視覺影像的機制等。此顯示次系統也可以包括提供非視覺顯示例如聲音輸出裝置。一般而言,使用此名詞”輸出裝置”是代表希望包含所有可能用來自電腦系統100或是其他機器輸出資訊的裝置型態或是方式。
快閃記憶裝置120儲存基本的程式化及資料結構,其提供此處某些實施例中所描述的功能,包括邏輯至實體的位址映射及轉譯的指令,以及用來將資料安排於此快閃記憶裝置120內的指令(會在以下描述)。這些軟體模組通常是由處理器114執行,其可以包括隨機存取記憶體(RAM)以於程式執行時儲存指令或資料。
在例示的實施例中,處理器114執行指令以進行此處所描述快閃記憶裝置120外的許多操作。替代地,此快閃記憶裝置120包括一處理器或是其他型態的控制器以控制資料管理及執行此處所描述的許多操作。舉例而言,此控制器可以是使用業界所熟知的特殊功能邏輯電路構成之狀態機構。在替代的實施例中,此控制器包含通用目的處理器,其可以應用於同一積體電路上,以執行一控制此快閃記憶裝置120的電腦程式。而在另一實施例中,通用目的處理器與特殊功能邏輯電路的組合可以用來實施此控制器。
匯流排子系統112提供一機制使電腦系統100中不同的元件及子系統可以如所需要的彼此互相溝通。雖然圖式中所顯示的匯流排子系統112是單一匯流排,匯流排子系統112的替代實施例可以使用多重匯流排。在某些實施例中,於快閃記憶裝置120與匯流排子系統112之間的資料、位址及命令信號可以利用串列方式施加在共享的線上,例如可以使用業界所熟知的串列週邊介面。
電腦系統100本身可以是許多不同型態包括一個人電腦、可攜式電腦、工作站、電腦終端、網路電腦、主系統或是其他的資料處理系統或是使用者裝置。因為電腦系統持續不斷地改變,在第1圖中所描述的電腦系統100只是一個較佳實施例的例示罷了。電腦系統100也可以是其他組態,且相較於第1圖中所示的電腦系統具有更多或更少的元件。
如第1圖中所示,此快閃記憶裝置120包括複數個實體區塊,其包含區塊0 125-0至區塊N 125-N,以儲存利用上述技術安排的資料。如同以上所描述的,此快閃記憶裝置120也可以包括額外的區塊以儲存將邏輯與實體位址映射及轉譯的指令,且將資料分配於區塊0 125-0至區塊N 125-N。
指令包括自電腦系統100所指定的快閃記憶裝置120之邏輯位址與快閃記憶裝置120區塊0 125-0至區塊N 125-N的實體位址之間的映射。如同以下更詳細的描述,此映射於區塊0 125-0至區塊N 125-N的邏輯位址相較對應於區塊0 125-0至區塊N 125-N的實體位址數目具有較小數目的位址,如此在更新儲存於區塊0 125-0至區塊N 125-N內的資料時並不需要進行區段抹除操作。
區塊0 125-0至區塊N 125-N每一個包括複數個區段,其是可以個別地進行抹除。區塊0 125-0至區塊N 125-N中的區段包括一狀態旗標區域儲存用來指示一區段是否目前是工作(正在工作)、非工作(被抹除)、污染或是暫時的資料。
一個給定區塊之工作區段是用來儲存對應邏輯位址的資料。此工作區段包括一初始資料區域儲存對應邏輯位址群組的資料組。為了致能儲存此資料組中的更新資料,此工作區段也包括一寫入紀錄區域。在一寫入操作時,寫入紀錄包括將更新資料寫入寫入紀錄區域中可用(空)的區域。此寫入紀錄區域的大小必須在區段抹除操作的頻率及讀取操作(將在以下描述)的速度之間作取捨,且因此可以在不同的實施例中改變。
如同以下更詳細的描述,此在寫入紀錄區域中的寫入紀錄資料是利用一有組織的方式儲存,因此有效資料可以被正確地決定。
每一個區塊也包括一非工作區段,其作為一預備單元以不時地儲存對應邏輯位址群組的資料組,如此當寫入紀錄區域滿的時候,可以使寫入紀錄區域不會溢出。
區塊1 125-1是快閃記憶裝置120內區塊0 125-0至區塊N 125-N中的代表區塊。區塊1 125-1包括多數個區段128a-1和128b-1,...128c-1,其可以個別抹除。在此範例中,區段128a-1目前是工作的區段,而區段128b-1,...128c-1目前是非工作的區段。
第2圖顯示區塊1 125-1內的資料排列方式。目前是工作的區段128a-1,包括一初始資料區域200a-1儲存對應邏輯位址群組的資料組。當正在寫入的時候,初始資料區域200a-1中的資料組是對應邏輯位址的資料。因此,在初始資料區域200a-1中具有邏輯位址與對應輸入資料的一一對應。其結果是,在初始資料區域200a-1中的位址數目與映射至區塊1 125-1內的邏輯位址數目至少一樣大。
工作區段128a-1也包括一預抹除寫入紀錄區域210a-1。在回應寫入命令以更新一特定映射至區塊1 125-1內邏輯位址的資料時,一寫入紀錄資料230輸入被寫入至寫入紀錄區域210a-1中一個空的預抹除位置。
寫入紀錄資料230包括一第一欄位(“邏輯位址欄位”)指示此更新資料的一特定邏輯位址。此寫入紀錄資料230也包括一第二欄位(“更新資料欄位”)指示此更新資料。
此寫入紀錄資料230的第一欄位指示初始資料區域200a-1中對應此特定邏輯位址的位址不再有效,且由此寫入紀錄資料230的第二欄位中的更新資料所取代。
在第一欄位中的資料,舉例而言,可以是此特定邏輯位址,初始資料區域200a-1中對應此特定邏輯位址的實體位址輸入,此工作區段偏移量(如以下描述),或是任何其他可以被用來決定此特定邏輯位址的資料。
在一寫入操作,寫入紀錄資料230的輸入被寫入至寫入紀錄區域210a-1中第一個空的位置,而其他寫入紀錄區域210a-1中空的位置則會是跟隨最近寫入的寫入紀錄資料。其結果是,寫入紀錄資料的輸入被安排為一暫存的序列型態。
藉由將更新資料寫入至寫入紀錄區域210a-1,而不是利用區段抹除直接覆蓋初始資料區域200a-1中區段128a-1的資料,只有儲存寫入紀錄資料230的記憶胞被寫入。此外,更新資料的寫入係不必利用區段抹除操作。如此結果是區段抹除操作的數目是小於寫入操作的數目,其可以有效地提供此快閃記憶裝置120的耐久性。
因為寫入紀錄資料被寫入至寫入紀錄區域210a-1中空的位置,最終寫入紀錄區域的區段128a-1會變滿。因此,一更新資料組不時需要使用自初始資料區域和寫入紀錄區域的資料來進行編排,且作為工作與非工作區段互相調換,如此寫入紀錄區域才不會溢出。此處所使用的名詞”不時”通常是用來代表偶爾,且其並不用來限制為規律、循環或是相等的時間間隔。
在以下所描述的編排過程,此更新資料組包含對應邏輯位址的有效資料可以使用來自初始資料區域200a-1及目前工作區段128a-1中的寫入紀錄區域210a-1之資料來編排。此更新資料組然後被寫入初始資料區域200b-1的區段128b-1中,且改變區段128b-1的旗標區域220中的狀態旗標以指示此區段128b-1現在是工作的區段。區段128a-1然後被抹除且設置為區塊1 125-1中之一非工作的區段。在區塊1 125-1中的後續寫入操作時,此寫入紀錄資料被寫入至區段128b-1的寫入紀錄區域210b-1。
除了使用狀態旗標區域220以辨別在區塊1 125-1中的區段128a-1和區段128b-1的工作及非工作區段之外,此狀態旗標區域220也用來確保此更新資料被編排且正確地儲存在新的工作區段中。此操作會被更仔細地於第8圖中描述。
第3圖顯示一介於邏輯位址空間300中的邏輯位址群組325-0至325-7映射至快閃記憶裝置120實體位址空間310中的區塊0 125-0至區塊7 125-7的映射範例。在此例示中,4千位元組(KB)的邏輯位址空間300,包含邏輯位址空間300 0x0000~0x0FFF,分成8個512位元組的群組325-0至325-7。這些群組325-0至325-7的邏輯位址空間300被映射至對應的快閃記憶裝置120中8千位元組(KB)的區塊0 125-0至區塊7 125-7,其實體位址包含0x0000~0xFFFF。
因此,這些群組325-0邏輯位址0x0000~0x01FF被映射至區塊0 125-0,群組325-1邏輯位址0x0200~0x03FF被映射至區塊1 125-1,以此類推。
在此範例中,每一個8千位元組(KB)的區塊包含兩個4千位元組(KB)的區段。每一個區塊0 125-0至區塊7 125-7的工作區段包括一個512位元組的初始資料區域用來儲存所對應的邏輯位址群組325-0至325-7的資料組。每一個區段的狀態旗標區域是3位元組。此工作區段的剩餘3581位元組是用作寫入紀錄區域。在此範例中,2個位元組是作為寫入紀錄區域的第一欄位(“邏輯位址欄位”)輸入以指示此更新資料的一特定邏輯位址,而1個位元組是作為寫入紀錄區域的第二欄位(“更新資料欄位”)輸入以指示此更新資料。因此,在此範例中,此寫入紀錄區域在此工作區段變滿之前可以支援1193個單一位元組資料寫入操作。
如同之前所描述的,一給定區塊的工作區段可以於操作中改變。因此,區塊中的有效資料的實體位址係根據此區段目前是工作與否,以及此寫入紀錄區域的任何更新資料,來決定。其結果是,操作中包含有效資料之實體位址與邏輯位址之間的轉譯並不是固定的。
第4圖顯示實體位址與邏輯位址之間的轉譯之示意圖。
邏輯位址是使用一位址轉譯表320將其映射至對應的區塊。對一特定的邏輯位址而言,此位址轉譯表320提供對應至邏輯位址的區塊。此位址轉譯表320也提供工作區段偏移量其辨識在此初始資料區域中與此特定邏輯位址所對應的相對位址。
在此例示的實施例中,工作區段偏移量是自此初始資料區域中的起始實體位址的一相對位址。在一個如此的範例中,其中一個512位元組的初始資料區域用來儲存與512位元組邏輯資料組所對應的資料組,此工作區段偏移量是介於0x0000~0x01FF的一資料值。
此工作區段偏移量,當與狀態旗標搭配使用以辨別此工作區段,指示此初始資料區域中與此邏輯位址所對應的輸入。必須注意的是,初始資料區域中所對應的輸入並不一定包含此邏輯位址的有效資料,因為更新資料或許存在於寫入紀錄區域內。用來決定有效資料位置的讀取操作會於第7圖中描述。
狀態旗標、偏移量及寫入紀錄區域的使用排除了在快閃記憶裝置120每次更新資料或是當此區塊中的工作區段被改變之後就必須更新位址轉譯表320的需求。因此,位址轉譯表320可以保持靜態,而仍能正確的追蹤此有效資料。
因為位址轉譯表320並不需要持續地更新,其可以儲存於快閃記憶裝置120中。於操作時,位址轉譯表320可以被提取至較高存取速度的記憶體中,例如第1圖處理器的DRAM或是SRAM。
第5圖為根據本發明一實施例的一個由處理器114所執行儲存資料組於快閃記憶裝置120中的一特定區塊之組態流程的流程圖。如此處所示之流程圖,必須明白的是許多步驟可以被結合,平行地執行或是以不同的順序執行而不會影響所欲達成的功效,在某些情況下,不同步驟的重新安排僅會在一併調整某些步驟才會達成相同的功效,且在某些情況下,不同步驟的重新安排僅會在某些條件被滿足才會達成相同的功效。如此的重新安排對熟習此技藝人士而言是顯而易見的。
在步驟510,邏輯位址被映射至快閃記憶裝置120中對應的區塊。此映射可以藉由使用第4圖中的位址轉譯表320來進行。
在步驟520,此特定區塊中的一第一區段藉由程式化此第一區段中的狀態旗標區域以設置其狀態旗標為工作而被標示為工作區段。此工作區段具有初始資料區域及寫入紀錄區域。此特定區塊中的一第二區段藉由設置其狀態旗標為非工作而被標示為非工作區段。在此範例中,0xFF0000的狀態旗標指示一工作區段,而0xFFFFFF的狀態旗標指示一抹除區段。
在步驟530,對應於邏輯位址的資料組被寫入初始資料區域。
第6圖為一寫入操作的流程圖,其可以由處理器114執行以儲存更新資料於一特定的邏輯位址。
為了回應儲存更新資料的一寫入命令,在步驟610,使用之前所描述的位址轉譯表來決定對應於特定邏輯位址的區塊。
在步驟620,此對應區塊中的區段之狀態旗標區域被讀取以尋找此工作區段。
在步驟630,搜尋此工作區段的寫入紀錄區域以尋找可寫位置。因為寫入紀錄區域的可寫位置必須是在抹除狀態,在此範例中會自此寫入紀錄區域中的起始位址開始讀取邏輯位址欄位以尋找第一個抹除位置。
在步驟640,當此寫入紀錄區域中找不到一個可寫位置時即代表此工作區段中的寫入紀錄區域是滿的,而此流程繼續至方塊660其中一更新資料組被編排。此編排操作會在第8圖中被描述。
當此寫入紀錄區域中找到一個可寫位置時,此流程繼續至步驟650。在步驟650,一個指示邏輯位址及更新資料的寫入紀錄資料輸入被寫入至此寫入紀錄區域的可寫位置。此寫入操作600最後終止於步驟670。
第7圖為一讀取操作的流程圖,其可以由處理器114執行以自一特定的邏輯位址讀取資料。
為了回應自一特定的邏輯位址讀取資料的一讀取命令,在步驟710,使用之前所描述的位址轉譯表來決定對應於特定邏輯位址的區塊。
在步驟720,此對應區塊中的區段之狀態旗標區域被讀取以決定此工作區段。
在步驟730,此工作區段的寫入紀錄區域被搜尋以尋找此邏輯位址的輸入,此輸入指示此寫入紀錄區域包含此邏輯位址的更新資料。
上述範例中的寫入紀錄資料被寫入此寫入紀錄區域的第一個可寫位置。其結果是,此寫入紀錄資料被安排為一暫存的序列型態。因此,在此例示的實施例中寫入紀錄區域中的資料自最近的寫入紀錄資料開始讀取,因為當此邏輯位址的資料被更新了許多次時,此邏輯位址的第一筆輸入則會是最新的且因此指示此邏輯位址的有效資料。因此,當找到此邏輯位址的一輸入,此操作繼續至步驟740,其中此邏輯位址的資料利用此輸入來讀取。
當一輸入無法在此寫入紀錄區域中發現時,則在初始資料區域中的對應輸入包含此特定邏輯位址的有效資料。在步驟750,與此特定邏輯位址相關之初始資料區域中的對應輸入係使用由之前所描述的位址轉譯表所提供的工作區段偏移量來決定。儲存於對應輸入的資料則會被讀取並輸出。
如同之前所描述的,作為工作區段與非工作區段的區段則會不時交換。
第8圖為一編排操作800的流程圖,其可以由處理器114執行。此操作可以在寫入紀錄區域已經充滿時或是其他時候被啟動。
為了清晰解說以下的敘述起見,於操作800之前的工作區段被稱為”區段A”,而非工作區段被稱為”區段B”。
在步驟810,於操作800之前儲存於”區段A”之寫入紀錄區域及初始資料區域中的資料被讀取。包含此特定邏輯位址的有效資料之更新資料組,使用自寫入紀錄區域及初始資料區域所讀取的資料進行編排。
在步驟820,此更新資料組被寫入”區段B”之初始資料區域中,且將區段B標示為工作區段。在此例示實施例中,區段B的狀態旗標區域於此更新資料組被寫入之前暫時改變為(0xFFFF00),且隨後將更新資料組寫入的區段B之狀態旗標改變為工作。僅在此更新資料組寫入之後將區段B標示為工作可以確保區段B包含有效的資料。此外,藉由如此方式來改變區段B的狀態旗標區域,此狀態旗標區域的資料可以用來指示一例如為電源消失的中斷是否發生。此操作會於第9圖中詳細描述。
在步驟830,區段A標示為污染且被抹除。在此例示實施例中,區段A的狀態旗標區域之資料會在進行區段A的抹除操作之前改變為汙染(0x000000)。此區段抹除操作隨後將區段A之狀態旗標資料改變為抹除(非工作)。在進行區段A的抹除操作之前將其標示為汙染,此狀態旗標區域的資料可以用來指示中斷是否在抹除區段A之前發生。
如同之前所描述的,區段的標示可以藉由改變區段中的狀態旗標區域之資料而達成,並不需要總是抹除狀態旗標區域。
第9圖是一轉譯圖示顯示於操作時改變儲存在區段中的狀態旗標區域之資料。在第9圖中,此狀態旗標區域是3個位元組。
如第9圖中所示,當一區段是非工作的,狀態旗標區域中的資料是”0xFFFFFF”。自非工作改變為工作時,狀態旗標先改變為暫存的。在第9圖中,改變至暫存狀態是藉由程式化最低位置的位元組,因此狀態旗標區域的資料是”0xFFFF00”。由暫存改變至工作是藉由程式化中間位置位元組,因此狀態旗標區域的資料是”0xFF0000”。
自工作變成非工作的改變,狀態旗標區域中的資料首先改變至污染。在第9圖中,改變至污染狀態是藉由程式化狀態旗標區域中最高位置的位元組,因此資料是”0x000000”。因為狀態旗標區域是位於此區段之內,所以當此區段被抹除時此狀態旗標區域是抹除回到”0xFFFFFF”。此技術消除了在每一次狀態旗標區域需要改變時就必須抹除一次。其結果是,狀態旗標區域的資料可以被儲存在區段之內而不需要分開儲存。
替代地,許多不同區段的狀態改變可以藉由程式化狀態旗標區域中與第9圖所示的不同位置而達成。
第10圖為一操作1000的流程圖,其可以由處理器114執行以決定第8圖中的中斷操作800是否已發生。此操作1000可以在,舉例而言,當快閃記憶裝置120被提供電源或是在第一個寫入命令前被執行。
在步驟1010,一特定區塊的區段中之狀態旗標被讀取。當一區段中之狀態旗標是污染的,則一中斷於操作800中的步驟830時發生。在此情況下,在步驟1020此區段進行一區段抹除。
當一區段中之狀態旗標是暫存的,則一中斷於操作800中的步驟820時發生。在此情況下,在步驟1030對此區塊重新進行操作800。
當此區塊中有兩個區段具有工作區段狀態旗標時,則一中斷發生在操作800中的步驟820與830之間。在此情況下,在方塊1040,這些區段被讀取以決定哪一個區段是滿的且因此確實是污染的區段,及對此污染的區段進行一區段抹除。
此操作1000然後繼續檢查快閃記憶裝置120的下一個區塊,直到所有的區塊都被檢查完畢。
第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...實體位址空間
320...位址轉譯表
1110...低階快閃應用程式介面
1120...智慧快閃應用程式介面
1130...使用者程式碼
1200...位元組讀寫模式區域
1210...快閃記憶裝置存取模式區域
本發明係由申請專利範圍所界定。這些和其它目的,特徵,和實施例,會在下列實施方式的章節中搭配圖式被描述,其中:
第1圖顯示一電腦系統的簡要方塊示意圖,其適用於使用此處所描述技術之區塊為基礎快閃記憶裝置的資料安排之用。第2圖進一步顯示於一例示區塊內的資料排列方式。
第3圖顯示一在邏輯位址空間中的邏輯位址與陣列中的區塊之間映射的範例。
第4圖顯示實體位址與邏輯位址之間的轉譯之示意圖。
第5圖為根據本發明一實施例的一個由處理器所執行儲存資料組於快閃記憶裝置中的一特定區塊之組態流程的流程圖。
第6圖為一寫入操作的流程圖,以儲存更新資料於一特定的邏輯位址。
第7圖為一讀取操作的流程圖,以自一特定的邏輯位址讀取資料。。
第8圖為一編排操作的流程圖。
第9圖是一轉譯圖示顯示於操作時改變儲存在區段中的狀態旗標區域之資料。
第10圖為一操作的流程圖,以決定一中斷操作是否已發生。
第11圖顯示根據本發明一實施例快閃記憶裝置中不同軟體階級之間的關係圖。
第12圖顯示根據本發明一第二實施例快閃記憶裝置中不同軟體階級之間的關係圖。
320...位址轉譯表
Claims (10)
- 一種操作一區塊為基礎快閃記憶裝置的方法,該記憶裝置包括複數個實體區塊,每一個區塊包含複數個區段,該方法包含:將資料之複數個區段之邏輯位址群組映射至該些複數個實體區塊中的對應區塊;以及對於映射至一特定邏輯位址群組之於該些實體區塊中之一特定區塊:將該特定區塊之該複數個區段中的一第一區段標示為一具有一初始資料區域及一寫入紀錄區域的工作區段,且將該特定區塊之該複數個區段中的一第二區段標示為一非工作區段;寫入具有該特定邏輯位址群組之該區段之一資料組至該初始資料區域;以及回應一寫入命令以寫入該區段之一部分之更新資料;該區段之該部分具有一在該特定邏輯位址群組內之邏輯位址,該特定邏輯位址群組包括下階位址位元,其係可辨別在該特定群組內之該部分之該邏輯位址;該寫入更新資料包含將寫入記錄資料寫入至該寫入紀錄區域中的一可寫位置,該寫入記錄資料包括該下階位址位元並包括該更新資料。
- 如申請專利範圍第1項所述之方法,更包含:使用來自該初始資料區域及該寫入紀錄區域的資料編排一更新資料組;寫入該更新資料組至該第二區段中的一初始資料區域內,且標示該第二區段為該工作區段;以及 標示該第一區段為污染區段,且抹除該第一區段。
- 如申請專利範圍第2項所述之方法,其中:該第一區段及該第二區段每一個均包含一狀態旗標區域;該標示該第二區段為該工作區段包含程式化該第二區段的該狀態旗標區域中的一預定位置;以及該標示該第一區段為該非工作區段包含抹除該第一區段的該狀態旗標區域。
- 如申請專利範圍第2項所述之方法,其中:該第一區段及該第二區段每一個包含一狀態旗標區域;該標示該第二區段為該工作區段包含:程式化該第二區段的該狀態旗標區域中的一第一預定位置以在寫入該更新資料組之前標示該第二區段為一暫存區段;以及程式化該第二區段的該狀態旗標區域中的一第二預定位置以在寫入該更新資料組之後標示該第二區段為一工作區段;該標示該第一區段為該非工作區段包含:程式化該第一區段的該狀態旗標區域中的一第三預定位置以在抹除該第一區段之前標示該第一區段為一污染區段;抹除該第一區段的該狀態旗標區域。
- 如申請專利範圍第1項所述之方法,其中該映射識別該區塊對應至一特定邏輯位址,且識別在一初始資料區域中的一相對實體位址的偏移量。
- 如申請專利範圍第1項所述之方法,其中該將一邏輯位址寫入該更新資料包括: 寫入該寫入紀錄資料至該寫入紀錄區域中的一可寫位置除非該寫入紀錄區域是滿的;當該寫入紀錄區域為滿的時,編排該特定區塊的該更新資料組。
- 如申請專利範圍第1項所述之方法,更包含回應一讀取命令自映射至該特定區塊的一第二邏輯位址讀取資料,該讀取資料包含:當該寫入紀錄區域包括該第二邏輯位址的一輸入時,自該寫入紀錄區域中讀取該第二邏輯位址的資料;以及當該寫入紀錄區域並不包括該第二邏輯位址的一輸入的時,自該初始資料區域中的一對應輸入讀取該第二邏輯位址的資料。
- 如申請專利範圍第7項所述之方法,其中該自該寫入紀錄區域中讀取該第二邏輯位址的資料包含:辨識該寫入紀錄區域的該第二邏輯位址中的一最新的輸入;以及使用該最新的輸入自該第二邏輯位址讀取該資料。
- 一種區塊為基礎快閃記憶裝置,包含:一資料處理器及一記憶體與該資料處理器耦接,該記憶體儲存可以由該資料處理器執行的指令,該些指令包括:將資料之複數個區段之邏輯位址群組映射至複數個實體區塊中的對應區塊,該複數個區塊中的每一個區塊包含複數個區段;以及對於映射至一特定邏輯位址群組之於該些實體區塊中之一特定區塊:將一特定區塊之該複數個區段中的一第一區段標示為一具有一初始資料區域及一寫入紀錄區域的 工作區段,且將該特定區塊之該複數個區段中的一第二區段標示為一非工作區段;寫入具有該特定邏輯位址群組之該區段之一資料組至該初始資料區域;以及回應一寫入命令以寫入該區段之一部分之一更新資料;該區段之該部分具有一在該特定邏輯位址群組內之邏輯位址,該特定邏輯位址群組包括下階位址位元,其係可辨別在該特定群組內之該部分之該邏輯位址;該寫入更新資料包含將寫入記錄資料寫入至該特定區塊之該第一區段之該寫入紀錄區域中的一可寫位置,該寫入記錄資料包括該下階位址位元並包括該更新資料。
- 如申請專利範圍第9項所述之裝置,其中:標示該第二區段為該工作區段的該些指令包含:程式化該第二區段的一狀態旗標區域中的一第一預定位置以在寫入該更新資料組之前標示該第二區段為一暫存區段;以及程式化該第二區段的該狀態旗標區域中的一第二預定位置以在寫入該更新資料組之後標示該第二區段為一工作區段;以及標示該第一區段為該非工作區段的該些指令包含:程式化該第一區段的該狀態旗標區域中的一第三預定位置以在抹除該第一區段之前標示該第一區段為一污染區段;以及抹除該第一區段的該狀態旗標區域。頁區塊一部分中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17881309P | 2009-05-15 | 2009-05-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201040972A TW201040972A (en) | 2010-11-16 |
TWI457940B true TWI457940B (zh) | 2014-10-21 |
Family
ID=43069425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099107668A TWI457940B (zh) | 2009-05-15 | 2010-03-16 | 區塊為基礎快閃記憶體之位元組存取 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8769189B2 (zh) |
CN (1) | CN101923516B (zh) |
TW (1) | TWI457940B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122179B2 (en) * | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
CN102591738B (zh) * | 2011-01-07 | 2015-09-30 | 群联电子股份有限公司 | 数据管理方法、存储器控制器与嵌入式存储器储存装置 |
US20120246385A1 (en) * | 2011-03-22 | 2012-09-27 | American Megatrends, Inc. | Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller |
CN102231136B (zh) | 2011-07-12 | 2014-06-11 | 晨星软件研发(深圳)有限公司 | 一种闪存存储设备的数据存储方法和装置 |
CN103650630B (zh) * | 2011-07-15 | 2017-11-14 | 诺基亚技术有限公司 | 用于分发传感器数据的方法和装置 |
EP2653973A1 (de) * | 2012-04-20 | 2013-10-23 | Siemens Aktiengesellschaft | Verfahren zur Verlängerung der Lebensdauer eines physikalischen Flash-Speichers |
US20130346680A1 (en) * | 2012-06-22 | 2013-12-26 | Ross S. Scouller | Emulated electrically erasable memory having an address ram for data stored in flash memory |
US9864638B2 (en) * | 2012-06-22 | 2018-01-09 | Intel Corporation | Techniques for accessing a graphical processing unit memory by an application |
KR20140056657A (ko) * | 2012-10-30 | 2014-05-12 | 삼성전자주식회사 | 메인 메모리를 구비한 컴퓨터 시스템 및 그것의 제어 방법 |
US20140201167A1 (en) * | 2013-01-17 | 2014-07-17 | Dell Products L.P. | Systems and methods for file system management |
US9471485B2 (en) | 2013-03-12 | 2016-10-18 | Macronix International Co., Ltd. | Difference L2P method |
EP2955633B1 (en) | 2013-03-15 | 2018-05-23 | Huawei Technologies Co., Ltd. | Data erasing method and device for flash memory |
US9483397B2 (en) * | 2013-07-16 | 2016-11-01 | Intel Corporation | Erase management in memory systems |
CN106033362A (zh) * | 2015-03-13 | 2016-10-19 | 北京视联动力国际信息技术有限公司 | 一种闪存分区的处理方法和装置 |
US10420928B2 (en) * | 2015-12-14 | 2019-09-24 | Medtronic, Inc. | Implantable medical device having a scheme for managing storage of data |
CN106408790B (zh) * | 2016-08-26 | 2024-03-19 | 恒银金融科技股份有限公司 | 金融设备循环机芯日志信息写入方法及读取方法 |
CN106528441B (zh) * | 2016-10-26 | 2020-08-04 | 珠海格力电器股份有限公司 | 仿真eeprom的数据处理方法、装置及电子设备 |
KR20180064588A (ko) * | 2016-12-05 | 2018-06-15 | 에스케이하이닉스 주식회사 | 메모리 제어 장치 및 방법 |
CN108121668B (zh) * | 2018-01-08 | 2020-10-02 | 华大半导体有限公司 | 一种存储映射控制装置及控制方法 |
US10684947B2 (en) * | 2018-04-20 | 2020-06-16 | International Business Machines Corporation | Increasing high performance data storage utilization by reducing write operations |
US10853309B2 (en) * | 2018-08-13 | 2020-12-01 | Micron Technology, Inc. | Fuseload architecture for system-on-chip reconfiguration and repurposing |
US10891077B2 (en) * | 2018-12-26 | 2021-01-12 | Macronix International Co., Ltd. | Flash memory device and controlling method thereof |
CN113299333A (zh) * | 2020-02-21 | 2021-08-24 | 硅存储技术股份有限公司 | 由闪存单元构成的eeprom仿真器中的损耗均衡 |
CN114115700A (zh) * | 2020-08-31 | 2022-03-01 | 施耐德电气(中国)有限公司 | 闪存数据读写方法和闪存数据读写装置 |
CN112466371B (zh) * | 2020-12-17 | 2022-09-09 | 宁波拓普集团股份有限公司 | 一种循环利用闪存模拟字节擦除功能的方法 |
CN113568579B (zh) * | 2021-07-28 | 2022-05-03 | 深圳市高川自动化技术有限公司 | 一种存储器、数据存储方法以及数据读取方法 |
CN114527934A (zh) * | 2022-01-12 | 2022-05-24 | 珠海泰芯半导体有限公司 | 闪存的控制方法、装置、存储介质和电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223308B1 (en) * | 1995-07-31 | 2001-04-24 | Lexar Media, Inc. | Identification and verification of a sector within a block of mass STO rage flash memory |
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
US20060002197A1 (en) * | 2004-06-30 | 2006-01-05 | Rudelic John C | Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power |
US20070143531A1 (en) * | 2005-12-15 | 2007-06-21 | Atri Sunil R | Power loss recovery for bit alterable memory |
US20070268754A1 (en) * | 2000-01-06 | 2007-11-22 | Super Talent Electronics Inc. | Recycling Partially-Stale Flash Blocks Using a Sliding Window for Multi-Level-Cell (MLC) Flash Memory |
US7318151B1 (en) * | 2004-11-04 | 2008-01-08 | Network Appliance, Inc. | Method and system for firmware management |
US20080195804A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Methods of writing partial page data in a non-volatile memory device |
US20080201518A1 (en) * | 2007-02-16 | 2008-08-21 | Electronics And Telecommunications Research Institute | Log-based ftl and operating method thereof |
US7480761B2 (en) * | 2005-01-10 | 2009-01-20 | Microsoft Corporation | System and methods for an overlay disk and cache using portable flash memory |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3641280B2 (ja) | 1992-10-30 | 2005-04-20 | インテル・コーポレーション | フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
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 |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
EP0953984B1 (en) * | 1998-04-30 | 2003-07-02 | STMicroelectronics S.r.l. | Method for saving data in the event of unwanted interruptions in the programming cycle of a nonvolatile memory, and a nonvolatile memory |
KR100577380B1 (ko) | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
CN1619533A (zh) * | 2003-11-17 | 2005-05-25 | 鸿富锦精密工业(深圳)有限公司 | 闪存文件管理系统及方法 |
KR100672147B1 (ko) * | 2005-03-15 | 2007-01-19 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 체크 보드 프로그램 시에 프로그램페일을 방지하기 위한 페이지 버퍼 |
CN101346703B (zh) * | 2005-12-21 | 2012-11-21 | Nxp股份有限公司 | 具有可块擦除单元的非易失性存储器 |
CN101183336A (zh) * | 2007-12-18 | 2008-05-21 | 凌阳科技股份有限公司 | 使用非易失性存储器记录资料的方法及电子装置 |
US7979626B2 (en) * | 2008-05-13 | 2011-07-12 | Microsoft Corporation | Flash recovery employing transaction log |
US8347050B2 (en) * | 2009-01-27 | 2013-01-01 | Microsoft Corporation | Append-based shared persistent storage |
TWI405214B (zh) * | 2009-05-06 | 2013-08-11 | A Data Technology Co Ltd | 快閃記憶體儲存系統之資料燒錄方法 |
-
2010
- 2010-03-16 TW TW099107668A patent/TWI457940B/zh active
- 2010-04-27 US US12/768,368 patent/US8769189B2/en active Active
- 2010-05-14 CN CN201010180645.XA patent/CN101923516B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223308B1 (en) * | 1995-07-31 | 2001-04-24 | Lexar Media, Inc. | Identification and verification of a sector within a block of mass STO rage flash memory |
US20070268754A1 (en) * | 2000-01-06 | 2007-11-22 | Super Talent Electronics Inc. | Recycling Partially-Stale Flash Blocks Using a Sliding Window for Multi-Level-Cell (MLC) Flash Memory |
US6938116B2 (en) * | 2001-06-04 | 2005-08-30 | Samsung Electronics Co., Ltd. | Flash memory management method |
US20060002197A1 (en) * | 2004-06-30 | 2006-01-05 | Rudelic John C | Method and apparatus to detect invalid data in a nonvolatile memory following a loss of power |
US7318151B1 (en) * | 2004-11-04 | 2008-01-08 | Network Appliance, Inc. | Method and system for firmware management |
US7480761B2 (en) * | 2005-01-10 | 2009-01-20 | Microsoft Corporation | System and methods for an overlay disk and cache using portable flash memory |
US20070143531A1 (en) * | 2005-12-15 | 2007-06-21 | Atri Sunil R | Power loss recovery for bit alterable memory |
US20080195804A1 (en) * | 2007-02-13 | 2008-08-14 | Samsung Electronics Co., Ltd. | Methods of writing partial page data in a non-volatile memory device |
US20080201518A1 (en) * | 2007-02-16 | 2008-08-21 | Electronics And Telecommunications Research Institute | Log-based ftl and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN101923516B (zh) | 2013-02-06 |
TW201040972A (en) | 2010-11-16 |
US8769189B2 (en) | 2014-07-01 |
US20100293320A1 (en) | 2010-11-18 |
CN101923516A (zh) | 2010-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI457940B (zh) | 區塊為基礎快閃記憶體之位元組存取 | |
US8239619B2 (en) | Method and apparatus for high-speed byte-access in block-based flash memory | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
JP4948793B2 (ja) | バッドブロック管理部を含むフラッシュメモリシステム | |
US8452913B2 (en) | Semiconductor memory device and method of processing data for erase operation of semiconductor memory device | |
CN101673226B (zh) | Nand错误管理 | |
CN101751996B (zh) | 非易失性存储器 | |
US8837217B2 (en) | Memory storage apparatus, and memory controller and power control method | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
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 | |
US20110161565A1 (en) | Flash memory storage system and controller and data writing method thereof | |
US8250292B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US20080109612A1 (en) | Dynamic Code Relocation for Low Endurance Memories | |
TWI457941B (zh) | 區塊為基礎快閃記憶體之位元組存取的方法與裝置 | |
US8417909B2 (en) | Block management and data writing method, and flash memory storage system and controller using the same | |
US6898680B2 (en) | Minimization of overhead of non-volatile memory operation | |
JP4000124B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2005292925A (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
US20230076365A1 (en) | Fast lba/pba table rebuild | |
JP2021068129A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2005293177A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2004265594A (ja) | 不揮発性半導体メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |