TWI486766B - 資料處理方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料處理方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI486766B TWI486766B TW101116931A TW101116931A TWI486766B TW I486766 B TWI486766 B TW I486766B TW 101116931 A TW101116931 A TW 101116931A TW 101116931 A TW101116931 A TW 101116931A TW I486766 B TWI486766 B TW I486766B
- Authority
- TW
- Taiwan
- Prior art keywords
- access address
- logical
- data string
- identification information
- unit
- Prior art date
Links
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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
本發明是有關於一種用於可複寫式非揮發性記憶體模組的資料處理方法以及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體包括多個實體抹除單元,且每個實體抹除單元包括多個實體程式化單元,其中實體程式化單元為最小的寫入單位。因此,當欲寫入之資料的大小小於實體程式化單元的容量時,一般來說,記憶體控制電路會在實體程式化單元中未被寫入資料的位元中填入填塞值(pad value),例如’0’,由此以整個實體程式化單元為單位來進行程式化運作。然而,將此些填塞值傳輸至可複寫式非揮發性記憶體並進行程式化,會額外增加執行寫入指令所需的時間。此外,主機系統會在儲存裝置的部分儲存位址中建立與維護系統資料(例如,檔案配置表)以管理整個儲存裝置的儲存空間,並且在此些系統資料中部分欄位會常態性記錄固定特定值(例如,’0’),因此,記憶體控制電路會重複地寫入與讀取此些固定特定值。然而,隨著實體程式化單元的容量越來越大,執行程式化運作所需的時間亦隨著增加。如何有效地處理欲寫入之資料,以縮短執行寫入指令所需的時間,為此領域技術人員所關心的議題。
本發明的範例實施例提出一種資料處理方法、記憶體控制器以及記憶體儲存裝置,可以有效地縮短執行資料寫入與讀取指令所需的時間。
本發明一範例實施例提出一種資料處理方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射至少部分的實體程式化單元,並且每一邏輯程式化單元具有多個邏輯存取位址。本資料處理方法包括從主機系統接收第一寫入資料串,其中第一寫入資料串配置於第一邏輯存取位址且第一邏輯存取位址屬於第一邏輯程式化單元。本資料處理方法還包括選擇第一實體程式化單元;並且判斷第一寫入資料串是否屬於一種態樣。本資料處理方法也包括,倘若第一寫入資料串不屬於此態樣時,將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的第一實體存取位址,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域。本資料處方法亦包括,若第一寫入資料串屬於此態樣時,將對應第一邏輯存取位址的識別資訊設定為對應此態樣的識別值,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域,其中第一寫入資料串不會被程式化至第一實體程式化單元中。本資料處方法更包括將第一邏輯程式化單元映射至第一實體程式化單元。
在一範例實施例中,上述的將對應第一邏輯存取位址的識別資訊儲存至預定區域的步驟包括:將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的資料處理方法更包括:從主機系統接收指示讀取儲存在第一邏輯存取位址中之資料的讀取指令;從第一實體程式化單元中讀取屬於第一邏輯存取位址的讀取資料串與對應第一邏輯存取位址的識別資訊;判斷從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊是否為上述識別值;倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊為上述識別值時,將對應此態樣的預設資料傳送給主機系統;以及倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊非為上述識別值時,將所讀取之資料串傳送給主機系統。
在一範例實施例中,上述的資料處理方法更包括:判斷可複寫式非揮發性記憶體模組是否已儲存屬於第一邏輯程式化單元的第二邏輯存取位址的有效資料串;倘若可複寫式非揮發性記憶體模組已儲存屬於第二邏輯存取位址的有效資料串時,將對應第二邏輯存取位址的識別資訊設定為預設值,將有效資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區;以及倘若可複寫式非揮發性記憶體模組未儲存有屬於第二邏輯存取位址的有效資料串時,將對應第二邏輯存取位址的識別資訊設定為上述識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的資料處理方法更包括:從主機系統接收屬於第一邏輯程式化單元的第二邏輯存取位址的第二寫入資料串;判斷第二寫入資料串是否屬於上述態樣;倘若第二寫入資料串不屬於上述態樣時,將對應第二邏輯存取位址的識別資訊設定為預設值,將第二寫入資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區;以及倘若第二寫入資料串屬於上述態樣時,將對應第二邏輯存取位址的識別資訊設定為對應上述態樣的識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第二寫入資料串不會被程式化至第一實體程式化單元中。
在一範例實施例中,上述的第一寫入資料串、第二寫入資料串、對應第一邏輯存取位址的識別資訊、對應第二邏輯存取位址的識別資訊是透過一程式化指令被程式化至第一實體程式化單元。
在一範例實施例中,上述的判斷第一寫入資料串是否屬於上述態樣的步驟包括:判斷第一寫入資料串的每個資料位元是否為0;以及倘若第一寫入資料串的每個資料位元皆為0時,判斷第一寫入資料串屬於上述態樣。
本發明一範例實施例提出一種資料處理方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射部分的實體程式化單元,並且每一邏輯程式化單元具有多個邏輯存取位址。本資料處理方法包括從主機系統接收第一寫入資料串,其中第一寫入資料串屬於第一邏輯存取位址且第一邏輯存取位址屬於第一邏輯程式化單元。本資料處理方法也包括:選擇第一實體程式化單元;並且判斷第一寫入資料串是否屬於多個態樣的其中一個態樣。本資料處理方法還包括,倘若第一寫入資料串不屬於任一態樣時,將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的第一實體存取位址,並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。本資料處理方法亦包括,倘若第一寫入資料串屬於其中一個態樣時,將對應第一邏輯存取位址的識別資訊設定為對應此態樣的識別值,並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第一寫入資料串不會被程式化至第一實體程式化單元中。本資料處理方法更包括將第一邏輯程式化單元映射至第一實體程式化單元。
在一範例實施例中,上述的資料處理方法更包括:從主機系統接收指示讀取儲存在第一邏輯存取位址中的資料的;從第一實體程式化單元中讀取屬於第一邏輯存取位址的讀取資料串與對應第一邏輯存取位址的識別資訊;判斷從第一實體程式化單元中所讀取的對應第一邏輯存取位址的識別資訊是否為對應所述多個態樣之其中一個態樣的識別值;倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊為其中一個態樣的識別值時,將對應此態樣的預設資料傳送給主機系統;以及倘若從第一實體程式化單元中所讀取之對應該第一邏輯存取位址的識別資訊非為任一個態樣的識別值時,將此讀取資料串傳送給主機系統。
本發明一範例實施例提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,且資料位元區包括多個實體存取位址。本記憶體控制器包括:主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面,並且配置多個邏輯程式化單元以映射至少部分的實體程式化單元,其中每一邏輯程式化單元具有多個邏輯存取位址。在此,記憶體管理電路從主機系統接收第一寫入資料串,其中第一寫入資料串屬於第一邏輯存取位址且第一邏輯存取位址屬於第一邏輯程式化單元。此外,記憶體管理電路選擇第一實體程式化單元,並且判斷第一寫入資料串是否屬於一種態樣。倘若第一寫入資料串不屬於此態樣時,記憶體管理電路將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的第一實體存取位址,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域。倘若第一寫入資料串屬於此態樣時,記憶體管理電路將對應第一邏輯存取位址的識別資訊設定為對應此態樣的識別值,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域,其中第一寫入資料串不會被程式化至第一實體程式化單元中。再者,記憶體管理電路更用以將第一邏輯程式化單元映射至第一實體程式化單元。
在一範例實施例中,上述的預定區域為第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的記憶體管理電路透過主機介面從主機系統接收指示讀取儲存在第一邏輯存取位址中的資料的讀取指令,透過記憶體介面從第一實體程式化單元中讀取屬於第一邏輯存取位址的讀取資料串與對應第一邏輯存取位址的識別資訊,並且判斷從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊是否為上述識別值。倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊為上述識別值時,記憶體管理電路透過主機介面將對應此態樣的預設資料傳送給主機系統。倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊非為上述識別值時,記憶體管理電路透過主機介面將讀取資料串傳送給主機系統。
在一範例實施例中,上述的記憶體管理電路判斷可複寫式非揮發性記憶體模組是否已儲存屬於第一邏輯程式化單元的第二邏輯存取位址的有效資料串。倘若可複寫式非揮發性記憶體模組已儲存屬於第二邏輯存取位址的有效資料串時,記憶體管理電路將對應第二邏輯存取位址的識別資訊設定為預設值,將有效資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。倘若可複寫式非揮發性記憶體模組未儲存有屬於第二邏輯存取位址的有效資料串時,記憶體管理電路將對應第二邏輯存取位址的識別資訊設定為對應態樣的識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的記憶體管理電路透過主機介面從主機系統接收屬於第一邏輯程式化單元的第二邏輯存取位址的第二寫入資料串,並且判斷第二寫入資料串是否屬於上述態樣。倘若第二寫入資料串不屬於上述態樣時,記憶體管理電路將對應第二邏輯存取位址的識別資訊設定為預設值,將第二寫入資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。倘若第二寫入資料串屬於上述態樣時,記憶體管理電路將對應第二邏輯存取位址的識別資訊設定為對應上述態樣的識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第二寫入資料串不會被程式化至第一實體程式化單元中。
在一範例實施例中,上述的記憶體管理電路使用一程式化指令將第一寫入資料串、第二寫入資料串、對應第一邏輯存取位址的識別資訊、對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元。
在一範例實施例中,上述的記憶體管理電路判斷第一寫入資料串的每個資料位元是否為0,並且倘若第一寫入資料串的每個資料位元皆為0時,記憶體管理電路判斷第一寫入資料串屬於上述態樣。
本發明一範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,並且資料位元區包括多個實體存取位址。記憶體控制器,耦接至連接器與可複寫式非揮發性記憶體模組,並且配置多個邏輯程式化單元以映射至少部分的實體程式化單元,其中每一邏輯程式化單元具有多個邏輯存取位址。在此,記憶體控制器從主機系統接收第一寫入資料串,其中第一寫入資料串配置於第一邏輯存取位址且第一邏輯存取位址屬於第一邏輯程式化單元。此外,記憶體控制器選擇第一實體程式化單元,並且判斷第一寫入資料串是否屬於一種態樣。倘若第一寫入資料串不屬於此態樣時,記憶體控制器將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的第一實體存取位址,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域。倘若第一寫入資料串屬於此態樣時,記憶體控制器將對應第一邏輯存取位址的識別資訊設定為對應此態樣的識別值,並且將對應第一邏輯存取位址的識別資訊儲存至預定區域,其中第一寫入資料串不會被程式化至第一實體程式化單元中。再者,記憶體控制器更用以將第一邏輯程式化單元映射至第一實體程式化單元。
在一範例實施例中,上述的預定區域為第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的記憶體控制器從主機系統接收指示讀取儲存在第一邏輯存取位址中的資料的讀取指令,從第一實體程式化單元中讀取屬於第一邏輯存取位址的讀取資料串與對應第一邏輯存取位址的識別資訊,並且判斷從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊是否為上述識別值。倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊為上述識別值時,記憶體控制器將對應此態樣的預設資料傳送給主機系統。倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊非為上述識別值時,記憶體控制器將讀取資料串傳送給主機系統。
在一範例實施例中,上述的記憶體控制器判斷可複寫式非揮發性記憶體模組是否已儲存屬於第一邏輯程式化單元的第二邏輯存取位址的有效資料串。倘若可複寫式非揮發性記憶體模組已儲存屬於第二邏輯存取位址的有效資料串時,記憶體控制器將對應第二邏輯存取位址的識別資訊設定為預設值,將有效資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。倘若可複寫式非揮發性記憶體模組未儲存有屬於第二邏輯存取位址的有效資料串時,記憶體控制器將對應第二邏輯存取位址的識別資訊設定為上述識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。
在一範例實施例中,上述的記憶體控制器從主機系統接收屬於第一邏輯程式化單元的第二邏輯存取位址的第二寫入資料串,並且判斷第二寫入資料串是否屬於上述態樣。倘若第二寫入資料串不屬於上述態樣時,記憶體控制器將對應第二邏輯存取位址的識別資訊設定為預設值,將第二寫入資料串程式化至第一實體程式化單元之資料位元區的第二實體存取位址,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。倘若第二寫入資料串屬於上述態樣時,記憶體控制器將對應第二邏輯存取位址的識別資訊設定為對應上述態樣的識別值,並且將對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第二寫入資料串不會被程式化至第一實體程式化單元中。
在一範例實施例中,上述的記憶體控制器使用一程式化指令將第一寫入資料串、第二寫入資料串、對應第一邏輯存取位址的識別資訊、對應第二邏輯存取位址的識別資訊程式化至第一實體程式化單元。
在一範例實施例中,上述的記憶體控制器判斷第一寫入資料串的每個資料位元是否為0,並且倘若第一寫入資料串的每個資料位元皆為0時,記憶體控制器判斷第一寫入資料串屬於上述態樣。
本發明一範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,並且資料位元區包括多個實體存取位址。記憶體控制器,耦接至連接器與可複寫式非揮發性記憶體模組,並且配置多個邏輯程式化單元以映射部分的實體程式化單元,其中每一邏輯程式化單元具有多個邏輯存取位址。在此,記憶體控制器從主機系統接收第一寫入資料串,其中第一寫入資料串屬於第一邏輯存取位址且第一邏輯存取位址屬於第一邏輯程式化單元。此外,記憶體控制器選擇第一實體程式化單元,並且判斷第一寫入資料串是否屬於多個態樣的其中一個態樣。倘若第一寫入資料串不屬於任一態樣時,記憶體控制器將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的第一實體存取位址,並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。倘若第一寫入資料串屬於其中一個態樣時,記憶體控制器將對應第一邏輯存取位址的識別資訊設定為對應此態樣的識別值,並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第一寫入資料串不會被程式化至第一實體程式化單元中。此外,記憶體控制器將第一邏輯程式化單元映射至第一實體程式化單元。
在一範例實施例中,上述的記憶體控制器從主機系統接收指示讀取儲存在第一邏輯存取位址中的資料的讀取指令,從第一實體程式化單元中讀取屬於第一邏輯存取位址的讀取資料串與對應第一邏輯存取位址的識別資訊,並且判斷從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊是否為對應上述多個態樣的其中一個態樣的識別值。倘若從第一實體程式化單元中所讀取之對應該第一邏輯存取位址的識別資訊為對應其中一個態樣的識別值時,記憶體控制器將對應此態樣的預設資料傳送給主機系統。倘若從第一實體程式化單元中所讀取之對應第一邏輯存取位址的識別資訊非為對應任一個態樣的識別值時,記憶體控制器將讀取資料串傳送給主機系統。
本發明一範例實施例提出一種資料處理方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一實體程式化單元包括資料位元區與冗餘位元區,資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射至少部分的實體程式化單元,並且每一邏輯程式化單元具有多個邏輯存取位址。本資料處理方法包括從主機系統接收一讀取指令,其中此讀取指令指示讀取儲存在第一邏輯存取位址中的資料。本資料處理方法還包括從預定區域中讀取對應第一邏輯存取位址的識別資訊;並且判斷所讀取的識別資訊是否為識別值。本資料處理方法也包括,倘若所讀取的識別資訊為識別值時,將預設資料傳送給主機系統。本資料處理方法更,倘若所讀取的識別資訊非為識別值時,將從映射第一邏輯存取位址的一實體存取位址中所讀取的資料串傳送給主機系統,其中上述識別值之位元數小於預設資料的位元數。
基於上述,本發明一範例實施例所提出的資料處理方法、記憶體控制器以及記憶體儲存裝置,是在冗餘位元區中記錄對應的識別資訊,由此避免無意義的寫入運作並且提升寫入資料的速度。此外,本發明一範例實施例所提出的資料處理方法、記憶體控制器以及記憶體儲存裝置,能夠藉由識別冗餘位元區中的識別資訊,將對應的特定資料快速地傳送給主機,由此提升讀取資料的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B的滑鼠1202、鍵盤1204、顯示器1206與印表機1252。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1256、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接器102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced TechnologyAttach ment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更詳細來說,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。在本範例實施例中,每一個實體程式化單元的資料位元區中會包含2個實體存取位址,且一個實體存取位址的大小為512千位元組(kilobyte,KB)。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。例如,實體抹除單元為實體區塊,並且實體程式化單元為實體頁面。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252、電源管理電路254以及錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4與圖5是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖4,記憶體控制器104會將可複寫式非揮發性記憶體模組的實體抹除單元304(0)~304(R)邏輯地分組為資料區402、閒置區404、系統區406與取代區408。
資料區402與閒置區404的實體抹除單元是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已儲存資料的實體抹除單元,而閒置區404的實體抹除單元是用以替換資料區402的實體抹除單元。因此,閒置區404的實體抹除單元為空或可使用的實體抹除單元,即無記錄資料或標記為已沒用的無效資料。也就是說,在閒置區404中的實體抹除單元已被執行抹除運作,或者當閒置區404中的實體抹除單元被提取用於儲存資料之前所提取之實體抹除單元會被執行抹除運作。因此,閒置區404的實體抹除單元為可被使用的實體抹除單元。
邏輯上屬於系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
邏輯上屬於取代區408中的實體抹除單元是替代實體抹除單元。例如,可複寫式非揮發性記憶體模組於出廠時會預留4%的實體抹除單元作為更換使用。也就是說,當資料區402、閒置區404與系統區406中的實體抹除單元損毀時,預留於取代區408中的實體抹除單元是用以取代損壞的實體抹除單元(即,壞實體抹除單元(bad block))。因此,倘若取代區408中仍存有正常之實體抹除單元且發生實體抹除單元損毀時,記憶體控制器104會從取代區408中提取正常的實體抹除單元來更換損毀的實體抹除單元。倘若取代區408中無正常之實體抹除單元且發生實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再第一寫入資料串。
特別是,資料區402、閒置區404、系統區406與取代區408之實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區402、閒置區404、系統區406與取代區408的分組關係會動態地變動。例如,當閒置區中的實體抹除單元損壞而被取代區的實體抹除單元取代時,則原本取代區的實體抹除單元會被關聯至閒置區。
請參照圖5,如上所述,資料區402與閒置區404的實體抹除單元是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體控制器104會配置邏輯抹除單元LBA(0)~LBA(H)以映射資料區402的實體抹除單元,其中每一邏輯抹除單元具有多個邏輯程式化單元並且此些邏輯程式化單元是依序地映射對應之實體抹除單元的實體程式化單元。例如,記憶體控制器104(或記憶體管理電路202)會維護邏輯抹除單元-實體抹除單元映射表(logical block-physical block mapping table)以記錄邏輯抹除單元LBA(0)~LBA(H)與資料區402的實體抹除單元的映射關係。
圖6是根據一範例實施例所繪示的邏輯抹除單元與實體抹除單元的映射示意圖。
請參照圖6,一個邏輯抹除單元會包含多個邏輯程式化單元,且這些邏輯程式化單元會被映射至資料區402中實體抹除單元的實體程式化單元。舉例來說,邏輯抹除單元LBA(0)的邏輯程式化單元502(0)~502(A)是映射至實體抹除單元304(0)的實體程式化單元522(0)~522(A)。
此外,由於主機系統1000是以邏輯存取位址(例如,扇區(Sector))為單位來存取資料,當主機系統1000存取資料時記憶體管理電路202會將對應記憶體儲存裝置100的邏輯存取位址轉換成對應的邏輯程式化單元。例如,當主機系統1000欲存取某一邏輯存取位址時,記憶體管理電路202會將主機系統1000所存取的邏輯存取位址轉換為以對應的邏輯抹除單元與邏輯程式化單元所構成的多維位址,並且透過邏輯抹除單元-實體抹除單元映射表於對應的實體程式化單元中存取資料。
圖7是根據一範例實施例所繪示的邏輯程式化單元與實體程式化單元的映射示意圖。每個實體程式化單元與邏輯程式化單元的映射方式是類似的,在此以實體程式化單元522(0)與邏輯程式化單元502(0)為例進行說明,其他實體程式化單元與邏輯程式化單元的映射可以此類推。
請參照圖7,實體程式化單元522(0)包括資料位元區562與冗餘位元區582。資料位元區562包括實體存取位址560(0)與560(1),邏輯程式化單元502(0)包括邏輯存取位址540(0)與540(1),並且邏輯存取位址540(0)與540(1)是分別映射至實體程式化單元522(0)的實體存取位址560(0)與560(1)。
冗餘位元區582包括控制資訊區582a與錯誤校正碼區582b。控制資訊區582a用以儲存關於此實體程式化單元的控制資訊,例如,此實體程式化單元被映射至那個邏輯程式化單元。錯誤校正碼區582b用以儲存對應欲儲存至實體程式化單元522(0)之資料的錯誤校正碼。當記憶體控制器104(或記憶體管理電路202)欲將屬於邏輯存取位址540(0)與540(1)的資料寫入至(或程式化至)實體存取位址560(0)與560(1)時,對應之控制資訊與錯誤校正碼會一併被寫入至控制資訊區582a與錯誤校正碼區582b。也就是說,記憶體控制器104(或記憶體管理電路202)會對可複寫式非揮發性記憶體模組106下達一個程式化指令,以將屬於邏輯存取位址540(0)與540(1)的資料、對應之控制資訊與錯誤校正碼一併寫入至實體程式化單元522(0)中。
在本範例實施例中,記憶體管理電路202會根據欲儲存之資料的態樣來以一般寫入程序或特殊寫入程序來處理此資料。具體來說,當欲將屬於某一個邏輯存取位址的資料(亦稱為寫入資料串)寫入至實體程式化單元時,記憶體管理電路202會判斷此寫入資料串是否屬於一特定態樣。並且,當此寫入資料串屬於此特定態樣時,記憶體管理電路202會以特殊寫入程序來處理此寫入資料串,並且當此寫入資料串非屬於此特定態樣時,記憶體管理電路202會以一般寫入程序來程式化此寫入資料串。此外,在將屬於一個邏輯程式化單元的資料寫入至一個實體程式化單元時,記憶體控制器104(或記憶體管理電路202)會一併將對應此邏輯程式化單元之邏輯存取位址的識別資訊寫入預設區域。例如,記憶體控制器104(或記憶體管理電路202)會將識別資訊寫入至實體程式化單元的冗餘位元區。之後,記憶體控制器104(或記憶體管理電路202)會藉由此識別資訊來識別此實體程式化單元是以一般寫入程序或特殊寫入程序來被程式化。例如,如圖7所示,當將屬於邏輯存取位址540(0)與540(1)寫入至實體存取位址560(0)與560(1)時,對應邏輯存取位址540(0)的識別資訊以及對應邏輯存取位址540(1)會被一併寫入至冗餘位元區582的控制資訊區582a。必須瞭解的是,儘管在本範例實施中,是以實體程式化單元的冗餘位元區作為預設區域來儲存識別資訊,但本發明不限於此。例如,額外的儲存單元可配置在記憶體儲存裝置100來用於儲存識別資訊,或者此識別資訊可被記錄在映射表中。
在本範例實施例中,當儲存至此邏輯存取位址中的資料非屬於此特定態樣時對應此邏輯存取位址的識別資訊會被設定為預設值,反之,當儲存至此邏輯存取位址中的資料屬於此特定態樣時,則對應此邏輯存取位址的識別資訊會被設定為對應此特定態樣的識別值。在此,設定識別資訊的識別值之位元數是小於該特定態樣之預設資料的位元數。例如,在本範例實施例中,當儲存至此邏輯存取位址中的資料的每個資料位元皆為’0’時,其會被識別為屬於此將特定態樣並且對應此邏輯存取位址的識別資訊會被設定為’1’,反之,當儲存至此邏輯存取位址中的資料的其中一個資料位元非為’0’時,其會被識別為非屬於此特定態樣並且對應此邏輯存取位址的識別資訊會被設定為’0’。
必須瞭解的是,將每個資料位元皆為’0’的資料識別為屬於此特定態樣僅為一個範圍,並非限制本發明。例如,在本發明另一範例實施例中,亦可將每個資料位元皆為’0×FF’的資料識別為屬於此特定態樣。
特別是,在本範例實施例中,當欲寫入至一個邏輯存取位址的資料屬於此特定態樣時,記憶體控制器104(或記憶體管理電路202)會將對應此邏輯存取位址的識別資訊寫入至實體程式化單元之冗餘位元區,而不會將屬於此邏輯存取位址的資料寫入至此實體程式化單元之資料位元區的實體存取位址中。
圖8是根據本發明一範例實施例所繪示之以一般寫入程序將資料程式化至實體程式化單元的一範例。
請參照圖8,假設記憶體控制器104(或記憶體管理電路202)從主機系統1000接收到指示將寫入資料串(以下稱為第一寫入資料串DS1)寫入至邏輯程式化單元502(0)之邏輯存取位址540(0)且將寫入資料串(以下稱為第二寫入資料串DS2)寫入至邏輯程式化單元502(0)之邏輯存取位址540(1)的寫入指令,其中第一寫入資料串DS1與第二寫入資料串DS2皆非屬於上述特定態樣。
當接收到寫入指令及其第一寫入資料串DS1與第二寫入資料串DS2時,記憶體控制器104(或記憶體管理電路202)會識別判斷第一寫入資料串DS1非屬於特定態樣並且將對應邏輯存取位址540(0)的識別資訊Z1設定為預設值。此外,記憶體控制器104(或記憶體管理電路202)會識別判斷第二寫入資料串DS2非屬於特定態樣並且將對應邏輯存取位址540(1)的識別資訊Z2設定為預設值。
之後,記憶體控制器104會選擇一個空的實體程式化單元(例如,實體程式化單元522(0))並且對可複寫式非揮發性記憶體模組106下達程式化指令,以將第一寫入資料串DS1與第二寫入資料串DS2寫入至實體程式化單元522(0)。例如,錯誤校正與檢查電路256會根據第一寫入資料串DS1與第二寫入資料串DS2產生錯誤校正碼ECC1,並且記憶體管理電路202會下達程式化指令,以將第一寫入資料串DS1寫入至實體存取位址560(0),將第二寫入資料串DS2寫入至實體存取位址560(1)中,將對應邏輯存取位址540(0)與540(1)的識別資訊Z1與Z2寫入至冗餘位元區582的控制資訊區582a並且將錯誤校正碼ECC1寫入至冗餘位元區582的錯誤校正碼區582b。
最後,記憶體控制器104(或記憶體管理電路202)會將邏輯程式化單元502(0)映射至實體程式化單元522(0)。
在圖8所述的範例中,當主機系統1000下達欲讀取儲存於邏輯存取位址540(0)之資料的讀取指令時,記憶體控制器104(或記憶體管理電路202)會從實體程式化單元522(0)中讀取資料並且根據對應邏輯存取位址540(0)的識別資訊Z1識別實體存取位址560(0)中的資料是以一般寫入程序被寫入並且將從實體存取位址560(0)中讀取到的資料(亦稱為讀取資料串,即,資料串DS1)傳送給主機系統1000。值得一提的是,當從實體程式化單元522(0)中讀取資料時,錯誤校正與檢查電路256會根據錯誤校正碼ECC1對所讀取之資料進行錯誤校正。
類似地,主機系統1000欲讀取儲存於邏輯存取位址540(1)的資料時,記憶體控制器104(或記憶體管理電路202)會根據對應邏輯存取位址540(1)的識別資訊Z2識別實體存取位址560(1)中的資料是以一般寫入程序被寫入並且將從實體存取位址560(1)中讀取到的資料(即,資料串DS2)傳送給主機系統1000。
圖9是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的一範例。
請參照圖9,假設記憶體控制器104(或記憶體管理電路202)從主機系統1000接收到指示將第一寫入資料串DS1寫入至邏輯程式化單元502(0)之邏輯存取位址540(0)且將第二寫入資料串DS2)入至邏輯程式化單元502(0)之邏輯存取位址540(1)的寫入指令,其中第一寫入資料串DS1屬於上述特定態樣並且第二寫入資料串DS2非屬於上述特定態樣。
當接收到寫入指令及其第一寫入資料串DS1與第二寫入資料串DS2時,記憶體控制器104(或記憶體管理電路202)會識別判斷第一寫入資料串DS1屬於特定態樣並且將對應邏輯存取位址540(0)的識別資訊Z1設定為對應此特殊態樣的識別值。此外,記憶體控制器104(或記憶體管理電路202)會識別判斷第二寫入資料串DS2非屬於特定態樣並且將對應邏輯存取位址540(1)的識別資訊Z2設定為預設值。
之後,記憶體控制器104會選擇一個空的實體程式化單元(例如,實體程式化單元522(0))並且對可複寫式非揮發性記憶體模組106下達程式化指令,以將第二寫入資料串DS2寫入至實體程式化單元522(0)而不會將第一寫入資料串DS1寫入至實體程式化單元522(0)。
例如,錯誤校正與檢查電路256會根據第二寫入資料串DS2產生錯誤校正碼ECC2。或者,在另一範例實施例中,錯誤校正與檢查電路256會根據第二寫入資料串DS2及實體存取位址560(0)之原位元狀態(例如,每個位元皆為0XFF)來產生錯誤校正碼ECC2。並且,記憶體管理電路202會下達程式化指令,以將第二寫入資料串DS2寫入至實體存取位址560(1)中,將對應邏輯存取位址540(0)與540(1)的識別資訊Z1與Z2寫入至冗餘位元區582的控制資訊區582a並且將錯誤校正碼ECC2寫入至冗餘位元區582的錯誤校正碼區582b,其中實體存取位址560(0)不會被寫入第一寫入資料串DS1。
最後,記憶體控制器104(或記憶體管理電路202)會將邏輯程式化單元502(0)映射至實體程式化單元522(0)。
在圖9所述的範例中,當主機系統1000下達欲讀取儲存於邏輯存取位址540(0)之資料的讀取指令時,記憶體控制器104(或記憶體管理電路202)會從實體程式化單元522(0)中讀取資料並且根據對應邏輯存取位址540(0)的識別資訊Z1識別實體存取位址560(0)中的資料是以特殊寫入程序被寫入並且直接將對應此特殊態樣的預設資料(例如,皆為’0’的資料串)傳送給主機系統。
倘若主機系統1000欲讀取儲存於邏輯存取位址540(1)的資料時,記憶體控制器104(或記憶體管理電路202)會根據對應邏輯存取位址540(1)的識別資訊Z2識別實體存取位址560(1)中的資料是以一般寫入程序被寫入並且將從實體存取位址560(1)中讀取到的資料(即,資料串DS2)傳送給主機系統1000。
圖10是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的另一範例。
請參照圖10,假設記憶體控制器104(或記憶體管理電路202)從主機系統1000接收到指示將第一寫入資料串DS1寫入至邏輯程式化單元502(0)之邏輯存取位址540(0),第一寫入資料串DS1屬於上述特定態樣,並且屬於邏輯存取位址540(1)的有效資料串VDS已被儲存於其他實體程式化單元中且非屬於上述特殊態樣。
當接收到寫入指令及其第一寫入資料串DS1時,記憶體控制器104(或記憶體管理電路202)會識別判斷第一寫入資料串DS1屬於特定態樣並且將對應邏輯存取位址540(0)的識別資訊Z1設定為對應此特殊態樣的識別值。此外,記憶體控制器104(或記憶體管理電路202)會從儲存屬於邏輯存取位址540(1)的有效資料串VDS的實體程式化單元中讀取屬於邏輯存取位址540(1)的有效資料串VDS並且判斷有效資料串VDS非屬於特定態樣並且將對應邏輯存取位址540(1)的識別資訊Z2設定為預設值。
之後,記憶體控制器104會選擇一個空的實體程式化單元(例如,實體程式化單元522(0))並且對可複寫式非揮發性記憶體模組106下達程式化指令,以將有效資料串VDS寫入至實體程式化單元522(0)而不會將第一寫入資料串DS1寫入至實體程式化單元522(0)。例如,錯誤校正與檢查電路256會根據有效資料串VDS產生錯誤校正碼ECC3,並且記憶體管理電路202會下達程式化指令,以將有效資料串VDS寫入至實體存取位址560(1)中,將對應邏輯存取位址540(0)與540(1)的識別資訊Z1與Z2寫入至冗餘位元區582的控制資訊區582a並且將錯誤校正碼ECC3寫入至冗餘位元區582的錯誤校正碼區582b,其中實體存取位址560(0)不會被寫入第一寫入資料串DS1。
最後,記憶體控制器104(或記憶體管理電路202)會將邏輯程式化單元502(0)映射至實體程式化單元522(0)。
類似地,在圖10所述的範例中,當主機系統1000下達欲讀取儲存於邏輯存取位址540(0)之資料的讀取指令時,記憶體控制器104(或記憶體管理電路202)會直接將對應特殊態樣的預設資料(例如,皆為’0’的資料串)傳送給主機系統。倘若主機系統1000欲讀取儲存於邏輯存取位址540(1)的資料時,記憶體控制器104(或記憶體管理電路202)會將從實體存取位址560(1)中讀取到的資料(即,資料串VDS)傳送給主機系統1000。
圖11是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的另一範例。
請參照圖11,假設記憶體控制器104(或記憶體管理電路202)從主機系統1000接收到指示將第一寫入資料串DS1寫入至邏輯程式化單元502(0)之邏輯存取位址540(0),第一寫入資料串DS1非屬於上述特定態樣,並且可複寫式非揮發性記憶體模組106未儲存有屬於邏輯存取位址540(1)的資料。
當接收到寫入指令及其第一寫入資料串DS1時,記憶體控制器104(或記憶體管理電路202)會識別判斷第一寫入資料串DS1非屬於特定態樣並且將對應邏輯存取位址540(0)的識別資訊Z1設定為預設值。此外,由於可複寫式非揮發性記憶體模組106未儲存有屬於邏輯存取位址540(1)的資料,因此,記憶體控制器104(或記憶體管理電路202)會將對應邏輯存取位址540(1)的識別資訊Z2設定為對應特殊態樣的識別值。
之後,記憶體控制器104會選擇一個空的實體程式化單元(例如,實體程式化單元522(0))並且對可複寫式非揮發性記憶體模組106下達程式化指令,以將第一寫入資料串DS1寫入至實體程式化單元522(0)。例如,錯誤校正與檢查電路256會根據第一寫入資料串DS1產生錯誤校正碼ECC4,並且記憶體管理電路202會下達程式化指令,以將第一寫入資料串DS1寫入至實體存取位址560(0)中,將對應邏輯存取位址540(0)與540(1)的識別資訊Z1與Z2寫入至冗餘位元區582的控制資訊區582a並且將錯誤校正碼ECC4寫入至冗餘位元區582的錯誤校正碼區582b,其中實體存取位址560(1)不會被寫入填塞值。
最後,記憶體控制器104(或記憶體管理電路202)會將邏輯程式化單元502(0)映射至實體程式化單元522(0)。
類似地,在圖11所述的範例中,當主機系統1000下達欲讀取儲存於邏輯存取位址540(1)之資料的讀取指令時,記憶體控制器104(或記憶體管理電路202)會將從實體存取位址560(1)中讀取到的資料(即,資料串DS1)傳送給主機系統1000。倘若主機系統1000欲讀取儲存於邏輯存取位址540(1)的資料時,記憶體控制器104(或記憶體管理電路202)會將對應特殊態樣的預設資料(例如,皆為’0’的資料串)傳送給主機系統1000。
值得一提的是,儘管在本範例實施例中,記憶體控制器104(或記憶體管理電路202)是以資料串的每個資料位元是否為’0’,來將資料串區分為一般資料串或屬於某一種特定態樣的資料串。然而,在本發明另一範例實施例中,記憶體控制器104(或記憶體管理電路202)亦可根據多種不同的態樣來區分欲寫入的資料串,並且將其對應的邏輯存取位址的識別資訊設定為不同的識別值。例如,當資料串的每個資料位元皆為’0’時,將其對應之邏輯存取位址的識別資訊設定為’1’;當資料串的每個資料位元皆為’0×FF’時,將其對應之邏輯存取位址的識別資訊設定為’2’;當資料串的每個資料位元皆為’0×55’時,將其對應之邏輯存取位址的識別資訊設定為’3’;並且當資料串的每個資料位元皆為’0×AA’時,將其對應之邏輯存取位址的識別資訊設定為’4’。基此,當主機系統1000欲儲存至邏輯存取位址的資料串屬於多種態樣的其中之一時,則記憶體控制器104(或記憶體管理電路202)會將對應此邏輯存取位址的識別資訊設定為對應的識別值且將此識別值寫入至對應之實體程式化單元的冗餘位元區中,而不將此資料串實際地寫入至實體存取位址中,由此縮短執行寫入指令的時間。此外,當對某一邏輯存取位址執行讀取指令時,若此邏輯存取位址的識別資訊為此些識別值的其中之一時,記憶體控制器104(或記憶體管理電路202)會將對應之態樣的預設資料傳送給主機系統1000,以縮短執行讀取指令的時間。
圖12A與圖12B是根據一範例實施例所繪示之資料處理方法的流程圖,其中圖12A繪示執行寫入指令的資料處理步驟並且圖12B繪示執行讀取指令的資料處理步驟。
請參照圖12A,在步驟S1201中,記憶體控制器104(或記憶體管理電路202)從主機系統1000中接收指示寫入屬於某一邏輯程式化單元(以下稱為第一邏輯程式化單元)的某一邏輯存取位址(以下稱為第一邏輯存取位址)的寫入資料串(以下稱為第一寫入資料串)的寫入指令。
之後,在步驟S1203中,記憶體控制器104(或記憶體管理電路202)會從可複寫式非揮發性記憶體模組106的實體程式化單元之中選擇一個空的實體程式化單元(以下稱為第一實體程式化單元)。並且,在步驟S1205中記憶體控制器104(或記憶體管理電路202)判斷第一寫入資料串是否屬於上述特定態樣。
倘若第一寫入資料串不屬於此特定態樣時,在步驟S1207中,記憶體控制器104(或記憶體管理電路202)會將對應第一邏輯存取位址的識別資訊設定為預設值,將第一寫入資料串程式化至第一實體程式化單元之資料位元區的實體存取位址(以下稱為第一實體存取位址),並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區。
倘若第一寫入資料串屬於此特定態樣時,在步驟S1209中,記憶體控制器104(或記憶體管理電路202)會將對應第一邏輯存取位址的識別資訊設定為對應此特定態樣的識別值,並且將對應第一邏輯存取位址的識別資訊程式化至第一實體程式化單元的冗餘位元區,其中第一寫入資料串不會被程式化至第一實體程式化單元中。
之後,在步驟S1211中,記憶體控制器104(或記憶體管理電路202)會將第一邏輯程式化單元映射至該第一實體程式化單元。
請參照圖12B,在步驟S1301中,記憶體控制器104(或記憶體管理電路202)從主機系統1000中接收指示讀取儲存於某個邏輯存取位址(以下稱為第一邏輯存取位址)中的資料的讀取指令。
在步驟S1303中,記憶體控制器104(或記憶體管理電路202)根據映射表從映射第一邏輯存取位址所屬之邏輯程式化單元(以下稱為第二邏輯程式化單元)的實體程式化單元(以下稱為第一實體程式化單元)中讀取資料串。
之後,在步驟S1305中,記憶體控制器104(或記憶體管理電路202)會判斷對應第一邏輯存取位址的識別資訊是否為對應此特殊態樣的識別值。
倘若對應第一邏輯存取位址的識別資訊非為對應此特殊態樣的識別值,在步驟S1307中,記憶體控制器104(或記憶體管理電路202)會將從對應實體存取位址(以下稱為第一實體存取位址)中所讀取之資料串傳送給主機系統1000。
倘若對應第一邏輯存取位址的識別資訊為對應此特殊態樣的識別值,在步驟S1309中,記憶體控制器104(或記憶體管理電路202)會將對應此特定態樣的預設資料傳送給主機系統1000。
綜上所述,本發明範例實施例所提出的記憶體儲存裝置、記憶體控制器及其所使用之資料處理方法在執行寫入指令時藉由在實體程式化單元的冗餘位元區中記錄識別資訊來識別所儲存之資料屬於特定態樣,而不將資料實際地寫入至實體程式化單元中,由此大幅縮短程式化資料至實體程式化單元所需的時間。此外,本發明範例實施例所提出的記憶體儲存裝置、記憶體控制器及其所使用之資料處理方法在執行讀取指令時,會根據實體程式化單元的冗餘位元區中的識別資訊來識別屬於特定態樣的資料並且快速地將預設資料傳送給主機系統,由此縮短執行讀取指令的時間。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1252...印表機
1256...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...可複寫式非揮發性記憶體模組
304(0)~304(R)...實體抹除單元
202...記憶體管理電路
206...記憶體介面
254...電源管理電路
252...緩衝記憶體
256...錯誤檢查與校正電路
402...資料區
404...閒置區
406...系統區
408...取代區
LBA(0)~LBA(H)...邏輯抹除單元
502(0)~502(A)...邏輯程式化單元
522(0)~522(A)...實體程式化單元
540(0)~540(1)...邏輯存取位址
562...資料位元區
582...冗餘位元區
560(0)~560(1)...實體存取位址
DS1...第一寫入資料串
DS2...第二寫入資料串
VDS...有效資料串
Z1、Z2...識別資訊
S1201、S1203、S1205、S1207、S1209、S1211、S1301、S1303、S1305、1307、1309...處理資料的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4與圖5是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖6是根據一範例實施例所繪示的邏輯抹除單元與實體抹除單元的映射示意圖。
圖7是根據一範例實施例所繪示的邏輯程式化單元與實體程式化單元的映射示意圖。
圖8是根據本發明一範例實施例所繪示之以一般寫入程序將資料程式化至實體程式化單元的一範例。
圖9是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的一範例。
圖10是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的另一範例。
圖11是根據本發明一範例實施例所繪示之以特殊寫入程序將資料程式化至實體程式化單元的另一範例。
圖12A與圖12B是根據一範例實施例所繪示之資料處理方法的流程圖。
S1201、S1203、S1205、S1207、1209、1211...處理資料的步驟
Claims (26)
- 一種資料處理方法,用於可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一該些實體程式化單元包括資料位元區與冗餘位元區,該資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射至少部分的該些實體程式化單元,並且每一該些邏輯程式化單元具有多個邏輯存取位址,該資料處理方法包括:從主機系統接收第一寫入資料串,其中該第一寫入資料串配置於該些邏輯存取位址之中的第一邏輯存取位址且該第一邏輯存取位址屬於該些邏輯程式化單元之中的第一邏輯程式化單元;從該些實體程式化單元之中選擇第一實體程式化單元;判斷該第一寫入資料串是否屬於一態樣;倘若該第一寫入資料串不屬於該態樣時,將對應該第一邏輯存取位址的識別資訊設定為一預設值,將該第一寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第一實體存取位址,並且將對應該第一邏輯存取位址的識別資訊儲存至預定區域;倘若該第一寫入資料串屬於該態樣,將對應該第一邏輯存取位址的識別資訊設定為對應該態樣的一識別值,並且將對應該第一邏輯存取位址的識別資訊儲存至該預定區域,其中該第一寫入資料串不會被程式化至該第一實體程式化單元中;以及將該第一邏輯程式化單元映射至該第一實體程式化單元。
- 如申請專利範圍第1項所述之資料處理方法,其中將對應該第一邏輯存取位址的識別資訊儲存至該預定區域的步驟包括:將對應該第一邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第1項所述之資料處理方法,更包括:從該主機系統接收讀取指令,其中該讀取指令指示讀取儲存在該第一邏輯存取位址中的資料;從該第一實體程式化單元中讀取屬於該第一邏輯存取位址的讀取資料串與對應該第一邏輯存取位址的識別資訊;判斷從該第一實體程式化單元中所讀取之對應該第一邏輯存取位址的識別資訊是否為該識別值;倘若從該第一實體程式化單元中所讀取之對應該第一邏輯存取位址的識別資訊為該識別值時,將對應該態樣的預設資料傳送給該主機系統;以及倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊非為該識別值時,將該讀取資料串傳送給該主機系統。
- 如申請專利範圍第2項所述之資料處理方法,更包括:判斷該可複寫式非揮發性記憶體模組是否已儲存屬於該第一邏輯程式化單元的該些邏輯存取位址之中的第二邏輯存取位址的有效資料串;倘若該可複寫式非揮發性記憶體模組已儲存屬於該第二邏輯存取位址的有效資料串時,將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該有效資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區;以及倘若該可複寫式非揮發性記憶體模組未儲存有屬於該第二邏輯存取位址的有效資料串時,將對應該第二邏輯存取位址的識別資訊設定為該識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第2項所述之資料處理方法,更包括:從該主機系統接收一第二寫入資料串,其中該第二寫入資料串屬於該第一邏輯程式化單元的些邏輯存取位址之中的一第二邏輯存取位址;判斷該第二寫入資料串是否屬於該態樣;倘若該第二寫入資料串不屬於該態樣時,將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該第二寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區;以及倘若該第二寫入資料串屬於該態樣時,將對應該第二邏輯存取位址的識別資訊設定為對應該態樣的識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中該第二寫入資料串不會被程式化至該第一實體程式化單元中。
- 如申請專利範圍第5項所述之資料處理方法,其中該第一寫入資料串、該第二寫入資料串、對應該第一邏輯存取位址的識別資訊、對應該第二邏輯存取位址的識別資訊是透過一程式化指令被程式化至該第一實體程式化單元。
- 如申請專利範圍第1項所述之資料處理方法,其中判斷該第一寫入資料串是否屬於該態樣的步驟包括:判斷該第一寫入資料串的每個資料位元是否為0;以及倘若該第一寫入資料串的每個資料位元皆為0時,判斷該第一寫入資料串屬於該態樣。
- 一種資料處理方法,用於可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一該些實體程式化單元包括資料位元區與冗餘位元區,該資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射部分的該些實體程式化單元,並且每一該些邏輯程式化單元具有多個邏輯存取位址,該資料處理方法包括:從主機系統接收第一寫入資料串,其中該第一寫入資料串屬於該些邏輯存取位址之中的第一邏輯存取位址且該第一邏輯存取位址屬於該些邏輯程式化單元之中的第一邏輯程式化單元;從該些實體程式化單元之中選擇一第一實體程式化單元;判斷該第一寫入資料串是否屬於多個態樣的其中一個態樣;倘若該第一寫入資料串不屬於該多個態樣的任一時,將對應該第一邏輯存取位址的識別資訊設定為一預設值,將該第一寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第一實體存取位址,並且將對應該第一邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區;倘若該第一寫入資料串屬於該多個態樣的其中一個態樣時,將對應該第一邏輯存取位址的識別資訊設定為對應該其中一個態樣的一識別值,並且將對應該第一邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中該第一寫入資料串不會被程式化至該第一實體程式化單元中;以及將該第一邏輯程式化單元映射至該第一實體程式化單元。
- 如申請專利範圍第8項所述之資料處理方法,更包括:從該主機系統接收一讀取指令,其中該讀取指令指示讀取儲存在該第一邏輯存取位址中的資料;從該第一實體程式化單元中讀取屬於該第一邏輯存取位址的一讀取資料串與對應該第一邏輯存取位址的識別資訊;判斷從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊是否為對應該多個態樣的其中一個態樣的識別值;倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊為對應該多個態樣的其中一個態樣的識別值時,將對應該其中一個態樣的預設資料傳送給該主機系統;以及倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊非為對應該多個態樣的其中一個態樣的識別值時,將該讀取資料串傳送給該主機系統。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且配置多個邏輯程式化單元以映射至少部分的該些實體程式化單元,其中每一該些邏輯程式化單元具有多個邏輯存取位址,其中該記憶體管理電路從一主機系統接收一第一寫入資料串,其中該第一寫入資料串配置於該些邏輯存取位址之中的一第一邏輯存取位址且該第一邏輯存取位址屬於該些邏輯程式化單元之中的一第一邏輯程式化單元,其中該記憶體管理電路從該些實體程式化單元之中選擇一第一實體程式化單元,並且判斷該第一寫入資料串是否屬於一態樣,其中倘若該第一寫入資料串不屬於該態樣時,該記憶體管理電路將對應該第一邏輯存取位址的識別資訊設定為一預設值,將該第一寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第一實體存取位址,並且將對應該第一邏輯存取位址的識別資訊儲存至預定區域,其中倘若該第一寫入資料串屬於該態樣時,該記憶體管理電路將對應該第一邏輯存取位址的識別資訊設定為對應該態樣的一識別值,並且將對應該第一邏輯存取位址的識別資訊儲存至該預定區域,其中該第一寫入資料串不會被程式化至該第一實體程式化單元中,其中該記憶體管理電路更用以將該第一邏輯程式化單元映射至該第一實體程式化單元。
- 如申請專利範圍第10項所述之記憶體控制器,其中該預定區域為該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路透過該主機介面從該主機系統接收一讀取指令,其中該讀取指令指示讀取儲存在該第一邏輯存取位址中的資料,其中該記憶體管理電路透過該記憶體介面從該第一實體程式化單元中讀取屬於該第一邏輯存取位址的一讀取資料串與對應該第一邏輯存取位址的識別資訊,並且判斷從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊是否為該識別值,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊為該識別值時,該記憶體管理電路透過該主機介面將對應該態樣的預設資料傳送給該主機系統,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊非為該識別值時,該記憶體管理電路透過該主機介面將該讀取資料串傳送給該主機系統。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路判斷該可複寫式非揮發性記憶體模組是否已儲存屬於該第一邏輯程式化單元的該些邏輯存取位址之中的一第二邏輯存取位址的有效資料串,其中倘若該可複寫式非揮發性記憶體模組已儲存屬於該第二邏輯存取位址的有效資料串時,該記憶體管理電路將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該有效資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中倘若該可複寫式非揮發性記憶體模組未儲存有屬於該第二邏輯存取位址的有效資料串時,該記憶體管理電路將對應該第二邏輯存取位址的識別資訊設定為對應該態樣的識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路透過該主機介面從該主機系統接收一第二寫入資料串,其中該第二寫入資料串屬於該第一邏輯程式化單元的些邏輯存取位址之中的一第二邏輯存取位址,其中該記憶體管理電路判斷該第二寫入資料串是否屬於該態樣,其中倘若該第二寫入資料串不屬於該態樣時,該記憶體管理電路將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該第二寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中倘若該第二寫入資料串屬於該態樣時,該記憶體管理電路將對應該第二邏輯存取位址的識別資訊設定為對應該態樣的識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中該第二寫入資料串不會被程式化至該第一實體程式化單元中。
- 如申請專利範圍第14項所述之記憶體控制器,其中該記憶體管理電路使用一程式化指令將該第一寫入資料串、該第二寫入資料串、對應該第一邏輯存取位址的識別資訊、對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路判斷該第一寫入資料串的每個資料位元是否為0,其中倘若該第一寫入資料串的每個資料位元皆為0時,該記憶體管理電路判斷該第一寫入資料串屬於該態樣。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體程式化單元,每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並且配置多個邏輯程式化單元以映射至少部分的該些實體程式化單元,其中每一該些邏輯程式化單元具有多個邏輯存取位址,其中該記憶體控制器從一主機系統接收一第一寫入資料串,其中該第一寫入資料串配置於該些邏輯存取位址之中的一第一邏輯存取位址且該第一邏輯存取位址屬於該些邏輯程式化單元之中的一第一邏輯程式化單元,其中該記憶體控制器從該些實體程式化單元之中選擇一第一實體程式化單元,並且判斷該第一寫入資料串是否屬於一態樣,其中倘若該第一寫入資料串不屬於該態樣時,該記憶體控制器將對應該第一邏輯存取位址的識別資訊設定為一預設值,將該第一寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第一實體存取位址,並且將對應該第一邏輯存取位址的識別資訊儲存至預定區域,其中倘若該第一寫入資料串屬於該態樣時,該記憶體控制器將對應該第一邏輯存取位址的識別資訊設定為對應該態樣的一識別值,並且將對應該第一邏輯存取位址的識別資訊儲存至該預定區域,其中該第一寫入資料串不會被程式化至該第一實體程式化單元中,其中該記憶體控制器更用以將該第一邏輯程式化單元映射至該第一實體程式化單元。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該預定區域為該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器從該主機系統接收一讀取指令,其中該讀取指令指示讀取儲存在該第一邏輯存取位址中的資料,其中該記憶體控制器從該第一實體程式化單元中讀取屬於該第一邏輯存取位址的一讀取資料串與對應該第一邏輯存取位址的識別資訊,並且判斷從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊是否為該識別值,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊為該識別值時,該記憶體控制器將對應該態樣的預設資料傳送給該主機系統,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊非為該識別值時,該記憶體控制器將該讀取資料串傳送給該主機系統。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器判斷該可複寫式非揮發性記憶體模組是否已儲存屬於該第一邏輯程式化單元的該些邏輯存取位址之中的一第二邏輯存取位址的有效資料串,其中倘若該可複寫式非揮發性記憶體模組已儲存屬於該第二邏輯存取位址的有效資料串時,該記憶體控制器將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該有效資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中倘若該可複寫式非揮發性記憶體模組未儲存有屬於該第二邏輯存取位址的有效資料串時,該記憶體控制器將對應該第二邏輯存取位址的識別資訊設定為對應該態樣的識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器從該主機系統接收一第二寫入資料串,其中該第二寫入資料串屬於該第一邏輯程式化單元的些邏輯存取位址之中的一第二邏輯存取位址,其中該記憶體控制器判斷該第二寫入資料串是否屬於該態樣,其中倘若該第二寫入資料串不屬於該態樣時,該記憶體控制器將對應該第二邏輯存取位址的識別資訊設定為該預設值,將該第二寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第二實體存取位址,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中倘若該第二寫入資料串屬於該態樣時,該記憶體控制器將對應該第二邏輯存取位址的識別資訊設定為該識別值,並且將對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中該第二寫入資料串不會被程式化至該第一實體程式化單元中。
- 如申請專利範圍第21項所述之記憶體儲存裝置,其中該記憶體控制器使用一程式化指令將該第一寫入資料串、該第二寫入資料串、對應該第一邏輯存取位址的識別資訊、對應該第二邏輯存取位址的識別資訊程式化至該第一實體程式化單元。
- 如申請專利範圍第17項所述之記憶體儲存裝置,其中該記憶體控制器判斷該第一寫入資料串的每個資料位元是否為0,其中倘若該第一寫入資料串的每個資料位元皆為0時,該記憶體控制器判斷該第一寫入資料串屬於該態樣。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體程式化單元,每一該些實體程式化單元包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,並且配置多個邏輯程式化單元以映射部分的該些實體程式化單元,其中每一該些邏輯程式化單元具有多個邏輯存取位址,其中該記憶體控制器從一主機系統接收一第一寫入資料串,其中該第一寫入資料串屬於該些邏輯存取位址之中的一第一邏輯存取位址且該第一邏輯存取位址屬於該些邏輯程式化單元之中的一第一邏輯程式化單元,其中該記憶體控制器從該些實體程式化單元之中選擇一第一實體程式化單元並且判斷該第一寫入資料串是否屬於多個態樣的其中一個態樣,其中倘若該第一寫入資料串不屬於該多個態樣的任一時,該記憶體控制器將對應該第一邏輯存取位址的識別資訊設定為一預設值,將該第一寫入資料串程式化至該第一實體程式化單元之資料位元區的實體存取位址之中的一第一實體存取位址,並且將對應該第一邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中倘若該第一寫入資料串屬於該多個態樣的其中一個態樣時,該記憶體控制器將對應該第一邏輯存取位址的識別資訊設定為對應該其中一個態樣的一識別值,並且將對應該第一邏輯存取位址的識別資訊程式化至該第一實體程式化單元的冗餘位元區,其中該第一寫入資料串不會被程式化至該第一實體程式化單元中,其中該記憶體控制器將該第一邏輯程式化單元映射至該第一實體程式化單元。
- 如申請專利範圍第24項所述之記憶體儲存裝置,其中該記憶體控制器從該主機系統接收一讀取指令,其中該讀取指令指示讀取儲存在該第一邏輯存取位址中的資料,其中該記憶體控制器從該第一實體程式化單元中讀取屬於該第一邏輯存取位址的一讀取資料串與對應該第一邏輯存取位址的識別資訊,並且判斷從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊是否為對應該多個態樣的其中一個態樣的識別值,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊為對應該多個態樣的其中一個態樣的識別值時,該記憶體控制器將對應該其中一個態樣的預設資料傳送給該主機系統,其中倘若從該第一實體程式化單元中所讀取的對應該第一邏輯存取位址的識別資訊非為對應該多個態樣的其中一個態樣的識別值時,該記憶體控制器將該讀取資料串傳送給該主機系統。
- 一種資料處理方法,用於可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體程式化單元,每一該些實體程式化單元包括資料位元區與冗餘位元區,該資料位元區包括多個實體存取位址,多個邏輯程式化單元被配置以映射至少部分的該些實體程式化單元,並且每一該些邏輯程式化單元具有多個邏輯存取位址,該資料處理方法包括:從一主機系統接收一讀取指令,其中該讀取指令指示讀取儲存在該些邏輯存取位址之中的一第一邏輯存取位址中的資料;從一預定區域中讀取對應該第一邏輯存取位址的識另資訊;判斷所讀取的識別資訊是否為一識別值;倘若所讀取的識別資訊為該識別值時,將一預設資料 傳送給該主機系統;以及倘若所讀取的識別資訊非為該識別值時,將從映射該第一邏輯存取位址的一實體存取位址中所讀取的資料串傳送給該主機系統,其中該識別值之位元數小於該預設資料的位元數。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101116931A TWI486766B (zh) | 2012-05-11 | 2012-05-11 | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
US13/555,206 US9213631B2 (en) | 2012-05-11 | 2012-07-23 | Data processing method, and memory controller and memory storage device using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101116931A TWI486766B (zh) | 2012-05-11 | 2012-05-11 | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346551A TW201346551A (zh) | 2013-11-16 |
TWI486766B true TWI486766B (zh) | 2015-06-01 |
Family
ID=49549560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101116931A TWI486766B (zh) | 2012-05-11 | 2012-05-11 | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9213631B2 (zh) |
TW (1) | TWI486766B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2500152A (en) | 2011-11-29 | 2013-09-11 | Box Inc | Mobile platform file and folder selection functionalities for offline access and synchronization |
TWI486766B (zh) * | 2012-05-11 | 2015-06-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
US9563251B2 (en) | 2013-12-28 | 2017-02-07 | Intel Corporation | Representing a cache line bit pattern via meta signaling |
TWI512750B (zh) * | 2014-07-30 | 2015-12-11 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 |
CN107463506B (zh) * | 2017-07-04 | 2020-07-31 | 积成电子股份有限公司 | 一种电能表的数据存储管理方法 |
US11256696B2 (en) | 2018-10-15 | 2022-02-22 | Ocient Holdings LLC | Data set compression within a database system |
CN109815166B (zh) * | 2018-12-28 | 2020-10-09 | 深圳市德明利技术股份有限公司 | 一种存储数据的动态回收处理方法及存储装置 |
CN112114756B (zh) * | 2020-09-27 | 2022-04-05 | 海光信息技术股份有限公司 | 存储系统及电子设备 |
CN114063918B (zh) * | 2021-11-12 | 2023-08-15 | 深圳宏芯宇电子股份有限公司 | 数据存取方法、存储器存储装置及存储器控制器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193786A1 (en) * | 2002-08-29 | 2004-09-30 | Yoshihisa Inagaki | Semiconductor memory device and method for writing data into flash memory |
TW200919474A (en) * | 2007-10-19 | 2009-05-01 | Phison Electronics Corp | Writing method for non-volatile memory and controller using the same |
US20090164696A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | Physical block addressing of electronic memory devices |
US20100302847A1 (en) * | 2009-06-01 | 2010-12-02 | Komai Hiromitsu | Multi-level nand flash memory |
TW201128648A (en) * | 2010-02-05 | 2011-08-16 | Phison Electronics Corp | Memory management and writing method and rewritable non-volatile memory controller and storage system thereof |
TW201216292A (en) * | 2010-10-08 | 2012-04-16 | Phison Electronics Corp | Non-volatile memory storage apparatus, memory controller and data storage method |
TW201217968A (en) * | 2010-10-29 | 2012-05-01 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452912B2 (en) * | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
US7254668B1 (en) | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7120051B2 (en) | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US8850100B2 (en) * | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
TWI486766B (zh) * | 2012-05-11 | 2015-06-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
TWI479315B (zh) * | 2012-07-03 | 2015-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
-
2012
- 2012-05-11 TW TW101116931A patent/TWI486766B/zh active
- 2012-07-23 US US13/555,206 patent/US9213631B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193786A1 (en) * | 2002-08-29 | 2004-09-30 | Yoshihisa Inagaki | Semiconductor memory device and method for writing data into flash memory |
TW200919474A (en) * | 2007-10-19 | 2009-05-01 | Phison Electronics Corp | Writing method for non-volatile memory and controller using the same |
US20090164696A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | Physical block addressing of electronic memory devices |
US20100302847A1 (en) * | 2009-06-01 | 2010-12-02 | Komai Hiromitsu | Multi-level nand flash memory |
TW201128648A (en) * | 2010-02-05 | 2011-08-16 | Phison Electronics Corp | Memory management and writing method and rewritable non-volatile memory controller and storage system thereof |
TW201216292A (en) * | 2010-10-08 | 2012-04-16 | Phison Electronics Corp | Non-volatile memory storage apparatus, memory controller and data storage method |
TW201217968A (en) * | 2010-10-29 | 2012-05-01 | Phison Electronics Corp | Data writing method, memory controller and memory storage apparatus |
Also Published As
Publication number | Publication date |
---|---|
TW201346551A (zh) | 2013-11-16 |
US20130304964A1 (en) | 2013-11-14 |
US9213631B2 (en) | 2015-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
US9037782B2 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI557561B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
US8423838B2 (en) | Block management method, memory controller, and memory storage apparatus | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TWI658361B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8352673B2 (en) | Data writing method for a flash memory, and flash memory controller and flash memory storage system using the same | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW202040370A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI664528B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI797464B (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |