TWI404071B - 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 - Google Patents
能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 Download PDFInfo
- Publication number
- TWI404071B TWI404071B TW098121002A TW98121002A TWI404071B TW I404071 B TWI404071 B TW I404071B TW 098121002 A TW098121002 A TW 098121002A TW 98121002 A TW98121002 A TW 98121002A TW I404071 B TWI404071 B TW I404071B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- bit
- sector
- error
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 40
- 230000006870 function Effects 0.000 title description 4
- 238000012937 correction Methods 0.000 claims description 146
- 230000005055 memory storage Effects 0.000 claims description 51
- 230000008439 repair process Effects 0.000 claims description 16
- 239000000463 material Substances 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種快閃記憶體控制電路,且特別是有關於一種能夠識別快閃記憶體中錯誤資料的快閃記憶體控制器以及其快閃記憶體儲存系統與識別快閃記憶體中錯誤資料的方法。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。
在快閃記憶體儲存裝置的設計上一般都會使用錯誤校正電路(Error Correcting Circuit)來驗證快閃記憶體儲存系統中所儲存的資料是否正確。具體來說,當與快閃記憶體儲存裝置連接的電腦主機傳送欲寫入的資料至快閃記憶體儲存裝置時,快閃記憶體儲存裝置中的錯誤校正電路會對應的產生一錯誤校正碼(Error Correcting Code)並且快閃記憶體儲存裝置中的控制電路會將欲寫入的資料與所產生的錯誤校正碼寫入至快閃記憶體儲存裝置的快閃記憶體中。之後,當電腦主機欲從快閃記憶體儲存裝置中讀取此資料時,控制電路會從快閃記憶體中讀取此資料及對應的錯誤校正碼並且由錯誤校正電路依據此資料及對應的錯誤校正碼執行一錯誤校正程序以確保資料的正確性。例如,當資料正確時,控制電路會將所讀取的資料傳送給電腦主機;當資料存有錯誤位元時,錯誤校正電路所執行的錯誤校正程序會嘗試進行錯誤校正,其中若存有的錯誤位元數在可被校正的範圍內時,則錯誤位元會被校正並且控制電路會將已錯誤校正的正確資料會被傳送給電腦主機,反之,若存有的錯誤位元數超過可校正的範圍時,則控制電路會將告知電腦主機此資料已遺失。
此外,一般來說,快閃記憶體儲存裝置中的快閃記憶體會具有多個實體區塊,快閃記憶體儲存裝置的快閃記憶體控制器會將此些實體區塊邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)以進行操作與管理。具體來說,系統區的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而取代區的實體區塊是用以取代資料區或備用區中已損壞的實體區塊損壞,因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存裝置接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存裝置會從備用區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊中並且將已寫入新資料的實體區塊邏輯地關聯為資料區,並且將原本資料區的實體區塊進行抹除並邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置會提供邏輯區塊給主機系統。也就是說,快閃記憶體儲存裝置會透過在邏輯位址-實體位址對映表(logical address-physical address mapping table)中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行寫入而快閃記憶體儲存裝置會依據邏輯位址-實體位址對映表對所對映的實體區塊進行讀取或寫入資料。
在上述運作架構下,在資料從一實體區塊複製至另一實體區塊的例子中,在讀取資料時上述錯誤校正電路都會進行上述錯誤校正程序並且在寫入資料時上述錯誤校正電路會依據已錯誤校正的資料重新產生錯誤校正碼,最後才將已錯誤校正的資料與新產生的錯誤校正碼寫入至另一實體區塊中。然而,倘若在執行錯誤校正程序時,發現無法錯誤校正的錯誤位元時,由於重新產生的錯誤校正碼是根據錯的資料所產生,因此之後當此資料被電腦主機讀取時,錯誤校正電路會以重新產生的錯誤校正碼來對錯的資料進行錯誤校正程序,而誤認此資料為正常無誤。在此情況下,電腦主機將接收到錯誤之資料。特別是,電腦主機會在認為此錯誤資料為正常的情況下使用此資料。
本發明提供一種快閃記憶體控制器,其能夠有效地識別快閃記憶體中錯誤的資料,以避免傳送錯誤資料給電腦主機。
本發明提供一種快閃記憶體儲存系統,其能夠有效地識別其快閃記憶體內錯誤的資料,以避免傳送錯誤資料給電腦主機。
本發明提供一種識別快閃記憶體中錯誤資料的方法,其能夠有效地識別快閃記憶體中錯誤的資料。
本發明範例實施例提出一種快閃記憶體控制電路,其包括微處理器單元、第一介面單元、第二介面單元、錯誤校正單元、記憶體管理單元以及標記單元。第一介面單元是耦接至微處理器單元,用以連接一快閃記憶體,其中快閃記憶體具有多個實體區塊且每一實體區塊具有多個頁面。第二介面單元是耦接至微處理器單元,用以連接一電腦主機。錯誤校正單元是耦接至微處理器單元。記憶體管理單元是耦接至微處理單元,並且用以將每一頁面區分為至少一資料位元區和對應資料位元區的至少一冗餘位元區與至少一錯誤校正位元區,其中每一資料位元區具有多個扇區以儲存多個扇區資料。標記單元是耦接至微處理器單元,其中當電腦主機寫入多個扇區資料至其中一個資料位元區時,錯誤校正單元會根據所寫入的扇區資料產生一錯誤校正碼,記憶體管理單元會將此些扇區資料寫入至資料位元區中並且將所產生的錯誤校正碼寫入至對應的錯誤校正位元區中,並且標記單元會在對應的冗餘位元區中將資料正確性標記記錄為一正常狀態,其中每一資料正確性標記對應一個扇區資料。
在本發明之一實施例中,當上述之記憶體管理單元複製儲存在其中一個資料位元區中的扇區資料至另一個資料位元區時,錯誤校正單元會根據對應的錯誤校正位元區中的錯誤校正碼來判斷所複製的扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的扇區資料存有無法錯誤校正的錯誤位元時,則標記單元會在此另一個資料位元區所對應的冗餘位元區中將資料正確性標記記錄為一錯誤狀態。
在本發明之一實施例中,上述之快閃記憶體控制電路更包括耦接至微處理器單元的一識別單元,其中當電腦主機從快閃記憶體中讀取扇區資料時,錯誤校正單元會根據對應所讀取之扇區資料的錯誤校正碼錯誤校正所讀取之扇區資料,並且識別單元會根據錯誤校正的結果以及對應所讀取之扇區資料的資料正確性標記來識別所讀取的扇區資料是否正確。
在本發明之一實施例中,當所讀取的扇區資料為不正確時,上述之識別單元會發送一錯誤訊息給電腦主機。
在本發明之一實施例中,當電腦主機接收到上述之錯誤訊息並且修復此些扇區資料的至少其中之一時,標記單元會將所修復的扇區資料對應的資料正確性標記記錄為正常狀態。
本發明範例實施例提出一種快閃記憶體儲存系統,其包括用以連接一電腦主機的連接器、快閃記憶體以及快閃記憶體控制器。快閃記憶體具有多個實體區塊且每一實體區塊具有多個頁面。快閃記憶體控制器耦接至連接器與快閃記憶體,用以將每一頁面區分為至少一資料位元區和對應資料位元區的至少一冗餘位元區與至少一錯誤校正位元區,其中每一資料位元區具有多個扇區以儲存多個扇區資料。當電腦主機寫入多個扇區資料至其中一個資料位元區時,快閃記憶體控制器會根據所寫入的扇區資料產生一錯誤校正碼,將此些扇區資料寫入至其中一個資料位元區中,將所產生的錯誤校正碼寫入至對應的錯誤校正位元區中,並且會在對應的冗餘位元區中將資料正確性標記記錄為一正常狀態,其中每一資料正確性標記對應一個扇區資料。
在本發明之一實施例中,當快閃記憶體控制器複製儲存在其中一個資料位元區中的扇區資料至另一個資料位元區時,快閃記憶體控制器會根據對應的錯誤校正位元區中的錯誤校正碼來判斷所複製的扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的扇區資料存有無法錯誤校正的錯誤位元時,則快閃記憶體控制器會在對應的冗餘位元區中將資料正確性標記記錄為一錯誤狀態。
在本發明之一實施例中,當電腦主機從快閃記憶體中讀取上述扇區資料時,快閃記憶體控制器會根據對應所讀取之扇區資料的錯誤校正碼錯誤校正所讀取之扇區資料,根據錯誤校正的結果以及對應的資料正確性標記來識別所讀取的扇區資料是否正確。
在本發明之一實施例中,當所讀取的扇區資料為不正確時,上述之快閃記憶體控制器會發送一錯誤訊息給電腦主機。
在本發明之一實施例中,上述之當電腦主機接收到錯誤訊息並且修復此些扇區資料的至少其中之一時,標記單元會將所修復的扇區資料對應的資料正確性標記記錄為正常狀態。
本發明範例實施例提出一種識別快閃記憶體中錯誤資料的方法,其包括提供一快閃記憶體,此快閃記憶體具有多個實體區塊且每一實體區塊具有多個頁面。此方法也包括將每一頁面區分為至少一資料位元區和對應資料位元區的至少一冗餘位元區與至少一錯誤校正位元區,其中每一資料位元區具有多個扇區。此方法還包括使用一標記單元在每一冗餘位元區中配置多個資料正確性標記。在此方法中,當電腦主機寫入多個扇區資料至其中一個資料位元區時,在對應的錯誤校正位元區中寫入對應所寫入之扇區的一錯誤校正碼以及使用此標記單元在對應的冗餘位元區中將資料正確性標記記錄為一正常狀態,其中每一資料正確性標記對應一個扇區資料。此外,在此方法中,當複製儲存在其中一個資料位元區中的扇區資料至另一個資料位元區時,根據對應的錯誤校正位元區中的錯誤校正碼來判斷所複製的扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的扇區資料存有無法錯誤校正的錯誤位元時,則使用上述之標記單元在對應的冗餘位元區中將資料正確性標記記錄為一錯誤狀態。
在本發明之一實施例中,當電腦主機從快閃記憶體中讀取扇區資料時,使用一識別單元根據對應此些扇區資料的錯誤校正碼以及對應此些扇區資料的資料正確性標記來識別所讀取的扇區資料是否正確。
在本發明之一實施例中,當所讀取的扇區資料不正確時,則發送一錯誤訊息給電腦主機。
在本發明之一實施例中,當電腦主機接收到錯誤訊息並且修復此些扇區資料的至少其中之一時,將所修復的扇區資料對應的資料正確性標記記錄為正常狀態。
本發明範例實施例提出一種識別快閃記憶體中錯誤資料的方法,其包括提供一快閃記憶體,此快閃記憶體具有多個實體區塊且每一實體區塊具有多個頁面。此方法也包括將每一頁面區分為多個資料位元區和對應資料位元區的多個冗餘位元區與多個錯誤校正位元區,其中每一資料位元區具有一扇區。此方法還包括使用一標記單元在每一冗餘位元區中配置一資料正確性標記。在此方法中當電腦主機寫入扇區資料至其中一個資料位元區時,在對應的錯誤校正位元區中寫入對應此扇區資料的一錯誤校正碼以及使用此標記單元在對應的冗餘位元區中將資料正確性標記記錄為一正常狀態。在此方法中,當複製儲存在其中一個資料位元區中的扇區資料至另一個資料位元區時,根據對應的錯誤校正位元區中的錯誤校正碼來判斷所複製的扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的扇區資料存有無法錯誤校正的錯誤位元時,則使用此標記單元在對應的冗餘位元區中將資料正確性標記記錄為一錯誤狀態。
基於上述,本發明能夠透過錯誤校正碼及資料正確性標記來有效地識別快閃記憶體中的錯誤資料,並避免電腦主機讀取到此錯誤資料。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本範例實施例所提出方法是在快閃記憶體中記錄資料正確性標記以識別快閃記憶體中目前所儲存之資料是否正確。特別是,資料正確性標記是對應電腦主機所寫入的每一扇區(sector)資料,由此透過資料正確性標記可得知每一扇區資料是否正確。在此,扇區資料是表示資料長度為1個扇區的資料,在目前電腦系統中一個扇區為512個位元組(byte)。以下將配合圖式詳細說明本發明的範例實施例。
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
請參照圖1,通常快閃記憶體儲存系統100會與主機200一起使用,以使電腦主機200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本實施例中,快閃記憶體儲存系統100為固態硬碟(Solid State Drive,SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統100亦可以是記憶卡或隨身碟。
快閃記憶體儲存系統100包括連接器110、快閃記憶體120與快閃記憶體控制器(亦可稱為快閃記憶體控制電路)130。
連接器110是耦接至快閃記憶體控制器130並且用以透過匯流排300連接電腦主機200。在本範例實施例中,連接器110為SATA連接器。然而,必須瞭解的是本發明不限於此,連接器110亦可以是USB連接器、IEEE 1394連接器、PCI Express連接器、MS連接器、MMC連接器、SD連接器、CF連接器、IDE連接器或其他適合的連接器。
快閃記憶體120是耦接至快閃記憶體控制器130,並且包括多個實體區塊120-0~120-N用以在快閃記憶體控制器130的操作下儲存資料。在本範例實施中,快閃記憶體120為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。然而,必須瞭解的是,本發明不限於此。在本發明另一範例實施例中,單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體亦可應用於本發明。
在快閃記憶體120中,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面(page),例如,1個實體區塊具有128個頁面。由於在本範例實施例中,快閃記憶體120為MLC NAND快閃記憶體,因此,頁面為程式化(program)的最小單元。換言之,頁面為寫入資料或讀取資料的最小單元。此外,特別說明的是,在其他快閃記憶體設計中(例如,SLC NAND快閃記憶體),最小的程式化單位亦可為一個扇區,也就是說,以一個扇區為程式化的最小單元。此外,在本發明另一範例實施例中,快閃記憶體120中的實體區塊也可被分組為數個區域(zone),以每一獨立的區域來管理實體區塊可增加操作執行的平行程度且簡化管理的複雜度。
圖2A~2C是根據本發明第一範例實施例所繪示之快閃記憶體的運作示意圖。
必須瞭解的是,在此描述快閃記憶體實體區塊的運作時,以“提取”、“搬移”、“交換”、“替換”、“輪替”、“分組”等詞來操作快閃記憶體120的實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,下述的運作是由快閃記憶體控制器130所完成。
請參照圖2A,記憶體管理單元110b會將快閃記憶體120的實體區塊120-0~120-N邏輯地分組為儲存區210以及取代區220。
在儲存區210中的實體區塊120-0~120-P是快閃記憶體儲存裝置100中正常被使用的實體區塊。也就是說,記憶體管理單元110b會將資料寫入至屬於儲存區210的實體區塊。
在取代區220中的實體區塊120-(P+1)~120-(N)是替代實體區塊。例如,快閃記憶體120於出廠時會預留4%的實體區塊作為更換使用。也就是說,當儲存區210中的實體區塊損毀時,預留於取代區220中的實體區塊可用以取代損壞的實體區塊(即,壞的實體區塊(bad block))。因此,倘若取代區220中仍存有可用之實體區塊時,若發生實體區塊損毀,記憶體管理模組110b會從取代區220中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區220中無可用之實體區塊且發生實體區塊損毀時,快閃記憶體儲存裝置100將會被宣告無法再使用。
請參照圖2B,快閃記憶體控制器130會將儲存區210的實體區塊邏輯地分組成系統區202、資料區204與備用區206。
系統區202包括實體區塊120-(0)~實體區塊120-(S),資料區204包括實體區塊120-(S+1)~實體區塊120-(S+M),並且備用區206包括實體區塊120-(S+M+1)~實體區塊120-(P)。在本實施例中,上述S、M與P為不大於N的正整數,其代表各區配置的實體區塊數量,其可由快閃記憶體儲存裝置的製造商依據所使用的快閃記憶體模組的容量而設定。
邏輯上屬於系統區202中的實體區塊是用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一快閃記憶體模組的區域數、每一區域的實體區塊數、每一實體區塊的頁面數等。
邏輯上屬於資料區204中的實體區塊用以儲存使用者的資料,一般來說就是電腦主機200所存取之邏輯區塊所對映的實體區塊。也就是說,資料區204的實體區塊為儲存有效資料的區塊。
邏輯上屬於備用區206中的實體區塊是用以輪替資料區204中的實體區塊,因此在備用區206中的實體區塊為空或可使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區204與備用區206的實體區塊會以輪替方式來儲存電腦主機200對快閃記憶體儲存裝置100寫入的資料。
如前所述,快閃記憶體120的實體區塊會以輪替方式提供電腦主機200來儲存資料,因此邏輯區塊250-1~250-M會提供給電腦主機200以進行資料存取,並且透過維護邏輯位址-實體位址對映表(logical address-physical address mapping table)來記錄邏輯區塊所對映的實體區塊。
請同時參照圖2B與圖2C,例如,當電腦主機欲寫入資料至邏輯區塊250-1時,快閃記憶體控制器130會透過邏輯位址-實體位址對映表得知邏輯區塊250-1目前是對映邏輯上屬於資料區204的實體區塊120-(S+1)。因此,記憶體管理單元110b會對實體區塊120-(S+1)中的資料進行更新,期間,快閃記憶體控制器130會從備用區206中提取實體區塊120-(S+M+1)來輪替資料區204的實體區塊120-(S+1)。然而,當記憶體管理單元110b將新資料寫入至實體區塊120-(S+M+1)的同時,記憶體管理單元110b不會立刻將實體區塊120-(S+1)中的所有有效資料搬移至實體區塊120-(S+M+1)而抹除實體區塊120-(S+1)。具體來說,快閃記憶體控制器130會將實體區塊120-(S+1)中欲寫入頁面之前的有效資料(即,頁P0與P1)複製至實體區塊120-(S+M+1)(如圖2C的(a)),並且將新資料(即,實體區塊120-(S+M+1)的頁P2與P3)寫入至實體區塊120-(S+M+1)(如圖2C的(b))。此時,快閃記憶體控制器130即完成寫入的動作。因為實體區塊120-(S+1)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊120-(S+1)中的所有有效資料搬移至替換實體區塊120-(S+M+1)可能會造成無謂的搬移。在此案例中,實體區塊120-(S+1)與實體區塊120-(S+M+1)的內容整合起來才是所對映邏輯區塊250-1的完整內容。此等母子暫態關係(即,實體區塊120-(S+1)與實體區塊120-(S+M+1))的數目是依據快閃記憶體控制器130中緩衝記憶體(未繪示)的大小而定,而暫時地維持此種暫態關係的動作一般稱為開啟(open)母子區塊。
之後,當需要將實體區塊120-(S+1)與實體區塊120-(S+M+1)的內容真正合併時,快閃記憶體控制器130才會將實體區塊120-(S+1)與實體區塊120-(S+M+1)整併為一個實體區塊,由此提升區塊的使用效率,此合併的動作又可稱為關閉(close)母子區塊。例如,如圖2C的(c)所示,當進行關閉母子區塊時,快閃記憶體控制器130會將實體區塊120-(S+1)中剩餘的有效資料(即,頁P4~PN)複製至替換實體區塊120-(S+M+1),然後將實體區塊120-(S+1)抹除並關聯為備用區206,同時,將實體區塊120-(S+M+1)關聯為資料區204,並且在邏輯位址-實體位址對映表中將邏輯區塊250-1的對映更改為實體區塊120-(S+M+1),由此完成關閉母子區塊的動作。
值得一提的是,在本範例實施例中,頁面包括多個資料位元區、多個冗餘位元區與多個錯誤校正位元區。圖3是根據本範例實施例繪示實體區塊之頁面的示意圖。
請參照圖3,在本範例實施例中,快閃記憶體控制器110會將頁面區分為4個資料位元區(即,資料位元區D1、D2、D3與D4)、4個冗餘位元區(即,冗餘位元區S1、S2、S3與S4)和4個錯誤校正位元區(即,錯誤校正位元區E1、E2、E3與E4)。資料位元區D1、D2、D3與D4分別可儲存2個扇區資料,冗餘位元區S1、S2、S3與S4用以分別地儲存對應資料位元區D1、D2、D3與D4的系統資料(例如,實體區塊的好壞標記等),而錯誤校正位元區E1、E2、E3與E4分別地儲存對應在資料位元區D1、D2、D3與D4中所儲存之所有資料的錯誤校正碼。基此,在本範例實施例中,1個頁面具有8個扇區的容量。一般來說,為了對應電腦主機200的存取單位,1個扇區為512位元組,因此1個頁面為4千位元組(kilo byte,KB)。
快閃記憶體控制器130會執行以硬體型式或韌體型式實作的多個邏輯閘或機械指令以配合連接器110與快閃記憶體120來進行資料的寫入、讀取與抹除等運作。特別是,快閃記憶體控制器130會識別從快閃記憶體120中所讀取的資料是否正確。
快閃記憶體控制器130包括微處理器單元152、第一介面單元154、第二介面單元156、錯誤校正單元158、記憶體管理單元160、標記單元162與識別單元164。
微處理器單元152用以控制快閃記憶體控制器130的整體運作。也就是說,快閃記憶體控制器130內組件的運作可由微處理器單元152直接或間接來控制。
第一介面單元154是耦接至微處理器單元152且包括第一介面控制器單元154a以及耦接至第一介面控制器單元154a的第一介面實體層單元154b,其中第一介面實體層單元154b是用以耦接至快閃記憶體120,而第一介面控制器單元154a用以處理傳送至快閃記憶體120的資料或識別從快閃記憶體120所接收的資料。也就是說,欲寫入至快閃記憶體120的資料會經由第一介面單元154轉換為快閃記憶體120所能接受的格式。
第二介面單元156是耦接至微處理器單元152且包括第二介面控制器單元156a以及耦接至第二介面控制器單元156a的第二介面實體層單元156b,其中第二介面實體層單元156b是用以耦接至連接器110以連接電腦主機200,而第二介面控制器單元156a用以處理傳送至電腦主機200或從電腦主機200所接收的資料。也就是說,電腦主機200所傳送的指令與資料會透過第二介面單元156來傳送至微處理器單元152。在本範例實施例中,第二介面單元156是符合為SATA介面標準,以對應連接器110。然而,必須瞭解的是本發明不限於此,第二介面單元156亦可配合連接器110而以USB介面標準、IEEE 1394介面標準、PCI Express介面標準、MS介面標準、MMC介面標準、SD介面標準、CF介面標準、IDE介面標準或其他適合的資料傳輸介面標準來實作。
錯誤校正單元158是耦接至微處理器單元152且用以執行一錯誤校正程序。具體來說,當電腦主機200欲寫入資料至快閃記憶體儲存系統100時,錯誤校正單元158會對應此資料產生一錯誤校正碼,並且此錯誤校正碼亦會與此資料一起儲存在快閃記憶體120中。之後,當電腦主機200欲從快閃記憶體儲存系統100讀取此資料時,錯誤校正單元158會根據此資料以及其錯誤校正碼來對所讀取的資料進行錯誤校正以確保資料的正確性。例如,倘若在圖3所示的資料位元區D1中儲存2個扇區資料時,錯誤校正單元158會根據所儲存之2個扇區資料產生一組錯誤校正碼,並且將此錯誤校正碼儲存在錯誤校正位元區E1中。錯誤校正單元158的運作方式是此領域技術人員所孰知的技術,在此不詳細描述。
記憶體管理單元160是耦接至微處理器單元152且用以操作與管理快閃記憶體120。具體來說,記憶體管理單元160會維護用於快閃記憶體120的邏輯位址-實體位址對映表(logical address-physical address mapping table),並且依據邏輯位址-實體位址對映表將電腦主機200欲存取的資料寫入至快閃記憶體120或從快閃記憶體120中讀出。例如,記憶體管理單元160會執行如圖2A~2C所述的運作以及將快閃記憶體120中實體區塊120-0~120-N的每一頁面區分為料位元區、冗餘位元區和錯誤校正位元區(如圖3所示)。
標記單元162是耦接至微處理器單元152且用以在快閃記憶體120中記錄資料正確性標記以標記在快閃記憶體120中所儲存的資料是否正確。特別是,在本範例實施例中,標記單元162會為電腦主機200欲儲存的每一扇區資料記錄一資料正確性標記。例如,倘若在圖3所示的資料位元區D1中儲存2個扇區資料時,標記單元162會在冗餘位元區S1中以2個位元來分別記錄對應所儲存之2個扇區資料的資料正確性標記,其中當扇區資料為正確時對應的資料正確性標記會顯示’0’來表示正常狀態,而當扇區資料為不正確時對應的資料正確性標記會顯示’1’來表示異常狀態。
一般來說,在電腦主機200傳送欲寫入之扇區資料至快閃記憶體儲存系統100,且記憶體管理單元160成功將扇區資料寫入至頁面的資料位元區時,標記單元162會將對應此資料位元區的冗餘位元區中所有資料正確性標記皆顯示正常狀態。
此外,當記憶體管理單元160執行如圖2C的(a)或(c)所示的運作而在頁面之間搬移扇區資料(即,從實體區塊120-(S+1)的頁面P0中複製有效舊資料至實體區塊120-(S+M+1)的頁面P0)時,錯誤校正單元158會依據從實體區塊120-(S+1)的頁面p0中讀出之資料及其對應的錯誤校正碼執行錯誤校正程序,然後再根據已執行錯誤校正程序之資料產生一組新的錯誤校正碼,最後將已執行錯誤校正程序之資料及新的錯誤校正碼寫入至實體區塊120-(S+M+1)的頁面P0中。在此例子中,倘若在執行錯誤校正程序的過程中發現從實體區塊120-(S+1)的頁面P0中複製的有效舊資料存有無法錯誤校正的錯誤位元時,由於所複製的資料已為不可修復的狀態,因此寫入至實體區塊120-(S+M+1)之頁面P0的資料是具無法錯誤校正的錯誤位元。並且,由於錯誤校正單元158會為此具無法錯誤校正的錯誤位元的資料產生新的錯誤校正碼並儲存在實體區塊120-(S+M+1)的頁面P0中,因此新的錯誤校正碼已無法使錯誤校正單元158識別出此資料具有無法錯誤校正的錯誤位元。在此例子中,標記單元162會將實體區塊120-(S+M+1)的頁面P0的冗餘位元區中的資料正確性標記皆記錄為異常狀態。
請再參照圖1,識別單元164是耦接至微處理器單元152,並且用以當電腦主機200欲從快閃記憶體儲存系統100中讀取資料時依據錯誤校正單元158所執行的錯誤校正結果以及標記單元162所記錄的資訊(即,資料正確性標記)來判斷所讀取的資料是否存有錯誤。例如,當判斷所讀取的資料存有錯誤時,則標記單元162會向電腦主機200發送一錯誤訊息,以告知電腦主機200所讀取的資料為異常。
例如,在上述從實體區塊120-(S+1)的頁面P0中複製有效舊資料至實體區塊120-(S+M+1)的頁面P0的過程中發現無法錯誤校正的錯誤位元的例子中,當電腦主機200讀取實體區塊120-(S+M+1)的頁面P0中的資料時,雖然錯誤校正單元158會以新的錯誤校正碼來對具無法錯誤校正的錯誤位元的資料進行錯誤校正程序而認定所讀取的資料為正確,然識別單元164會根據實體區塊120-(S+M+1)的頁面P0冗餘位元區中的資料正確性標記而識別此資料為異常。
也就是說,在上述快閃記憶體儲存系統100下,當主機電腦200欲從快閃記憶體120的資料位元區中讀取扇區資料時,記憶體管理單元會將此資料位元區中的所有資料及其對應的錯誤校正碼傳送給錯誤校正單元158執行一錯誤校正程序,並且識別單元164會根據錯誤校正結果以及所讀取之扇區資料對應的資料正確性標記來判斷所讀取資料的狀態,其中僅在錯誤校正結果顯示正常並且資料正確性標記顯示此扇區資料為正常狀態下,識別單元164才會判斷所讀取之扇區資料為正確的資料。
值得一提的是,由於在目前的電腦主機200的運作中重要的資料會以多個備份來儲存,因此電腦主機200可透過此備份資料來修復損毀的資料(例如,以備份資料重新覆寫儲存此扇區中的資料)。基此,倘若電腦主機200從識別單元164中接收到錯誤訊息而得知欲讀取的資料為異常狀態並且修復此扇區資料時,標記單元162會將對應此扇區的資料正確性標記記錄為正常狀態。
圖4根據本發明範例實施例所繪示的寫入扇區資料的流程圖,並且圖5是根據本發明範例實施例所繪示的寫入扇區資料的範例,其中以寫入資料至實體區塊120-(S+1)以及從實體區塊120-(S+1)複製資料至實體區塊120-(S+M+1)且發生無法錯誤校正的錯誤位元為例。
請參照圖4與圖5,在步驟S401中,記憶體管理單元160會依據邏輯位址與實體位址對映表將欲寫入之扇區資料寫入至對映之實體區塊的頁面中的資料位元區中(例如,圖5的(a)所示將扇區資料DATA1與DATA2寫入至實體區塊120-(S+1)的頁面P0的資料位元區D1)。之後,在步驟403中會將依據欲寫入之資料所產生之錯誤校正碼寫入至對應的錯誤校正位元區中(例如,圖5的(a)所示將錯誤校正碼ECC寫入至實體區塊120-(S+1)的頁面P0的錯誤校正位元區E1)。接著,在步驟S405中會在對應的冗餘位元區中記錄對應所寫入之扇區資料的資料正確性標記(例如,圖5的(a)所示在實體區塊120-(S+1)的頁面P0的冗餘位元區S1中記錄對應扇區資料DATA1與DATA2的2個資料正確性標記)。
在當所寫入的扇區資料是來自於電腦主機200或非快閃記憶體儲存系統100的例子中,當資料寫入成功時,對應的冗餘位元區中的資料正確性標記會被記錄為正常狀態(如圖5的(a)所示)。
此外,在所寫入的扇區資料是來自於其他頁面的例子(即,在實體區塊之間複製資料)中,則會依據此扇區資料所執行之錯誤校正結果來記錄資料正確性標記,其中倘若錯誤校正結果顯示發生無法錯誤校正的錯誤位元時,則對應的冗餘位元區中的資料正確性標記會被記錄為異常狀態(如圖5的(b)所示)。
再者,在電腦主機200修復特定扇區資料的例子中,則對應特定扇區的資料正確性標記會被記錄為正常狀態(如圖5的(c)所示)。值得一提的是,在此例子中,由於實體區塊120-(S+M+1)的頁面P0中的扇區資料會被更新,因此實體區塊120-(S+M+1)中的資料會被搬移至從備用區206中所提取的一個空實體區塊(例如,實體區塊120-(S+M+2))中。
值得一提的是,如上所述,儘管記憶體管理單元160、標記單元162與識別單元164是以一硬體型式實作在快閃記憶體控制器110中,然而本發明不限於此。在另一範例實施例中,記憶體管理單元160、標記單元162與識別單元164可以是以一韌體型式實作在控制器110中。例如,將完成記憶體管理單元160、標記單元162與識別單元164之功能的多個程式燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器110中,當快閃記憶體儲存裝置100運作時,此些程式會由微處理器單元152來執行以完成根據本發明實施例的防電腦病毒擴散機制。
在本發明另一實施例中,完成記憶體管理單元160、標記單元162與識別單元164之功能的多個程式亦可以軟體型式儲存於快閃記憶體120的特定區域(例如,快閃記憶體中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,此些程式會由微處理器單元152來執行。
此外,在本發明另一範例實施例中,快閃記憶體控制器亦可包括其他電路單元。圖6是根據本發明另一範例實施例所繪示的快閃記憶體控制器的方塊圖。
請參照圖6,除了上述微處理器單元152、第一介面單元154、第二介面單元156、記憶體管理單元160、標記單元162與識別單元164之外,快閃記憶體控制器110’更包括光罩式唯讀記憶體(Mask ROM)402、程式隨機存取記憶體(Program Random Access Memory)404、安全引擎(Security Engine)單元406與緩衝記憶體410,其中,光罩式唯讀記憶體402與程式隨機存取記憶體404是透過多工器(MUX)422耦接至微處理器單元152,而緩衝記憶體410是透過仲裁器(Arbiter)424耦接至微處理器單元152,並且記憶體管理單元160、標記單元162與識別單元164是透過仲裁器426耦接至微處理器單元152。
光罩式唯讀記憶體402是用以儲存用於快閃記憶體控制器110的資訊或程式碼,特別是,此些資訊或程式碼是不允許被更動的。程式隨機存取記憶體404是用以暫時地存放微處理器單元152所正執行的韌體碼。具體來說,由於隨機存取記憶體的運作速度較快,因此將微處理器單元152所正執行的韌體碼先載入至程式隨機存取記憶體可提升快閃記憶體控制器110的運作效率。例如,在以韌體或軟體型式實作記憶體管理單元160、標記單元162與識別單元164的例子中,在快閃記憶體儲存系統100初始化時,完成此些單元之功能的程式會被載入至程式隨機存取記憶體後,再由微處理器單元152來執行。
安全引擎單元406是耦接至微處理器單元152並且用以加解密寫入至快閃記憶體120中的資料,以確保資料的可靠性。在本範例實施例中,安全引擎單元406所使用的加解密技術為高階加密標準(Advanced Encryption Standard,AES),然而本發明不限於此,國家標準局資料加密標準(data encryption standard,DES)或其他加密技術亦可應用於本發明。
緩衝記憶體410用以暫存電腦主機200欲寫入至快閃記憶體120的資料或電腦主機200欲從讀取快閃記憶體120中讀取的資料。緩衝記憶體410為動態隨機存取記憶體(Dynamic Random Access memory,DRAM)。然而,必須瞭解的是,本發明不限於此,磁阻式記憶體(Magnetoresistive Random Access Memory,MRAM)、相變化記憶體(Phase Change Random Access Memory,PCRAM)、單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體或其他適合的記憶體亦可應用於本發明。
基於上述架構,根據本範例實施例的快閃記憶體儲存系統100能夠透過錯誤校正碼及資料正確性標記的雙重驗證來有效地識別快閃記憶體中錯誤資料。
圖7是根據本發明範例實施例所繪示的識別快閃記憶體中錯誤資料的流程圖。
請參照圖7,當記憶體管理單元160依據電腦主機200的指令執行讀取動作時,在步驟S701中會根據所讀取資料的錯誤校正碼對所讀取的資料執行一錯誤校正程序。之後,在步驟S703中會判斷錯誤校正結果是否正常。倘若錯誤校正結果為不正常(即,存有無法錯誤校正的錯誤位元)時,在步驟S705中會傳送一錯誤訊息給電腦主機200。
倘若錯誤校正結果為正常時,則在步驟S707中會判斷對應的資料正確性標記是否顯示異常狀態。倘若對應的資料正確性標記顯示異常狀態時,則執行步驟S705。倘若對應的資料正確性標記顯示正常狀態時,則在步驟S709中會將所讀取的資料傳送給電腦主機200。
值得一提的是,在本範例實施例是以一個資料位元區可儲存2個扇區資料為例來進行說明,然而本發明不限於此,在本發明另一範例實施例中一個資料位元區可儲存1個扇區資料或超過2個扇區資料,其中當一個資料位元區可儲存1個扇區資料時,對應的冗餘位元區僅會記錄1個資料正確性標記。另外,在本發明另一範例實施例中,1個頁面中亦可僅配置1個資料位元區與對應的1個資料冗餘位元,或者1個頁面中亦可僅配置1個資料冗餘位元來對應多個資料位元區,並且在此例子中此頁面中所配置的所有資料正確性標記皆儲存在此資料冗餘區中。再者,在本發明另一範例實施例中,在1個頁面具有多個資料冗餘位元時,配置在此頁面中的所有資料正確性標記亦可都儲存於其中一個資料冗餘區中
綜上所述,本發明使用錯誤校正碼及資料正確性標記的雙重確認來驗證資料的正確性,由此可確保電腦主機從快閃記憶體儲存系統中所接收到的資料為正確無誤。此外,由於資料正確性標記是對應電腦主機之存取單位之扇區資料來配置,因此在電腦主機對錯誤之扇區資料進行修復時,快閃記憶體儲存系統可正確地識別已進行修復之扇區資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...快閃記憶體儲存系統
110、110'...快閃記憶體控制器
120...快閃記憶體
120-0、120-1、120-N...實體區塊
130...連接器
152...微處理器單元
154...第一介面單元
154a...第一介面控制器單元
154b...第一介面實體單元
156...第二介面單元
156a...第二介面控制器單元
156b...第二介面實體單元
158...錯誤校正單元
160...記憶體管理單元
162‧‧‧標記單元
164‧‧‧識別單元
200‧‧‧電腦主機
300‧‧‧匯流排
202‧‧‧系統區
204‧‧‧資料區
206‧‧‧備用區
210‧‧‧儲存區
220‧‧‧取代區
250-1~250-M‧‧‧邏輯區塊
D1、D2、D3、D4‧‧‧資料位元區
S1、S2、S3、S4‧‧‧冗餘位元區
E1、E2、E3、E4‧‧‧錯誤校正位元
S401、S403、S405‧‧‧寫入扇區資料的步驟
DATA1、DATA2‧‧‧扇區資料
ECC、ECC’、ECC”‧‧‧錯誤校正碼
402‧‧‧光罩式唯讀記憶體
404‧‧‧程式隨機存取記憶體
406‧‧‧安全引擎單元
408‧‧‧錯誤校正單元
410‧‧‧緩衝記憶體
422‧‧‧是透過多工器
424、426‧‧‧仲裁器
S701、S703、S705、S707、S709‧‧‧識別錯誤資料的步驟
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
圖2A~2C是根據本發明第一範例實施例所繪示之快閃記憶體的運作示意圖。
圖3是根據本範例實施例繪示實體區塊之頁面的示意圖。
圖4根據本發明範例實施例所繪示的寫入扇區資料的流程圖。
圖5是根據本發明範例實施例所繪示的寫入扇區資料的範例。
圖6是根據本發明另一範例實施例所繪示的快閃記憶體控制器的方塊圖。
圖7是根據本發明範例實施例所繪示的識別快閃記憶體中錯誤資料的流程圖。
110’...快閃記憶體控制器
120...快閃記憶體
152...微處理器單元
154...第一介面單元
154a...第一介面控制器單元
154b...第一介面實體單元
156...第二介面單元
156a...第二介面控制器單元
156b...第二介面實體單元
158...錯誤校正單元
160...記憶體管理單元
162...標記單元
164...識別單元
402...光罩式唯讀記憶體
404...程式隨機存取記憶體
406...安全引擎單元
408...錯誤校正單元
410...緩衝記憶體
422...是透過多工器
424、426...仲裁器
Claims (24)
- 一種快閃記憶體控制電路,包括:一微處理器單元;一第一介面單元,耦接至該微處理器單元,用以連接一快閃記憶體,其中該快閃記憶體具有多個實體區塊且每一該些實體區塊具有多個頁面;一第二介面單元,耦接至該微處理器單元,用以連接一電腦主機;一錯誤校正單元,耦接至該微處理器單元;一記憶體管理單元,耦接至該微處理單元,用以將每一該些頁面區分為至少一資料位元區、至少一冗餘位元區與至少一錯誤校正位元區,其中每一該些資料位元區具有多個扇區以儲存多個扇區資料;以及一標記單元,耦接至該微處理器單元,其中當該電腦主機寫入多個扇區資料至其中一個該些資料位元區時,該錯誤校正單元會根據該些扇區資料產生一錯誤校正碼,該記憶體管理單元會將該些扇區資料寫入至該其中一個資料位元區中並且將所產生的該錯誤校正碼寫入至對應該其中一個資料位元區的錯誤校正位元區中,並且該標記單元會在對應該其中一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一正常狀態,其中每一該些資料正確性標記對應一個該些扇區資料,其中當該記憶體管理單元複製儲存在該其中一個資料位元區中的該些扇區資料至另一個該些資料位元區時, 該錯誤校正單元會根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所複製的該些扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的該些扇區資料存有該無法錯誤校正的錯誤位元時,則該標記單元會在對應該另一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第1項所述之快閃記憶體控制電路,更包括一識別單元,耦接至該微處理器單元,其中當該電腦主機從該快閃記憶體中讀取該些扇區資料時,該錯誤校正單元會根據對應該些扇區資料的該錯誤校正碼錯誤校正該些扇區資料,並且該識別單元會根據錯誤校正的結果以及對應該些扇區資料的該些資料正確性標記來識別所讀取的該些扇區資料是否正確。
- 如申請專利範圍第2項所述之快閃記憶體控制電路,其中並且當所讀取的該些扇區資料為不正確時,該識別單元會發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第3項所述之快閃記憶體控制電路,其中當該電腦主機接收到該錯誤訊息並且修復該些扇區資料的至少其中之一時,該標記單元會將所修復的該些扇區資料對應的該些資料正確性標記記錄為該正常狀態。
- 一種快閃記憶體儲存系統,包括:一連接器,用以連接一電腦主機;一快閃記憶體,具有多個實體區塊且每一該些實體區 塊具有多個頁面;以及一快閃記憶體控制器,耦接至該連接器與該快閃記憶體,用以將每一該些頁面區分為至少一資料位元區、至少一冗餘位元區與至少一錯誤校正位元區,其中每一該些資料位元區具有多個扇區以儲存多個扇區資料,其中當該電腦主機寫入多個扇區資料至其中一個該些資料位元區時,該快閃記憶體控制器會根據該些扇區資料產生一錯誤校正碼,將該些扇區資料寫入至該其中一個資料位元區中,將所產生的該錯誤校正碼寫入至對應該其中一個資料位元區的錯誤校正位元區中,並且會在對應該其中一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一正常狀態,其中每一該些資料正確性標記對應一個該些扇區資料,其中當該快閃記憶體控制器複製儲存在該其中一個資料位元區中的該些扇區資料至另一個該些資料位元區時,該快閃記憶體控制器會根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所複製的該些扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的該些扇區資料存有該無法錯誤校正的錯誤位元時,則該快閃記憶體控制器會在對應該另一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第5項所述之快閃記憶體儲存系統,其中當該電腦主機從該快閃記憶體中讀取該些扇區資 料時,該快閃記憶體控制器會根據對應該些扇區資料的該錯誤校正碼錯誤校正該些扇區資料,根據錯誤校正的結果以及對應該些扇區資料的該些資料正確性標記來識別所讀取的該些扇區資料是否正確。
- 如申請專利範圍第6項所述之快閃記憶體儲存系統,其中當所讀取的該些扇區資料為不正確時,該快閃記憶體控制器會發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第7項所述之快閃記憶體儲存系統,其中當該電腦主機接收到該錯誤訊息並且修復該些扇區資料的至少其中之一時,該標記單元會將所修復的該些扇區資料對應的該些資料正確性標記記錄為該正常狀態。
- 一種識別快閃記憶體中錯誤資料的方法,用於一快閃記憶體,該快閃記憶體具有多個實體區塊且每一該些實體區塊具有多個頁面,該識別快閃記憶體中錯誤資料的方法包括:將每一該些頁面區分為至少一資料位元區、至少一冗餘位元區與至少一錯誤校正位元區,其中每一該些資料位元區具有多個扇區;使用一標記單元在每一該些冗餘位元區中配置多個資料正確性標記;當一電腦主機寫入多個扇區資料至其中一個該些資料位元區時,在對應該其中一個資料位元區的錯誤校正位元區中寫入對應該些扇區資料的一錯誤校正碼以及使用該標記單元在對應該其中一個資料位元區的冗餘位元區中將 該些資料正確性標記記錄為一正常狀態,其中每一該些資料正確性標記對應一個該些扇區資料;以及當複製儲存在該其中一個資料位元區中的該些扇區資料至另一個該些資料位元區時,根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所複製的該些扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的該些扇區資料存有該無法錯誤校正的錯誤位元時,則使用該標記單元在對應該另一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第9項所述之識別快閃記憶體中錯誤資料的方法,更包括當該電腦主機從該快閃記憶體中讀取該些扇區資料時,使用一識別單元根據對應該些扇區資料的該錯誤校正碼以及對應該些扇區資料的該些資料正確性標記來識別所讀取的該些扇區資料是否正確。
- 如申請專利範圍第10項所述之識別快閃記憶體中錯誤資料的方法,更包括當所讀取的該些扇區資料不正確時,則發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第11項所述之識別快閃記憶體中錯誤資料的方法,其中當該電腦主機接收到該錯誤訊息並且修復該些扇區資料的至少其中之一時,將所修復的該些扇區資料對應的該些資料正確性標記記錄為該正常狀態。
- 一種識別快閃記憶體中錯誤資料的方法,用於一快閃記憶體,該快閃記憶體具有多個實體區塊且每一該些 實體區塊具有多個頁面,該識別快閃記憶體中錯誤資料的方法包括:將每一該些頁面區分為多個資料位元區、多個冗餘位元區與多個錯誤校正位元區,其中每一該些資料位元區具有一扇區;使用一標記單元在每一該些冗餘位元區中配置一資料正確性標記;當一電腦主機寫入一扇區資料至其中一個該些資料位元區時,在對應該其中一個資料位元區的錯誤校正位元區中寫入對應該扇區資料的一錯誤校正碼以及使用該標記單元在對應該其中一個資料位元區的冗餘位元區中將該資料正確性標記記錄為一正常狀態;以及當複製儲存在該其中一個資料位元區中的該扇區資料至另一個該些資料位元區時,根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所複製的該扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所複製的該扇區資料存有該無法錯誤校正的錯誤位元時,則使用該標記單元在對應該另一個資料位元區的冗餘位元區中將該資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第13項所述之識別快閃記憶體中錯誤資料的方法,更包括當該電腦主機從該快閃記憶體中讀取該扇區資料時,使用一識別單元根據該扇區資料對應的該錯誤校正碼以及對應該扇區資料的該資料正確性標記來識別所讀取的該扇區資料是否正確。
- 如申請專利範圍第14項所述之識別快閃記憶體中錯誤資料的方法,更包括當所讀取的該扇區資料不正確時,則發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第15項所述之識別快閃記憶體中錯誤資料的方法,其中當該電腦主機接收到該錯誤訊息並且修復該扇區資料時,將所修復的該扇區資料對應的該資料正確性標記記錄為該正常狀態。
- 一種快閃記憶體儲存系統,包括:一連接器,用以連接一電腦主機;一快閃記憶體,具有多個實體區塊且每一該些實體區塊具有多個頁面;以及一快閃記憶體控制器,耦接至該連接器與該快閃記憶體,用以將每一該些頁面區分為至少一資料位元區、至少一冗餘位元區與至少一錯誤校正位元區,其中每一該些資料位元區具有多個扇區以儲存多個扇區資料,其中倘若該電腦主機寫入多個扇區資料至其中一個該些資料位元區時,該快閃記憶體控制器會根據該些扇區資料產生一錯誤校正碼,將該些扇區資料寫入至該其中一個資料位元區中,將所產生的該錯誤校正碼寫入至對應該其中一個資料位元區的錯誤校正位元區中,並且會在對應該其中一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一正常狀態,其中每一該些資料正確性標記對應一個該些扇區資料,其中倘若該快閃記憶體控制器讀取儲存在該其中一 個資料位元區中的該些扇區資料時,該快閃記憶體控制器會根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所讀取的該些扇區資料是否存有一無法錯誤校正的錯誤位元,其中倘若所讀取的該些扇區資料存有該無法錯誤校正的錯誤位元時,則該快閃記憶體控制器會在對應的冗餘位元區中將該些資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第17項所述之快閃記憶體儲存系統,其中當該電腦主機從該快閃記憶體中讀取該些扇區資料時,該快閃記憶體控制器會根據對應該些扇區資料的該錯誤校正碼錯誤校正該些扇區資料,根據錯誤校正的結果以及對應該些扇區資料的該些資料正確性標記來識別所讀取的該些扇區資料是否正確。
- 如申請專利範圍第18項所述之快閃記憶體儲存系統,其中當所讀取的該些扇區資料為不正確時,該快閃記憶體控制器會發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第19項所述之快閃記憶體儲存系統,其中當該電腦主機接收到該錯誤訊息並且修復該些扇區資料的至少其中之一時,該標記單元會將所修復的該些扇區資料對應的該些資料正確性標記記錄為該正常狀態。
- 一種識別快閃記憶體中錯誤資料的方法,用於一快閃記憶體,該快閃記憶體具有多個實體區塊且每一該些實體區塊具有多個頁面,該識別快閃記憶體中錯誤資料的 方法包括:將每一該些頁面區分為至少一資料位元區、至少一冗餘位元區與至少一錯誤校正位元區,其中每一該些資料位元區具有多個扇區;使用一標記單元在每一該些冗餘位元區中配置多個資料正確性標記;倘若一電腦主機寫入多個扇區資料至其中一個該些資料位元區時,在對應該其中一個資料位元區的錯誤校正位元區中寫入對應該些扇區資料的一錯誤校正碼以及使用該標記單元在對應該其中一個資料位元區的冗餘位元區中將該些資料正確性標記記錄為一正常狀態,其中每一該些資料正確性標記對應一個該些扇區資料;以及倘若讀取儲存在該其中一個資料位元區中的該些扇區資料時,根據對應的該錯誤校正位元區中的該錯誤校正碼來判斷所讀取的該些扇區資料是否存有一無法錯誤校正的錯誤位元,其中當所讀取的該些扇區資料存有該無法錯誤校正的錯誤位元時,則在對應的冗餘位元區中將該些資料正確性標記記錄為一錯誤狀態。
- 如申請專利範圍第21項所述之識別快閃記憶體中錯誤資料的方法,更包括當該電腦主機從該快閃記憶體中讀取該些扇區資料時,使用一識別單元根據對應該些扇區資料的該錯誤校正碼以及對應該些扇區資料的該些資料正確性標記來識別所讀取的該些扇區資料是否正確。
- 如申請專利範圍第22項所述之識別快閃記憶體 中錯誤資料的方法,更包括當所讀取的該些扇區資料不正確時,則發送一錯誤訊息給該電腦主機。
- 如申請專利範圍第23項所述之識別快閃記憶體中錯誤資料的方法,其中當該電腦主機接收到該錯誤訊息並且修復該些扇區資料的至少其中之一時,將所修復的該些扇區資料對應的該些資料正確性標記記錄為該正常狀態。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098121002A TWI404071B (zh) | 2009-06-23 | 2009-06-23 | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 |
US12/542,130 US8607123B2 (en) | 2009-06-23 | 2009-08-17 | Control circuit capable of identifying error data in flash memory and storage system and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098121002A TWI404071B (zh) | 2009-06-23 | 2009-06-23 | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201101318A TW201101318A (en) | 2011-01-01 |
TWI404071B true TWI404071B (zh) | 2013-08-01 |
Family
ID=43355359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098121002A TWI404071B (zh) | 2009-06-23 | 2009-06-23 | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8607123B2 (zh) |
TW (1) | TWI404071B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312349B2 (en) * | 2009-10-27 | 2012-11-13 | Micron Technology, Inc. | Error detection/correction based memory management |
KR101648531B1 (ko) * | 2010-02-12 | 2016-08-17 | 삼성전자주식회사 | 불휘발성 메모리 시스템과 이의 동작 방법 |
KR101826137B1 (ko) * | 2011-03-24 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법 |
TWI587136B (zh) * | 2011-05-06 | 2017-06-11 | 創惟科技股份有限公司 | 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法 |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
US9478314B2 (en) * | 2014-09-15 | 2016-10-25 | Macronix International Co., Ltd. | Memory utilizing bundle-level status values and bundle status circuits |
US10552243B2 (en) | 2017-10-12 | 2020-02-04 | International Business Machines Corporation | Corrupt logical block addressing recovery scheme |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247152B1 (en) * | 1999-03-31 | 2001-06-12 | International Business Machines Corporation | Relocating unreliable disk sectors when encountering disk drive read errors with notification to user when data is bad |
TW200421349A (en) * | 2003-01-28 | 2004-10-16 | Sandisk Corp | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
US20080282128A1 (en) * | 1999-08-04 | 2008-11-13 | Super Talent Electronics, Inc. | Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance |
TW200844999A (en) * | 2006-10-12 | 2008-11-16 | Sandisk Corp | Non-volatile memory with worst-case control data management and methods therefor |
US20080294935A1 (en) * | 2007-05-25 | 2008-11-27 | Jian-Qiang Ni | Data structure for flash memory and data reading/writing method thereof |
US20080318449A1 (en) * | 1999-08-04 | 2008-12-25 | Super Talent Electronics, Inc. | MULTI-LEVEL CELL (MLC) DUAL PERSONALITY EXTENDED eSATA FLASH MEMORY DEVICE |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260156B1 (en) * | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
US6332204B1 (en) * | 1999-03-31 | 2001-12-18 | International Business Machines Corporation | Recovering and relocating unreliable disk sectors when encountering disk drive read errors |
JP2002150699A (ja) * | 2000-11-06 | 2002-05-24 | Sony Corp | 情報処理装置、情報処理方法及び情報処理方法を記録した記録媒体 |
US7203874B2 (en) * | 2003-05-08 | 2007-04-10 | Micron Technology, Inc. | Error detection, documentation, and correction in a flash memory device |
US20080082736A1 (en) | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US7308603B2 (en) * | 2004-10-18 | 2007-12-11 | International Business Machines Corporation | Method and system for reducing memory faults while running an operating system |
US7849381B2 (en) | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
TWI343001B (en) * | 2007-11-13 | 2011-06-01 | Ite Tech Inc | Data preserving method and data accessing method for non-volatile memory |
WO2010054410A2 (en) * | 2008-11-10 | 2010-05-14 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for predicting failures in solid-state storage |
US8839053B2 (en) * | 2010-05-27 | 2014-09-16 | Microsoft Corporation | Error correcting pointers for non-volatile storage |
-
2009
- 2009-06-23 TW TW098121002A patent/TWI404071B/zh active
- 2009-08-17 US US12/542,130 patent/US8607123B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247152B1 (en) * | 1999-03-31 | 2001-06-12 | International Business Machines Corporation | Relocating unreliable disk sectors when encountering disk drive read errors with notification to user when data is bad |
US20080282128A1 (en) * | 1999-08-04 | 2008-11-13 | Super Talent Electronics, Inc. | Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance |
US20080318449A1 (en) * | 1999-08-04 | 2008-12-25 | Super Talent Electronics, Inc. | MULTI-LEVEL CELL (MLC) DUAL PERSONALITY EXTENDED eSATA FLASH MEMORY DEVICE |
TW200421349A (en) * | 2003-01-28 | 2004-10-16 | Sandisk Corp | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
TW200844999A (en) * | 2006-10-12 | 2008-11-16 | Sandisk Corp | Non-volatile memory with worst-case control data management and methods therefor |
US20080294935A1 (en) * | 2007-05-25 | 2008-11-27 | Jian-Qiang Ni | Data structure for flash memory and data reading/writing method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20100325524A1 (en) | 2010-12-23 |
US8607123B2 (en) | 2013-12-10 |
TW201101318A (en) | 2011-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI467581B (zh) | 複合式儲存裝置及其複合式儲存媒體控制器與定址方法 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI483111B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
CN101944386B (zh) | 识别闪速存储器中错误数据的控制电路及存储***与方法 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
TWI443512B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI404071B (zh) | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 | |
TWI442230B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
TWI616807B (zh) | 資料寫入方法以及儲存控制器 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 |