TWI514141B - 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 - Google Patents
記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI514141B TWI514141B TW102128526A TW102128526A TWI514141B TW I514141 B TWI514141 B TW I514141B TW 102128526 A TW102128526 A TW 102128526A TW 102128526 A TW102128526 A TW 102128526A TW I514141 B TWI514141 B TW I514141B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- logical
- stylized
- units
- memory
- 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/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種記憶體管理方法,且特別是有關於用於可複寫式非揮發性記憶體模組的記憶體位址管理方法、記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組是由一個記憶體控制器所控制,而主機系統可以下達指令給記憶體控制器來存取可複寫式非揮發性記憶體模組中的資料。存取頻寬表示主機系統每秒可以寫入多少資料至可複寫式非揮發性記憶體模組中。然而,此存取頻寬會受到許多因素所影響。例如,當把資料寫入至可複寫式非揮發性記憶體模組後,可複寫式非揮發性記憶體模組
的狀態會變成忙碌一段時間,此時不能寫入其他的資料。或者,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。又,主機系統每秒可以下達幾個寫入指令也會影響存取頻寬。如何增加存取頻寬,為此領域技術人員所關心的議題。
本發明提供一種記憶體位址管理方法、記憶體儲存裝置與記憶體控制器,可以增加記憶體儲存裝置的存取頻寬。
本發明一範例實施提出一種記憶體位址管理方法,用於一可複寫式非揮發性記憶體模組。此可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一個實體抹除單元包括多個下實體程式化單元與多個上實體程式化單元。所述下實體程式化單元與所述上實體程式化單元是依照一程式化順序被程式化。多個邏輯位址會映射至部分的實體抹除單元。這些邏輯位址會組成多個邏輯程式化單元,並且這些邏輯程式化單元是映射至實體抹除單元中的下實體程式化單元與上實體程式化單元。上述的邏輯程式化單元被分為多個下邏輯程式化單元與多個上邏輯程式化單元。此記憶體位址管理方法包括:取得可複寫式非揮發性記憶體模組的一記憶體資訊,其中記憶體資訊包括上述的程式化順序;以及根據記憶體資訊來格式化邏輯位址以建立一檔案系統,使得檔案系統包括多個配置單位,其中一個第一配置單位包括第一下邏輯程式化單元與第一上邏輯程式化單元。該第一配置單位是以第一下
邏輯程式化單元開始並以第一上邏輯程式化單元結束,並且檔案系統的資料區的起始邏輯位址是屬於所述下邏輯程式化單元的其中之一。
在一範例實施例中,上述的記憶體資訊還包括記憶體儲存裝置的通道數,可複寫式非揮發性記憶體模組的平面數,與記憶體儲存裝置的交錯數。
在一範例實施例中,上述的第一下邏輯程式化單元是映射至所述下實體程式化單元中的n個下實體程式化單元,第一上邏輯程式化單元是映射至所述上實體程式化單元中的n個上實體程式化單元。n為正整數,並且正整數n是根據通道數、平面數與交錯數所計算出。
在一範例實施例中,上述的檔案系統還包括一保留區。
保留區的位址是在資料區的位址之前。上述根據記憶體資訊來格式化所述邏輯位址的步驟還包括:調整保留區的大小,使得邏輯位址被格式化後,資料區的起始邏輯位址是屬於所述下邏輯程式化單元的其中之一。
在一範例實施例中,上述取得可複寫式非揮發性記憶體模組的記憶體資訊的步驟是由主機系統上的應用程式下達製造商指令所取得。並且,該應用程式會格式化上述的邏輯位址以建立檔案系統。
以另外一個角度來說,本發明一範例實施例提出一種記憶體儲存裝置,包括連接器、上述的可複寫式非揮發性記憶體模
組與記憶體控制器。連接器是用以耦接至主機系統。記憶體控制器是耦接至連接器與可複寫式非揮發性記憶體模組,用以配置上述的多個邏輯位址以映射至部分的實體抹除單元。記憶體控制器用以提供可複寫式非揮發性記憶體模組的記憶體資訊給主機系統。其中,記憶體資訊包括上述的程式化順序。記憶體控制器也用以根據來自主機系統的一指令來格式化邏輯位址以建立檔案系統,使得檔案系統包括多個配置單位,其中一個第一配置單位包括第一下邏輯程式化單元與第一上邏輯程式化單元。該第一配置單位是以第一下邏輯程式化單元開始並以第一上邏輯程式化單元結束。其中,檔案系統的資料區的起始邏輯位址是屬於所述下邏輯程式化單元的其中之一。
在一範例實施例中,上述的記憶體控制器還用以接收來
自主機系統的製造商指令,並且在接收製造商指令以後提供記憶體資訊給主機系統。
在一範例實施例中,上述的記憶體控制器更用以將所述
的實體抹除單元劃分出資料區與閒置區,並且所述的邏輯位址是映射至資料區中的實體抹除單元。記憶體控制器更用以接收來自主機系統的寫入指令,此寫入指令指示將第一資料寫入第二邏輯位址。第二邏輯位址是屬於上述的第一配置單位,並且第二邏輯位址是映射至第一實體抹除單元中的第一實體程式化單元。其中,依照程式化順序,第一實體程式化單元是在第一實體抹除單元的第二實體程式化單元之後,第二實體程式化單元是映射至上
述配置單位中的第二配置單位,並且第二配置單位不同於上述的第一配置單位。記憶體控制器更用以從閒置區提取第二實體抹除單元,將儲存在第二實體程式化單元的資料寫入至第二實體抹除單元,接著將第一資料寫入至第二實體抹除單元。
在一範例實施例中,上述的記憶體控制器用以根據一對齊映射表將儲存在第二實體程式化單元的資料寫入至第二實體抹除單元,接著將第一資料寫入至第二實體抹除單元。
在一範例實施例中,上述的程式化順序指示在一實體抹除單元內,一下實體程式化單元被程式化以後,下實體程式化單元與上實體程式化單元是依序且交錯地被程式化。
以另外一個角度來說,本發明一範例實施例提出一種記憶體控制器,包括主機介面、記憶體介面與記憶體管理電路。主機介面是用以耦接至主機系統。記憶體介面是耦接至上述的可複寫式非揮發性記憶體模組。記憶體管理電路是耦接至主機介面與記憶體介面,用以配置上述的多個邏輯位址以映射至部分的實體抹除單元。記憶體管理電路用以提供可複寫式非揮發性記憶體模組的記憶體資訊給主機系統。其中,記憶體資訊包括上述的程式化順序。記憶體管理電路也用以根據來自主機系統的一指令來格式化邏輯位址以建立檔案系統,使得檔案系統包括多個配置單位,其中一個第一配置單位包括第一下邏輯程式化單元與第一上邏輯程式化單元。該第一配置單位是以第一下邏輯程式化單元開始並以第一上邏輯程式化單元結束。其中,檔案系統的資料區的
起始邏輯位址是屬於所述下邏輯程式化單元的其中之一。
在一範例實施例中,上述的記憶體管理電路還用以接收
來自主機系統的製造商指令,並且在接收製造商指令以後提供記憶體資訊給主機系統。
在一範例實施例中,上述的記憶體管理電路更用以將所
述的實體抹除單元劃分出資料區與閒置區,並且所述的邏輯位址是映射至資料區中的實體抹除單元。記憶體管理電路更用以接收來自主機系統的寫入指令,此寫入指令指示將第一資料寫入第二邏輯位址。第二邏輯位址是屬於上述的第一配置單位,並且第二邏輯位址是映射至第一實體抹除單元中的第一實體程式化單元。
其中,依照程式化順序,第一實體程式化單元是在第一實體抹除單元的第二實體程式化單元之後,第二實體程式化單元是映射至上述配置單位中的第二配置單位,並且第二配置單位不同於上述的第一配置單位。記憶體管理電路更用以從閒置區提取第二實體抹除單元,將儲存在第二實體程式化單元的資料寫入至第二實體抹除單元,接著將第一資料寫入至第二實體抹除單元。
在一範例實施例中,上述的記憶體管理電路用以根據一
對齊映射表將儲存在第二實體程式化單元的資料寫入至第二實體抹除單元,接著將第一資料寫入至第二實體抹除單元。
在一範例實施例中,上述的程式化順序指示在一實體抹
除單元內,一下實體程式化單元被程式化以後,下實體程式化單元與上實體程式化單元是依序且交錯地被程式化。
基於上述,本發明範例實施例提出的記憶體位址管理方
法、記憶體儲存裝置與記憶體控制器,可以在把資料寫入至一個配置單位時,先程式化下實體程式化單元再程式化上實體程式化單元,藉此可以增加記憶體儲存裝置的存取頻寬。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉
實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402‧‧‧資料區
404‧‧‧閒置區
406‧‧‧系統區
410(0)~410(D)‧‧‧邏輯位址
522(0)~522(E)、600‧‧‧邏輯程式化單元
510A、512A、514A、516A、532A、930A、932A、934A‧‧‧下實體程式化單元
510B、512B、514B、930B‧‧‧上實體程式化單元
610(0)~610(15)‧‧‧實體程式化單元
P0、P1‧‧‧平面
I0、I1、I2、I3‧‧‧交錯
S701~S706、S1101、S1102‧‧‧步驟
709~711、720、721‧‧‧時間
810‧‧‧開機區
820‧‧‧保留區
830‧‧‧檔案配置表
840‧‧‧資料區
850‧‧‧第一邏輯位址
860‧‧‧起始邏輯位址
910‧‧‧第一資料
920‧‧‧第二邏輯位址
922‧‧‧配置單位
1010、1020、1210、1220‧‧‧行
S1301、S1302‧‧‧
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據一範例實施例所繪示之記憶體控制器的概要方塊圖。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5是根據一範例實施例繪示程式化順序的示意圖。
圖6是根據一範例實施例繪示一個邏輯程式化單元映射至多
個實體程式化單元的示意圖。
圖7A與圖7B是根據一範例實施例繪示主機系統下達寫入指令的範例示意圖。
圖8是根據一範例實施例繪示檔案系統的示意圖。
圖9A是根據一範例實施例繪示資料區映射至實體抹除單元的示意圖。
圖9B是根據一範例實施例繪示寫入第一資料的範例示意圖。
圖10是根據一範例實施例繪示對齊映射表的示意圖。
圖11是根據第二範例實施例繪示寫入資料的示意圖。
圖12是根據第二範例實施例繪示對齊映射表的示意圖。
圖13是根據一範例實施例繪示記憶體位址管理方法的流程圖。
[第一範例實施例]
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括
可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據一範例實施例所繪示的主機系統與記憶體
儲存裝置。
請參照圖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的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡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是相容於通用序列匯流排(Universal Serial Bus,USB)標準。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(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個以上的位元,則同一條字元線上的多個實體程式化單元可被分類為下實體程式化單元與上實體程式化單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。在此範例實施例中,實體程式化單元
為程式化(寫入資料)的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。
在本範例實施例中,可複寫式非揮發性記憶體模組106
為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少2個位元資料。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據一範例實施例所繪示之記憶體控制器的概要
方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路
202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體
運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資
料的寫入、讀取與抹除等運作。以下說明記憶體管理電路202的操作時,等同於說明記憶體控制器104的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制器104被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202
的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元
是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於USB標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、SATA標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、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 correcting code,ECC code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤更正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤更正碼,並且錯誤檢查與校正電路256會依據此錯誤更正碼對所讀取的資料執行錯誤檢查與校正程序。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“劃分”、“關聯”等詞來
操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖4,記憶體管理電路202可將可複寫式非揮發性記憶體模組的實體抹除單元304(0)~304(R)邏輯地劃分為多個區域,例如為資料區402、閒置區404與系統區406。
資料區402的實體抹除單元是用以儲存來自主機系統1000的資料。閒置區404的實體抹除單元是用以作為資料區402的暫存區。舉例來說,若主機系統1000要更新資料區402中的資料,則此資料會先被寫入至閒置區404中,之後這些資料會被搬移至資料區402中或與資料區402中的資料合併。或者,閒置區404的實體抹除單元也可用來替換資料區402與系統區406的實體抹除單元。也就是說,當資料區402與系統區406中的實體抹除單元損毀(即,成為壞實體抹除單元(bad physical erasing unit))時,閒置區404的實體抹除單元可用來替換此壞實體抹除單元。倘若閒置區404中無正常之實體抹除單元且有實體抹除單元損毀時,則記憶體控制器104會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。在另一範例實施例中,記憶體管理電路202可再劃分出一個取代區,專門存放用來替換壞實體抹除單元的實體抹除單元,本發明並不在此限。
系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的
實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
資料區402、閒置區404與系統區406的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至資料區402、閒置區404與系統區406的分組關係會動態地變動。例如,當資料區402中的實體抹除單元損壞而被閒置區404的實體抹除單元取代時,則原本閒置區404的實體抹除單元會被關聯至資料區402。
記憶體管理電路202會配置邏輯位址410(0)~410(D)以映射至資料區402中的實體抹除單元304(0)~304(A)。主機系統1000是透過邏輯位址410(0)~410(D)來存取資料區402中的資料。在此範例實施例中,一個邏輯位址是映射至一個實體扇,多個邏輯位址會組成一個邏輯程式化單元,並且多個邏輯程式化單元會組成一個邏輯抹除單元。一個邏輯程式化單元是映射至一或多個實體程式化單元,而一個邏輯抹除單元是映射至一或多個實體抹除單元。
在此範例實施例中,記憶體管理電路202是以邏輯抹除單元來管理可複寫式非揮發性記憶體模組106,因此記憶體管理電路202會建立一個映射表以記錄邏輯抹除單元與實體抹除單元之間的映射關係。在另一範例實施例中,記憶體管理電路202是以邏輯程式化單元來管理可複寫式非揮發性記憶體模組106,因此記憶體管理電路202會建立一個映射表以記錄邏輯程式化單元與實
體程式化單元之間的映射關係。
圖5是根據一範例實施例繪示程式化順序的示意圖。在
此範例實施例中,記憶體管理電路202是以邏輯抹除單元來管理可複寫式非揮發性記憶體模組106。舉例來說,請參照圖5,實體抹除單元304(0)中包括了多個下實體程式化單元與上實體程式化單元。下實體程式化單元510A與上實體程式化單元510B是位於同一條字元線上,下實體程式化單元512A與上實體程式化單元512B是位於同一條字元線上,以此類推。圖5中實體程式化單元內的數字表示程式化的順序。即下實體程式化單元510A必須先被程式化以後,下實體程式化單元512A才能被程式化。以另外一個角度來說,上述的程式化順序指示在實體抹除單元304(0)內,下實體程式化單元510A被程式化以後,其餘的下實體程式化單元與上實體程式化單元是依序且交錯地被程式化。邏輯抹除單元520是映射至實體抹除單元304(0),並且邏輯抹除單元520包括了邏輯程式化單元522(0)~522(E)。其中,邏輯程式化單元522(0)是映射至下實體程式化單元510A,邏輯程式化單元522(1)是映射至下實體程式化單元512A,而邏輯程式化單元522(2)是映射至上實體程式化單元510B,以此類推。
邏輯抹除單元520中邏輯位址的位址是依序排列的,亦
即只要邏輯抹除單元520的起始邏輯位址決定了,則邏輯程式化單元522(0)~522(E)中的邏輯位址也會被決定。在此範例實施例中,邏輯程式化單元522(0)~522(E)也可被分為下邏輯程式化單元
與上邏輯程式化單元。其中,下邏輯程式化單元會映射至下實體程式化單元,而上邏輯程式化單元會映射至上實體程式化單元。例如,邏輯程式化單元522(0)與522(1)可被稱為下邏輯程式化單元,邏輯程式化單元522(2)可被稱為上邏輯程式化單元,以此類推。在其他範例實施例中,一個實體抹除單元中的實體程式化單元可以有其他的程式化順序,本發明並不在此限。
圖6是根據一範例實施例繪示一個邏輯程式化單元映射至多個實體程式化單元的示意圖。
請參照圖6,不論記憶體管理電路202是以邏輯抹除單元或是邏輯程式化單元來管理可複寫式非揮發性記憶體模組106,記憶體管理電路202可以將多個實體程式化單元分為一個群組(亦稱超級實體程式化單元),而一個邏輯程式化單元會映射到此群組。
例如,邏輯程式化單元600是映射至實體程式化單元610(0)~610(15)。然而,邏輯程式化單元600可以是下邏輯程式化單元或是上邏輯程式化單元。若邏輯程式化單元600是下邏輯程式化單元,則實體程式化單元610(0)~610(15)都為下實體程式化單元。若邏輯程式化單元600是上邏輯程式化單元,則實體程式化單元610(0)~610(15)都為上實體程式化單元。
在此範例實施例中,記憶體儲存裝置100中包括了兩個通道,記憶體控制器104是透過這兩個通道存取不同部份的實體抹除單元304(0)~304(R)。這兩個通道上的實體抹除單元可以獨立的運作。例如,記憶體控制器104對一個通道上的實體抹除單元
執行寫入操作時,記憶體控制器104可以對另一個通道上的實體抹除單元執行讀取操作或其他操作。圖6中,實體程式化單元610(0)~610(7)是屬於第一通道,而實體程式化單元610(8)~610(15)是屬於第二通道。
在記憶體儲存裝置100中,同一個通道中的實體程式化單元可以屬於不同的交錯(interleave)。在一範例實施例中,不同交錯的實體程式化單元是屬於不同的晶片。記憶體控制器104在程式化某一個晶片中的實體程式化單元以後,不需要等對應的晶片回覆準備好(ready)訊號,便可以繼續程式化下一個晶片中的實體程式化單元。舉例來說,實體程式化單元610(0)~610(1)是屬於第一交錯I0、實體程式化單元610(2)~610(3)是屬於第二交錯I1、實體程式化單元610(4)~610(5)是屬於第三交錯I2、實體程式化單元610(6)~610(7)是屬於第四交錯I3。當記憶體控制器104程式化實體程式化單元610(0)~610(1)以後,程式化實體程式化單元610(0)~610(1)所屬的晶片會短暫地呈現忙碌(bust)的狀態,但此時記憶體控制器104可以程式化實體程式化單元610(2)~610(3),接著依序是第三交錯I2與第四交錯I3中的實體程式化單元。在程式化實體程式化單元610(6)~610(7)以後,記憶體控制器104可以再程式化屬於第一交錯I0的實體程式化單元。
在可複寫式非揮發性記憶體模組106中,同一個交錯(晶片)中的實體程式化單元還可以屬於不同的平面(plane)。例如,實體程式化單元610(0)是屬於第一平面P0,而實體程式化單元610(1)
是屬於第二平面P1。實體程式化單元610(0)與610(1)可以透過同一個指令被程式化。藉由圖6中的配置,當主機系統要存取邏輯程式化單元600時,記憶體管理電路202會存取實體程式化單元610(0)~610(15)。
在此,”通道數”表示記憶體儲存裝置100有幾個通道,”交錯數”表示記憶體儲存裝置100有幾個交錯,而”平面數”表示可複寫式非揮發性記憶體模組106有幾個平面。在圖6的範例實施例中,通道數為2,交錯數為4,並且平面數為2。但在其他範例實施例中,通道數、交錯數與平面數也可以為其他的正整數,本發明並不在此限。在此,邏輯程式化單元600是映射至n個實體程式化單元,其中n為正整數。正整數n是根據通道數、平面數與交錯數所計算出。例如,正整數n為通道數、平面數與交錯數的乘積(在此範例實施例中為16)。換言之,如果一個實體程式化單元的大小為16KB,邏輯程式化單元600的大小即為256KB。透過上述多個通道、多個交錯、與多個平面的機制,可以增加存取的頻寬。
當主機系統1000要格式化記憶體儲存裝置100時,主機系統1000會先取得可複寫式非揮發性記憶體模組106的記憶體資訊,之後再根據此記憶體資訊來格式化邏輯位址410(0)~410(D)以建立一個檔案系統。舉例來說,主機系統1000會下達一個製造商指令(vendor command)給記憶體管理電路202來取得記憶體資訊。一般來說,主機系統1000上的作業系統並不能使用製造商指
令,主機系統1000上必須安裝製造商所提供的應用程式以後才能使用製造商指令。此製造商指令可用以存取系統區406的資料,或是設置記憶體儲存裝置100的一個密碼等其他操作,本發明並不在此限。在接收到製造商指令以後,記憶體管理電路202會提供上述的記憶體資訊給主機系統1000。在一範例實施例中,此記憶體資訊包括實體抹除單元中下實體程式化單元與上實體程式化單元的程式化順序,上述的通道數,平面數,與交錯數。
以另外一個角度來說,記憶體管理電路202在提供記憶
體資訊給主機系統1000以後,記憶體管理電路202會根據主機系統1000下達的一個指令來格式化邏輯位址410(0)~410(D)以建立一個檔案系統。例如,記憶體管理電路202會根據主機系統1000的指令把檔案系統的資訊寫在對應的實體抹除單元中。特別的是,在邏輯位址410(0)~410(D)被格式化以後,檔案系統會包括多個配置單位(allocation unit),每一個配置單位的大小是兩個邏輯程式化單元。配置單位是檔案系統中用以管理檔案的單位,即一個檔案的大小若小於一個配置單位的大小,則檔案系統仍然會以一個配置單位來儲存此檔案。在此範例實施例中,其中一個配置單位(亦稱第一配置單位)會包括一個下邏輯程式化單元(亦稱第一下邏輯程式化單元)與一個上邏輯程式化單元(亦稱第一上邏輯程式化單元)。此外,上述的第一配置單位是以第一下邏輯程式化單元開始,並以第一上邏輯程式化單元結束。依照圖6所繪示的映射關係,第一下邏輯程式化單元是映射至n個下實體程式化單元,
而第一上邏輯程式化單元是映射至n個上實體程式化單元。當主機系統1000要把資料寫入至第一配置單位時,記憶體管理電路202會先把資料寫入至n個下實體程式化單元,接下來再把資料寫入至n個上實體程式化單元。在另一範例實施例中,所有的配置單位包括了多個下邏輯程式化單元與多個上邏輯程式化單元,但其中一個配置單位是以下邏輯程式化單元開始,並以上邏輯程式化單元結束
圖7A是根據一範例實施例繪示主機系統下達寫入指令的範例示意圖。
請參照圖7A,在步驟S701中,主機系統1000會下達寫入指令給記憶體儲存裝置100。此寫入指令會指示將第一資料寫入至至少一個邏輯位址當中,並且此邏輯位址是屬於上述的第一配置單位。在步驟S702中,主機系統1000會傳送第一資料給記憶體儲存裝置100。在接收到第一資料以後,在步驟S703,記憶體管理電路202會把部份的第一資料寫入至映射到第一下邏輯程式化單元的n個下實體程式化單元。接下來,記憶體管理電路202會等待時間709,直到可複寫式非揮發性記憶體模組106的狀態從忙碌(busy)改變為準備好(ready)。在步驟S704中,記憶體管理電路202會再把其餘部份的第一資料寫入至映射到第一上邏輯程式化單元的n個上實體程式化單元,並且在時間710內,可複寫式非揮發性記憶體模組106的狀態是忙碌(busy)。步驟S705中,記憶體管理電路202會傳送一個狀態訊息給主機系統1000,用以表
示記憶體管理電路202可以接收下一個寫入指令。在接收到狀態訊息並且經過時間711以後,主機系統1000會在步驟S706下達另一個寫入指令給記憶體儲存裝置100。值得住意的是,主機系統1000在接收到狀態指令以後,並不能馬上傳送下一個寫入指令(此現象稱為主機延遲)。然而,在步驟S704後,記憶體管理電路202等待的時間710會跟時間711重疊,藉此可以減少下達兩個寫入指令之間的時間720。
圖7B是繪示某一情況下主機系統下達寫入指令的示意
圖。
請參照圖7B,值得注意的是,圖7B是用來說明圖7A的
優點,本範例實施例並不會依照圖7B的流程來操作。圖7B與圖7A不同之處在於,圖7B中的記憶體管理電路202是先把資料寫入至上實體程式化單元再寫入至下實體程式化單元。因此,在接收到第一資料以後,記憶體管理電路202會先把部份的第一資料寫入至n個上實體程式化單元(步驟S704),接著才把其餘部份的第一資料寫入至n個下實體程式化單元(步驟S703)。然而,與時間711重疊的是時間709,而時間709會小於時間710,因此時間721會比圖7A中的時間720還要長。
主機系統1000在格式化邏輯位址410(0)~410(D)時,所
建立的檔案系統可以是檔案配置表(file allocation table,FAT)檔案系統(例如,擴展FAT(exFAT),FAT16,FAT32等)、新技術檔案系統(new technology file system,NTFS)、或其他任意的檔案系統,
本發明並不在此限。在此以FAT32為例,請參照圖8,圖8是根據一範例實施例繪示檔案系統的示意圖。FAT32檔案系統至少包括了開機區810(boot sector)、保留區820(reserved sector)、檔案配置表830與資料區840(data region)。開機區810是從第一邏輯位址850開始,而從邏輯位址410(0)到第一邏輯位址850之間的記憶體空間是用以儲存分割(partition)的資訊。其中保留區820的(邏輯)位址是在開機區810的位址之後,檔案配置表830的位址是在保留區820的位址之後,而資料區840的位址是在檔案配置表830的位址之後,即各個區的順序是固定的。在FAT檔案系統中,配置單位亦被稱為一個叢集(cluster),而資料區840中便會包括多個叢集。
在此範例實施例中,主機系統1000會先決定第一邏輯位址850,並且判斷資料區840的起始邏輯位址860是否屬於一個下邏輯程式化單元。例如,主機系統1000可以根據第一邏輯位址850的數值、開機區810、保留區820與檔案配置表830的大小來判斷初始邏輯位址860是否屬於一個下邏輯程式化單元。若初始邏輯位址860不屬於下邏輯程式化單元,則主機系統1000會調整保留區820的大小,使得初始邏輯位址860會被往前或往後移動,而被移動後的初始邏輯位址860會屬於一個下邏輯程式化單元(即,映射到至少一個下實體程式化單元)。
圖9A是根據一範例實施例繪示資料區映射至實體抹除單元的示意圖。
請參照圖8與圖9A,在此假設資料區840的起始邏輯位
址860是映射至下實體程式化單元514A,並且一個邏輯程式化單元是映射至一個實體程式化單元(即,上述的正整數n為1)。因此,資料區840中的第一個配置單元是映射至下實體程式化單元514A與上實體程式化單元512B,並且資料區840中的第二個配置單元是映射至下實體程式化單元516A與上實體程式化單元514B,以此類推。也就是說,由於資料區840是從下實體程式化單元514A開始,因此從起始邏輯位址860開始的大多數的配置單位中都會以下邏輯程式化單元開始,並以上邏輯程式化單元結束,而得到如圖7A所繪示的好處。
在本範例實施例中,透過調整保留區820的大小,起始
邏輯位址860並不會映射至下實體程式化單元510A。這是因為若起始邏輯位址860映射至下實體程式化單元510A,則資料區840中第一個配置單位會映射至下實體程式化單元510A與512A;而資料區840中第二個配置單位會映射至上實體程式化單元510B與下實體程式化單元514A;資料區840中第三個配置單位會映射至上實體程式化單元512B與下實體程式化單元516A,而產生圖7B的現象。換言之,在此範例實施例中,主機系統1000上的應用程式會設定起始邏輯位址860屬於一個特定的下邏輯程式化單元,使得從此特定的下邏輯程式化單元開始,下邏輯程式化單元與上邏輯程式化單元是交錯地配置。
為了確保主機系統1000在把資料寫入到一個配置單位
時,該資料會先被寫入至下實體程式化單元再寫入至上實體程式化單元,記憶體管理電路202必須管理邏輯程式化單元與實體程式化單元之間的映射關係。
圖9B是根據一範例實施例繪示寫入第一資料的範例示意圖。
請參照圖9B,在此假設主機系統下達了一個寫入指令,其指示將第一資料910從第二邏輯位址920開始寫入;第二邏輯位址920是屬於配置單位922;配置單位922原本是映射至實體抹除單元304(0)(亦稱第一實體抹除單元)中的下實體程式化單元514A與上實體程式化單元512B,其中第二邏輯位址920是映射至下實體程式化單元514A(亦稱第一實體程式化單元)。由於一個實體抹除單元在被抹除前無法被程式化,記憶體管理電路202會從閒置區404中提取實體抹除單元304(A+1)(亦稱第二實體抹除單元)。特別的是,記憶體管理電路202會從下實體程式化單元932A開始寫入第一資料910,使得配置單位922是映射至下實體程式化單元932A與上實體程式化單元930B。更詳細來說,依照上述的程式化順序,下實體程式化單元514A是在上實體程式化單元510B(亦稱第二實體程式化單元)之後。記憶體管理電路202會將上實體程式化單元510B所儲存的資料寫入至下實體程式化單元930A,並將第一資料910寫入至下實體程式化單元932A。若還有第一資料910尚未被寫入,則記憶體管理電路202會將剩餘的第一資料910寫入至上實體程式化單元930B。接下來,在某一時間
點,記憶體管理電路202會整併實體抹除單元304(0)與實體抹除單元304(A+1)中的有效資料。在此,實體抹除單元304(0)亦稱為母(mother)實體抹除單元,而實體抹除單元304(A+1)亦稱為子(child)實體抹除單元。
值得注意的是,記憶體管理電路202不會從下實體程式
化單元930A開始寫入第一資料910。這是由於若從下實體程式化單元930A開始寫入第一資料910,表示下實體程式化單元930A與下實體程式化單元932A會映射至一個配置單位,而下一個配置單位會映射至上實體程式化單元930B與下實體程式化單元934A。如此一來,在把資料寫入至此下一個配置單位時,會產生如圖7B所繪示的現象。在一範例實施例中,記憶體管理電路是根據一個對齊映射表來管理邏輯程式化單元與實體程式化單元之間的映射關係,以避免上述的情形發生。
圖10是根據一範例實施例繪示對齊映射表的示意圖。在
圖10中,有圓圈的數字表示邏輯程式化單元的編號,而沒有圓圈的數字代表實體程式化單元的編號。請參照圖5與圖10,邏輯程式化單元522(0)的編號為0,而邏輯程式化單元522(1)的編號為1,以此類推。實體程式化單元的編號便是圖5中的程式化順序。
在此範例實施例中,編號為1與2的邏輯程式化單元組成一個配置單位,其對應至行1010;編號為3與4的邏輯程式化單元組成一個配置單位,其對應至行1020。此外,”補0”所代表的意思是,記憶體管理電路202會從母實體抹除單元中將對應編號為0的邏
輯程式化單元的資料搬移至子實體抹除單元中對應的實體程式化單元。舉例來說,當從閒置區404提取一個實體抹除單元後,若要寫入的邏輯程式化單元的編號為1與2(對應至行1010),則記憶體管理電路202會根據行1010上的映射關係來寫入資料,即母實體抹除單元中將對應編號為0的邏輯程式化單元中的資料搬移至子實體抹除單元中編號為0的實體程式化單元,接下來屬於編號1與2的邏輯程式化單元的資料會分別被寫入至子實體抹除單元中編號為1與2的實體程式化單元。若要寫入的邏輯程式化單元的編號是3與4(對應至行1020),則記憶體管理電路202會根據行1020上的映射關係來寫入資料,即母實體抹除單元中將對應編號為2的邏輯程式化單元中的資料搬移至子實體抹除單元中編號為0的實體程式化單元,並且屬於編號3與4的邏輯程式化單元的資料會分別被寫入至子實體抹除單元中編號為1與2的實體程式化單元。
請參照圖9B與圖10,更具體來說,配置單位922包括了編號3與4的邏輯程式化單元。因此,記憶體管理電路202會根據對齊映射表中行1020上的映射關係,將儲存在上實體程式化單元510B(其編號為2)中的資料寫入至下實體程式化單元930A(其編號為0),接下來再把第一資料910寫入至下實體程式化單元932A(編號為1)。
[第二範例實施例]
第二範例實施例與第一範例實施例類似,但第二範例實
施例中實體程式化單元的程式化順序不同於第一範例實施例的程式化順序。圖11是根據第二範例實施例繪示寫入資料的示意圖。
請參照圖11,在實體抹除單元304(0)中,下實體程式化單元510A、上實體程式化單元510B、下實體程式化單元512A會依序被程式化。與第一範例實施例相同的是,配置單位922會以下邏輯程式化單元開始,並且以上邏輯程式化單元結束。具體來說,下實體程式化單元510A與上實體程式化單元510B會映射至一個配置單位,下實體程式化單元512A與上實體程式化單元512B會映射至另一個配置單位,以此類推。在此假設配置單位922包括了編號2的下邏輯程式化單元與編號3的上邏輯程式化單元,其是分別映射至下實體程式化單元512A與上實體程式化單元512B。
在第二範例實施例中,記憶體管理電路202也會依照對
齊映射表來寫入第一資料910。圖12是根據第二範例實施例繪示對齊映射表的示意圖。圖12中各個編號所代表的意思如同圖10中各個編號所代表的意思,在此並不再贅述。請參照圖11與圖12,配置單位922是對應至行1220,因此在提取實體抹除單元304(A+1)以後,記憶體管理電路202會從下實體程式化單元930A(其編號為0)開始寫入第一資料910,接著是上實體程式化單元930B(其編號為1)。
[第三範例實施例]
第三範例實施例與第一範例實施例類似,在此僅描述不
同之處。在第三範例實施例中,記憶體管理電路202是以邏輯程
式化單元來管理可複寫式非揮發性記憶體模組106。記憶體管理電路202是藉由一個映射表(紀錄了邏輯程式化單元與實體程式化單元之間的映射關係)來決定一個邏輯程式化單元是映射至下實體程式化單元或是上實體程式化單元。在格式化邏輯位址410(0)~410(D)以後,一個配置單位中包括了第一下邏輯程式化單元與第一上邏輯程式化單元。記憶體管理電路202會設定上述的映射表,使得第一下邏輯程式化單元是映射至下實體程式化單元,並且讓第一上邏輯程式化單元映射至上實體程式化單元。記憶體管理電路202也會設定此映射表,使得圖8中資料區840的起始邏輯位址860是映射至某一個下實體程式化單元。
圖13是根據一範例實施例繪示記憶體位址管理方法的流
程圖。
請參照圖13,在步驟S1301中,取得可複寫式非揮發性記憶體模組的記憶體資訊,其包括了程式化順序。在步驟S1302中,根據記憶體資訊來格式化邏輯位址以建立一檔案系統,使得檔案系統的一第一配置單位包括第一下邏輯程式化單元與第一上邏輯程式化單元,該第一配置單位是以第一下邏輯程式化單元開始並以第一上邏輯程式化單元結束,並且檔案系統的資料區的起始邏輯位址是屬於某一個下邏輯程式化單元。
然而,圖13中各步驟已詳細說明如上,在此便不再贅述。
值得注意的是,圖13中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖13的方法可以搭配以上實施例使用,
也可以單獨使用,本發明並不在此限。
綜上所述,本發明範例實施例提出的記憶體位址管理方
法,記憶體儲存裝置與記憶體控制器,可以設定檔案系統的配置單位與邏輯位址,使得在寫入資料至記憶體儲存裝置時,可複寫式非揮發性記憶體模組忙碌的時間會與主機延遲的時間重疊。如此一來,可以增加記憶體儲存裝置的存取頻寬。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧記憶體儲存裝置
1000‧‧‧主機系統
S701~S706‧‧‧步驟
709~711、720‧‧‧時間
Claims (21)
- 一種記憶體位址管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多條字元線、多條位元線與多個記憶胞,每一該些記憶胞連接至其中一個字元線與其中一個位元線,同一條字元線上的記憶胞組成一下實體程式化單元與一上實體程式化單元,該些下實體程式化單元的寫入速度會大於該些上實體程式化單元的寫入速度,該些下實體程式化單元與該些上實體程式化單元是依照一程式化順序被程式化,多個邏輯位址映射至部分的該些實體抹除單元,該些邏輯位址組成多個邏輯程式化單元,該些邏輯程式化單元被分為多個下邏輯程式化單元與多個上邏輯程式化單元,該記憶體位址管理方法包括:取得該可複寫式非揮發性記憶體模組的一記憶體資訊,其中該記憶體資訊包括該程式化順序;以及根據該記憶體資訊來格式化該些邏輯位址以建立一檔案系統,使得該檔案系統包括多個配置單位,該些配置單位中的一第一配置單位包括該些下邏輯程式化單元中的一第一下邏輯程式化單元與該些上邏輯程式化單元中的一第一上邏輯程式化單元,該第一配置單位是以該第一下邏輯程式化單元開始並以該第一上邏輯程式化單元結束,該檔案系統的一資料區的一起始邏輯位址是屬於該些下邏輯程式化單元的其中之一,並且該些下邏輯程式化單元映射該些下實體程式化單元且該些上邏輯程式化單元映射該 些上實體程式化單元。
- 如申請專利範圍第1項所述的記憶體位址管理方法,其中該記憶體資訊還包括一記憶體儲存裝置的一通道數,該可複寫式非揮發性記憶體模組的一平面數,與該記憶體儲存裝置的一交錯數。
- 如申請專利範圍第2項所述的記憶體位址管理方法,其中該第一下邏輯程式化單元是映射至該些下實體程式化單元中的n個下實體程式化單元,該第一上邏輯程式化單元是映射至該些上實體程式化單元中的n個上實體程式化單元,n為正整數,並且該正整數n是根據該通道數、該平面數與該交錯數所計算出。
- 如申請專利範圍第1項所述的記憶體位址管理方法,其中該檔案系統還包括一保留區,該保留區的位址是在該資料區的位址之前,其中,根據該記憶體資訊來格式化該些邏輯位址的步驟還包括:調整該保留區的大小,使得該些邏輯位址被格式化後,該資料區的該起始邏輯位址是屬於該些下邏輯程式化單元的其中之一。
- 如申請專利範圍第1項所述的記憶體位址管理方法,其中取得該可複寫式非揮發性記憶體模組的該記憶體資訊的步驟是由一主機系統上的一應用程式下達一製造商指令所取得,並由該應用程式格式化該些邏輯位址以建立該檔案系統。
- 一種記憶體儲存裝置,包括: 一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,其中每一該些實體抹除單元包括多條字元線、多條位元線與多個記憶胞,每一該些記憶胞連接至其中一個字元線與其中一個位元線,同一條字元線上的記憶胞組成一下實體程式化單元與一上實體程式化單元,該些下實體程式化單元的寫入速度會大於該些上實體程式化單元的寫入速度,並且該些下實體程式化單元與該些上實體程式化單元是依照一程式化順序被程式化;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,用以配置多個邏輯位址以映射至部分的該些實體抹除單元,其中該些邏輯位址組合多個邏輯程式化單元,該些邏輯程式化單元被分為多個下邏輯程式化單元與多個上邏輯程式化單元,該些下邏輯程式化單元映射該些實體程式化單元且該些上邏輯程式化單元映射該些上實體程式化單元,其中,該記憶體控制器用以提供該可複寫式非揮發性記憶體模組的一記憶體資訊給該主機系統,並且該記憶體資訊包括該程式化順序,其中,該記憶體控制器用以根據來自該主機系統的一指令來格式化該些邏輯位址以建立一檔案系統,使得該檔案系統包括多個配置單位,該些配置單位中的一第一配置單位包括該些下邏輯程式化單元中的一第一下邏輯程式化單元與該些上邏輯程式化單元中的一第一上邏輯程式化單元,該第一配置單位是以該第一下 邏輯程式化單元開始並以該第一上邏輯程式化單元結束,並且該檔案系統的一資料區的一起始邏輯位址是屬於該些下邏輯程式化單元的其中之一。
- 如申請專利範圍第6項所述的記憶體儲存裝置,其中該記憶體資訊還包括該記憶體儲存裝置的一通道數,該可複寫式非揮發性記憶體模組的一平面數,與該記憶體儲存裝置的一交錯數。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中該第一下邏輯程式化單元是映射至該些下實體程式化單元中的n個下實體程式化單元,該第一上邏輯程式化單元是映射至該些上實體程式化單元中的n個上實體程式化單元,n為正整數,並且該正整數n是根據該通道數、該平面數與該交錯數所計算出。
- 如申請專利範圍第6項所述的記憶體儲存裝置,其中該檔案系統還包括一保留區,該保留區的位址是在該資料區的位址之前,其中,該保留區的大小被調整,使得該些邏輯位址被格式化後,該資料區的該起始邏輯位址是屬於該些下邏輯程式化單元的其中之一。
- 如申請專利範圍第6項所述的記憶體儲存裝置,其中該記憶體控制器還用以接收來自該主機系統的一製造商指令,並且在接收該製造商指令以後提供該記憶體資訊給該主機系統。
- 如申請專利範圍第6項所述的記憶體儲存裝置,其中該記憶體控制器更用以將該些實體抹除單元劃分出一資料區與一閒 置區,並且該些邏輯位址是映射至該資料區中的該些實體抹除單元,其中該記憶體控制器更用以接收來自該主機系統的一寫入指令,其中該寫入指令指示將一第一資料寫入該些邏輯位址中的一第二邏輯位址,該第二邏輯位址是屬於該第一配置單位,該第二邏輯位址是映射至該些實體抹除單元中的一第一實體抹除單元中的一第一實體程式化單元,其中,依照該程式化順序,該第一實體程式化單元是在該第一實體抹除單元的一第二實體程式化單元之後,該第二實體程式化單元是映射至該些配置單位中一第二配置單位,並且該第二配置單位不同於該第一配置單位,其中,該記憶體控制器更用以從該閒置區提取一第二實體抹除單元,將儲存在該第二實體程式化單元的資料寫入至該第二實體抹除單元,接著將該第一資料寫入至該第二實體抹除單元。
- 如申請專利範圍第11項所述的記憶體儲存裝置,其中該記憶體控制器用以根據一對齊映射表將儲存在該第二實體程式化單元的資料寫入至該第二實體抹除單元,接著將該第一資料寫入至該第二實體抹除單元。
- 如申請專利範圍第12項所述的記憶體儲存裝置,其中該程式化順序指示在該些實體抹除單元的其中之一內,該些下實體程式化單元的其中之一被程式化以後,該些下實體程式化單元的其中之另一與該些上實體程式化單元的其中之一是依序且交錯地 被程式化。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多條字元線、多條位元線與多個記憶胞,每一該些記憶胞連接至其中一個字元線與其中一個位元線,同一條字元線上的記憶胞組成一下實體程式化單元與一上實體程式化單元,該些下實體程式化單元的寫入速度會大於該些上實體程式化單元的寫入速度,並且該些下實體程式化單元與該些上實體程式化單元是依照一程式化順序被程式化,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,用以配置多個邏輯位址映射至部份的該些實體抹除單元,其中該些邏輯位址組成多個邏輯程式化單元,該些邏輯程式化單元被分為多個下邏輯程式化單元與多個上邏輯程式化單元,該些下邏輯程式化單元映射該些實體程式化單元且該些上邏輯程式化單元映射該些上實體程式化單元,其中,該記憶體管理電路用以提供該可複寫式非揮發性記憶體模組的一記憶體資訊給該主機系統,並且該記憶體資訊包括該程式化順序, 其中,該記憶體管理電路用以根據來自該主機系統的一指令來格式化該些邏輯位址以建立一檔案系統,使得該檔案系統包括多個配置單位,該些配置單位中的一第一配置單位包括該些下邏輯程式化單元中的一第一下邏輯程式化單元與該些上邏輯程式化單元中的一第一上邏輯程式化單元,該第一配置單位是以該第一下邏輯程式化單元開始並以該第一上邏輯程式化單元結束,並且該檔案系統的一資料區的一起始邏輯位址是屬於該些下邏輯程式化單元的其中之一。
- 如申請專利範圍第14項所述的記憶體控制器,其中該記憶體資訊還包括一記憶體儲存裝置的一通道數,該可複寫式非揮發性記憶體模組的一平面數,與該記憶體儲存裝置的一交錯數。
- 如申請專利範圍第15項所述的記憶體控制器,其中該第一下邏輯程式化單元是映射至該些下實體程式化單元中的n個下實體程式化單元,該第一上邏輯程式化單元是映射至該些上實體程式化單元中的n個上實體程式化單元,n為正整數,並且該正整數n是根據該通道數、該平面數與該交錯數所計算出。
- 如申請專利範圍第14項所述的記憶體控制器,其中該檔案系統還包括一保留區,該保留區的位址是在該資料區的位址之前,其中,該保留區的大小被調整,使得該些邏輯位址被格式化後,該資料區的該起始邏輯位址是屬於該些下邏輯程式化單元的其中之一。
- 如申請專利範圍第14項所述的記憶體控制器,其中該記憶體管理電路還用以接收來自該主機系統的一製造商指令,並且在接收該製造商指令以後提供該記憶體資訊給該主機系統。
- 如申請專利範圍第15項所述的記憶體控制器,其中該記憶體管理電路更用以將該些實體抹除單元劃分出一資料區與一閒置區,並且該些邏輯位址是映射至該資料區中的該些實體抹除單元,其中該記憶體管理電路更用以接收來自該主機系統的一寫入指令,其中該寫入指令指示將一第一資料寫入該些邏輯位址中的一第二邏輯位址,該第二邏輯位址是屬於該第一配置單位,該第二邏輯位址是映射至該些實體抹除單元中的一第一實體抹除單元中的一第一實體程式化單元,其中,依照該程式化順序,該第一實體程式化單元是在該第一實體抹除單元的一第二實體程式化單元之後,並且該第二實體程式化單元是映射至該些配置單位中的一第二配置單位,其中,該記憶體管理電路更用以從該閒置區提取一第二實體抹除單元,將儲存在該第二實體程式化單元的資料寫入至該第二實體抹除單元,接著將該第一資料寫入至該第二實體抹除單元。
- 如申請專利範圍第19項所述的記憶體控制器,其中該記憶體管理電路用以根據一對齊映射表將儲存在該第二實體程式化單元的資料寫入至該第二實體抹除單元,接著將該第一資料寫入至該第二實體抹除單元。
- 如申請專利範圍第20項所述的記憶體控制器,其中該程式化順序指示在該些實體抹除單元的其中之一內,該些下實體程式化單元的其中之一被程式化以後,該些下實體程式化單元的其中之另一與該些上實體程式化單元的其中之一是依序且交錯地被程式化。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102128526A TWI514141B (zh) | 2013-08-08 | 2013-08-08 | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 |
US14/054,852 US9146861B2 (en) | 2013-08-08 | 2013-10-16 | Memory address management method, memory controller and memory storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102128526A TWI514141B (zh) | 2013-08-08 | 2013-08-08 | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506620A TW201506620A (zh) | 2015-02-16 |
TWI514141B true TWI514141B (zh) | 2015-12-21 |
Family
ID=52449612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102128526A TWI514141B (zh) | 2013-08-08 | 2013-08-08 | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9146861B2 (zh) |
TW (1) | TWI514141B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9414079B1 (en) * | 2015-03-23 | 2016-08-09 | Kyocera Document Solutions Inc. | Interleaving encoding |
CN106920572B (zh) * | 2015-12-25 | 2020-03-17 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
TWI584292B (zh) * | 2016-09-08 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
KR102457564B1 (ko) * | 2017-09-20 | 2022-10-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136655A1 (en) * | 2004-12-16 | 2006-06-22 | Gorobets Sergey A | Cluster auto-alignment |
TW200919474A (en) * | 2007-10-19 | 2009-05-01 | Phison Electronics Corp | Writing method for non-volatile memory and controller using the same |
TW201001422A (en) * | 2008-06-26 | 2010-01-01 | Phison Electronics Corp | Block accessing method for flash memory and storage system and controller using the same |
US20110099326A1 (en) * | 2009-10-27 | 2011-04-28 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7212436B2 (en) * | 2005-02-28 | 2007-05-01 | Micron Technology, Inc. | Multiple level programming in a non-volatile memory device |
WO2009013879A1 (ja) * | 2007-07-20 | 2009-01-29 | Panasonic Corporation | メモリーコントローラ、及びこれを用いた不揮発性記憶装置 |
TWI354996B (en) * | 2007-12-31 | 2011-12-21 | Phison Electronics Corp | Wear leveling method and controller thereof |
TWI403906B (zh) * | 2008-09-17 | 2013-08-01 | Silicon Motion Inc | 快閃記憶裝置及其運作方法 |
US9588883B2 (en) * | 2011-09-23 | 2017-03-07 | Conversant Intellectual Property Management Inc. | Flash memory system |
-
2013
- 2013-08-08 TW TW102128526A patent/TWI514141B/zh active
- 2013-10-16 US US14/054,852 patent/US9146861B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136655A1 (en) * | 2004-12-16 | 2006-06-22 | Gorobets Sergey A | Cluster auto-alignment |
TW200919474A (en) * | 2007-10-19 | 2009-05-01 | Phison Electronics Corp | Writing method for non-volatile memory and controller using the same |
TW201001422A (en) * | 2008-06-26 | 2010-01-01 | Phison Electronics Corp | Block accessing method for flash memory and storage system and controller using the same |
US20110099326A1 (en) * | 2009-10-27 | 2011-04-28 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Also Published As
Publication number | Publication date |
---|---|
TW201506620A (zh) | 2015-02-16 |
US9146861B2 (en) | 2015-09-29 |
US20150046632A1 (en) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
TWI486767B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI525625B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI486765B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI514141B (zh) | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN104375945A (zh) | 存储器地址管理方法、存储器控制器与存储器储存装置 | |
TWI559141B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201643722A (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI596477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI467578B (zh) | 錯誤處理方法、記憶體儲存裝置與記憶體控制電路單元 | |
TW201820341A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI615713B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |