TWI475385B - 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 - Google Patents
程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 Download PDFInfo
- Publication number
- TWI475385B TWI475385B TW101108660A TW101108660A TWI475385B TW I475385 B TWI475385 B TW I475385B TW 101108660 A TW101108660 A TW 101108660A TW 101108660 A TW101108660 A TW 101108660A TW I475385 B TWI475385 B TW I475385B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- access address
- page
- data
- physical
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種程式化記憶胞的方法與資料讀取方法,且特別是有關於一種利用旗標來增加執行速度的程式化記憶胞的方法、資料讀取方法以及使用這些方法的記憶體儲存裝置以及記憶體控制器。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體包括多個實體區塊,每個實體區塊包括多個實體頁面。並且,當要把資料寫入至可複寫式非揮發性記憶體時,實體頁面為最小的寫入單位。因此,當要寫入的資料小於實體頁面的大小時,先前技術所提出的寫入方法是在實體頁面中填入預設值,以填滿一個實體頁面。當要從可複寫式非揮發性記憶體讀取資料時,也會一併的讀取到這些預設值。然而,在上述情況中,用於控制可複寫式非揮發性記憶體的控制器必須要編碼這些預設值,並將這些預設值程式化(program)至實體頁面當中。然而,主機系統在邏輯上識別此些儲存預設值的邏輯位址為未被使用過或者儲存於此些邏輯位址中的資料已被刪除。所以,將這些預設值程式化至可複寫式非揮發性記憶體是無意義的且會額外增加系統負擔。
所以,如何有效地在可複寫式非揮發性記憶體中存取不滿一個實體頁面之資料,為此領域技術人員所關心的議題。
本發明的範例實施例提出一種程式化記憶胞的方法、資料讀取方法、記憶體控制器以及記憶體儲存裝置,可以增加讀寫資料時的執行速度。
本發明一範例實施例中提出一種程式化記憶胞的方法,用於一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括了多個實體頁面,而每一個實體頁面包括一資料位元區與一冗餘位元區。其中,資料位元區還包括多個實體存取位址,而冗餘位元區則分別地記錄對應這些實體存取位址的多個旗標。其中,多個邏輯頁面會被配置以映射部分的實體頁面,並且每一個邏輯頁面具有多個邏輯存取位址。此程式化記憶胞的方法包括:接收一指令,此指令是用以指示對上述邏輯頁面之中的第一邏輯頁面進行一變更操作;根據所接收的指令來識別第一邏輯頁面的邏輯存取位址之中的無效邏輯存取位址與有效邏輯存取位址;從上述的多個實體頁面中選擇一個第一實體頁面。本程式化記憶胞的方法還包括:將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為有效狀態,將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為一無效狀態;根據上述的變更操作將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區,並且將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區;以及,將第一實體頁面映射至第一邏輯頁面。
在一範例實施例中,上述的第一邏輯頁面是原始映射至第二實體頁面,而第二實體頁面儲存有屬於第一邏輯頁面的邏輯存取位址的資料。其中,上述的指令為一整理指令(trim command)並且上述的變更操作是用以指示第一邏輯頁面的邏輯存取位址之中的至少一個第一邏輯存取位址為已刪除邏輯存取位址。其中,根據指令識別第一邏輯頁面的邏輯存取位址之中的無效邏輯存取位址與有效邏輯存取位址的步驟包括:根據上述的整理指令將第一邏輯頁面的第一邏輯存取位址識別為無效邏輯存取位址。其中,根據變更操作將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區的步驟還包括:從第二實體頁面中讀取屬於第一邏輯頁面的有效邏輯存取位址的資料;以及,將屬於第一邏輯頁面的有效邏輯存取位址的資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第一實體存取位址,其中對應第一邏輯頁面的有效邏輯存取位址的旗標是對應至第一實體存取位址。
在一範例實施例中,上述的程式化記憶胞的方法更包括:建立一閒置邏輯位址表,用以記錄屬於一種閒置狀態的邏輯存取位址,其中屬於閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
在一範例實施例中,上述的指令為一寫入指令並且上述的變更操作為指示將一更新資料寫入至第一邏輯頁面的邏輯存取位址之中的已更新邏輯存取位址。其中,根據指令識別第一邏輯頁面的邏輯存取位址之中的無效邏輯存取位址與有效邏輯存取位址的步驟包括:判斷在第一邏輯頁面的邏輯存取位址之中除了已更新邏輯存取位址之外的其他邏輯存取位址是否為未被寫過之邏輯存取位址或已刪除之邏輯存取位址;以及,倘若上述其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,將這些其他邏輯存取位址識別為無效邏輯存取位址。
在一範例實施例中,上述根據變更操作將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區的步驟包括:將上述的更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的至少一個第二實體存取位址,其中對應第一邏輯頁面的有效邏輯存取位址的旗標是對應至上述的第二實體存取位址。
在一範例實施例中,上述的程式化記憶胞的方法更包括加密更新資料以產生一已加密更新資料。其中,根據變更操作將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區的步驟包括:將已加密更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第二實體存取位址。
以另外一個角度來說,本發明一範例實施例中提出一種資料讀取方法,用於上述的可複寫式非揮發性記憶體模組。本資料讀取方法包括:從一主機系統接收一讀取指令,此讀取指令是用以指示讀取屬於上述邏輯存取位址之中的第二邏輯存取位址的資料;從上述實體頁面之中的第一實體頁面的資料位元區的第三實體存取位址中讀取一資料,而屬於第二邏輯存取位址的資料是被儲存在第一實體頁面的資料位元區的第三實體存取位址中。本資料讀取方法還包括:判斷記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標是否為無效狀態;倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標非為無效狀態時,將從第一實體頁面的資料位元區的第三實體存取位址中所讀取的資料傳送給主機系統;以及,倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標為無效狀態時,則將一個預設值傳送給主機系統。
在一範例實施例中,上述的資料讀取方法還包括:解密從第一實體頁面的資料位元區的第三實體存取位址中讀取的資料以獲取一解密資料;以及,將這個解密資料傳送至主機系統以回應上述的讀取指令。
以另外一個角度來說,本發明一範例實施例中提出一種記憶體儲存裝置,包括了連接器、上述的可複寫式非揮發性記憶體模組與記憶體控制器。其中,連接器是用以耦接至一主機系統。記憶體控制器則是耦接至上述的連接器與可複寫式非揮發性記憶體模組。並且,記憶體控制器用以接收一指令,此指令是用以指示對上述邏輯頁面之中的第一邏輯頁面進行一個變更操作。記憶體控制器也會根據這個指令識別第一邏輯頁面的邏輯存取位址之中的無效邏輯存取位址與有效邏輯存取位址,並從實體頁面中選擇第一實體頁面。記憶體控制器還會將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為一有效狀態,並將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為一無效狀態。此外,記憶體控制器還會根據上述的變更操作來將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區,將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區。最後,記憶體控制器會將第一實體頁面映射至第一邏輯頁面。
在一範例實施例中,上述的第一邏輯頁面是原始映射至第二實體頁面,而第二實體頁面則儲存有屬於第一邏輯頁面的邏輯存取位址的資料。上述的指令為整理指令(trim command)並且上述的變更操作是用以指示第一邏輯頁面的邏輯存取位址之中的至少一個第一邏輯存取位址為已刪除邏輯存取位址。其中,記憶體控制器會根據整理指令將第一邏輯頁面的第一邏輯存取位址識別為無效邏輯存取位址,並從第二實體頁面中讀取屬於第一邏輯頁面的有效邏輯存取位址的資料。在根據變更操作將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區的過程中,記憶體控制器還會將屬於第一邏輯頁面的有效邏輯存取位址的資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第一實體存取位址,其中對應第一邏輯頁面的有效邏輯存取位址的旗標是對應至第一實體存取位址。
在一範例實施例中,上述的記憶體控制器更用以建立一閒置邏輯位址表,用以記錄屬於一種閒置狀態的邏輯存取位址。其中,屬於閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
在一範例實施例中,上述的指令為指示將一個寫入指令,而上述的變更操作是用以將一個更新資料寫入至第一邏輯頁面的邏輯存取位址之中的已更新邏輯存取位址。其中,記憶體控制器更用以判斷在第一邏輯頁面的邏輯存取位址之中除了已更新邏輯存取位址之外的其他邏輯存取位址是否為未被寫過邏輯存取位址或已刪除邏輯存取位址。倘若上述其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,記憶體控制器會將這些其他邏輯存取位址識別為無效邏輯存取位址。
在一範例實施例中,記憶體控制器還會將更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第二實體存取位址,其中對應第一邏輯頁面的有效邏輯存取位址的旗標是對應至所述的第二實體存取位址。
在一範例實施例中,上述的記憶體控制器更用以加密更新資料以產生一已加密更新資料。記憶體控制器還會將已加密更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第二實體存取位址,其中對應第一邏輯頁面的有效邏輯存取位址的旗標是對應至所述的第二實體存取位址。
在一範例實施例中,上述的記憶體控制器更用以從主機系統接收一讀取指令,此讀取指令是用以指示讀取屬於第二邏輯存取位址的資料。記憶體控制器更用以從第一實體頁面的資料位元區的第三實體存取位址中讀取資料,而屬於第二邏輯存取位址的資料便是被儲存在第一實體頁面的資料位元區的第三實體存取位址中。記憶體控制器更用以判斷記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標是否為無效狀態。倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標非為無效狀態時,記憶體控制器會將從第一實體頁面的資料位元區的第三實體存取位址中讀取的資料傳送給主機系統。倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標為無效狀態時,記憶體控制器會將一個預設值傳送給主機系統。
在一範例實施例中,上述的記憶體控制器更用以解密從第一實體頁面的資料位元區的第三實體存取位址中讀取的資料以獲取一解密資料,並將此解密資料傳送至主機系統以回應讀取指令。
以另外一個角度來說,本發明一範例實施例中提出一種記憶體控制器,用於控制上述的可複寫式非揮發性記憶體模組。此記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。其中,主機介面是用以耦接至一個主機系統。記憶體介面是用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路則耦接至主機介面與記憶體介面,並且從主機系統接收一個指令,這個指令是用以指示對上述邏輯頁面之中的第一邏輯頁面進行一變更操作。其中,記憶體管理電路會根據這個指令識別第一邏輯頁面的邏輯存取位址之中的無效邏輯存取位址與有效邏輯存取位址,並會從上述的實體頁面中選擇第一實體頁面。記憶體管理電路也將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為有效狀態,並將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為無效狀態。記憶體管理電路更用以根據上述的變更操作來將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區,將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區。最後,記憶體管理電路會將第一實體頁面映射至第一邏輯頁面。
在一範例實施例中,上述的第一邏輯頁面是原始映射至第二實體頁面,而第二實體頁面則儲存有屬於第一邏輯頁面的邏輯存取位址的資料。而上述的指令為一整理指令(trim command)並且上述的變更操作是用以指示第一邏輯頁面的邏輯存取位址之中的至少一個第一邏輯存取位址為已刪除邏輯存取位址。其中,記憶體管理電路會根據這個整理指令將第一邏輯頁面的第一邏輯存取位址識別為一無效邏輯存取位址,並從第二實體頁面中讀取屬於第一邏輯頁面的有效邏輯存取位址的資料。記憶體管理電路更用以將屬於第一邏輯頁面的有效邏輯存取位址的資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第一實體存取位址,而對應第一邏輯頁面的有效邏輯存取位址的旗標便是對應至所述的第一實體存取位址。
在一範例實施例中,上述的記憶體管理電路更用以建立一閒置邏輯位址表,用以記錄屬於種一閒置狀態的邏輯存取位址。其中,屬於閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
在一範例實施例中,上述的指令為一個寫入指令,而上述的變更操作是用以指示將一個更新資料寫入至第一邏輯頁面的邏輯存取位址之中的已更新邏輯存取位址。其中,記憶體管理電路更用以判斷在第一邏輯頁面的邏輯存取位址之中除了已更新邏輯存取位址之外的其他邏輯存取位址是否為未被寫過邏輯存取位址或已刪除邏輯存取位址。倘若上述其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,記憶體管理電路會將這些其他邏輯存取位址識別為無效邏輯存取位址。
在一範例實施例中,記憶體管理電路更用以將更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第二實體存取位址中。其中,對應第一邏輯頁面的有效邏輯存取位址的旗標便是對應至所述的第二實體存取位址。
在一範例實施例中,上述的記憶體控制器更包括一加密解密電路,用以加密更新資料以產生一個已加密更新資料。記憶體管理電路會將已加密更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的第二實體存取位址。而對應第一邏輯頁面的有效邏輯存取位址的旗標便是對應至所述的第二實體存取位址。
在一範例實施例中,上述的記憶體管理電路更用以從主機系統接收一讀取指令,此讀取指令是用以指示讀屬於第二邏輯存取位址的資料。其中記憶體管理電路更用以從第一實體頁面的資料位元區的第三實體存取位址中讀取資料。其中屬於第二邏輯存取位址的資料便是被儲存在第一實體頁面的資料位元區的第三實體存取位址中。而記憶體管理電路更用以判斷記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標是否為無效狀態。倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標非為無效狀態時,記憶體管理電路會將從第一實體頁面的資料位元區的第三實體存取位址中讀取的資料傳送給主機系統。倘若記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標為無效狀態時,記憶體管理電路會將一預設值傳送給主機系統。
在一範例實施例中,上述的記憶體控制器更包括一加密解密電路,用以解密從第一實體頁面的資料位元區的第三實體存取位址中所讀取的資料以獲取一解密資料。而記憶體管理電路更用以將此解密資料傳送至主機系統以回應讀取指令。
基於上述,本發明一範例實施例所提出的程式化記憶胞的方法及使用此方法的記憶體控制器以及記憶體儲存裝置,是在冗餘位元區中記錄對應的旗標,由此避免無謂的寫入運作並且提升寫入資料的速度。此外,本發明一範例實施例所提出之資料讀取方法及使用此方法的記憶體控制器以及記憶體儲存裝置,能夠藉由識別冗餘位元區中的旗標,來避免無謂的讀取運作,由此提升讀取資料的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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 Technology Attachment,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,ID E)標準或其他適合的標準。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體區塊304(0)~304(R)。例如,實體區塊304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體區塊分別具有複數個實體頁面,並且每一實體頁面具有至少一實體扇區,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。例如,每一實體區塊是由128個實體頁面所組成,並且每一實體頁面具有8個實體扇區(sector)。也就是說,在每一實體扇區為512位元組(byte)的例子中,每一實體頁面的容量為4千位元組(Kilobyte,K)。然而,必須瞭解的是,本發明不限於此,每一實體區塊是可由64個實體頁面、256個實體頁面或其他任意個實體頁面所組成。
更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是實體扇區或其他大小。每一實體頁面通常包括資料位元區與冗餘位元區。資料位元區用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤檢查與校正碼)。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)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(N)給主機系統1000以利於在以上述輪替方式來儲存資料之實體區塊中進行資料存取。具體來說,當記憶體儲存裝置100被作業系統1110透過檔案系統(例如,FAT 32)格式化時,邏輯區塊LBA(0)~LBA(N)分別地映射至資料區402的實體區塊304(0)~304(D)。也就是說,一個邏輯區塊會映射資料區402中的一個實體區塊。在此,記憶體管理電路202會建立邏輯區塊-實體區塊映射表(logical block-physical block mapping table),以記錄邏輯區塊與實體區塊之間的映射關係。
圖6是根據第一範例實施例所繪示的邏輯區塊與實體區塊的映射示意圖。
請參照圖6,一個邏輯區塊會包含多個邏輯頁面,且這些邏輯頁面會被映射至資料區402中實體區塊的實體頁面。舉例來說,邏輯區塊LBA(0)的邏輯頁面502(0)~502(A)是映射至實體區塊304(0)的實體頁面522(0)~522(A)。
在本範例實施例中,每個實體頁面會包含一資料位元區與一冗餘位元區。資料位元區是用以儲存使用者的資料,而冗餘位元區則是用以儲存系統資料(例如,錯誤更正碼)。在本範例實施例中,資料位元區中會包含多個實體存取位址。另一方面,一個邏輯頁面會包含多個邏輯存取位址,而這些邏輯存取位址會被映射至資料位元區中的實體存取位址。也就是說,一個邏輯頁面中邏輯存取位址的數目會等於一個實體頁面中實體存取位址的數目。在本範例實施例中,每一個實體頁面的資料位元區中會包含4個實體存取位址,且一個實體存取位址的大小是一個實體扇區的大小。然而,在其他範例實施例中,資料位元區中也可包含數目更多或更少的實體存取位址,本發明並不限制實體存取位址的大小以及個數。
圖7是根據第一範例實施例所繪示的邏輯頁面與實體頁面的映射示意圖。每個實體頁面與邏輯頁面的映射方式是類似的,在此以實體頁面522(0)與邏輯頁面502(0)為例進行說明,其他實體頁面與邏輯頁面的映射可以此類推。
請參照圖7,實體頁面522(0)包括資料位元區562與冗餘位元區582。資料位元區562包括實體存取位址560(0)~560(3),邏輯頁面502(0)包括邏輯存取位址540(0)~540(3),並且邏輯存取位址540(0)~540(3)是分別映射至實體頁面522(0)的實體存取位址560(0)~560(3)。
值得注意的是,在本範例實施例中,每一個實體頁面中的冗餘位元區會記錄多個旗標,這些旗標是對應至資料位元區的實體存取位址。舉例來說,冗餘位元區582中記錄了旗標580(0)~580(3),且分別是對應至實體存取位址560(0)~560(3)。例如,旗標580(0)是對應560(0);旗標580(1)是對應560(1);旗標580(2)是對應560(2);並且旗標580(3)是對應560(3)。
在本範例實施例中,記錄在冗餘位元區中的旗標會被設定為有效狀態或是無效狀態,用以識別所對應的實體存取位址所映射之邏輯存取位址是否處於閒置狀態。例如,在本範例實施例中,倘若旗標580(3)是被設定為無效狀態時,則表示實體存取位址560(3)所映射的邏輯存取位址540(3)是屬於閒置狀態。在此,所謂屬於閒置狀態的邏輯存取位址是指未曾被寫過資料的邏輯存取位址,或者是其所儲存之資料已被刪除的邏輯存取位址。當邏輯存取位址540(3)未曾被寫過資料或者是邏輯存取位址540(3)所儲存的資料已被刪除時,表示主機系統1000在邏輯上識別邏輯存取位址540(3)並沒有儲存任何資料。也就是說,在邏輯上對主機系統1000而言,邏輯存取位址540(3)為未被使用之閒置邏輯存取位址,並且,當對閒置邏輯存取位址進行讀取時,應接收到為一特定態樣的預設值。例如,此預設值是全為”0”的字元串,或者是全為”1”的字元串,然而本發明並不限定此預設值的內容。
換句話說,在邏輯存取位址540(3)屬於閒置狀態的例子中,當主機系統1000要讀取邏輯存取位址540(3)時,主機系統1000會讀到預設值,並不是讀到映射至邏輯存取位址540(3)的實體存取位址560(3)所儲存的資料。具體來說,當主機系統1000要讀取一邏輯存取位址(亦稱第二邏輯存取位址)時,主機系統1000會傳送一讀取指令至記憶體儲存裝置100。例如,主機系統1000設定此讀取指令是要讀取第二邏輯存取位址540(3),並且,主機系統1000會將此讀取指令傳送給記憶體管理電路202。接著,在接收到此讀取指令以後,記憶體管理電路202會取得第二邏輯存取位址540(3)的映射關係(即,邏輯存取位址540(3)是映射至實體頁面522(0)中的實體存取位址560(3))。之後,記憶體管理電路202會從實體存取位址560(3)(亦稱第三實體存取位址)中讀取所儲存的資料。特別的是,記憶體管理電路202會判斷對應實體存取位址560(3)的旗標580(3)是屬於無效狀態或是有效狀態。若旗標580(3)是屬於有效狀態,則記憶體管理電路202會將讀取自實體存取位址560(3)的資料傳送給主機系統1000。另一方面,若旗標580(3)是屬於無效狀態,記憶體管理電路202會將預設值傳送給主機系統1000。換句話說,在旗標580(3)是屬於無效狀態的情況下,主機系統1000會識別邏輯存取位址540(3)為未被寫過資料或所儲存的資料已被刪除的位址,因此,記憶體管理電路202直接回傳預設值給主機系統1000,以回應此讀取指令。
值得一提的是,主機系統1000所下達的一個讀取指令亦可指示讀取多個邏輯頁面,或讀取一個邏輯頁面中的多個邏輯存取位址。在此例子中,記憶體管理電路202會根據所接收到的讀取指令,檢查所對應的多個旗標,並根據此些對應的旗標為有效狀態或是無效狀態,來決定回傳預設值或將從對應的實體存取位址中所讀取之資料傳給主機系統1000,以回應此讀取指令。本發明並不限制讀取指令所指示要讀取的邏輯存取位址的數目。
在本範例實施例中,每一個旗標是用一個位元來表示,當此位元為”1”時表示旗標為無效狀態,且當此位元為”0”時表示旗標為有效狀態。或者,”0”亦可表示無效狀態,且”1”可表示有效狀態。然而,每個旗標也可以用其他個數的位元來表示。本發明不限定用來表示旗標的位元個數以及有效狀態與無效狀態的表示方式。
圖8是根據第一範例實施例所繪示的資料讀取方法的流程圖。
請參照圖8,在步驟S802中,記憶體管理電路202從主機系統接收一讀取指令,其中此讀取指令指示讀取屬於第一邏輯頁面(例如,邏輯頁面502(0))的第二邏輯存取位址(例如,邏輯存取位址540(3))的資料。
在步驟S804中,記憶體管理電路202從映射第一邏輯頁面的第一實體頁面(例如,實體頁面522(0))的資料位元區的第三實體存取位址(例如,實體存取位址560(3))中讀取資料,其中屬於第二邏輯存取位址的資料是被儲存在第三實體存取位址中。
之後,在步驟S806中,記憶體管理電路202會判斷記錄在第一實體頁面的冗餘位元區中對應第三實體存取位址的旗標是否為無效狀態。若對應第三實體存取位址的旗標不是無效狀態,則在步驟S808中,記憶體管理電路202會將從第三實體存取位址中讀取的資料傳送給主機系統。若對應第三實體存取位址的旗標為無效狀態,則在步驟S810中,記憶體管理電路202會將預設值傳送給主機系統。值得一提的是,如上所述,在執行讀取指令時,冗餘位元區所記錄的旗標會被用來識別實體存取位址所映射之邏輯存取位址是否處於閒置狀態。因此,當主機系統1000對邏輯頁面進行操作時,記憶體管理電路202會根據邏輯頁面中之邏輯存取位址的狀態設定對應的旗標。具體來說,在接收到指示對一個第一邏輯頁面進行變更操作(例如,寫入運作)的指令(S902)時,記憶體管理電路202會根據此指令識別此第一邏輯頁面之中的無效邏輯存取位址與有效邏輯存取位址(S904)。在此,所指的無效邏輯存取位址是表示未被寫入過資料的邏輯存取位址,或是所儲存的資料已被刪除的邏輯存取位址。相對的,不屬於無效邏輯存取位址的其他邏輯存取位址便是有效邏輯存取位址。特別是,接著,記憶體管理電路202會選擇一個第一實體頁面(S906),將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為有效狀態,並且將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為無效狀態(S908)。接著,記憶體管理電路202會根據上述的變更操作來將對應第一邏輯頁面的有效邏輯存取位址的資料程式化至第一實體頁面的資料位元區,並且將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區(S910),其中無效邏輯存取位址所映射的實體存取位址中不會被寫入資料。最後,記憶體管理電路202會將第一實體頁面映射至第一邏輯頁面(S912)。也就是說,記憶體管理電路202是藉由將無效狀態的旗標程式化至實體頁面的冗餘位元區中,藉此節省不必要的寫入動作。
為了更清楚說明設定對應無效邏輯存取位址之旗標的運作,以下將分別以接收到整理指令(trim command)與寫入指令所進行的操作為例來作更詳細的說明。
當接收到整理指令時,記憶體管理電路202會根據此整理指令將已刪除邏輯存取位址識別為無效邏輯存取位址並且將對應之旗標設定為無效狀態。具體來說,在主機系統1000之作業系統的檔案管理機制中作業系統是透過檔案配置表來管理儲存於記憶體儲存裝置中的資料。特別是,在作業系統執行資料的刪除運作的例子中,作業系統僅會於檔案配置表中註記欲刪除之邏輯存取位址中的資料已為無效,即完成刪除資料的運作,而不會實際地將所儲存的資料進行刪除。之後,當作業系統1000欲在此些邏輯存取位址中寫入資料時,作業系統1000會將資料直接寫入。特別是,在本範例實施例中,主機系統1000會傳送整理指令來告知記憶體儲存裝置100哪些邏輯存取位址中的資料是已被刪除的資訊。在此,對於主機系統1000的作業系統來說,所儲存之資料已被刪除之邏輯存取位址被稱為已刪除邏輯存取位址。也就是說,整理指令所指示的變更操作是指示哪些邏輯存取位址是已刪除邏輯存取位址。如上所述,當主機系統1000要對已刪除邏輯存取位址進行讀取運作時,主機系統1000會接收到一特定態樣的預設值(例如,全為”0”的位元串)。
圖10是根據第一範例實施例繪示執行整理指令的流程圖,並且圖11是根據第一範例實施例繪示執行整理指令的範例示意圖。在圖11所示的範例中,邏輯頁面502(0)原始是映射至實體頁面622(0),而實體頁面622(0)包括有資料位元區662與冗餘位元區682,其中資料位元區662包括實體存取位址660(0)~660(3),並且冗餘位元區682記錄有旗標680(0)~680(3)。也就是說,在記憶體管理電路202接收到整理指令之前,屬於邏輯頁面502(0)的資料原本是儲存在實體頁面622(0)中。
請同時參照圖10與圖11,在步驟S1002中,記憶體管理電路202會接收一整理指令,此整理指令所指示的變更操作是指示邏輯頁面(以下稱為第一邏輯頁面,例如,圖11的邏輯頁面502(0))中的至少一第一邏輯存取位址(例如,圖11的邏輯存取位址540(2)與540(3))為已刪除邏輯存取位址。
在步驟S1004中,記憶體管理電路202根據此整理指令識別第一邏輯頁面之中的已刪除邏輯存取位址為無效邏輯存取位址,並且其他邏輯存取位址(例如,圖11的邏輯存取位址540(0)與540(1))識別為有效邏輯存取位址。
在步驟S1006中,記憶體管理電路202會從可複寫式非揮發性記憶體模組106中選擇一個實體頁面(以下稱為第一實體頁面,例如,如圖11的實體頁面522(0))。
在步驟S1008中,記憶體管理電路202會將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為有效狀態,並且將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為無效狀態。例如,如圖11所示,對應邏輯存取位址540(0)、540(1)的旗標會被設定為有效狀態,而對應邏輯存取位址540(2)、540(3)的旗標會被設定為無效狀態。其中每一個旗標是用一個位元來表示,且是暫時地被儲存在緩衝記憶體252中。
在步驟S1010中,記憶體管理電路202會從原始映射第一邏輯頁面的實體頁面(以下稱為第二實體頁面,例如,圖11的實體頁面622(0))中讀取屬於第一邏輯頁面的有效邏輯存取位址的資料。例如,如圖11所示,記憶體管理電路202會從實體頁面622(0)的實體存取位址660(0)與660(1)讀取屬於邏輯頁面502(0)之邏輯存取位址540(0)與540(1)的資料。
接著在步驟S1012中,記憶體管理電路202會將屬於第一邏輯頁面的有效邏輯存取位址的資料寫入至第一實體頁面的第一實體存取位址(例如,圖11的實體存取位址560(0)、560(1)),並且將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區。
例如,如圖11所示,記憶體管理電路202會將屬於邏輯頁面502(0)的有效邏輯存取位址540(0)與540(1)的資料寫入至實體頁面522(0)的實體存取位址560(0)與560(1)中。換言之,記憶體管理電路202是將儲存在實體存取位址660(0)與660(1)的資料複製到實體存取位址560(0)與560(1)中。並且,在將實體存取位址660(0)與660(1)的資料複製到實體存取位址560(0)與560(1)的同時,記憶體管理電路202會從緩衝記憶體252中將對應邏輯存取位址540(0)~540(3)的四個旗標的值程式化至冗餘位元區582的旗標580(0)~580(3)中。具體來說,由於邏輯存取位址540(2)與540(3)是屬於無效邏輯存取位址,並且邏輯存取位址540(2)與540(3)是分別映射至實體頁面522(0)的實體存取位址560(2)與560(3),因此對應實體存取位址560(2)與560(3)的旗標580(2)與580(3)會被程式化為無效狀態,用以表示邏輯存取位址540(2)與540(3)為無效邏輯存取位址。基此,記憶體管理電路202無須實際地將一特定態樣之預設資料寫入至實體存取位址560(2)與560(3),藉此提升執行速度。另一方面,由於邏輯存取位址540(0)與540(1)是屬於有效邏輯存取位址,並且邏輯存取位址540(0)與540(1)是對應至實體存取位址560(0)與560(1),因此對應實體存取位址560(0)與560(1)的旗標580(0)與580(1)則會被程式化為有效狀態。
在步驟S1014中,記憶體管理電路202會將第一實體頁面(例如,圖11的實體頁面522(0))映射至第一邏輯頁面(例如,圖11的邏輯頁面502(0))。
值得注意的是,圖10所述之步驟的執行順序不限於此。例如,步驟S1004與步驟S1006可以相互的調換,或者是,S1006、S1008以及步驟S1010可以互相的調換。
在本發明一範例實施例中,當接收到寫入指令(write command)時,記憶體管理電路202會根據此寫入指令識別未被更新之邏輯存取位址的狀態。特別是,當未被更新之邏輯存取位址的狀態為閒置狀態(即,未曾被寫過資料的邏輯存取位址,或是已刪除邏輯存取位址)時,記憶體管理電路202會識別此未被更新之邏輯存取位址為無效邏輯存取位址並且將其對應的旗標設定為無效狀態。例如,在本發明一範例實施例中,記憶體管理電路202會建立閒置邏輯位址表,來記錄屬於閒置狀態的邏輯存取位址。例如,閒置邏輯位址表會被儲存在系統區406中並且當記憶體儲存裝置100啟動時會被載入至緩衝記憶體252中以進行更新。
圖12是根據第一範例實施例繪示執行寫入指令的流程圖,並且圖13是根據第一範例實施例繪示執行寫入指令的範例示意圖。假設在圖13所示的範例中,屬於邏輯頁面502(0)的邏輯存取位址540(0)、540(1)與540(2)的資料被儲存在實體頁面622(0)(亦稱為第二實體頁面)的實體存取位址660(0)、660(1)與660(2)中,並且邏輯頁面502(0)的邏輯存取位址540(3)為處於閒置狀態。
請同時參照圖12與圖13,在步驟S1202中,記憶體管理電路202會從主機系統1000接收到一寫入指令。此寫入指令所指示的變更操作是指示將一更新資料寫入至第一邏輯頁面中的已更新邏輯存取位址。在接收到寫入指令的同時,記憶體管理電會202會識別原始映射至第一邏輯頁面的實體頁面。例如,如圖13所示,對應此寫入指令的變更操作是用以指示將更新資料602寫入至第一邏輯頁面502(0)中的邏輯存取位址540(0)與540(1)(亦稱已更新邏輯存取位址)。而第一邏輯頁面502(0)是原始映射至實體頁面622(0)(亦稱第二實體頁面)。
在步驟S1204中,記憶體管理電路202會判斷第一邏輯頁面中除了已更新邏輯存取位址以外的其他邏輯存取位址(即,邏輯存取位址540(2)與540(3))是否為閒置狀態。例如,記憶體管理電路202可根據上述閒置邏輯位址表來識別處於閒置狀態的邏輯存取位址。
若這些其他邏輯存取位址是閒置狀態,則在步驟S1206中,記憶體管理電路202會將屬於閒置狀態的其他邏輯存取位址識別為無效邏輯存取位址。例如,如圖13所示,記憶體管理電路202會將邏輯存取位址540(3)識別為無效邏輯存取位址。
若這些其他邏輯存取位址不是閒置狀態,則在步驟S1208,記憶體管理電路202會將不屬於閒置狀態的其他邏輯存取位址(例如,圖13的邏輯存取位址540(2))識別為有效邏輯存取位址。
在步驟S1210中,記憶體管理電路202將已更新邏輯存取位址(例如,圖13的邏輯存取位址540(0)、540(1))識別為有效邏輯存取位址。也就是說,如圖13所示,在經過步驟S1204、S1206、S1208與S1210之後,邏輯存取位址540(0)~540(2)會被識別為有效邏輯存取位址,而邏輯存取位址540(3)為無效邏輯存取位址。然而,值得注意的是,步驟S1210也可以在步驟S1204之前,本發明並不限定執行步驟S1204與步驟S1210的順序。
接下來,在步驟S1212中,記憶體管理電路202會從可複寫式非揮發性記憶體模組106中選擇一個實體區塊的一個實體頁面(以下稱為第一實體頁面,例如,實體頁面522(0))。
在步驟S1214中,記憶體管理電路202會將對應第一邏輯頁面的有效邏輯存取位址的旗標設定為有效狀態,並將對應第一邏輯頁面的無效邏輯存取位址的旗標設定為無效狀態。例如,如圖13所示,對應有效邏輯存取位址540(0)~540(2)的旗標會被設定為有效狀態,而對應無效邏輯存取位址540(3)的旗標會被設定為無效狀態。其中每一個旗標是用一個位元來表示,是暫時的被儲存在緩衝記憶體252中。
在步驟S1216中,記憶體管理電路202會從第二實體頁面中讀取屬於非閒置狀態的其他邏輯存取位址的資料。例如,如圖13所示,記憶體管理電路202會讀取邏輯存取位址540(2)的資料。更具體來說,由於邏輯存取位址540(2)是原始映射至實體存取位址660(2),記憶體管理電路202會從實體頁面622(0)中讀取實體存取位址660(2)所儲存的資料。
在步驟S1218中,記憶體管理電路202會將更新資料寫入至第一實體頁面的資料位元區的實體存取位址之中的至少一個實體存取位址(以下稱第二實體存取位址),將從第二實體頁面所讀取的資料寫入至第一實體頁面的資料位元區,並且將對應第一邏輯頁面的有效邏輯存取位址的旗標與對應第一邏輯頁面的無效邏輯存取位址的旗標程式化至第一實體頁面的冗餘位元區
例如,如圖13所示,記憶體管理電路202會將更新資料602寫入至實體頁面522(0)的實體存取位址560(0)與560(1)(亦稱為第二實體存取位址)中。並且,記憶體管理電路202會將實體存取位址660(2)所讀取的資料寫入至實體存取位址560(2)中。另外,由於邏輯存取位址540(3)為無效邏輯存取位址,因此,記憶體管理電路202不會將資料寫入至實體頁面522(0)的實體存取位址560(3)中。此外,記憶體管理電路202會在將資料程式化至資料位元區562的同時,會將對應邏輯存取位址540(0)~540(3)的四個旗標的值從緩衝記憶體252中程式化至冗餘位元區582的旗標580(0)~580(3)。具體來說,由於邏輯存取位址540(0)~540(2)是有效邏輯存取位址,而邏輯存取位址540(0)~540(2)是新映射至實體存取位址560(0)~560(2),因此對應實體存取位址560(0)~560(2)的旗標580(0)~580(2)會被程式化為有效狀態。另一方面,由於邏輯存取位址540(3)是無效邏輯存取位址,而邏輯存取位址540(3)是新映射至實體存取位址560(3),因此對應至實體存取位址560(3)的旗標580(3)會被程式化為無效狀態。
第二範例實施例與第一範例實施例類似,不同之處在於記憶體控制器104在將資料寫入至可複寫式非揮發性記憶體模組106時會先將資料加密,並且在從可複寫式非揮發性記憶體模組106讀取資料時會將資料解密。
圖14是根據第二範例實施例繪示的記憶體控制器的方塊圖。
請參考圖14,記憶體控制器104包括了主機介面204、記憶體管理電路1402、記憶體介面206、加密解密電路1404、電源管理電路254、緩衝記憶體252以及錯誤檢查與校正電路256,其中主機介面204、記憶體介面206、電源管理電路254、緩衝記憶體252以及錯誤檢查與校正電路256的功能與運作已在第一範例實施例詳細說明,在此便不再重複描述。
記憶體管理電路1402本質上是相同於第一範例實施例的記憶體管理電路202,其差異之處在於記憶體管理電路1402會透過加密解密電路1404將欲儲存至可複寫式非揮發性記憶體模組106的資料加密,並且將讀取自可複寫式非揮發性記憶體模組106的資料解密。在本範例實施例中,加密解密電路1404使用的是進階加密標準(Advanced Encryption Standard,AES),然而,在其他實施例中,加密解密電路1404也可以使用資料加密標準(Data Encryption Standard,DES),本發明並不在此限。
特別的是,在本範例實施例中記憶體控制器104可以根據冗餘位元區中的旗標來避免不必要的加密解密動作,藉此增加寫入與讀取資料的速度。
圖15是根據第二範例實施例說明將更新資料加密並寫入的示意圖。
請參考圖15,當主機系統1000要根據更新資料602來更新屬於邏輯頁面502(0)的資料時,主機系統1000會傳送寫入指令以及更新資料602給記憶體管理電路1402。舉例來說,更新資料602是用以更新屬於邏輯存取位址540(0)與540(1)的資料。並且,在本範例中,邏輯存取位址540(3)為閒置狀態,並且會被記憶體管理電路1402識別為無效邏輯存取位址。然而,在將更新資料602寫入至實體頁面522(0)之前,記憶體管理電路1402會將更新資料602傳送到加密解密電路1404,並且加密解密電路1404會將更新資料602加密以產生已加密更新資料900。之後,記憶體管理電路1402會將已加密更新資料900寫入至實體存取位址560(0)與560(1)(亦稱第二實體存取位址)。並且,屬於邏輯存取位址540(2)的資料也會從原始映射邏輯頁面502(0)的實體頁面中被複製至實體存取位址560(2)。此外,在將資料程式化至實體頁面522(0)的同時,記憶體管理電路1402會將屬於邏輯存取位址540(0)~540(3)的四個旗標程式化至冗餘位元區582,以成為旗標580(0)~580(3)。具體來說,旗標580(0)~580(2)會被程式化為有效狀態,而旗標580(3)會被程式化為無效狀態。也就是說,記憶體管理電路1402並不會將資料程式化至實體存取位址560(3),由此節省程式化實體頁面所需的時間。
圖16是根據第二範例實施例說明讀取並解密資料的示意圖。
請參考圖16,當從主機系統1000接收到指示要讀取映射至實體頁面522(0)的邏輯存取位址502(0)的讀取指令時,記憶體管理電路1402會從實體頁面中522(0)讀取資料。特別是,記憶體管理電路1402會根據冗餘位元區582中的旗標580(0)~580(3)來判斷是否將資料傳送至加密解密電路1404來進行解密。具體來說,當記憶體管理電路1402從實體存取位址560(0)~560(2)中讀取所儲存的資料時,記憶體管理電路1402會讀取冗餘位元區582中的旗標580(0)~580(2),根據有效狀態的旗標580(0)~580(2)將所讀取之第一資料1602傳送至加密解密電路1404來進行解密,以產生解密資料1604。另外,當記憶體管理電路1402從實體存取位址560(3)中讀取所儲存的資料時,記憶體管理電路1402會讀取冗餘位元區582中的旗標580(3),並且根據無效狀態的旗標580(3)而將預設值1606傳送給主機系統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(N)...邏輯區塊
502(0)~502(A)...邏輯頁面
522(0)~522(A)...實體頁面
540(0)~540(3)...邏輯存取位址
562...資料位元區
582...冗餘位元區
560(0)~560(3)...實體存取位址
580(0)~580(3)...旗標
622(0)...實體頁面
662...資料位元區
682...冗餘位元區
S802、S804、S806、S808、S810...資料讀取方法的步驟
S902、S904、S906、S908、S910、S912...程式化記憶胞的方法的步驟
S1002、S1004、S1006、S1008、S1010、S1012、S1014...執行整理指令的步驟
660(0)~660(3)...實體存取位址
680(0)~680(3)...旗標
S1202、S1204、S1206、S1208、S1210、S1212、S1214、S1216、S1218、S1220...執行寫入指令的步驟
602...更新資料
1402...記憶體管理電路
1404...加密解密電路
900...已加密更新資料
1602...第一資料
1604...解密資料
1606...預設值
圖1A是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據第一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據第一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據第一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4與圖5是根據第一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖6是根據第一範例實施例所繪示的邏輯區塊與實體區塊的映射示意圖。
圖7是根據第一範例實施例所繪示的邏輯頁面與實體頁面的映射示意圖。
圖8是根據第一範例實施例所繪示的資料讀取方法的流程圖。
圖9是根據第一範例實施例所繪示的程式化記憶胞的方法的流程圖。
圖10是根據第一範例實施例繪示執行整理指令的流程圖。
圖11是根據第一範例實施例繪示執行整理指令的範例示意圖。
圖12是根據第一範例實施例繪示執行寫入指令的流程圖。
圖13是根據第一範例實施例繪示執行寫入指令的範例示意圖。
圖14是根據第二範例實施例繪示的記憶體控制器的方塊圖。
圖15是根據第二範例實施例說明將更新資料加密並寫入的示意圖。
圖16是根據第二範例實施例說明讀取並解密資料的示意圖。
S902、S904、S906、S908、S910、S912...程式化記憶胞的方法的步驟
Claims (22)
- 一種程式化記憶胞的方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體區塊,每一該些實體區塊包括多個實體頁面,每一該些實體頁面包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址,該冗餘位元區分別地記錄對應該些實體存取位址的多個旗標,多個邏輯頁面被配置以映射部分的該些實體頁面,並且每一該些邏輯頁面具有多個邏輯存取位址,該程式化記憶胞的方法包括:接收一指令,其中該指令指示對該些邏輯頁面之中的一第一邏輯頁面進行一變更操作;根據該指令識別該第一邏輯頁面的該些邏輯存取位址之中的至少一無效邏輯存取位址與至少一有效邏輯存取位址;從該些實體頁面中選擇一第一實體頁面;將對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標設定為一有效狀態,將對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標設定為一無效狀態;根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的資料位元區,將對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標與對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標程式化至該第一實體頁面的冗 餘位元區,其中在該第一實體頁面的該資料位元區中除了對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料之外,其他資料為無效資料;以及將該第一實體頁面映射至該第一邏輯頁面。
- 如申請專利範圍第1項所述之程式化記憶胞的方法,其中該第一邏輯頁面原始映射至一第二實體頁面,該第二實體頁面儲存有屬於該第一邏輯頁面的該些邏輯存取位址的資料,該指令為一整理指令(trim command)並且該變更操作為指示該第一邏輯頁面的該些邏輯存取位址之中的至少一第一邏輯存取位址為一已刪除邏輯存取位址,其中根據該指令識別該第一邏輯頁面的該些邏輯存取位址之中的該至少一無效邏輯存取位址與該至少一有效邏輯存取位址的步驟包括:根據該整理指令將該第一邏輯頁面的該至少一第一邏輯存取位址識別為該至少一無效邏輯存取位址,根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的資料位元區的步驟還包括:從該第二實體頁面中讀取屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料;以及將屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第一實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應 至該至少一第一實體存取位址。
- 如申請專利範圍第1項所述之程式化記憶胞的方法,更包括:建立一閒置邏輯位址表,用以記錄屬於一閒置狀態的邏輯存取位址,其中屬於該閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
- 如申請專利範圍第1項所述之程式化記憶胞的方法,其中該指令為一寫入指令並且該變更操作為指示將一更新資料寫入至該第一邏輯頁面的該些邏輯存取位址之中的至少一已更新邏輯存取位址,其中根據該指令識別該第一邏輯頁面的該些邏輯存取位址之中的該至少一無效邏輯存取位址與該至少一有效邏輯存取位址的步驟包括:判斷在該第一邏輯頁面的該些邏輯存取位址之中除了該至少一已更新邏輯存取位址之外的至少一其他邏輯存取位址是否為未被寫過邏輯存取位址或已刪除邏輯存取位址;以及倘若該至少一其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,將該至少一其他邏輯存取位址識別為該至少一無效邏輯存取位址。
- 如申請專利範圍第4項所述之程式化記憶胞的方法,其中根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的 資料位元區的步驟包括:將該更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體存取位址。
- 如申請專利範圍第4項所述之程式化記憶胞的方法,更包括加密該更新資料以產生一已加密更新資料,其中根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的資料位元區的步驟包括:將該已加密更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體存取位址。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體區塊,每一該些實體區塊包括多個實體頁面,每一該些實體頁面包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址,該冗餘位元區分別地記錄對應該些實體存取位址的多個旗標,多個邏輯頁面被配置以映射部分的該些實體頁面,並且每一該些邏輯頁面具有多個邏輯存取位址;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮 發性記憶體模組,其中該記憶體控制器接收一指令,該指令指示對該些邏輯頁面之中的一第一邏輯頁面進行一變更操作,其中該記憶體控制器根據該指令識別該第一邏輯頁面的該些邏輯存取位址之中的至少一無效邏輯存取位址與至少一有效邏輯存取位址,其中該記憶體控制器從該些實體頁面中選擇一第一實體頁面,其中該記憶體控制器將對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標設定為一有效狀態,並將對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標設定為一無效狀態,其中該記憶體控制器根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的資料位元區,將對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標與對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標程式化至該第一實體頁面的冗餘位元區,其中該記憶體控制器將該第一實體頁面映射至該第一邏輯頁面,其中在該第一實體頁面的該資料位元區中除了對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料之外,其他資料為無效資料。
- 如申請專利範圍第7項所述之記憶體儲存裝置, 其中該第一邏輯頁面原始映射至一第二實體頁面,該第二實體頁面儲存有屬於該第一邏輯頁面的該些邏輯存取位址的資料,該指令為一整理指令(trim command)並且該變更操作是指示該第一邏輯頁面的該些邏輯存取位址之中的至少一第一邏輯存取位址為一已刪除邏輯存取位址,其中該記憶體控制器根據該整理指令將該第一邏輯頁面的該至少一第一邏輯存取位址識別為該至少一無效邏輯存取位址,其中該記憶體控制器更用以從該第二實體頁面中讀取屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料,其中該記憶體控制器更用以將屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第一實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第一實體存取位址。
- 如申請專利範圍第7項所述之記憶體儲存裝置,其中該記憶體控制器更用以建立一閒置邏輯位址表,用以記錄屬於一閒置狀態的邏輯存取位址,其中屬於該閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
- 如申請專利範圍第7項所述之記憶體儲存裝置,其中該指令為一寫入指令,該變更操作是指示將一更新資料寫入至該第一邏輯頁面的該些邏輯存取位址之中的至少 一已更新邏輯存取位址,其中該記憶體控制器更用以判斷在該第一邏輯頁面的該些邏輯存取位址之中除了該至少一已更新邏輯存取位址之外的至少一其他邏輯存取位址是否為未被寫過邏輯存取位址或已刪除邏輯存取位址,倘若該至少一其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,該記憶體控制器將該至少一其他邏輯存取位址識別為該至少一無效邏輯存取位址。
- 如申請專利範圍第10項所述之記憶體儲存裝置,其中該記憶體控制器更用以將該更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體存取位址。
- 如申請專利範圍第10項所述之記憶體儲存裝置,該記憶體控制器更用以加密該更新資料以產生一已加密更新資料,其中該記憶體控制器更用以將該已加密更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體存取位址。
- 如申請專利範圍第7項所述之記憶體儲存裝置, 該記憶體控制器更用以從該主機系統接收一讀取指令,其中該讀取指令指示讀取屬於該第一邏輯頁面的一第二邏輯存取位址的資料,其中該記憶體控制器更用以從該第一實體頁面的資料位元區的一第三實體存取位址中讀取一資料,其中屬於該第二邏輯存取位址的資料被儲存在該第一實體頁面的資料位元區的該第三實體存取位址中,其中該記憶體控制器更用以判斷記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標是否為該無效狀態,其中倘若記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標非為該無效狀態時,該記憶體控制器將從該第一實體頁面的資料位元區的該第三實體存取位址中讀取的資料傳送給該主機系統,其中倘若記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標為該無效狀態時,該記憶體控制器將一預設值傳送給該主機系統。
- 如申請專利範圍第13項所述之記憶體儲存裝置,其中該記憶體控制器更用以解密從該第一實體頁面的資料位元區的該第三實體存取位址中讀取的資料以獲取一解密資料,並將該解密資料傳送至該主機系統以回應該讀取指令。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括 多個實體區塊,每一該些實體區塊包括多個實體頁面,每一該些實體頁面包括一資料位元區與一冗餘位元區,該資料位元區包括多個實體存取位址,該冗餘位元區分別地記錄對應該些實體存取位址的多個旗標,多個邏輯頁面被配置以映射部分的該些實體頁面,並且每一該些邏輯頁面具有多個邏輯存取位址,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,並且從該主機系統接收一指令,該指令指示對該些邏輯頁面之中的一第一邏輯頁面進行一變更操作,其中該記憶體管理電路根據該指令識別該第一邏輯頁面的該些邏輯存取位址之中的至少一無效邏輯存取位址與至少一有效邏輯存取位址,其中該記憶體管理電路從該些實體頁面中選擇一第一實體頁面,其中該記憶體管理電路將對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標設定為一有效狀態,並將對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標設定為一無效狀態,其中該記憶體管理電路根據該變更操作將對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料程式化至該第一實體頁面的資料位元區,並將對應該第一邏輯頁面 的該至少一有效邏輯存取位址的至少一旗標與對應該第一邏輯頁面的該至少一無效邏輯存取位址的至少一旗標程式化至該第一實體頁面的冗餘位元區,其中該記憶體管理電路將該第一實體頁面映射至該第一邏輯頁面,其中在該第一實體頁面的該資料位元區中除了對應該第一邏輯頁面的該至少一有效邏輯存取位址的資料之外,其他資料為無效資料。
- 如申請專利範圍第15項所述之記憶體控制器,其中該第一邏輯頁面原始映射至一第二實體頁面,該第二實體頁面儲存有屬於該第一邏輯頁面的該些邏輯存取位址的資料,該指令為一整理指令(trim command)並且該變更操作是指示該第一邏輯頁面的該些邏輯存取位址之中的至少一第一邏輯存取位址為一已刪除邏輯存取位址,其中該記憶體管理電路根據該整理指令將該第一邏輯頁面的該至少一第一邏輯存取位址識別為該至少一無效邏輯存取位址,其中該記憶體管理電路更用以從該第二實體頁面中讀取屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料,其中該記憶體管理電路更用以將屬於該第一邏輯頁面的該至少一有效邏輯存取位址的資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第一實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯 存取位址的至少一旗標是對應至該至少一第一實體存取位址。
- 如申請專利範圍第15項所述之記憶體控制器,其中該記憶體管理電路更用以建立一閒置邏輯位址表,用以記錄屬於一閒置狀態的邏輯存取位址,其中屬於該閒置狀態的邏輯存取位址為未被寫過資料的邏輯存取位址或者所儲存之資料已被刪除的邏輯存取位址。
- 如申請專利範圍第15項所述之記憶體控制器,其中該指令為一寫入指令,該變更操作是指示將一更新資料寫入至該第一邏輯頁面的該些邏輯存取位址之中的至少一已更新邏輯存取位址,其中該記憶體管理電路更用以判斷在該第一邏輯頁面的該些邏輯存取位址之中除了該至少一已更新邏輯存取位址之外的至少一其他邏輯存取位址是否為未被寫過邏輯存取位址或已刪除邏輯存取位址,倘若該至少一其他邏輯存取位址為未被寫過邏輯存取位址或已刪除邏輯存取位址時,該記憶體管理電路將該至少一其他邏輯存取位址識別為該至少一無效邏輯存取位址。
- 如申請專利範圍第18項所述之記憶體控制器,其中該記憶體管理電路更用以將該更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址中,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體 存取位址。
- 如申請專利範圍第18項所述之記憶體控制器,更包括一加密解密電路,該加密解密電路用以加密該更新資料以產生一已加密更新資料,其中該記憶體管理電路更用以將該已加密更新資料寫入至該第一實體頁面的資料位元區的實體存取位址之中的至少一第二實體存取位址,其中對應該第一邏輯頁面的該至少一有效邏輯存取位址的至少一旗標是對應至該至少一第二實體存取位址。
- 如申請專利範圍第15項所述之記憶體控制器,該記憶體管理電路更用以從該主機系統接收一讀取指令,其中該讀取指令指示讀取屬於一第二邏輯存取位址的資料,其中該記憶體管理電路更用以從該第一實體頁面的資料位元區的一第三實體存取位址中讀取一資料,其中屬於該第二邏輯存取位址的資料被儲存在該第一實體頁面的資料位元區的該第三實體存取位址中,其中該記憶體管理電路更用以判斷記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標是否為該無效狀態,其中倘若記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標非為該無效狀態時,該記憶體管理電路將從該第一實體頁面的資料位元區的該第三實體存取位址中讀取的資料傳送給該主機系統, 其中倘若記錄在該第一實體頁面的冗餘位元區中對應該第三實體存取位址的旗標為該無效狀態時,該記憶體管理電路將一預設值傳送給該主機系統。
- 如申請專利範圍第21項所述之記憶體控制器,更包括一加密解密電路,該加密解密電路用以解密從該第一實體頁面的資料位元區的該第三實體存取位址中讀取的資料以獲取一解密資料,該記憶體管理電路更用以將該解密資料傳送至該主機系統以回應該讀取指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101108660A TWI475385B (zh) | 2012-03-14 | 2012-03-14 | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
US13/528,840 US9037782B2 (en) | 2012-03-14 | 2012-06-21 | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101108660A TWI475385B (zh) | 2012-03-14 | 2012-03-14 | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201337554A TW201337554A (zh) | 2013-09-16 |
TWI475385B true TWI475385B (zh) | 2015-03-01 |
Family
ID=49158797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101108660A TWI475385B (zh) | 2012-03-14 | 2012-03-14 | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9037782B2 (zh) |
TW (1) | TWI475385B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111435287A (zh) * | 2019-01-14 | 2020-07-21 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326113A1 (en) * | 2012-05-29 | 2013-12-05 | Apple Inc. | Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory |
TWI493339B (zh) * | 2012-06-13 | 2015-07-21 | Silicon Motion Inc | 資料儲存裝置及資料清除方法 |
JP6034183B2 (ja) * | 2012-12-27 | 2016-11-30 | 株式会社東芝 | 半導体記憶装置 |
TWI489279B (zh) * | 2013-11-27 | 2015-06-21 | Realtek Semiconductor Corp | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
KR102430198B1 (ko) | 2014-06-12 | 2022-08-05 | 삼성전자주식회사 | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 |
WO2016017287A1 (ja) * | 2014-07-28 | 2016-02-04 | ソニー株式会社 | メモリコントローラ、メモリシステムおよび情報処理システム |
TWI512750B (zh) * | 2014-07-30 | 2015-12-11 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 |
CN105335299B (zh) * | 2014-08-12 | 2018-10-02 | 群联电子股份有限公司 | 数据存储方法、存储器控制电路单元及存储器存储装置 |
CN105700952A (zh) * | 2014-11-26 | 2016-06-22 | 中兴通讯股份有限公司 | 嵌入式系统内存统计方法及装置 |
TWI557744B (zh) * | 2015-01-27 | 2016-11-11 | 緯創資通股份有限公司 | 資料儲存方法及嵌入式系統 |
KR20170051563A (ko) * | 2015-10-29 | 2017-05-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170053278A (ko) * | 2015-11-06 | 2017-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102466412B1 (ko) * | 2016-01-14 | 2022-11-15 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
TWI557561B (zh) * | 2016-02-05 | 2016-11-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN107102951B (zh) * | 2016-02-19 | 2019-08-06 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器储存装置 |
CN111625477B (zh) * | 2016-07-01 | 2023-09-05 | 北京忆恒创源科技股份有限公司 | 访问擦除块的读请求的处理方法与装置 |
US10261876B2 (en) * | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
TWI639918B (zh) * | 2017-05-11 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN110489052B (zh) * | 2018-05-14 | 2022-11-25 | 慧荣科技股份有限公司 | 数据储存装置 |
CN111367824B (zh) * | 2018-12-25 | 2022-03-29 | 北京兆易创新科技股份有限公司 | 一种控制映射表的方法以及装置 |
US11216189B2 (en) * | 2019-04-01 | 2022-01-04 | Silicon Motion, Inc. | Method and computer program product for reading partial data of a page on multiple planes |
TWI737031B (zh) * | 2019-04-01 | 2021-08-21 | 慧榮科技股份有限公司 | 多平面上頁面的片段資料讀取方法及電腦程式產品 |
US11615029B2 (en) | 2019-12-30 | 2023-03-28 | Micron Technology, Inc. | Full multi-plane operation enablement |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259715A1 (en) * | 2003-04-28 | 2006-11-16 | Advanced Micro Devices, Inc. | System and method for identifying empty locations in a scrambled memory |
US20090125668A1 (en) * | 2003-09-10 | 2009-05-14 | Hyperstone Ag | Management of erased blocks in flash memories |
US20110029723A1 (en) * | 2004-08-06 | 2011-02-03 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems |
US20110028304A1 (en) * | 2007-12-11 | 2011-02-03 | Dmitry Vasilievich Somichev | Ceramic mass for brick making and way of production |
US20110145473A1 (en) * | 2009-12-11 | 2011-06-16 | Nimble Storage, Inc. | Flash Memory Cache for Data Storage Device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9026716B2 (en) * | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
-
2012
- 2012-03-14 TW TW101108660A patent/TWI475385B/zh active
- 2012-06-21 US US13/528,840 patent/US9037782B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259715A1 (en) * | 2003-04-28 | 2006-11-16 | Advanced Micro Devices, Inc. | System and method for identifying empty locations in a scrambled memory |
US20090125668A1 (en) * | 2003-09-10 | 2009-05-14 | Hyperstone Ag | Management of erased blocks in flash memories |
US20110029723A1 (en) * | 2004-08-06 | 2011-02-03 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems |
US20110028304A1 (en) * | 2007-12-11 | 2011-02-03 | Dmitry Vasilievich Somichev | Ceramic mass for brick making and way of production |
US20110145473A1 (en) * | 2009-12-11 | 2011-06-16 | Nimble Storage, Inc. | Flash Memory Cache for Data Storage Device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
US11347635B2 (en) | 2019-01-04 | 2022-05-31 | Phison Electronics Corp. | Memory control method, memory storage device and memory control circuit unit |
CN111435287A (zh) * | 2019-01-14 | 2020-07-21 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111435287B (zh) * | 2019-01-14 | 2023-06-27 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
US20130246732A1 (en) | 2013-09-19 |
US9037782B2 (en) | 2015-05-19 |
TW201337554A (zh) | 2013-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI475385B (zh) | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI479359B (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI399643B (zh) | 快閃記憶體儲存系統及其控制器與資料寫入方法 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI516921B (zh) | 資料處理方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI447580B (zh) | 管理記憶體空間的方法、記憶體控制器與記憶體儲存裝置 | |
TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TW201305818A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
US8607123B2 (en) | Control circuit capable of identifying error data in flash memory and storage system and method thereof | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
CN105183660B (zh) | 数据读取方法、存储器控制器与储存装置 | |
CN112988076A (zh) | 快闪存储器控制方法、存储装置及控制器 | |
TW201638960A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |