TWI381393B - 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 - Google Patents

區塊管理與更換方法、快閃記憶體儲存系統及其控制器 Download PDF

Info

Publication number
TWI381393B
TWI381393B TW097138395A TW97138395A TWI381393B TW I381393 B TWI381393 B TW I381393B TW 097138395 A TW097138395 A TW 097138395A TW 97138395 A TW97138395 A TW 97138395A TW I381393 B TWI381393 B TW I381393B
Authority
TW
Taiwan
Prior art keywords
physical
block
area
flash memory
damaged
Prior art date
Application number
TW097138395A
Other languages
English (en)
Other versions
TW201015563A (en
Inventor
Chien Hua Chu
Chih Kang Yeh
Horng Sheng Yan
Original Assignee
Phison Electronics Corp
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
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to TW097138395A priority Critical patent/TWI381393B/zh
Priority to US12/328,467 priority patent/US8074128B2/en
Publication of TW201015563A publication Critical patent/TW201015563A/zh
Application granted granted Critical
Publication of TWI381393B publication Critical patent/TWI381393B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

區塊管理與更換方法、快閃記憶體儲存系統及其控制 器
本發明是有關於一種用於快閃記憶體的區塊管理與更換方法以及使用此方法的快閃記憶體儲存系統及其控制器,且特別是有關於一種用於具多區塊面之快閃記憶體晶片的區塊管理與更換方法以及使用此方法的快閃記憶體儲存系統及其控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃訊憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存系統的快閃記憶體晶片(chip)中的快閃記憶體晶粒(die)會劃分為多個實體單元(unit),此些實體單元是一般可由一個實體區塊或多個實體區塊所組成。此些實體單元會界定為資料區(data area)與備用區(spare area)。歸類為資料區的實體單元中會儲存由寫入指令所寫入的有效資料,而備用區中的實體單元是用以在執行寫入指令時替換資料區中的實體單元。具體來說,當快閃記憶體儲存系統接受到主機系統的寫入指令而欲對資料區的實體單元進行寫入時,快閃記憶體儲存系統 會從備用區中提取實體單元並且將在資料區中欲更新之實體單元中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體單元並且將已寫入新資料的實體單元關聯為資料區,並且將原本資料區的實體單元進行抹除並關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體單元,快閃記憶體儲存系統會配置邏輯單元以供主機系統進行存取,其中邏輯單元是根據實體單元以一個或多個實體區塊的大小來配置。也就是說,快閃記憶體儲存系統會建立邏輯-實體位址對映表(logical-physical address mapping table),並且在此表中記錄與更新邏輯單元與資料區的實體單元之間的對映關係來反映實體單元的輪替,所以主機系統僅需要針對所提供邏輯單元進行存取而快閃記憶體儲存系統會依據邏輯-實體位址對映表來對所對映的實體單元進行讀取或寫入資料。
此外,一般快閃記憶體晶片(chip)中會保留部分的實體單元作為一替代區,其是用以當資料區或備用區中的實體單元損壞時取代損壞的實體單元來繼續運作。特別是,在具多區塊面之快閃記憶體晶片為了能夠利用提升存取速度,一般會以屬於不同區塊面且能夠執行多區塊面存取指令(multi-planes accessing command)的多個實體區塊所組成的實體單元來進行存取。在此例子中,倘若實體單元內的其中一個實體區塊損壞時,快閃記憶體儲存系統會以整個實體單元為單位來更換損壞的實體單元以使其能夠繼續以多區塊面存取指令來進行存取。此更換的動作可被執行 直到替代區無可用之實體單元可來取代損壞的實體單元為止,並且此時快閃記憶體儲存系統就會被宣告損毀而無法再繼續使用。
然而,事實上被替換之損壞實體單元中仍有未損壞之實體區塊,因此以上述方式執行區塊的管理與更換會導致快閃記憶體儲存系統的可儲存空間的浪費,並且會縮短快閃記憶體儲存系統的壽命。
有鑑於此,本發明提供一種區塊管理與更換方法,其能夠提升快閃記憶體儲存系統的資料寫入效率並且延長快閃記憶體儲存系統的壽命。
此外,本發明提供一種控制器,其使用上述區塊管理與更換方法來管理快閃記憶體晶片,其能夠提升快閃記憶體儲存系統的資料寫入效率並且延長快閃記憶體儲存系統的壽命。
再者,本發明提供一種儲存系統,其使用上述區塊管理與更換方法來管理快閃記憶體晶片,其能夠提升快閃記憶體儲存系統的資料寫入效率並且延長快閃記憶體儲存系統的壽命。
本發明提出一種區塊管理與更換方法,適用於快閃記憶體儲存系統,其中此快閃記憶體儲存系統具有多個實體區塊,此區塊管理與更換方法包括將實體區塊劃分為多個實體單元並且分組為使用區與替代區,其中每一實體單位 中的實體區塊可藉由使用多區塊面存取(multi-planes accessing)指令來存取。此區塊管理與更換方法也包括當屬於使用區的實體單元內的其中一個實體區塊損壞時,判斷替代區中未損壞的實體單元的數目是否大於一預定門檻值,其中當替代區中未損壞的實體單元的數目大於此預定門檻值時,則從替代區中選擇未損壞的實體單元以實體單元為單位來取代一般區中具損壞的實體區塊的實體單元並且記錄被取代的實體單元中未損壞或損壞的實體區塊。並且,當替代區中未損壞的實體單元的數目不大於此預定門檻值時,則從替代區中選擇未損壞的實體區塊以實體區塊為單位來取代損壞的實體區塊。
在本發明之一實施例中,上述之區塊管理與更換方法更包括將使用區區分為資料區與備用區,其中屬於備用區的實體單元用以與屬於資料區的實體單元輪替地儲存資料。
在本發明之一實施例中,上述之每一實體區塊具有一冗餘區,並且上述記錄被取代的實體單元中未損壞的實體區塊的步驟包括在未損壞的實體區塊的冗餘區中記錄一標記。
在本發明之一實施例中,上述之記錄被取代的實體單元中未損壞的所述實體區塊的步驟包括在一更換表中記錄未損壞的實體區塊。
本發明亦提供一種快閃記憶體儲存系統及其控制器,此快閃記憶體儲存系統包括快閃記憶體晶片、連接器 以及控制器,其中快閃記憶體晶片具有多個實體區塊。此控制器是電性連接至上述快閃記憶體晶片與連接器,並且此控制器包括微處理器單元以及耦接至微處理器單元的快閃記憶體介面模組、緩衝記憶體、主機介面模組與記憶體管理模組。特別是,此記憶體管理模組具有可由微處理器單元執行的多個機器指令以對快閃記憶體完成上述區塊管理與更換方法。
在本發明之一實施例中,上述之快閃記憶體儲存系統為隨身碟、快閃記憶卡或固態硬碟。
在本發明之一實施例中,上述之實體區塊是屬於多個區塊面,並且每一實體單元是由屬於不同區塊面的至少兩個實體區塊所組成。
在本發明之一實施例中,上述之區塊面是屬於一個快閃記憶體晶粒。
在本發明之一實施例中,上述之區塊面是屬於多個快閃記憶體晶粒。
在本發明之一實施例中,上述之快閃記憶體晶粒是屬於多個快閃記憶體晶片。
在本發明之一實施例中,上述之快閃記憶體晶粒是屬於一個快閃記憶體晶片。
本發明所提供的方法能在替代區仍存有可以多區塊面存取指令存取的實體區塊所組成的實體單元時以實體單元為單位來更換已損壞的實體區塊並且在替代區無可以多區塊面存取指令存取的實體區塊所組成的實體單元時以實 體區塊為單位來更換已損壞的實體區塊,因此可有效地提升快閃記憶體儲存系統的存取效率且延長快閃記憶體儲存系統的壽命。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。請參照圖1,快閃記憶體儲存系統100包括控制器(亦稱控制器系統)110、連接器120以及快閃記憶體晶片130。
通常快閃記憶體儲存系統100會與主機系統200一起使用,以使主機系統200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本實施例中,快閃記憶體儲存系統100為固態硬碟(Solid State Drive, SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統100亦可以是記憶卡或隨身碟。
控制器110會執行以硬體型式或韌體型式實作的多個指令以配合連接器120與快閃記憶體晶片130來進行資料的儲存、讀取與抹除等運作。控制器110包括微處理器單元110a、記憶體管理模組110b、快閃記憶體介面模組110c、緩衝記憶體110d與主機介面模組110e。
微處理器單元110a用以與記憶體管理模組110b、快閃記憶體介面模組110c、緩衝記憶體110d與主機介面模 組110e等協同合作以進行快閃記憶體儲存系統100的各種運作。
記憶體管理模組110b是耦接至微處理器單元110a。記憶體管理模組110b具有可由微處理器單元110a執行的多個機器指令以管理快閃記憶體晶片130,例如平均磨損、區塊管理功能、維護邏輯-實體位址對映表(mapping table)功能等的機器指令。特別是,在本發明實施例中,記憶體管理模組110b包含可完成根據本實施例的區塊管理與更換步驟的機器指令。
在本實施例中,記憶體管理模組110b是以一韌體型式實作在控制器110中,例如以程式語言撰寫相關機械指令並且儲存於程式記憶體(例如,唯讀記憶體(Read Only Memory, ROM))來實作記憶體管理模組110b。當快閃記憶體儲存系統100運作時,記憶體管理模組110b的多個機器指令會間接地被載入至緩衝記憶體110d中,並且由微處理器單元110a來執行或直接由微處理器單元110a來執行以完成上述平均磨損功能、壞區塊管理功能、維護邏輯-實體區塊對映表功能等。特別是,控制器110藉由執行記憶體管理模組110b的多個機械指令來此完成根據本發明實施例的區塊管理與更換步驟。
在本發明另一實施例中,記憶體管理模組110b的機械指令亦可以韌體型式儲存於快閃記憶體晶片130的特定區域(例如,快閃記憶體中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存系統100運作時,記憶體 管理模組110b的多個機器指令會被載入至緩衝記憶體110d中並且由微處理器單元110a來執行。此外,在本發明另一實施例中,記憶體管理模組110b亦可以一硬體型式實作在控制器110中。
快閃記憶體介面模組110c是耦接至微處理器單元110a並且用以存取快閃記憶體晶片130。也就是,欲寫入至快閃記憶體晶片130的資料會經由快閃記憶體介面模組110c轉換為快閃記憶體晶片130所能接受的格式。
緩衝記憶體110d是耦接至微處理器單元110a並且用以暫時地儲存系統資料(例如邏輯-實體位址對映表)或者主機系統200所讀取或寫入的資料。在本實施例中,緩衝記憶體110d為靜態隨機存取記憶體(static random access memory, SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory, DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory, MRAM)、相變化記憶體(Phase Change Random Access Memory, PRAM)或其他適合的記憶體亦可應用於本發明。
主機介面模組110e是耦接至微處理器單元110a並且用以接收與識別主機系統200所傳送的指令。也就是,主機系統200所傳送的指令與資料會透過主機介面模組110e來傳送至微處理器單元110a。在本實施例中,主機介面模組110e為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面模組110e亦可以是USB介面、IEEE 1394 介面、PCI Express介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他適合的資料傳輪介面。特別是,主機介面模組110e會與連接器120相對應。也就是,主機介面模組110e必須與連接器120互相搭配。
此外,雖未繪示於本實施例,但控制器110可更包括錯誤校正模組與電源管理模組等用於控制快閃記憶體的一般功能模組。
連接器120用以透過匯流排300連接主機系統200。在本實施例中,連接器120為SATA連接器。然而,必須瞭解的是本發明不限於此,連接器120亦可以是USB連接器、IEEE 1394連接器、PCI Express連接器、MS連接器、MMC連接器、SD連接器、CF連接器、IDE連接器或其他適合的連接器。
快閃記憶體晶片130是電性連接至控制器110並且用以儲存資料。在本實施中快閃記憶體晶片130為多層記憶胞(Multi Level Cell, MLC)NAND快閃記憶體。然而,必須瞭解的是,本發明不限於此。在本發明另一實施例中,單層記憶胞(Single Level Cell, SLC)NAND快閃記憶體亦可應用於本發明。
在本實施例中快閃記憶體晶片130包括第一區塊面(plane)130a與第二區塊面130b,第一區塊面130a與第二區塊面130b中分別包括多個實體區塊。特別是,第一區塊面與第二區塊面彼此間可為物理或虛擬的分割。
值得一提的是,雖然本實施例是以兩個區塊面來進行 描述,然而本發明不限於此,在本發明亦可應用於具任何數目之區塊面的快閃記憶體晶片。此外,在本實施例中是以快閃記憶體晶片130的一個快閃記憶體晶粒(未標示)的第一區塊面130a與第二區塊面130b來進行描述,然而本發明亦可應用於具多個快閃記憶體晶粒的快閃記憶體晶片。類似地,雖然本實施例是一個快閃記憶體晶片來描述,但本發明亦可應用於具多個快閃記憶體晶片的快閃記憶體儲存系統。
在快閃記憶體中實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面位址(page)。頁面位址通常為程式化(program)的最小單元。但要特別說明的是於有些不同的快閃記憶體設計,最小的程式化單位也可為一個扇區(sector)。也就是說,一個頁面位址中有多個扇區並以一個扇區為程式化的最小單元。換言之,頁面位址為寫入資料或讀取資料的最小單元。每一頁面位址通常包括使用者資料區D與冗餘區R。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤校正碼(error correcting code, ECC))。
為對應於磁碟驅動器的扇區(sector)大小,一般而言,使用者資料區D通常為512位元組,而冗餘區R通常為16位元組。也就是,一個頁面位址為一個扇區。然而,亦可以多個扇區形成一個頁面位址。在本實施例中,快閃記憶體區塊的一個頁面位址是包括4個扇區。
一般而言,實體區塊可由任意數目的頁面位址所組成,例如64個頁面位址、128個頁面位址、256個頁面位址等。此外,在第一區塊面130a或第二區塊面130b中的實體區塊通常也可被分組為數個區域(zone),以區域來管理記憶體某種程度上是彼此獨立地操作以增加操作執行的平行程度且簡化管理的複雜度。
此外,控制器110會將第一區塊面130a與第二區塊面130b中的多個實體區塊配置為一個實體單元來管理,例如一個實體單元包括兩個實體區塊。由於以實體單元進行管理時,控制器110是以較大的單位(即實體單元)來維護邏輯-實體位址對映表,因此可節省所需使用緩衝記憶體110d的空間。
特別是,在本實施例中由於控制器110可以多區塊面存取(multi-planes accessing)模式同時存取第一區塊面130a與第二區塊面130b中的特定實體區塊。也就是說,在快閃記憶體晶片130中第一區塊面130a中的特定實體區塊與第二區塊面130b的特定實體區塊可同時由多區塊面存取指令來操作(例如,執行寫入、讀取與抹除)。因此,在本實施例中控制器110更會分別將具有可同時操作關係的實體區塊配置為一個實體單元。具體來說,在特定快閃記憶體晶片電路設計上會使得一些區塊面可以至少一部分的動作時間重疊(或同步)的方式來存取資料以縮短存取資料所需的時間。因此,在此稱此些可以部分同步方式存取資料的特定區塊面為具有可同時操作關係,而以部分同步方式存 取資料的存取模式稱為多區塊面存取模式。
圖2是根據本發明實施例繪示快閃記憶體晶片的方塊圖。請參照圖2,第一區塊面130a與第二區塊面130b的實體區塊可分別地組成實體單元310-1~310-N。
圖3A~3D是根據本發明實施例繪示在第一區塊面130a與第二區塊面130b中實體單元的運作示意圖。
必須瞭解的是,在此描述快閃記憶體的運作時以“提取”、“搬移”、“交換”、“替換”、“輪替”、”分割”、”劃分”等詞來操作快閃記憶體晶片130的實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,下述的運作是控制器110執行記憶體管理模組110b的機械指令所完成。
圖3A是根據本發明實施例繪示快閃記憶體晶片的一般區與替代區。
請參照圖3A,在本發明實施例中,為了有效率地程式化(即,寫入)資料,控制器110會將圖2所示的實體單元在邏輯上分組為一般區302與替代區312。
在一般區302中的實體單元310-(1)~310-(P)是快閃記憶體儲存系統100正常使用的實體單元。也就是說,控制器110會將資料寫入至屬於一般區302的實體單元。
在替代區312中的實體單元310-(P+1)~310-(N)是替代實體單元。快閃記憶體晶片130於出廠時會預留4%的實體區塊作為更換使用,也就是說,當一般區302中的實體 區塊損毀時,預留於替代區312中的實體區塊可用以取代損壞的實體區塊。因此,倘若替代區312中仍存有可用之實體區塊時,當發生實體區塊損毀時控制器110可從替代區312中提取可用的實體區塊來更換損毀的實體區塊。倘若替代區312中無可用之實體區塊時,當發生實體區塊損毀時快閃記憶體儲存系統100將會被宣告無法再使用。一般來說,控制器110會設定判斷快閃記憶體晶片130是否能繼續使用的一預定門檻值,倘若當替代區312中可用的實體區塊的數目小於此預定門檻值時則判定無法再從替代區312中提取實體區塊。在本實施例中,此預定門檻值是設定為0。然而,在本發明不限於此,此預定門檻值可設定為1或大於1的整數。
特別是,在本實施例中,控制器110可從替代區312中以實體單元為單位或實體區塊為單位來進行損壞實體單元或實體區塊的更換。
圖3B是根據本發明實施例繪示一般區與替代區進行區塊更換的示意圖。
請參照圖3B,當一般區302中有實體區塊發生損壞時,本實施例的控制器110可以兩種方式來更換損壞的實體區塊。例如,假設第一區塊面130a的實體區塊a(1)損壞時,在第一種方式中,控制器110會以包括第一區塊面130a之實體區塊a(P+1)與第二區塊面130b之實體區塊b(P+1)的實體單元310-(P+1)來更換整個實體單元310-1(如圖3B的(a)所示)。也就是說,之後當控制器110需要使用到實體 單元310-(1)時,控制器110會透過讀取更換的記錄而使用實體單元310-(P+1)。例如,此更換記錄可記錄於實體單元310-1的實體區塊的冗餘區中。另外,在第二種方式中,控制器110僅會將已損壞之第一區塊面130a的實體區塊a(1)以實體區塊a(P+1)更換。也就是說,當控制器110存取實體單元310-(1)時,倘若存取的位址為原本實體區塊a(1)的位址時則控制器110會更改為存取實體區塊a(P+1)。類似地,例如此更換記錄可記錄於實體區塊a(1)的冗餘區中。
值得一提的是,根據本實施例當控制器110使用第一種方式更換損壞的區塊時,由於被更換的實體單元中仍有正常的實體區塊(例如,圖3B中所示的實體區塊b(1)),因此根據本發明實施例的控制器110會特別記錄此資訊。例如,在本發明一實施例中會在一更換表中記錄此資訊,或者亦可使用實體區塊b(1)的冗餘區來記錄此資記。
根據本發明實施例的控制器110會使用上述兩種方式來更換已損壞的實體區塊,其具體的運作方式將在以下配合圖4詳細說明。
在本發明一實施例中,當快閃記憶體儲存系統100運作時,控制器110會將快閃記憶體晶片130的一般區302中的實體單元更分組為系統區、資料區與備用區。圖3C是根據本發明實施例繪示一般區中實體單元的運作示意圖。請參照圖3C,系統區304包括實體單元310-(1)~實體單元310-(S),資料區306包括實體單元310-(S+1)~實體單 元310-(S+M),並且備用區308包括實體單元310-(S+M+1)~實體單元310-(P)。在本實施例中,上述S、M與P為正整數,其代表各區配置的實體區塊數量,其可由快閃記憶體儲存系統的製造商依據所使用的快閃記憶體的容量而設定。
系統區304中的實體單元用以記錄系統資料,此系統資料包括關於第一區塊面130a的區域數、每一區域的實體區塊數、每一實體區塊的頁面位址數、記錄邏輯位址與實體位址對映關係的邏輯-實體位址對映表等。
資料區306中的實體單元用以儲存使用者的資料,一般來說就是主機系統200所存取之邏輯區塊所對映的區塊。
備用區308中的實體區塊是用以輪替資料區306中的實體單元,因此在備用區206a中的實體區塊為空或可使用的區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區306與備用區308的實體區塊會以輪替方式來儲存主機系統200對快閃記憶體儲存系統100寫入的資料。
如前所述,快閃記憶體晶片130的實體單元會以輪替方式提供主機系統來儲存資料,因此控制器110會提供邏輯單元210-1~210-M給主機系統200以進行資料存取,並且透過維護邏輯-實體位址對映表(logical-physical address mapping table)來記錄邏輯單元所對映的實體單元。
圖3D是根據本發明實施例繪示圖3C中對實體單元執 行寫入指令的範例示意圖。
請參照圖3D,例如,當主機系統欲寫入資料至邏輯單元210-1時,控制器110會透過邏輯-實體位址對映表得知邏輯單元目前是對映資料區306中的實體單元310-(S+1)。因此,快閃記憶體儲存系統100將對實體單元310-(S+1)中的資料進行更新,期間,控制器110會從備用區308中提取實體單元310-(S+M+1)來輪替資料區306的實體單元310-(S+1)。然而,當將新資料寫入至實體單元310-(S+M+1)的同時,不會立刻將實體單元310-(S+1)中的所有有效資料搬移至實體單元310-(S+M+1)而抹除實體單元310-(S+1)。具體來說,控制器110會將實體單元310-(S+1)中欲寫入頁面位址之前的有效資料(即,頁P0與P1)複製至實體單元310-(S+M+1)(如圖3D的(a)),並且將新資料(即,實體單元310-(S+M+1)的頁P2與P3)寫入至實體單元310-(S+M+1)(如圖3D的(b))。此時,將含有部分的有效舊資料與所寫入新資料的實體單元310-(S+M+1)暫時地關聯為替換實體單元350。此是因為實體單元310-(S+1)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體單元310-(S+1)中的所有有效資料搬移至替換實體單元310-(S+M+1)可能會造成無謂的搬移。在此案例中,實體單元310-(S+1)與替換實體單元310-(S+M+1)的內容整合起來才是所對映邏輯單元210-1的完整內容。此等母子關係(即,實體單元310-(S+1)與替換實體單元310-(S+M+1))的暫態關係可依據控制器110中緩衝記憶體 110d的大小而定,例如在本實施例中是使用五組來實作。暫時地維持此種暫態關係的動作一般可稱為開啟(open)母子區塊。
之後,當需要將實體單元310-(S+1)與替換實體單元310-(S+M+1)的內容真正合併時,控制器110才會將實體單元310-(S+1)與替換實體單元310-(S+M+1)整併為一個實體單元,由此提升區塊的使用效率,此合併的動作又可稱為關閉(close)母子區塊。例如,如圖3D的(c)所示,當進行關閉母子區塊時,控制器110會將實體單元310-(S+1)中剩餘的有效資料(即,頁P4~PN)複製至替換實體單元310-(S+M+1),然後將實體單元310-(S+1)抹除並關聯為備用區308,同時,將替換實體單元310-(S+M+1)關聯為資料區306,並且在邏輯-實體位址對映表中將邏輯單元210-1的對映更改為實體單元310-(S+M+1),由此完成關閉母子區塊的動作。
值得一提的是,由於在本實施例中每一實體單元是由屬於不同區塊面的實體區塊所組成。因此,當對實體單元中的多個實體區塊進行存取時,一般來說控制器110必須以多次方式分別對每一實體區塊執行單區塊面存取(single-plane accessing)指令來完成寫入或讀取。此種依次僅存取一個實體區塊的模式稱為單區塊面存取模式。然而,如上所述由於在記憶胞製造過程的電路佈設(lay out)時,屬於不同區塊面的實體區塊之間會有可同時操作關係,因此倘若依據此可同時操作關係將對應的實體區塊分 組為一個實體單元時,則當對此實體單元中的多個實體區塊進行存取時,控制器110就可同時對其中的實體區塊執行多區塊面存取指令來完成寫入或讀取以提升存取的效率。此種同時對多個實體區塊進行存取的方式稱為多區塊面存取模式。
因此,在本實施例中當快閃記憶體晶片130發生實體區塊損壞時,控制器110會從替代區312中優先選擇能夠執行多區塊面存取的一個實體單元來更換具損壞實體區塊的實體單元(如圖3B的(a)所示),由此確保快閃記憶體儲存系統100在進行壞區塊更換後仍可以較有效率的多區塊面存取模式來執行資料的存取。
圖4是根據本發明實施例繪示區塊管理與更換步驟的流程圖,其中此些步驟是控制器110的微處理器單元110a執行記憶體管理模組110b的機械指令所完成。必須瞭解的是,本發明所提出的區塊管理步驟不限於圖4所示的執行順序,此領域技術人員可根據本發明的精神任意更動區塊管理步驟的順序。
請參照圖4,當快閃記憶體儲存系統100連接至主機系統200並且開機時,控制器110會進行初始化,其中會將在第一區塊面130a與第二區塊面130b中可藉由使用多區塊面存取指令來存取的實體區塊各別地分組為多個實體單元並且區分為使用區302與替代區312(步驟S401),特別是在本實施例中,控制器110還會將使用區302區分為系統區304、資料區306與備用區308。
接著,在快閃記憶體儲存系統100的運作過程中,控制器110會持續地判斷在一般區302中是否有實體區塊損壞(步驟S403)。具體地說,在寫入資料的例子中控制器110會確定寫入狀態是否正常,而在讀出資料的例子中控制器110會確定資料讀出值是否正確,由此來決定所存取的實體區塊是否損壞。倘若當控制器110發現有實體區塊損壞時,則在步驟S405中控制器110會判斷替代區312中未損壞的實體單元的數目是否大於預定門檻值(在本實施例中此預定門檻值為0,其中此預定門檻值可由使用者自行設定為其他值,例如1、2或其他適當整數值),其中所謂未損壞的實體單元表示此實體單元中的所有實體區塊皆為正常並且可透過多區塊面存取模式對其進行存取。具體來說,步驟S405是判斷替代區312中是否存有足夠的未損壞的實體單元。
倘若在替代區312中未損壞的實體單元的數目大於預定門檻值(即,替代區312中存有足夠的未損壞的實體單元的情況)時,則在步驟S407中控制器110會選擇未損壞的實體單元的其中之一並且以整個實體單元為單位來取代已損壞的實體單元,並且在步驟S409中控制器110會在更換表(未繪示)中記錄相關的資訊。例如,在本發明一實施例中在更換表中會記錄此被取代的實體單元中仍正常的實體區塊。例如,在本發明另一實施例中是在更換表中記錄被更換的實體單元,然後透過每一實體區塊中冗餘區內的一標記來辨識仍可使用的實體區塊。此外,除了使用上述 更換表之外,在本發明另一實施例中步驟S409亦可在不使用上述更換表下僅利用在未損壞的實體區塊的冗餘區中記錄一標記來註記此為正常的實體區塊或在損毀實體區塊冗餘區中記錄一標記來註記此為損壞的實體區塊,亦或在兩區塊中皆加以標記,並且當控制器100於快閃記憶體儲存系統100每次開機而執行初始化時可透過掃描與讀取實體區塊的冗餘區而得知實體區塊的狀態。
倘若在替代區312中未損壞的實體單元的數目不大於預定門檻值(即,替代區312中無存有足夠的未損壞的實體單元的情況)時,則在步驟S411中控制器110會透過更換表的記錄來判斷替代區312中是否存有未損壞的實體區塊。
倘若在步驟S411中判斷替代區312中存有未損壞的實體區塊時,則在步驟S413中會選擇其中一個未損壞的實體區塊並且以實體區塊為單位來取代已損壞的實體區塊,並且在步驟S415中控制器110會在更換表的記錄中刪除所選擇的實體區塊。倘若在步驟S411中判斷替代區312中無存有未損壞的實體區塊時,則在步驟S417中控制器110會發出錯誤訊息告知主機系統200快閃記憶體儲存系統100已無法再儲存資料。
雖未繪示於圖4中,但此領域熟知技藝者可輕易瞭解圖4的區塊管理與更換步驟除了在以無法更換損壞之實體區塊時會結束圖4的程序外,在接收到關機或電源中斷指令時亦會結束圖4的程序。
綜上所述,本發明是在快閃記憶體儲存系統初始化時將具有可以多區塊面存取模式進行存取的實體區塊分組為實體單元,由此以多區塊面存取模式來對快閃記憶體晶片進行存取來提升存取效率。此外,當發生實體區塊損壞時,在替代區存有可以多區塊面存取模式進行存取的實體單元時本發明是以實體單元為單位來更換具所損壞實體區塊的實體單元,而能夠繼續以多區塊面存取模式進行存取。此外,本發明會記錄被更換之實體單元中仍可使用的實體區塊並且當發生實體區塊損壞而替代區無正常的實體單元時,本發明會將所記錄仍可使用的實體區塊來更換所損壞的實體區塊,由此延長快閃記憶體儲存系統的壽命。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧快閃記憶體儲存系統
110‧‧‧控制器
110a‧‧‧微處理器單元
110b‧‧‧記憶體管理模組
110c‧‧‧快閃記憶體介面模組
110d‧‧‧緩衝記憶體
110e‧‧‧主機介面模組
120‧‧‧連接器
130‧‧‧快閃記憶體晶片
130a‧‧‧第一區塊面
130b‧‧‧第二區塊面
200‧‧‧主機系統
210-1~210-M‧‧‧邏輯單元
300‧‧‧匯流排
302‧‧‧一般區
312‧‧‧替代區
304‧‧‧系統區
306‧‧‧資料區
308‧‧‧備用區
310-(1)、310-(2)、310-(P)、310-(P+1)、310-(P+2)、310-(N)‧‧‧實體單元
350‧‧‧替換實體單元
S401、S403、S405、S407、S409、S411、S413、S415、S417‧‧‧區塊管理與更換步驟
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。
圖2是根據本發明實施例繪示快閃記憶體晶片的方塊圖。
圖3A是根據本發明實施例繪示快閃記憶體晶片的一般區與替代區。
圖3B是根據本發明實施例繪示一般區與替代區進行區塊更換的示意圖。
圖3C是根據本發明實施例繪示一般區中實體單元的運作示意圖。
圖3D是根據本發明實施例繪示圖3C中實體單元的寫入範例示意圖。
圖4是根據本發明實施例繪示區塊管理與更換步驟的流程圖。
S401、S403、S405、S407、S409、S411、S413、S415、S417:區塊管理與更換步驟

Claims (18)

  1. 一種區塊管理與更換方法,適用於一快閃記憶體儲存系統,其中該快閃記憶體儲存系統具有多個實體區塊,該區塊管理與更換方法包括:將所述多個實體區塊劃分為多個實體單元並且分組為一使用區與一替代區,其中每一所述實體單位的實體區塊可藉由使用一多區塊面存取指令來存取;以及當屬於該使用區的實體單元內的其中一個實體區塊損壞時,則判斷該替代區中未損壞的所述實體單元的數目是否大於一預定門檻值,其中當該替代區中未損壞的所述實體單元的數目大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體單元以所述實體單元為單位來取代該一般區中具損壞的所述實體區塊的所述實體單元並且記錄被取代的所述實體單元中未損壞或損壞的所述實體區塊,並且當該替代區中未損壞的所述實體單元的數目不大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體區塊以所述實體區塊為單位來取代損壞的所述實體區塊。
  2. 如申請專利範圍第1項所述之區塊管理與更換方法,更包括將該使用區劃分為一資料區與一備用區,其中屬於該備用區的實體單元是用以與屬於該資料區的實體單元輪替地儲存資料。
  3. 如申請專利範圍第1項所述之區塊管理與更換方法,其中每一實體區塊具有一冗餘區,並且記錄被取代的 所述實體單元中未損壞的所述實體區塊的步驟包括在未損壞的所述實體區塊的所述冗餘區中記錄一標記。
  4. 如申請專利範圍第1項所述之區塊管理與更換方法,其中記錄被取代的所述實體單元中未損壞的所述實體區塊的步驟包括在一更換表中記錄未損壞的所述實體區塊。
  5. 一種控制器,適用於一快閃記憶體儲存系統,其中該快閃記憶體儲存系統具有多個實體區塊,該控制器包括:一微處理器單元;一主機介面模組,耦接至該微處理器單元;一快閃記憶體介面,耦接至該微處理器單元;一緩衝記憶體,耦接至該微處理器單元;以及一記憶體管理模組,耦接至該微處理器單元,且具有可由該微處理器單元執行的多個機器指令,以對該快閃記憶體儲存系統完成多個區塊管理與更換步驟,該些區塊管理與更換步驟包括:將所述多個實體區塊劃分為多個實體單元並且分組為一使用區與一替代區,其中每一所述實體單位的實體區塊可藉由使用一多區塊面存取指令來存取;以及當屬於該使用區的實體單元內的其中一個實體區塊損壞時,則判斷該替代區中未損壞的所述實體單元的數目是否大於一預定門檻值,其中當該替代區中未損壞的所述實體單元的數 目大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體單元以所述實體單元為單位來取代該一般區中具損壞的所述實體區塊的所述實體單元並且記錄被取代的所述實體單元中未損壞或損壞的所述實體區塊,並且當該替代區中未損壞的所述實體單元的數目不大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體區塊以所述實體區塊為單位來取代損壞的所述實體區塊。
  6. 如申請專利範圍第5項所述之控制器,更包括將該使用區劃分一資料區與一備用區,其中屬於該備用區的實體單元是用以與屬於該資料區的實體單元輪替地儲存資料。
  7. 如申請專利範圍第5項所述之控制器,其中每一所述實體區塊具有一冗餘區,並且記錄被取代的所述實體單元中未損壞的所述實體區塊的步驟包括在未損壞的所述實體區塊的所述冗餘區中記錄一標記。
  8. 如申請專利範圍第5項所述之控制器,其中記錄被取代的所述實體單元中未損壞的所述實體區塊的步驟包括在一更換表中記錄未損壞的所述實體區塊。
  9. 如申請專利範圍第5項所述之控制器,其中該快閃記憶體儲存系統為一隨身碟、一快閃記憶卡或一固態硬碟。
  10. 一種快閃記憶體儲存系統,包括:多個實體區塊; 一連接器;以及一控制器,電性連接至該些實體區塊與該連接器,該控制器會執行一記憶體管理模組的多個機器指令以完成多個區塊管理與更換步驟,該些區塊管理與更換步驟包括:將所述多個實體區塊劃分為多個實體單元並且分組為一使用區與一替代區,其中每一所述實體單位的實體區塊可藉由使用一多區塊面存取指令來存取;以及當屬於該使用區的實體單元內的其中一個實體區塊損壞時,則判斷該替代區中未損壞的所述實體單元的數目是否大於一預定門檻值,其中當該替代區中未損壞的所述實體單元的數目大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體單元以所述實體單元為單位來取代該一般區中具損壞的所述實體區塊的所述實體單元並且記錄被取代的所述實體單元中未損壞或損壞的所述實體區塊,並且當該替代區中未損壞的所述實體單元的數目是不大於該預定門檻值時,則從該替代區中選擇未損壞的所述實體區塊以所述實體區塊為單位來取代損壞的所述實體區塊。
  11. 如申請專利範圍第10項所述之快閃記憶體儲存系統,更包括將該使用區區分為一資料區與一備用區,其中屬於該備用區的實體單元是用以與屬於該資料區的實體單 元輪替地儲存資料。
  12. 如申請專利範圍第10項所述之快閃記憶體儲存系統,其中每一所述實體區塊具有一冗餘區,並且記錄被取代的所述實體單元中未損壞的所述實體區塊的步驟包括在未損壞的所述實體區塊的所述冗餘區中記錄一標記。
  13. 如申請專利範圍第10項所述之快閃記憶體儲存系統,其中記錄被取代的所述實體單元中未損壞的所述實體區塊的步驟包括在一更換表中記錄未損壞的所述實體區塊。
  14. 如申請專利範圍第10項所述之快閃記憶體儲存系統,其中所述多個實體區塊是屬於多個區塊面,並且每一所述實體單元是由屬於不同所述區塊面的至少兩個實體區塊所組成。
  15. 如申請專利範圍第14項所述之快閃記憶體儲存系統,其中所述多個區塊面是屬於一個快閃記憶體晶粒。
  16. 如申請專利範圍第14項所述之快閃記憶體儲存系統,其中所述多個區塊面是屬於多個快閃記憶體晶粒。
  17. 如申請專利範圍第16項所述之快閃記憶體儲存系統,其中所述多個快閃記憶體晶粒是屬於多個快閃記憶體晶片。
  18. 如申請專利範圍第16項所述之快閃記憶體儲存系統,其中所述多個快閃記憶體晶粒是屬於一個快閃記憶體晶片。
TW097138395A 2008-10-06 2008-10-06 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 TWI381393B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW097138395A TWI381393B (zh) 2008-10-06 2008-10-06 區塊管理與更換方法、快閃記憶體儲存系統及其控制器
US12/328,467 US8074128B2 (en) 2008-10-06 2008-12-04 Block management and replacement method, flash memory storage system and controller using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097138395A TWI381393B (zh) 2008-10-06 2008-10-06 區塊管理與更換方法、快閃記憶體儲存系統及其控制器

Publications (2)

Publication Number Publication Date
TW201015563A TW201015563A (en) 2010-04-16
TWI381393B true TWI381393B (zh) 2013-01-01

Family

ID=42076742

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097138395A TWI381393B (zh) 2008-10-06 2008-10-06 區塊管理與更換方法、快閃記憶體儲存系統及其控制器

Country Status (2)

Country Link
US (1) US8074128B2 (zh)
TW (1) TWI381393B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101399549B1 (ko) * 2007-09-04 2014-05-28 삼성전자주식회사 반도체 메모리 장치 및 그것의 블록 관리 방법
TWI435216B (zh) 2010-09-27 2014-04-21 Silicon Motion Inc 用來進行超區塊管理之方法以及記憶裝置及控制器
TWI420308B (zh) * 2010-10-13 2013-12-21 Phison Electronics Corp 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9418700B2 (en) 2012-06-29 2016-08-16 Intel Corporation Bad block management mechanism
US20170123994A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. Handling Of Plane Failure In Non-Volatile Storage
JPWO2017158997A1 (ja) * 2016-03-16 2019-01-24 ソニー株式会社 メモリコントローラ、メモリシステム、情報処理システム、メモリ制御方法およびプログラム
US10942662B2 (en) 2018-11-30 2021-03-09 International Business Machines Corporation Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW400476B (en) * 1997-12-05 2000-08-01 Tokyo Electron Ltd Memory device and method for storage and access
US6877118B2 (en) * 2000-05-02 2005-04-05 Advantest Corporation Memory testing method and memory testing apparatus
TW200636747A (en) * 2005-04-15 2006-10-16 Thomson Licensing Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
TW200713294A (en) * 2005-09-30 2007-04-01 Sigmatel Inc System and method of accessing non-volatile computer memory
US7454671B2 (en) * 2006-04-05 2008-11-18 Micron Technology, Inc. Memory device testing system and method having real time redundancy repair analysis
TW200903516A (en) * 2007-05-17 2009-01-16 Samsung Electronics Co Ltd Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
TW200941216A (en) * 2008-03-27 2009-10-01 Skymedi Corp Method for managing defect blocks in non-volatile memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111190B2 (en) * 2001-02-23 2006-09-19 Intel Corporation Method and apparatus for reconfigurable memory
WO2005111812A1 (ja) * 2004-05-19 2005-11-24 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置のためのエラー訂正方法
KR100622349B1 (ko) * 2004-08-04 2006-09-14 삼성전자주식회사 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
JP4397770B2 (ja) * 2004-09-17 2010-01-13 富士通株式会社 記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラム
DE102004051346A1 (de) * 2004-10-21 2006-05-04 Infineon Technologies Ag Halbleiter-Bauelement-Test-Einrichtung, insbesondere Daten-Zwischenspeicher-Bauelement mit Halbleiter-Bauelement-Test-Einrichtung, sowie Halbleiter-Bauelement-Test-Verfahren
US7444577B2 (en) * 2005-08-04 2008-10-28 Rambus Inc. Memory device testing to support address-differentiated refresh rates
US7275196B2 (en) * 2005-11-23 2007-09-25 M2000 S.A. Runtime reconfiguration of reconfigurable circuits
US7451367B2 (en) * 2006-02-14 2008-11-11 Atmel Corporation Accessing sequential data in microcontrollers
JP2007272635A (ja) * 2006-03-31 2007-10-18 Toshiba Corp メモリシステム及びコントローラ
KR100770749B1 (ko) * 2006-07-11 2007-10-26 삼성전자주식회사 셀프 테스트 기능을 추가한 메모리 컨트롤러 및 이를이용한 방법
US7757133B1 (en) * 2007-07-05 2010-07-13 Oracle America, Inc. Built-in self-test hardware and method for generating memory tests with arbitrary address sequences
TWI381390B (zh) * 2008-04-10 2013-01-01 Phison Electronics Corp 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW400476B (en) * 1997-12-05 2000-08-01 Tokyo Electron Ltd Memory device and method for storage and access
US6877118B2 (en) * 2000-05-02 2005-04-05 Advantest Corporation Memory testing method and memory testing apparatus
TW200636747A (en) * 2005-04-15 2006-10-16 Thomson Licensing Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
TW200713294A (en) * 2005-09-30 2007-04-01 Sigmatel Inc System and method of accessing non-volatile computer memory
US7454671B2 (en) * 2006-04-05 2008-11-18 Micron Technology, Inc. Memory device testing system and method having real time redundancy repair analysis
TW200903516A (en) * 2007-05-17 2009-01-16 Samsung Electronics Co Ltd Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
TW200941216A (en) * 2008-03-27 2009-10-01 Skymedi Corp Method for managing defect blocks in non-volatile memory

Also Published As

Publication number Publication date
US8074128B2 (en) 2011-12-06
US20100088540A1 (en) 2010-04-08
TW201015563A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
TWI385669B (zh) 用於快閃記憶體的平均磨損方法、儲存系統與控制器
TWI381393B (zh) 區塊管理與更換方法、快閃記憶體儲存系統及其控制器
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
TWI386802B (zh) 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
TWI467581B (zh) 複合式儲存裝置及其複合式儲存媒體控制器與定址方法
US8407397B2 (en) Block management method for flash memory and controller and storage system using the same
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8250286B2 (en) Block management method, and storage system and controller using the same
US8037232B2 (en) Data protection method for power failure and controller using the same
TWI405209B (zh) 資料管理方法及使用此方法的快閃儲存系統與控制器
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
TWI385516B (zh) 快閃記憶體儲存系統及其資料寫入方法
US8291155B2 (en) Data access method, memory controller and memory storage system
TWI447735B (zh) 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
US8275931B2 (en) Block management method for flash memory, and storage system and controller using the same
TWI385667B (zh) 用於快閃記憶體的資料管理方法、儲存系統與控制器
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
US8214578B2 (en) Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same
TWI494849B (zh) 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
TWI417884B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
TWI407441B (zh) 快閃記憶體寫入方法及使用此方法的儲存系統與控制器