TWI459198B - 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 - Google Patents
記憶體儲存裝置、其記憶體控制器與有效資料識別方法 Download PDFInfo
- Publication number
- TWI459198B TWI459198B TW100124253A TW100124253A TWI459198B TW I459198 B TWI459198 B TW I459198B TW 100124253 A TW100124253 A TW 100124253A TW 100124253 A TW100124253 A TW 100124253A TW I459198 B TWI459198 B TW I459198B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- physical
- data
- specific
- logical
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種識別有效資料的方法,且特別是有關於一種在斷電後亦能識別出有效資料的方法,及實行此方法的記憶體儲存裝置與記憶體控制器。
快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,因此被廣泛地應用於各種電子裝置。也有越來越多如記憶卡或隨身碟等可攜式儲存裝置是以快閃記憶體作為其中的儲存媒體。
一般來說,記憶體儲存裝置的快閃記憶體會劃分為多個實體區塊且這些實體區塊會分組為資料區(data area)與閒置區(spare area)。屬於資料區的實體區塊會儲存由寫入指令所寫入的有效資料,而閒置區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當記憶體儲存裝置接受到主機的寫入指令而欲對資料區的實體區塊進行寫入時,記憶體儲存裝置會從閒置區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入提取自閒置區的實體區塊,且將已寫入新資料的實體區塊關聯為資料區,並將原本資料區的實體區塊進行抹除並關聯為閒置區。
為了實現上述運作方式,記憶體儲存裝置會提供邏輯區塊給主機以進行資料存取。具體來說,記憶體儲存裝置會維護一邏輯區塊-實體區塊對映表(logical block-physical block mapping table)來記錄邏輯區塊與資料區中之實體區塊的對映關係。同時,當記憶體儲存裝置執行寫入指令而使資料區的實體區塊與閒置區的實體區塊進行輪替時,記憶體儲存裝置會更新邏輯與實體區塊對映表,以利後續正確存取。
然而,為了提升資料寫入的速度並避免無謂的資料搬移動作,記憶體儲存裝置在從閒置區提取實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲更新的資料寫入提取自閒置區的實體區塊後,不會立刻將資料區中欲寫入的實體區塊中的所有有效資料搬移至提取自閒置區的實體區塊並抹除資料區中欲寫入的實體區塊,而會使資料區中欲寫入的實體區塊與提取自閒置區的實體區塊暫時地維持一母子暫態關係。其中,資料區中的實體區塊稱為母實體區塊,而提取自閒置區的實體區塊稱為子實體區塊。但由於主機每次寫入之資料的資料量不盡相同,為了使寫入動作更有效率,一個母實體區塊可能同時具有數個子實體區塊,例如用以寫入連續資料的子實體區塊,以及用以寫入少量資料的子實體區塊等。基此,可能有分別屬於不同實體區塊的實體頁面會對應至同一個邏輯頁面。
一般來說,記憶體儲存裝置會維護一記錄表來記錄邏輯頁面最新對應至哪個實體頁面。但不正常斷電可能會造成記錄表遺失或內容更新不及,因而導致在重新供給電力後,雖能找出對應至某一邏輯頁面的實體頁面有哪些,但卻無法辨別該邏輯頁面的最新有效資料是儲存在哪一個實體頁面之中。
本發明提供一種有效資料識別方法,能在記憶體儲存裝置不正常斷電並重新取得電力後,正確地識別出有效資料的記錄位置。
本發明提供一種記憶體控制器,據以在記憶體儲存裝置不正常斷電並重新取得電力後,正確地識別出有效資料的記錄位置。
本發明提供一種記憶體儲存裝置,其在不正常斷電並重新取得電力後,仍能正確地識別出有效資料的記錄位置。
本發明提出一種有效資料識別方法,用於具有可複寫式非揮發性記憶體晶片的記憶體儲存裝置。其中,可複寫式非揮發性記憶體晶片包括多個實體區塊,各實體區塊包括多個實體頁面,各實體頁面包括資料位元區與冗餘位元區,且上述實體區塊至少分組為資料區與閒置區。此方法包括配置多個邏輯區塊以映射資料區中的實體區塊,其中各邏輯區塊包括多個邏輯頁面。此方法還包括接收主機系統欲寫入上述邏輯頁面中的一特定邏輯頁面的資料時,選擇一替換實體區塊並將資料寫入替換實體區塊中的特定實體頁面,以及在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址。其中,替換實體區塊是提取自閒置區並且映射特定邏輯頁面所屬之邏輯區塊。
在本發明之一範例實施例中,此有效資料識別方法更包括在將資料寫入特定實體頁面時,將資料寫入特定實體頁面的資料位元區。在特定實體頁面之冗餘位元區的第一記錄區記錄先前資料被寫入的實體頁面的位址,以及在特定實體頁面之冗餘位元區第二記錄區記錄特定邏輯頁面的位址。
在本發明之一範例實施例中,此有效資料識別方法更包括當記憶體儲存裝置被重新啟動之後,在所有對應至特定邏輯頁面的實體頁面中找出第一實體頁面,此第一實體頁面相對應的實體頁面位址未被記錄於其他對應至特定邏輯頁面的實體頁面中,並判定特定邏輯頁面的有效資料係寫入在第一實體頁面。
在本發明之一範例實施例中,其中在所有對應至特定邏輯頁面的實體頁面中找出第一實體頁面的步驟包括取得所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊,以及依據所取得之實體區塊中的各實體頁面之冗餘位元區所記錄的內容,在所有對應至特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之冗餘位元區的實體頁面以作為第一實體頁面。
在本發明之一範例實施例中,其中在判定特定邏輯頁面的有效資料係寫入在所找出的實體頁面的步驟之後,此有效資料識別方法更包括將所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊整併至一新實體區塊,並且建立特定邏輯頁面所屬之邏輯區塊與新實體區塊的映射關係。
在本發明之一範例實施例中,其中在選擇替換實體區塊並將資料寫入替換實體區塊中的特定實體頁面的步驟之後,此方法更包括判斷特定邏輯頁面是否曾被主機系統寫入,以在判定特定邏輯頁面曾被主機系統寫入時才執行在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址的步驟。並且,若判定特定邏輯頁面未曾被主機系統寫入,則在特定實體頁面標註不存在先前資料。
在本發明之一範例實施例中,其中在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址的步驟是在判定特定邏輯頁面的位址符合預設範圍時才執行。
在本發明之一範例實施例中,其中記憶體儲存裝置包括緩衝記憶體,而此有效資料識別方法更包括根據緩衝記憶體所記錄的頁面對應資訊取得先前資料被寫入的實體頁面的位址,以及在特定實體頁面記錄先前資料被寫入的實體頁面之後,將頁面對應資訊更新為特定實體頁面的位址。
在本發明之一範例實施例中,其中接收主機系統欲寫入特定邏輯頁面的資料時選擇替換實體區塊的步驟包括若替換實體區塊的數量大於1,則根據資料的資料量選擇其中一個替換實體區塊來寫入資料。
從另一觀點來看,本發明提出一種記憶體控制器,用於管理記憶體儲存裝置中的可複寫式非揮發性記憶體晶片。此可複寫式非揮發性記憶體晶片包括多個實體區塊,各實體區塊包括多個實體頁面,且各實體頁面包括資料位元區與冗餘位元區。此記憶體控制器包括主機系統介面、記憶體介面,以及記憶體管理電路。主機系統介面用以耦接主機系統。記憶體介面用以耦接可複寫式非揮發性記憶體晶片。記憶體管理電路耦接至主機系統介面與記憶體介面,記憶體管理電路用以將上述實體區塊至少分組為資料區與閒置區,並配置多個邏輯區塊以映射資料區中的實體區塊,其中各邏輯區塊包括多個邏輯頁面。記憶體管理電路更用以在透過主機系統介面接收主機系統欲寫入上述邏輯頁面中的一特定邏輯頁面的資料時,選擇替換實體區塊並將資料寫入替換實體區塊中的特定實體頁面,以及在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址。其中替換實體區塊是提取自閒置區並且映射特定邏輯頁面所屬之邏輯區塊。
在本發明之一範例實施例中,其中記憶體管理電路更用以將資料寫入特定實體頁面的資料位元區,在特定實體頁面之冗餘位元區的第一記錄區記錄先前資料被寫入的實體頁面的位址,以及在特定實體頁面之冗餘位元區第二記錄區記錄特定邏輯頁面的位址。
在本發明之一範例實施例中,當記憶體儲存裝置被重新啟動之後,記憶體管理電路更用以在所有對應至特定邏輯頁面的實體頁面中找出第一實體頁面,此第一實體頁面相對應的實體頁面位址未被記錄於其他對應至特定邏輯頁面的實體頁面中,並判定特定邏輯頁面的有效資料係寫入在此第一實體頁面。
在本發明之一範例實施例中,其中記憶體管理電路更用以取得所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊,以及依據所取得之實體區塊中的各實體頁面之冗餘位元區所記錄的內容,在所有對應至特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之冗餘位元區的實體頁面以作為第一實體頁面。
在本發明之一範例實施例中,其中記憶體管理電路更用以在判定特定邏輯頁面的有效資料係寫入在所找出的實體頁面之後,將所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊整併為新實體區塊,並建立特定邏輯頁面所屬之邏輯區塊與新實體區塊的映射關係。
在本發明之一範例實施例中,其中記憶體管理電路判斷特定邏輯頁面是否曾被主機系統寫入,以在判定特定邏輯頁面曾被主機系統寫入時,在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址。若判定特定邏輯頁面未曾被主機系統寫入,記憶體管理電路在特定實體頁面標註不存在先前資料。
在本發明之一範例實施例中,其中記憶體管理電路在該特定邏輯頁面的位址符合預設範圍時,才在特定實體頁面記錄先前資料被寫入之實體頁面的位址。
在本發明之一範例實施例中,其中記憶體控制器更包括耦接至記憶體管理電路的緩衝記憶體。緩衝記憶體用以記錄頁面對應資訊。而記憶體管理電路更用以根據頁面對應資訊取得先前資料被寫入的實體頁面的位址,以及在特定實體頁面記錄先前資料被寫入的實體頁面之後,將頁面對應資訊更新為特定實體頁面的位址。
在本發明之一範例實施例中,其中記憶體管理電路更用以在替換實體區塊的數量大於1時,根據資料的資料量選擇其中一個替換實體區塊來寫入資料。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體晶片、連接器,以及記憶體控制器。其中,複寫式非揮發性記憶體晶片包括多個實體區塊,各實體區塊包括多個實體頁面,且各實體頁面包括資料位元區與冗餘位元區。連接器用以耦接主機系統。記憶體控制器耦接至可複寫式非揮發性記憶體晶片與連接器,記憶體控制器用以將上述實體區塊至少分組為資料區與閒置區,並配置多個邏輯區塊以映射資料區中的實體區塊,其中各邏輯區塊包括多個邏輯頁面。記憶體控制器更用以在透過連接器接收主機系統欲寫入上述邏輯頁面中的一特定邏輯頁面的資料時,選擇替換實體區塊並將資料寫入替換實體區塊中的特定實體頁面,以及在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址。其中替換實體區塊是提取自閒置區並且映射特定邏輯頁面所屬之邏輯區塊。
在本發明之一範例實施例中,其中記憶體控制器更用以將資料寫入特定實體頁面的資料位元區,在特定實體頁面之冗餘位元區的第一記錄區記錄先前資料被寫入的實體頁面的位址,以及在特定實體頁面之冗餘位元區第二記錄區記錄特定邏輯頁面的位址。
在本發明之一範例實施例中,當記憶體儲存裝置被重新啟動之後,記憶體控制器更用以在所有對應至特定邏輯頁面的實體頁面中找出第一實體頁面,此第一實體頁面相對應的實體頁面位址未被記錄於其他對應至特定邏輯頁面的實體頁面中,並判定特定邏輯頁面的有效資料係寫入在此第一實體頁面。
在本發明之一範例實施例中,其中記憶體控制器更用以取得所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊,以及依據所取得之實體區塊中的各實體頁面之冗餘位元區所記錄的內容,在所有對應至特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之冗餘位元區的實體頁面以作為第一實體頁面。
在本發明之一範例實施例中,其中記憶體控制器更用以在判定特定邏輯頁面的有效資料係寫入在所找出的實體頁面之後,將所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊整併為新實體區塊,並建立特定邏輯頁面所屬之邏輯區塊與新實體區塊的映射關係。
在本發明之一範例實施例中,其中記憶體控制器判斷特定邏輯頁面是否曾被主機系統寫入,以在判定特定邏輯頁面曾被主機系統寫入時在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址。若判定特定邏輯頁面未曾被主機系統寫入,記憶體控制器在特定實體頁面標註不存在先前資料。
在本發明之一範例實施例中,其中記憶體控制器在該特定邏輯頁面的位址符合預設範圍時,才在特定實體頁面記錄先前資料被寫入之實體頁面的位址。
在本發明之一範例實施例中,其中記憶體控制器更包括緩衝記憶體,用以記錄頁面對應資訊。而記憶體控制器更用以根據頁面對應資訊取得先前資料被寫入的實體頁面的位址,以及在特定實體頁面記錄先前資料被寫入的實體頁面之後,將頁面對應資訊更新為特定實體頁面的位址。
在本發明之一範例實施例中,其中記憶體控制器更用以在替換實體區塊的數量大於1時,根據資料的資料量選擇其中一個替換實體區塊來寫入資料。
基於上述,本發明在主機系統要將資料寫入一邏輯頁面時,在對應的實體頁面記錄上一次寫入該邏輯頁面的資料是被寫入至哪個實體頁面。如此,即便記憶體儲存裝置遭逢不正常斷電,在重新啟動後亦能根據實體頁面記錄的資訊,從對應相同邏輯頁面的所有實體頁面中找出具有最新有效資料的實體頁面,從而避免不正常斷電造成的資料遺失情況。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括記憶體晶片與控制器(亦稱,控制電路)。通常記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。另外,亦有記憶體儲存裝置是包括嵌入式記憶體與可執行於主機系統上以實質地作為此嵌入式記憶體之控制器的軟體。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108以及資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體晶片106。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為通用序列匯流排(Universal Serial Bus,USB)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體晶片106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之有效資料識別方法,在記憶體儲存裝置100斷電並重新取得電力之後,識別有效資料的儲存位置。本範例實施例之有效資料識別方法將於後配合圖示再作說明。
可複寫式非揮發性記憶體晶片106耦接至記憶體控制器104。可複寫式非揮發性記憶體晶片106係用以儲存如檔案配置表(File Allocation Table,FAT)或增強型文件系統(New Technology File System,NTFS)等檔案系統資訊,以及儲存如文字、影像或聲音檔案等一般性資料。舉例來說,可複寫式非揮發性記憶體晶片106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片,但本發明不限於此,可複寫式非揮發性記憶體晶片106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片、其他快閃記憶體晶片或任何具有相同特性的記憶體晶片。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043,以及記憶體介面1045。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為USB介面,而在其他範例實施例中,主機系統介面1041也可以是SATA介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100運作時,上述控制指令會被執行以實現本範例實施例之有效資料識別方法。
在一範例實施例中,記憶體管理電路1043的控制指令是以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例之有效資料識別方法。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體晶片106的特定區域(例如,可複寫式非揮發性記憶體晶片106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體晶片106中之控制指令載入至記憶體管理電路1043的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本範例實施例之有效資料識別方法。此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體晶片106相耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體晶片106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體晶片106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體晶片106所能接受的格式。
在本發明之一範例實施例中,記憶體控制器104還包括緩衝記憶體3002。緩衝記憶體3002可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。緩衝記憶體3002耦接至記憶體管理電路1043,用以暫存來自於主機系統1000的資料,或暫存來自於可複寫式非揮發性記憶體晶片106的資料。在本範例實施例中,緩衝記憶體3002亦會暫存記憶體儲存裝置100在運作中產生的系統資料,例如邏輯區塊-實體區塊映射表(logical block-physical block mapping table)等等。
在本發明另一範例實施例中,記憶體控制器104還包括電源管理電路3004。電源管理電路3004耦接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
在本發明又一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3006。錯誤檢查與校正電路3006耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查與校正電路3006會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體晶片106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體晶片106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3006會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4A與圖4B是根據本發明之一範例實施例所繪示之管理實體區塊的示意圖。
請參照圖4A,可複寫式非揮發性記憶體晶片106包括實體區塊410(0)~410(N),其中,每一實體區塊包括多個實體頁面。而記憶體控制器104的記憶體管理電路1043會將實體區塊410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4A所標示的F、S、R與N為正整數,代表各區配置的實體區塊數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體晶片106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體區塊是被視為已儲存資料的實體區塊,而閒置區504的實體區塊是用以替換資料區502的實體區塊。換句話說,閒置區504的實體區塊為空或可使用的實體區塊(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體區塊,並且將資料寫入至所提取的實體區塊中,以替換資料區502的實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體晶片106的製造商與型號、可複寫式非揮發性記憶體晶片106的實體區塊數、每一實體區塊的實體頁面數,以及邏輯區塊-實體區塊映射表等。
邏輯上屬於取代區508中的實體區塊是用以在資料區502、閒置區504或系統區506中的實體區塊損毀時,取代損壞的實體區塊。具體而言,倘若取代區508中仍存有正常之實體區塊且資料區502的實體區塊損壞時,記憶體管理電路1043會從取代區508中提取正常的實體區塊來更換資料區502中損壞的實體區塊。
請參照圖4B,在本範例實施例中,記憶體管理電路1043會配置數個邏輯區塊610(0)~610(F-1),且邏輯區塊610(0)~610(F-1)會映射至資料區502的實體區塊410(0)~410(F-1)。詳言之,各邏輯區塊所包括的邏輯頁面會依序地映射至相對應之實體區塊中的實體頁面,且各邏輯頁面所具有的多個邏輯扇區會映射至對應之實體頁面中的實體扇區。記憶體管理電路1043將所配置的邏輯區塊提供給主機系統1000,並維護邏輯區塊-實體區塊映射表以記錄邏輯區塊610(0)~610(F-1)與資料區502的實體區塊410(0)~410(F-1)之間的映射關係。因此當主機系統1000欲讀取某一邏輯位址時,記憶體管理電路1043可將主機系統1000所欲讀取的邏輯位址轉換為對應之邏輯區塊、邏輯頁面或邏輯扇區,並且透過邏輯區塊-實體區塊映射表於對應之實體區塊的實體頁面中讀取資料。
圖5A至圖5C是根據本發明之一範例實施例所繪示之可複寫式非揮發性記憶體晶片的運作示意圖。
請同時參照圖5A至圖5C,在本範例實施例中,假設邏輯區塊610(0)是映射至實體區塊410(0),當記憶體控制器104接收到來自主機系統1000的寫入指令而欲將資料寫入至屬於邏輯區塊610(0)的邏輯頁面時,記憶體管理電路1043會依據邏輯區塊-實體區塊映射表識別邏輯區塊610(0)目前是映射至實體區塊410(0),並且從閒置區504提取實體區塊410(F)作為替換實體區塊以輪替實體區塊410(0)。然而,當記憶體管理電路1043將新資料寫入至實體區塊410(F)的同時,記憶體管理電路1043不會立刻將實體區塊410(0)中的所有有效資料搬移至實體區塊410(F)而抹除實體區塊410(0)。具體來說,如圖5A所示,記憶體管理電路1043會將實體區塊410(0)中在欲寫入之實體頁面之前的有效資料(例如,實體區塊410(0)的第0實體頁面與第1實體頁面中的資料)複製至實體區塊410(F)的第0實體頁面與第1實體頁面中,並且如圖5B所示,將新資料寫入至實體區塊410(F)的第2實體頁面與第3實體頁面中。此時,記憶體管理電路1043即完成寫入的運作。因為實體區塊410(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊410(0)中的有效資料搬移至實體區塊410(F)可能會造成無謂的搬移。此外,資料必須依序地寫入至實體區塊內的實體頁面,因此,記憶體管理電路1043僅會先搬移欲寫入實體頁面之前的有效資料。
在本範例實施例中,暫時地維持實體區塊410(0)與實體區塊410(F)之母子暫態關係的運作稱為開啟(open)母子區塊,且原實體區塊(即實體區塊410(0))稱為母實體區塊而替換實體區塊(即實體區塊410(F))稱為子實體區塊。
之後,當需要將實體區塊410(0)與實體區塊410(F)的內容合併(merge)時,記憶體管理電路1043才會將實體區塊410(0)與實體區塊410(F)的資料整併至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為資料合併程序或關閉(close)母子區塊。例如,如圖5C所示,當進行關閉母子區塊時,記憶體管理電路1043會將實體區塊410(0)中剩餘的有效資料(即,實體區塊410(0)的第4實體頁面~第(K)實體頁面中的資料)複製至替換實體區塊410(F)的第4實體頁面~第(K)實體頁面中,然後將實體區塊410(0)抹除並關聯至閒置區504,同時,將實體區塊410(F)關聯至資料區502。也就是說,記憶體管理電路1043會在邏輯區塊-實體區塊映射表中將邏輯區塊610(0)重新映射至實體區塊410(F)。此外,在本範例實施例中,記憶體管理電路1043會建立閒置區實體區塊表(未繪示)來記錄目前被關聯至閒置區的實體區塊。值得一提的是,閒置區504中實體區塊的數目是有限的,基此,在記憶體儲存裝置100運作期間,開啟之母子區塊的組數亦會受到限制。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子區塊的組數達到上限時,記憶體管理電路1043需關閉至少一組目前已開啟之母子區塊(即,執行關閉母子區塊運作)以執行此寫入指令。
必須特別說明的是,在本範例實施例中,實體區塊410(0)可能同時與多個提取自閒置區504的替換實體區塊具有母子暫態關係。換言之,每一母實體區塊可能有多個子實體區塊,而每個子實體區塊係對應不同(或相同)型態的資料寫入模式。記憶體管理電路1043會維護一母子區塊對應表來記錄母實體區塊與子實體區塊的對應關係。
舉例來說,當主機系統1000欲將連續資料寫入屬於邏輯區塊610(0)的一邏輯頁面時,記憶體管理電路1043會依據邏輯區塊-實體區塊映射表識別邏輯區塊610(0)目前是映射至實體區塊410(0),並從閒置區504提取一個替換實體區塊以寫入上述連續資料。爾後,倘若主機系統1000欲對上述連續資料進行更新(例如進行回寫),記憶體管理電路1043會再從閒置區504提取另一個替換實體區塊來寫入此次要更新的資料。之後,若主機系統1000要再寫入該邏輯頁面,且欲寫入之資料的資料量小於一門檻值,記憶體管理電路1043將再從閒置區504提取另一個替換實體區塊來寫入資料。
在本範例實施例中,每當主機系統1000下達寫入指令時,記憶體管理電路1043可適時提取新的替換實體區塊,或者將資料寫入已提取的替換實體區塊。倘若一母實體區塊具有一個以上的替換實體區塊(即,子實體區塊),記憶體管理電路1043將根據主機系統1000欲寫入之資料的資料量來選擇替換實體區塊以寫入資料。正因如此,在針對母實體區塊與其所具有之各子實體區塊進行關閉母子區塊的運作之前,母實體區塊的有效資料會散布在其所具有的各子實體區塊中。
也正因為在主機系統1000每次要將資料寫入一邏輯頁面時,記憶體管理電路1043可根據欲寫入之資料的資料量來選擇替換實體區塊以儲存寫入資料,因此在主機系統1000對某一邏輯頁面進行多次資料寫入的操作後,可能有數個屬於相同或不同替換實體區塊的實體頁面會對應至該邏輯頁面。對此,記憶體管理電路1043每次將資料寫入替換實體區塊中的實體頁面時,會在緩衝記憶體3002記錄對應該邏輯頁面的一頁面對應資訊,以記錄目前該邏輯頁面之最新有效資料是記錄在哪個實體頁面。其中,頁面對應資訊記錄的是此實體頁面的位址。
各種在記憶體儲存裝置100運作過程中所產生的變數、頁面對應資訊、或對映表都是暫存在緩衝記憶體3002,在記憶體儲存裝置100被正常關閉電源的情況下,該些資訊將被寫入可複寫式非揮發性記憶體晶片106的系統區506。待下次電源啟動後,再由系統區506將運作相關的資訊讀回緩衝記憶體3002以供記憶體管理電路1043查用。然而,若記憶體儲存裝置100遭逢不正常斷電,緩衝記憶體3002中的系統資訊可能來不及寫入系統區506,為了避免在重新啟動記憶體儲存裝置100的電源後,因緩衝記憶體3002缺乏正確的系統資訊而導致資料遺失,在本範例實施例中,記憶體管理電路1043在透過主機系統介面1041接收主機系統1000欲寫入一邏輯頁面(以下稱之為特定邏輯頁面)的資料時,除了選擇替換實體區塊並將資料寫入替換實體區塊中的特定實體頁面之外,還會判斷主機系統1000是否曾經寫入此特定邏輯頁面。若是,記憶體管理電路1043會在特定實體頁面記錄上一次寫入特定邏輯頁面之先前資料是被寫入哪個實體頁面。若主機系統1000未曾寫入此特定邏輯頁面,記憶體管理電路1043則不需進行上述記錄動作,或者,記憶體管理電路1043也可將一特定資訊寫入特定實體頁面以代表並無先前資料。其中,記憶體管理電路1043選擇的替換實體區塊映射特定邏輯頁面所屬之邏輯區塊。替換實體區塊可以是因應此次寫入指令而從閒置區504提取出的實體區塊,或是在之前接獲主機系統1000的寫入指令時便已從閒置區504提取出的實體區塊。
以下將以圖6來說明記憶體管理電路1043對特定實體頁面進行寫入的方式。請參閱圖6,在本範例實施例中,特定實體頁面600包括資料位元區620與冗餘位元區640。其中,冗餘位元區640包括第一記錄區641、第二記錄區643以及第三記錄區645。舉例來說,當特定實體頁面600的容量為8千位元組(Kilobyte,KB)時,冗餘位元區640的容量有22位元組。
在本範例實施例中,記憶體管理電路1043將資料寫入特定實體頁面600的資料位元區620。並且,記憶體管理電路1043可根據緩衝記憶體3002所記錄的頁面對應資訊得知上一次寫入特定邏輯頁面之先前資料被寫入的實體頁面的位址,進而在冗餘位元區340的第一記錄區341記錄先前資料被寫入的實體頁面的位址。在完成上述動作後,記憶體管理電路1043會將緩衝記憶體3002中的頁面對應資訊更新為特定實體頁面的位址。
除此之外,記憶體管理電路1043會在冗餘位元區340第二記錄區643記錄特定邏輯頁面的位址。換言之,查看冗餘位元區640的內容便可知道特定實體頁面600是對應至哪個邏輯頁面。而第三記錄區645則可用來儲存資料的錯誤檢查與校正碼。
必須特別說明的是,圖6所示之資料位元區620與冗餘位元區640中各記錄區的配置方式並不用以限制本發明的範圍。在本發明的其他範例實施例中,每一實體頁面所包括的資料位元區與冗餘位元區也可為其他的配置方式。
在本範例實施例中,記憶體儲存裝置100在運作期間只要接獲主機系統1000的寫入指令,記憶體管理電路1043都將以上述方式在適當的實體頁面中記錄資料以及上一次寫入相同邏輯頁面之先前資料被寫入的實體頁面的位址。
在另一範例實施例中,唯有當接獲主機系統1000欲寫入某些特定的邏輯頁面的寫入指令時,方以上述方式在適當的實體頁面中記錄上一次寫入相同邏輯頁面之先前資料被寫入的實體頁面的位址。舉例來說,記憶體管理電路1043在判斷主機系統1000欲寫入之邏輯頁面的位址符合一預設範圍(例如,邏輯位址0至1000)時,才在此邏輯頁面曾被主機系統1000寫入的情況下,於適當的實體頁面記錄上一次寫入此邏輯頁面之先前資料被寫入的實體頁面的位址。
當記憶體儲存裝置100被重新啟動之後,記憶體管理電路1043為了判斷特定邏輯頁面的最新有效資料係儲存在哪個實體頁面,會先根據邏輯區塊-實體區塊映射表取得映射特定邏輯頁面所屬之邏輯區塊的實體區塊(即,母實體區塊),再根據母子區塊對應表取得母實體區塊的所有子實體區塊(該些子實體區塊也映射特定邏輯頁面所屬之邏輯區塊的實體區塊)。
對於所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊,記憶體管理電路1043可查看其中各實體頁面之冗餘位元區所記錄的內容,以找出對應特定邏輯頁面的所有實體頁面。例如,若一實體頁面之冗餘位元區的第二記錄區記錄的是特定邏輯頁面的位址,則判定該實體頁面對應特定邏輯頁面。
根據記憶體管理電路1043寫入資料的機制,假設記憶體管理電路1043因應主機系統1000欲寫入一邏輯頁面而將資料儲存至實體頁面P1。之後,倘若主機系統1000再次寫入相同的邏輯頁面,則有另一實體頁面的冗餘位元區會記錄實體頁面P1所相對應的實體頁面位址。亦即,只要實體頁面的位址有被記錄在其他實體頁面的冗餘位元區,即表示被記錄位址的實體頁面所儲存的並不是最新的有效資料。因此,記憶體管理電路1043在所有對應特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之冗餘位元區的實體頁面(在本範例實施例中,此實體頁面可稱為第一實體頁面),並判定特定邏輯頁面的有效資料係寫入在所找出的實體頁面。
如此一來,即便記憶體儲存裝置100是遭逢不正常斷電而導致暫存在緩衝記憶體3002的系統資訊無法存入可複寫式非揮發性記憶體晶片106的系統區506,在重新啟動記憶體儲存裝置100後,記憶體管理電路1043也可以利用各實體頁面之冗餘位元區所記錄的實體頁面位址資訊,找出特定邏輯頁面之最新有效資料的存放位置。
圖7是根據本發明之一範例實施例所繪示之寫入特定邏輯頁面的運作示意圖。如圖7所示,在本範例實施例中假設每個實體區塊具有四個實體頁面,且圖7所示箭頭上的數字是表示因應主機系統1000之寫入指令來儲存資料的順序。
詳言之,假設主機系統1000要寫入的特定邏輯頁面是映射母實體區塊710的實體頁面710(1),而母實體區塊710有3個子實體區塊(即,子實體區塊720、730、740)。首先,若記憶體管理電路1043將資料寫入子實體區塊720的實體頁面720(1),實體頁面720(1)的冗餘位元區會記錄上一個有效資料被寫入的實體頁面位址(即,實體頁面710(1)的位址)。接著,倘若主機系統1000欲再次寫入特定邏輯頁面,且記憶體管理電路1043將資料寫入子實體區塊730的實體頁面730(0),實體頁面730(0)的冗餘位元區會記錄實體頁面720(1)的位址。爾後,若主機系統1000要再寫入特定邏輯頁面,且記憶體管理電路1043將資料寫入子實體區塊730的實體頁面730(2),實體頁面730(2)的冗餘位元區會記錄實體頁面730(0)的位址。以此類推,實體頁面740(1)的冗餘位元區會記錄實體頁面730(2)的位址、實體頁面730(3)的冗餘位元區會記錄實體頁面740(1)的位址、實體頁面720(2)的冗餘位元區會記錄實體頁面730(3)的位址,而實體頁面740(3)的冗餘位元區會記錄實體頁面720(2)的位址。在圖7中以網點標示的8個實體頁面均對應同一個特定邏輯頁面,然而僅有實體頁面740(3)所記錄的資料是最新的有效資料。
在記憶體儲存裝置100重新啟動後,記憶體管理電路1043會取得對應特定邏輯頁面的8個實體頁面,其中,由於只有實體頁面740(3)的位址並未被記錄在其他實體頁面的冗餘位元區,因此記憶體管理電路1043判定實體頁面740(3)所記錄的資料為特定邏輯頁面的有效資料。
在一範例實施例中,記憶體管理電路1043在識別出特定邏輯頁面之有效資料的儲存位置後,將不會對實體區塊進行合併操作。在另一實施例中,記憶體管理電路1043會將所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊整併為新實體區塊,並建立特定邏輯頁面所屬之邏輯區塊與新實體區塊的映射關係。亦即,記憶體管理電路1043將所有映射特定邏輯頁面所屬之邏輯區塊的實體區塊中的有效資料複製至新實體區塊,再將新實體區塊關聯至資料區502,以及將其他實體區塊中的資料抹除並關聯至閒置區504。
圖8A、8B是根據本發明之一範例實施例所繪示之有效資料識別方法的流程圖。
首先如圖8A之步驟S810所示,記憶體控制器104中的記憶體管理電路1043配置多個邏輯區塊以映射可複寫式非揮發性記憶體晶片106之資料區502中的實體區塊,其中各邏輯區塊包括多個邏輯頁面。
接著在步驟S820中,記憶體控制器104接收主機系統1000欲寫入上述邏輯頁面中的某一邏輯頁面的資料。並如步驟S830所示,記憶體管理電路1043選擇一替換實體區塊並將資料寫入替換實體區塊中的一實體頁面。
在步驟S840中,記憶體管理電路1043判斷機系統1000是否曾寫過此邏輯頁面。若是,則如步驟S850所示,記憶體管理電路1043在此實體頁面記錄上一次寫入相同邏輯頁面之先前資料被寫入的實體頁面的位址。若否,則如步驟S860所示,記憶體管理電路1043在此實體頁面標註不存在先前資料。標註不存在先前資料的方式例如是不在實體頁面的冗餘位元區記錄任何資訊,或是在冗餘位元區寫入一特定資訊以代表無先前資料。
在本範例實施例中,記憶體管理電路1043在記憶體儲存裝置100運作的期間會針對主機系統1000下達的寫入指令而執行步驟S820至步驟S860的動作。在另一範例實施例中,記憶體管理電路1043可針對符合特殊條件的邏輯頁面(例如,位址符合預設範圍的邏輯頁面)才執行步驟S840至步驟S860的動作。
爾後,倘若記憶體儲存裝置100遭逢不正常斷電,並如圖8B之步驟S870所示,記憶體儲存裝置100被重新啟動。若記憶體管理電路1043要識別一特定邏輯頁面之有效資料的儲存位置,如步驟S880所示,記憶體管理電路1043在所有對應至特定邏輯頁面的實體頁面中,找出第一實體頁面,此第一實體頁面相對應的實體頁面位址未被記錄於其他對應至特定邏輯頁面的實體頁面中。最後在步驟S890中,記憶體管理電路1043判定特定邏輯頁面的有效資料係寫入在所找出的第一實體頁面。對於每個邏輯頁面,記憶體管理電路1043都能透過步驟S880與步驟S890的動作以找出其最新的有效資料係儲存在哪個實體頁面。
綜上所述,本發明所述之有效資料識別方法、記憶體儲存裝置與記憶體控制器在主機系統欲寫入某一邏輯頁面的資料時,在對應的實體頁面記錄上一次更新相同邏輯頁面的資料是被寫入哪個實體頁面。基此,無論記憶體儲存裝置的電源是否被正常關閉,待下次重新啟動記憶體儲存裝置後,都能藉由實體頁面所記錄的資訊而在對應同一個邏輯頁面的數個實體頁面中,找出記錄最新有效資料的實體頁面。如此一來,可防範記憶體儲存裝置被異常斷電而造成資料遺失或錯誤的情況。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000...主機系統
1100...電腦
1102...微處理器
1104...隨機存取記憶體
1106...輸入/輸出裝置
1108...系統匯流排
1110...資料傳輸介面
1202...滑鼠
1204...鍵盤
1206...顯示器
1208...印表機
1212...隨身碟
1214...記憶卡
1216...固態硬碟
1310...數位相機
1312...SD卡
1314...MMC卡
1316...記憶棒
1318...CF卡
1320...嵌入式儲存裝置
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...可複寫式非揮發性記憶體晶片
1041...主機系統介面
1043...記憶體管理電路
1045...記憶體介面
3002...緩衝記憶體
3004...電源管理電路
3006...錯誤檢查與校正電路
410(0)~410(N)...實體區塊
502...資料區
504...閒置區
506...系統區
508...取代區
610(0)~610(F-1)...邏輯區塊
600...特定實體頁面
620...資料位元區
640...冗餘位元區
641...第一記錄區
643...第二記錄區
645...第三記錄區
710...母實體區塊
720、730、740...子實體區塊
710(0)~710(3)、720(0)~720(3)、730(0)~730(3)、740(0)~740(3)...實體頁面
S810~S860、S870~S890...本發明之一實施例所述之有效資料識別方法的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明之一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4A與圖4B是根據本發明之一範例實施例所繪示之管理實體區塊的示意圖。
圖5A至圖5C是根據本發明之一範例實施例所繪示之可複寫式非揮發性記憶體晶片的運作示意圖。
圖6是根據本發明之一範例實施例所繪示之實體區塊之實體頁面的示意圖。
圖7是根據本發明之一範例實施例所繪示之寫入特定邏輯頁面的運作示意圖。
圖8A、8B是根據本發明之一範例實施例所繪示之有效資料識別方法的流程圖。
S810~S860...本發明之一實施例所述之有效資料識別方法的各步驟
Claims (27)
- 一種有效資料識別方法,用於具有一可複寫式非揮發性記憶體晶片的一記憶體儲存裝置,該可複寫式非揮發性記憶體晶片包括多個實體區塊,各該些實體區塊包括多個實體頁面,各該些實體頁面包括一資料位元區與一冗餘位元區,且該些實體區塊至少分組為一資料區與一閒置區,該方法包括:配置多個邏輯區塊以映射該資料區中的該些實體區塊,其中各該些邏輯區塊包括多個邏輯頁面;接收一主機系統欲寫入該些邏輯頁面中的一特定邏輯頁面的一資料;選擇一替換實體區塊並將該資料寫入該替換實體區塊中的一特定實體頁面,其中該替換實體區塊是提取自該閒置區並且映射該特定邏輯頁面所屬之邏輯區塊;以及在該特定實體頁面記錄上一次寫入該特定邏輯頁面之一先前資料被寫入的實體頁面的位址。
- 如申請專利範圍第1項所述之有效資料識別方法,更包括:在將該資料寫入該特定實體頁面時,將該資料寫入該特定實體頁面的該資料位元區;在該特定實體頁面之該冗餘位元區的一第一記錄區記錄該先前資料被寫入的實體頁面的位址;以及在該特定實體頁面之該冗餘位元區一第二記錄區記錄該特定邏輯頁面的位址。
- 如申請專利範圍第2項所述之有效資料識別方法,更包括:當該記憶體儲存裝置被重新啟動之後,在所有對應至該特定邏輯頁面的實體頁面中,找出一第一實體頁面,其中該第一實體頁面相對應的實體頁面位址未被記錄於其他對應至該特定邏輯頁面的實體頁面中;以及判定該特定邏輯頁面的一有效資料係寫入在該第一實體頁面。
- 如申請專利範圍第3項所述之有效資料識別方法,其中在所有對應至該特定邏輯頁面的實體頁面中,找出該第一實體頁面的步驟包括:取得所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊;以及依據所取得之實體區塊中的各實體頁面之該冗餘位元區所記錄的內容,在所有對應至該特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之該冗餘位元區的實體頁面以作為該第一實體頁面。
- 如申請專利範圍第3項所述之有效資料識別方法,其中在判定該特定邏輯頁面的該有效資料係寫入在所找出的實體頁面的步驟之後,該方法更包括:將所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊整併為一新實體區塊;以及建立該特定邏輯頁面所屬之邏輯區塊與該新實體區塊的映射關係。
- 如申請專利範圍第1項所述之有效資料識別方法,其中在選擇該替換實體區塊並將該資料寫入該替換實體區塊中的該特定實體頁面的步驟之後,該方法更包括:判斷該特定邏輯頁面是否曾被該主機系統寫入,以在判定該特定邏輯頁面曾被該主機系統寫入時,才執行在該特定實體頁面記錄上一次寫入該特定邏輯頁面之該先前資料被寫入的實體頁面的位址的步驟;以及若判定該特定邏輯頁面未曾被該主機系統寫入,則在該特定實體頁面標註不存在該先前資料。
- 如申請專利範圍第1項所述之有效資料識別方法,其中在該特定實體頁面記錄上一次寫入該特定邏輯頁面之該先前資料被寫入的實體頁面的位址的步驟是在判定該特定邏輯頁面的位址符合一預設範圍時才執行。
- 如申請專利範圍第1項所述之有效資料識別方法,其中該記憶體儲存裝置包括一緩衝記憶體,該方法更包括:根據該緩衝記憶體所記錄的一頁面對應資訊取得該先前資料被寫入的實體頁面的位址;以及在該特定實體頁面記錄該先前資料被寫入的實體頁面之後,將該頁面對應資訊更新為該特定實體頁面的位址。
- 如申請專利範圍第1項所述之有效資料識別方法,其中接收該主機系統欲寫入該特定邏輯頁面的該資料時選擇該替換實體區塊的步驟包括:若該替換實體區塊的數量大於1,則根據該資料的資料量選擇其中一個替換實體區塊來寫入該資料。
- 一種記憶體控制器,用於管理一記憶體儲存裝置中的一可複寫式非揮發性記憶體晶片,該可複寫式非揮發性記憶體晶片包括多個實體區塊,各該些實體區塊包括多個實體頁面,且各該些實體頁面包括一資料位元區與一冗餘位元區,該記憶體控制器包括:一主機系統介面,用以耦接一主機系統;一記憶體介面,用以耦接該可複寫式非揮發性記憶體晶片;以及一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,該記憶體管理電路用以將該些實體區塊至少分組為一資料區與一閒置區,並配置多個邏輯區塊以映射該資料區中的該些實體區塊,其中各該些邏輯區塊包括多個邏輯頁面,該記憶體管理電路更用以在透過該主機系統介面接收該主機系統欲寫入該些邏輯頁面中的一特定邏輯頁面的一資料時,選擇一替換實體區塊並將該資料寫入該替換實體區塊中的一特定實體頁面,以及在該特定實體頁面記錄上一次寫入該特定邏輯頁面之一先前資料被寫入的實體頁面的位址,其中該替換實體區塊是提取自該閒置區並且映射該特定邏輯頁面所屬之邏輯區塊。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以將該資料寫入該特定實體頁面的該資料位元區,在該特定實體頁面之該冗餘位元區的一第一記錄區記錄該先前資料被寫入的實體頁面的位址,以及在該特定實體頁面之該冗餘位元區一第二記錄區記錄該特定邏輯頁面的位址。
- 如申請專利範圍第11項所述之記憶體控制器,其中當該記憶體儲存裝置被重新啟動之後,該記憶體管理電路更用以在所有對應至該特定邏輯頁面的實體頁面中找出一第一實體頁面,其中該第一實體頁面相對應的實體頁面位址未被記錄於其他對應至該特定邏輯頁面的實體頁面中,並判定該特定邏輯頁面的一有效資料係寫入在該第一實體頁面。
- 如申請專利範圍第12項所述之記憶體控制器,其中該記憶體管理電路更用以取得所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊,以及依據所取得之實體區塊中的各實體頁面之該冗餘位元區所記錄的內容,在所有對應至該特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之該冗餘位元區的實體頁面以作為該第一實體頁面。
- 如申請專利範圍第12項所述之記憶體控制器,其中該記憶體管理電路更用以在判定該特定邏輯頁面的該有效資料係寫入在所找出的實體頁面之後,將所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊整併為一新實體區塊,並建立該特定邏輯頁面所屬之邏輯區塊與該新實體區塊的映射關係。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路判斷該特定邏輯頁面是否曾被該主機系統寫入,以在判定該特定邏輯頁面曾被該主機系統寫入時,在該特定實體頁面記錄上一次寫入該特定邏輯頁面之該先前資料被寫入的實體頁面的位址,若判定該特定邏輯頁面未曾被該主機系統寫入,該記憶體管理電路在該特定實體頁面標註不存在該先前資料。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路在該特定邏輯頁面的位址符合一預設範圍時,才在該特定實體頁面記錄該先前資料被寫入之實體頁面的位址。
- 如申請專利範圍第10項所述之記憶體控制器,更包括:一緩衝記憶體,耦接至該記憶體管理電路,該緩衝記憶體用以記錄一頁面對應資訊,其中該記憶體管理電路更用以根據該頁面對應資訊取得該先前資料被寫入的實體頁面的位址,並且在該特定實體頁面記錄該先前資料被寫入的實體頁面之後,將該頁面對應資訊更新為該特定實體頁面的位址。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以在該替換實體區塊的數量大於1時,根據該資料的資料量選擇其中一個替換實體區塊來寫入該資料。
- 一種記憶體儲存裝置,包括:一可複寫式非揮發性記憶體晶片,包括多個實體區塊,各該些實體區塊包括多個實體頁面,且各該些實體頁面包括一資料位元區與一冗餘位元區;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體晶片與該連接器,該記憶體控制器用以將該些實體區塊至少分組為一資料區與一閒置區,並配置多個邏輯區塊以映射該資料區中的該些實體區塊,其中各該些邏輯區塊包括多個邏輯頁面,該記憶體控制器更用以在透過該連接器接收該主機系統欲寫入該些邏輯頁面中的一特定邏輯頁面的一資料時,選擇一替換實體區塊並將該資料寫入該替換實體區塊中的一特定實體頁面,以及在該特定實體頁面記錄上一次寫入該特定邏輯頁面之一先前資料被寫入的實體頁面的位址,其中該替換實體區塊是提取自該閒置區並且映射該特定邏輯頁面所屬之邏輯區塊。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器更用以將該資料寫入該特定實體頁面的該資料位元區,在該特定實體頁面之該冗餘位元區的一第一記錄區記錄該先前資料被寫入的實體頁面的位址,以及在該特定實體頁面之該冗餘位元區一第二記錄區記錄該特定邏輯頁面的位址。
- 如申請專利範圍第20項所述之記憶體儲存裝置,其中當該記憶體儲存裝置被重新啟動之後,該記憶體控制器更用以在所有對應至該特定邏輯頁面的實體頁面中找出一第一實體頁面,其中該第一實體頁面相對應的實體頁面位址未被記錄於其他對應至該特定邏輯頁面的實體頁面中,並判定該特定邏輯頁面的一有效資料係寫入在該第一實體頁面。
- 如申請專利範圍第21項所述之記憶體儲存裝置,其中該記憶體控制器更用以取得所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊,以及依據所取得之實體區塊中的各實體頁面之該冗餘位元區所記錄的內容,在所有對應至該特定邏輯頁面的實體頁面中,找出相對應的實體頁面位址未被記錄在其他實體頁面之該冗餘位元區的實體頁面以作為該第一實體頁面。
- 如申請專利範圍第21項所述之記憶體儲存裝置,其中該記憶體控制器更用以在判定該特定邏輯頁面的該有效資料係寫入在所找出的實體頁面之後,將所有映射該特定邏輯頁面所屬之邏輯區塊的實體區塊整併為一新實體區塊,並建立該特定邏輯頁面所屬之邏輯區塊與該新實體區塊的映射關係。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器判斷該特定邏輯頁面是否曾被該主機系統寫入,以在判定該特定邏輯頁面曾被該主機系統寫入時,在該特定實體頁面記錄上一次寫入該特定邏輯頁面之該先前資料被寫入的實體頁面的位址,若判定該特定邏輯頁面未曾被該主機系統寫入,該記憶體控制器在該特定實體頁面標註不存在該先前資料。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器在該特定邏輯頁面的位址符合一預設範圍時,才在該特定實體頁面記錄該先前資料被寫入之實體頁面的位址。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器更包括一緩衝記憶體,用以記錄一頁面對應資訊,其中該記憶體控制器更用以根據該頁面對應資訊取得該先前資料被寫入的實體頁面的位址,並且在該特定實體頁面記錄該先前資料被寫入的實體頁面之後,將該頁面對應資訊更新為該特定實體頁面的位址。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器更用以在該替換實體區塊的數量大於1時,根據該資料的資料量選擇其中一個替換實體區塊來寫入該資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100124253A TWI459198B (zh) | 2011-07-08 | 2011-07-08 | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
US13/227,479 US8819387B2 (en) | 2011-07-08 | 2011-09-08 | Memory storage device, memory controller, and method for identifying valid data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100124253A TWI459198B (zh) | 2011-07-08 | 2011-07-08 | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201303584A TW201303584A (zh) | 2013-01-16 |
TWI459198B true TWI459198B (zh) | 2014-11-01 |
Family
ID=47439378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100124253A TWI459198B (zh) | 2011-07-08 | 2011-07-08 | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8819387B2 (zh) |
TW (1) | TWI459198B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI574274B (zh) * | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI489274B (zh) * | 2012-09-11 | 2015-06-21 | Etron Technology Inc | 能夠提升記憶體效能的方法和相關的記憶體系統 |
DE102013019941A1 (de) * | 2013-11-27 | 2015-05-28 | Giesecke & Devrient Gmbh | Verfahren zum Betreiben eines Speichersystems sowie ein solches Speichersystem |
KR20170044781A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI611410B (zh) * | 2016-05-13 | 2018-01-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
CN107402716B (zh) * | 2016-05-20 | 2021-06-08 | 合肥兆芯电子有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
TWI745695B (zh) * | 2019-05-22 | 2021-11-11 | 慧榮科技股份有限公司 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200917021A (en) * | 2007-01-17 | 2009-04-16 | Memoright Memoritech Corp | Method for managing flash memory block |
US20100070735A1 (en) * | 2008-09-16 | 2010-03-18 | Micron Technology, Inc. | Embedded mapping information for memory devices |
US20100287327A1 (en) * | 2009-05-06 | 2010-11-11 | Via Telecom, Inc. | Computing systems and methods for managing flash memory device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI368223B (en) * | 2007-12-07 | 2012-07-11 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
TWI362667B (en) * | 2007-12-31 | 2012-04-21 | Phison Electronics Corp | Data writing method for flash memory and controller thereof |
KR101449524B1 (ko) * | 2008-03-12 | 2014-10-14 | 삼성전자주식회사 | 스토리지 장치 및 컴퓨팅 시스템 |
US7830700B2 (en) * | 2008-11-12 | 2010-11-09 | Seagate Technology Llc | Resistive sense memory array with partial block update capability |
TWI444825B (zh) * | 2011-03-29 | 2014-07-11 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
-
2011
- 2011-07-08 TW TW100124253A patent/TWI459198B/zh active
- 2011-09-08 US US13/227,479 patent/US8819387B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200917021A (en) * | 2007-01-17 | 2009-04-16 | Memoright Memoritech Corp | Method for managing flash memory block |
US20100070735A1 (en) * | 2008-09-16 | 2010-03-18 | Micron Technology, Inc. | Embedded mapping information for memory devices |
US20100287327A1 (en) * | 2009-05-06 | 2010-11-11 | Via Telecom, Inc. | Computing systems and methods for managing flash memory device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI574274B (zh) * | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
US10168951B2 (en) | 2015-05-07 | 2019-01-01 | Silicon Motion, Inc. | Methods for accessing data in a circular block mode and apparatuses using the same |
Also Published As
Publication number | Publication date |
---|---|
TW201303584A (zh) | 2013-01-16 |
US20130013885A1 (en) | 2013-01-10 |
US8819387B2 (en) | 2014-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
TWI426528B (zh) | 用於快閃記憶體的區塊管理方法、控制器與儲存系統 | |
TWI467581B (zh) | 複合式儲存裝置及其複合式儲存媒體控制器與定址方法 | |
TWI526830B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
TWI420308B (zh) | 區塊管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TW201409230A (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI493341B (zh) | 記憶體儲存裝置及其修復方法 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 |