本發(fā)明涉及一種內(nèi)存管理方法,尤其涉及一種可復寫式非易失性內(nèi)存模塊的內(nèi)存管理方法、內(nèi)存控制電路單元及內(nèi)存儲存裝置。
背景技術(shù):
數(shù)字相機、移動電話與mp3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由于可復寫式非易失性內(nèi)存模塊(例如,閃存)具有數(shù)據(jù)非易失性、省電、體積小,以及無機械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可攜式多媒體裝置中。
一般來說,可復寫式非易失性內(nèi)存模塊是由一個內(nèi)存控制電路單元所控制。內(nèi)存控制電路單元可接收來自主機系統(tǒng)的數(shù)據(jù),并把這些數(shù)據(jù)寫入至可復寫式非易失性內(nèi)存模塊中。在一些設(shè)置中,可復寫式非易失性內(nèi)存模塊具有多個平面(plane),并且每個平面包括多個實體抹除單元。內(nèi)存控制電路單元會將屬于不同平面的多個實體抹除單元配置為同一個超實體抹除單元,并且內(nèi)存控制電路單元會交錯地或是同時地程序化同一個超實體抹除單元內(nèi)的實體抹除單元。藉此,當主機系統(tǒng)所下達的是連續(xù)數(shù)據(jù)時,把數(shù)據(jù)寫入至可復寫式非易失性內(nèi)存模塊的速度會增加。
然而,可復寫式非易失性內(nèi)存模塊的各平面中的可能會包括好實體抹除單元及壞實體抹除單元,而內(nèi)存控制電路僅會使用各平面中的好實體抹除單元來配置為超實體抹除單元。倘若,各平面中包括不同數(shù)量的壞實體抹除單元,相對地,各平面中就會包括不對等數(shù)量的好實體抹除單元。在此種情況下,包括較多好實體抹除單元的平面中將存在剩余的好實體抹除單元無法被配置為超實體抹除單元,進而影響實際可使用的儲存空間的大小。因此,如何充分地利用好實體抹除單元來配置更多的超實體抹除單元以提升實體抹除單元的使用率,為此領(lǐng)域技術(shù)人員所關(guān)心的議題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種內(nèi)存管理方法、內(nèi)存控制電路單元及內(nèi)存儲存裝置,可將屬于同一平面中的多個實體抹除單元配置為同一個超實體單元,藉以配置更多的超實體單元。
本發(fā)明一范例實施例提出一種內(nèi)存管理方法,用于內(nèi)存儲存裝置。此內(nèi)存儲存裝置具有可復寫式非易失性內(nèi)存模塊,并且此可復寫式非易失性內(nèi)存模塊具有多個好實體抹除單元。本內(nèi)存管理方法包括分配所述好實體抹除單元之中的其中一部分以配置多個第一類超實體單元,其中每一個第一類超實體單元至少包括第一好實體抹除單元及第二好實體抹除單元,并且第一好實體抹除單元及第二好實體抹除單元會同時被程序化。本內(nèi)存管理方法也包括分配 所述好實體抹除單元之中的剩余部分以配置至少一個第二類超實體單元。所述至少一個第二類超實體單元至少包括第三好實體抹除單元及第四好實體抹除單元,并且第三好實體抹除單元及第四好實體抹除單元不會同時被程序化。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理方法還包括從主機系統(tǒng)接收指示寫入第一數(shù)據(jù)的第一寫入指令,其中第一數(shù)據(jù)包括第一部分及第二部分。再者,將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元中。并且在將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元之后,倘若第三好實體抹除單元存在未寫入數(shù)據(jù)的至少一實體程序化單元,將第一數(shù)據(jù)的第二部分寫入至第三好實體抹除單元。此外,在將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元之后,倘若第三好實體抹除單元的所有實體程序化單元皆已寫入數(shù)據(jù),將第一數(shù)據(jù)的第二部分寫入至第四好實體抹除單元。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理方法還包括配置多個邏輯地址,其中第一數(shù)據(jù)的第一部分屬于所述邏輯地址中的至少一第一邏輯地址,并且第一數(shù)據(jù)的第二部分屬于所述邏輯地址中的至少一第二邏輯地址,并且第二邏輯地址是接續(xù)在第一邏輯地址之后。
在本發(fā)明的一范例實施例中,上述的多個邏輯地址組成多個邏輯程序化單元,此些邏輯程序化單元組成多個邏輯抹除單元,并且所述至少一個第二類超實體單元是映像至此些邏輯抹除單元的至少其中之一。
在本發(fā)明的一范例實施例中,上述的從主機系統(tǒng)接收指示寫入第一數(shù)據(jù)的第一寫入指令的步驟還包括將第一數(shù)據(jù)儲存至緩沖存儲器的緩沖區(qū)并響應第一寫入指令。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理方法還包括從主機系統(tǒng)接收指示寫入第一數(shù)據(jù)的第一寫入指令,其中第一數(shù)據(jù)包括第一部分及第二部分。再者,上述的內(nèi)存管理方法還包括將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元中,并且將第一數(shù)據(jù)的第二部分寫入至第四好實體抹除單元中。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理方法還包括從主機系統(tǒng)接收指示寫入第二數(shù)據(jù)的第二寫入指令,其中第二數(shù)據(jù)包括第一部分及第二部分。再者,上述的內(nèi)存管理方法還包括將第二數(shù)據(jù)的第一部分寫入至第一類超實體單元的其中一個第一類超實體單元的第一好實體抹除單元中,并且將第二數(shù)據(jù)的第二部分寫入至第一類超實體單元的此其中一個第一類超實體單元的第二好實體抹除單元中。
本發(fā)明一范例實施例提出一種內(nèi)存控制電路單元,用于控制可復寫式非易失性內(nèi)存模塊??蓮蛯懯椒且资詢?nèi)存模塊具有多個好實體抹除單元。本內(nèi)存控制電路單元包括主機接口、內(nèi)存接口及內(nèi)存管理電路。主機接口電性連接至主機系統(tǒng)。內(nèi)存接口電性連接至可復寫式非易失性內(nèi)存模塊。內(nèi)存管理電路電性連接至該主機接口與該內(nèi)存接口。內(nèi)存管理電路用以分配所述好實體抹除單元之中的其中一部分以配置多個第一類超實體單元,其中每一個第一類超實體單元至少包括第一好實體抹除單元及第二好實體抹除單元,并且第一好實體抹除單元及第二好實體抹除單元會同時被程序化。再者,內(nèi)存管理電路還用以分配所述好實體抹除單元之中的剩余部分以配置至少一個第二類超實體單元,所述至少一個第二類超實體單元至少包括第三好實體抹除單元及第四好實體抹除單元,并且第三好實體抹除單元及第四好實體抹除單元不會同時被程序化。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理電路還用以從主機系統(tǒng)接收指示寫入第一數(shù)據(jù)的第一寫入指令,其中第一數(shù)據(jù)包括第一部分及第二部分。再者,內(nèi)存管理電路還用以 下達第一指令序列將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元中。在將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元之后,倘若第三好實體抹除單元存在未寫入數(shù)據(jù)的至少一實體程序化單元,內(nèi)存管理電路還用以下達第二指令序列將第一數(shù)據(jù)的第二部分寫入至第三好實體抹除單元。此外,在將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元之后,倘若第三好實體抹除單元的所有實體程序化單元皆已寫入數(shù)據(jù),內(nèi)存管理電路還用以下達第三指令序列將第一數(shù)據(jù)的第二部分寫入至第四好實體抹除單元。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理電路還用以配置多個邏輯地址,其中第一數(shù)據(jù)的第一部分屬于所述邏輯地址中的至少一第一邏輯地址,第一數(shù)據(jù)的第二部分屬于所述邏輯地址中的至少一第二邏輯地址,并且第二邏輯地址是接續(xù)在第一邏輯地址之后。
在本發(fā)明的一范例實施例中,上述的邏輯地址組成多個邏輯程序化單元,此些邏輯程序化單元組成多個邏輯抹除單元,并且所述至少一個第二類超實體單元是映像至所述邏輯抹除單元的至少其中之一。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理電路還用以將第一數(shù)據(jù)儲存至緩沖存儲器的緩沖區(qū)并響應第一寫入指令。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理電路還用以從主機系統(tǒng)接收指示寫入第一數(shù)據(jù)的第一寫入指令,其中第一數(shù)據(jù)包括第一部分及第二部分。再者,內(nèi)存管理電路還用以下達第一指令序列將第一數(shù)據(jù)的第一部分寫入至第三好實體抹除單元中,并且下達第二指令序列將第一數(shù)據(jù)的第二部分寫入至第四好實體抹除單元中。
在本發(fā)明的一范例實施例中,上述的內(nèi)存管理電路還用以從主機系統(tǒng)接收指示寫入第二數(shù)據(jù)的第二寫入指令,其中第二數(shù)據(jù)包括第一部分及第二部分。再者,內(nèi)存管理電路還用以下達第一指令序列將第二數(shù)據(jù)的第一部分寫入至第一類超實體單元的其中一個第一類超實體單元的第一好實體抹除單元中,并且下達第二指令序列將第二數(shù)據(jù)的第二部分寫入至第一類超實體單元的此其中一個第一類超實體單元的第二好實體抹除單元中。
本發(fā)明的一范例實施例提出一種內(nèi)存儲存裝置,其包括連接接口單元、可復寫式非易失性內(nèi)存模塊及上述的內(nèi)存控制電路單元。連接接口單元電性連接至主機系統(tǒng),內(nèi)存控制電路單元電性連接至連接接口單元與可復寫式非易失性內(nèi)存模塊。
基于上述,本發(fā)明范例實施例提出的內(nèi)存管理方法、內(nèi)存控制電路單元與內(nèi)存儲存裝置,可將屬于同一平面中的多個好實體抹除單元配置為同一個超實體單元,藉以增加所配置的超實體單元的數(shù)量,并且更有效地使用可復寫式非易失性內(nèi)存模塊中的好實體抹除單元。
為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
附圖說明
圖1是根據(jù)一范例實施例所顯示的主機系統(tǒng)、內(nèi)存儲存裝置及輸入/輸出(i/o)裝置的示意圖;
圖2是根據(jù)另一范例實施例所顯示的主機系統(tǒng)、內(nèi)存儲存裝置及輸入/輸出(i/o)裝置的示意圖;
圖3是根據(jù)另一范例實施例所顯示的主機系統(tǒng)與內(nèi)存儲存裝置的示意圖;
圖4是根據(jù)一范例實施例所顯示的主機系統(tǒng)與內(nèi)存儲存裝置的概要方框圖;
圖5是根據(jù)一范例實施例所顯示的內(nèi)存控制電路單元的概要方框圖;
圖6與圖7是根據(jù)一范例實施例所顯示的管理實體抹除單元的范例示意圖;
圖8a是根據(jù)一范例實施例所顯示的配置超實體單元的范例示意圖;
圖8b是根據(jù)圖8a的范例實施例所顯示的寫入數(shù)據(jù)至第一類超實體單元的范例示意圖;
圖8c是根據(jù)圖8a的范例實施例所顯示的寫入數(shù)據(jù)至第二類超實體單元的范例示意圖;
圖9a是根據(jù)另一范例實施例所顯示的配置超實體單元的范例示意圖;
圖9b是根據(jù)圖9a的范例實施例所顯示的寫入數(shù)據(jù)至第一類超實體單元的范例示意圖;
圖9c是根據(jù)圖9a的范例實施例所顯示的寫入數(shù)據(jù)至第二類超實體單元的范例示意圖;
圖10是根據(jù)一范例實施例的內(nèi)存管理方法所顯示的配置超實體單元的流程圖;
圖11是根據(jù)一范例實施例的內(nèi)存管理方法所顯示的寫入數(shù)據(jù)至第二類超實體單元的流程圖。
附圖標記:
10:內(nèi)存儲存裝置
11:主機系統(tǒng)
12:輸入/輸出(i/o)裝置
110:系統(tǒng)總線
111:處理器
112:隨機存取內(nèi)存(ram)
113:只讀存儲器(rom)
114:數(shù)據(jù)傳輸接口
20:主板
201:隨身碟
202:記憶卡
203:固態(tài)硬盤
204:無線內(nèi)存儲存裝置
205:全球定位系統(tǒng)模塊
206:網(wǎng)絡(luò)適配器
207:無線傳輸裝置
208:鍵盤
209:屏幕
210:喇叭
30:內(nèi)存儲存裝置
31:主機系統(tǒng)
32:sd卡
33:cf卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多芯片封裝儲存裝置
402:連接接口單元
404:內(nèi)存控制電路單元
406:可復寫式非易失性內(nèi)存模塊
410(0)~410(n):實體抹除單元
502:內(nèi)存管理電路
504:主機接口
506:內(nèi)存接口
508:緩沖存儲器
510:電源管理電路
512:錯誤檢查與校正電路
602:數(shù)據(jù)區(qū)
604:閑置區(qū)
606:系統(tǒng)區(qū)
608:取代區(qū)
710(0)~710(d):邏輯地址
p1、p2、p3、p4:平面
pba(0)~pba(15):實體抹除單元
spba(0)~spba(3)、spba(5)~spba(7):第一類超實體單元
spba(4)、spba(8):第二類超實體單元
lba(0)、lba(1)、lba(s):邏輯抹除單元
lba(0-0)~lba(0-e)、lba(1-0)~lba(1-e)、lba(s-0)~lba(s-e):邏輯程序化單元
810、820、830、840、910、920、930、940:數(shù)據(jù)
s1001:配置多個第一類超實體單元,其中每一個第一類超實體單元包括至少兩個好實體抹除單元,并且此至少兩個好實體抹除單元分別是屬于不同平面的步驟
s1003:判斷在同一平面中是否存在多個好實體抹除單元,其中此些好實體抹除單元未對應至已配置的任一個第一類超實體單元的步驟
s1005:配置至少一個第二類超實體單元,其中此第二類超實體單元包括同一平面中的至少兩個好實體抹除單元,并且此至少兩個好實體抹除單元未對應至已配置的任一個第一類超實體單元的步驟
s1101:接收到來自主機系統(tǒng)指示寫入數(shù)據(jù)的寫入指令的步驟
s1103:提取一個第二類超實體單元,以寫入此數(shù)據(jù)的步驟
s1105:將此數(shù)據(jù)的第一部分寫入至所提取的第二類超實體單元的一個好實體抹除單元中的步驟
s1107:判斷所提取的第二類超實體單元的此好實體抹除單元中是否存在未寫入數(shù)據(jù)的至少一個實體程序化單元的步驟
s1109:將此數(shù)據(jù)的第二部分寫入至所提取的第二類超實體單元的此好實體抹除單元中的步驟
s1111:將此數(shù)據(jù)的第二部分寫入至所提取的第二類超實體單元的另一個好實體抹除單元中的步驟
具體實施方式
一般而言,內(nèi)存儲存裝置(亦稱,內(nèi)存儲存系統(tǒng))包括可復寫式非易失性內(nèi)存模塊與控制器(亦稱,控制電路單元)。通常內(nèi)存儲存裝置是與主機系統(tǒng)一起使用,以使主機系統(tǒng)可將數(shù)據(jù)寫入至內(nèi)存儲存裝置或從內(nèi)存儲存裝置中讀取數(shù)據(jù)。
圖1是根據(jù)一范例實施例所顯示的主機系統(tǒng)、內(nèi)存儲存裝置及輸入/輸出(i/o)裝置的示意圖,且圖2是根據(jù)另一范例實施例所顯示的主機系統(tǒng)、內(nèi)存儲存裝置及輸入/輸出(i/o)裝置的示意圖。
請參照圖1與圖2,主機系統(tǒng)11一般包括處理器111、隨機存取內(nèi)存(randomaccessmemory,ram)112、只讀存儲器(readonlymemory,rom)113及數(shù)據(jù)傳輸接口114。處理器111、隨機存取內(nèi)存112、只讀存儲器113及數(shù)據(jù)傳輸接口114皆電性連接至系統(tǒng)總線(systembus)110。
在本范例實施例中,主機系統(tǒng)11是通過數(shù)據(jù)傳輸接口114與內(nèi)存儲存裝置10電性連接。例如,主機系統(tǒng)11可經(jīng)由數(shù)據(jù)傳輸接口114將數(shù)據(jù)寫入至內(nèi)存儲存裝置10或從內(nèi)存儲存裝置10中讀取數(shù)據(jù)。此外,主機系統(tǒng)11是通過系統(tǒng)總線110與i/o裝置12電性連接。例如,主機系統(tǒng)11可經(jīng)由系統(tǒng)總線110將輸出信號傳送至i/o裝置12或從i/o裝置12接收輸入信號。
在本范例實施例中,處理器111、隨機存取內(nèi)存112、只讀存儲器113及數(shù)據(jù)傳輸接口114是可設(shè)置在主機系統(tǒng)11的主板20上。數(shù)據(jù)傳輸接口114的數(shù)目可以是一或多個。通過數(shù)據(jù)傳輸接口114,主板20可以經(jīng)由有線或無線方式電性連接至內(nèi)存儲存裝置10。內(nèi)存儲存裝置10可例如是隨身碟201、記憶卡202、固態(tài)硬盤(solidstatedrive,ssd)203或無線內(nèi)存儲存裝置204。無線內(nèi)存儲存裝置204可例如是近距離無線通信(nearfieldcommunicationstorage,nfc)內(nèi)存儲存裝置、無線傳真(wifi)內(nèi)存儲存裝置、藍牙(bluetooth)內(nèi)存儲存裝置或低功耗藍牙內(nèi)存儲存裝置(例如,ibeacon)等以各式無線通信技術(shù)為基礎(chǔ)的內(nèi)存儲存裝置。此外,主板20也可以通過系統(tǒng)總線110電性連接至全球定位系統(tǒng)(globalpositioningsystem,gps)模塊205、網(wǎng)絡(luò)適配器206、無線傳輸裝置207、鍵盤208、屏幕209、喇叭210等各式i/o裝置。例如,在一范例實施例中,主板20可通過無線傳輸裝置207存取無線內(nèi)存儲存裝置204。
在一范例實施例中,所提及的主機系統(tǒng)為可實質(zhì)地與內(nèi)存儲存裝置配合以儲存數(shù)據(jù)的任意系統(tǒng)。雖然在上述范例實施例中,主機系統(tǒng)是以計算機系統(tǒng)來作說明,然而,圖3是根據(jù)另一范例實施例所顯示的主機系統(tǒng)與內(nèi)存儲存裝置的示意圖。請參照圖3,在另一范例實施例中,主機系統(tǒng)31也可以是數(shù)字相機、攝影機、通信裝置、音頻播放器、視頻播放器或平板計算機等系統(tǒng),而內(nèi)存儲存裝置30可為其所使用的sd卡32、cf卡33或嵌入式儲存裝置34等各式非易失性內(nèi)存儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embeddedmmc,emmc)341和/或嵌入式多芯片封裝儲存裝置(embeddedmultichippackage,emcp)342等各類型將內(nèi)存模塊直接電性連接于主機系統(tǒng)的基板上的嵌入式儲存裝置。
圖4是根據(jù)一范例實施例所顯示的主機系統(tǒng)與內(nèi)存儲存裝置的概要方框圖。
請參照圖4,內(nèi)存儲存裝置10包括連接接口單元402、內(nèi)存控制電路單元404與可復寫 式非易失性內(nèi)存模塊406。
在本范例實施例中,連接接口單元402是兼容于序列先進附件(serialadvancedtechnologyattachment,sata)標準。然而,必須了解的是,本發(fā)明不限于此,連接接口單元402亦可以是符合并列先進附件(paralleladvancedtechnologyattachment,pata)標準、電氣和電子工程師協(xié)會(instituteofelectricalandelectronicengineers,ieee)1394標準、高速周邊零件連接接口(peripheralcomponentinterconnectexpress,pciexpress)標準、通用串行總線(universalserialbus,usb)標準、超高速一代(ultrahighspeed-i,uhs-i)接口標準、超高速二代(ultrahighspeed-ii,uhs-ii)接口標準、安全數(shù)字(securedigital,sd)接口標準、記憶棒(memorystick,ms)接口標準、多芯片封裝(multi-chippackage)接口標準、多媒體儲存卡(multimediacard,mmc)接口標準、嵌入式多媒體儲存卡(embeddedmultimediacard,emmc)接口標準、通用閃存(universalflashstorage,ufs)接口標準、嵌入式多芯片封裝(embeddedmultichippackage,emcp)接口標準、小型快閃(compactflash,cf)接口標準、整合式驅(qū)動電子接口(integrateddeviceelectronics,ide)標準或其他適合的標準。在本范例實施例中,連接接口單元402可與內(nèi)存控制電路單元404封裝在一個芯片中,或者連接接口單元402是布設(shè)于一包含內(nèi)存控制電路單元的芯片外。
內(nèi)存控制電路單元404用以執(zhí)行以硬件型式或固件型式實作的多個邏輯閘或控制指令,并且根據(jù)主機系統(tǒng)11的指令在可復寫式非易失性內(nèi)存模塊406中進行數(shù)據(jù)的寫入、讀取與抹除等運作。
可復寫式非易失性內(nèi)存模塊406是電性連接至內(nèi)存控制電路單元404,并且用以儲存主機系統(tǒng)11所寫入的數(shù)據(jù)??蓮蛯懯椒且资詢?nèi)存模塊406具有實體抹除單元410(0)~410(n)。例如,實體抹除單元410(0)~410(n)可屬于同一個內(nèi)存晶粒(die)或者屬于不同的內(nèi)存晶粒。每一實體抹除單元分別具有多個實體程序化單元,其中屬于同一個實體抹除單元的實體程序化單元可被獨立地寫入且被同時地抹除。然而,必須了解的是,本發(fā)明不限于此,每一實體抹除單元是可由64個實體程序化單元、256個實體程序化單元或其他任意個實體程序化單元所組成。
更詳細來說,實體抹除單元為抹除的最小單位。即,每一實體抹除單元含有最小數(shù)目之一并被抹除的記憶胞。實體程序化單元為程序化的最小單元。即,實體程序化單元為寫入數(shù)據(jù)的最小單元。每一實體程序化單元通常包括數(shù)據(jù)位區(qū)與冗余位區(qū)。數(shù)據(jù)位區(qū)包含多個實體存取地址用以儲存用戶的數(shù)據(jù),而冗余位區(qū)用以儲存系統(tǒng)的數(shù)據(jù)(例如,控制信息與錯誤更正碼)。在本范例實施例中,每一個實體程序化單元的數(shù)據(jù)位區(qū)中會包含8個實體存取地址,且一個實體存取地址的大小為512字節(jié)(byte)。然而,在其他范例實施例中,數(shù)據(jù)位區(qū)中也可包含數(shù)目更多或更少的實體存取地址,本發(fā)明并不限制實體存取地址的大小以及個數(shù)。例如,在一范例實施例中,實體抹除單元為實體區(qū)塊,并且實體程序化單元為實體頁面或?qū)嶓w扇區(qū),但本發(fā)明不以此為限。
在本范例實施例中,每一個實體抹除單元410(0)~410(n)是屬于多個操作單元的其中之一。屬于不同操作單元的實體抹除單元可以同時或是交錯地被程序化。例如,操作單元可以是信道、芯片、晶?;蚴瞧矫?。具體來說,在一范例實施例中內(nèi)存儲存裝置10具有多個信道,內(nèi)存控制電路單元404是通過不同的信道來存取不同部分的實體抹除單元410(0)~410(n)。不同信道上的實體抹除單元可以獨立的運作。例如,內(nèi)存控制電路單元404對一個信道上的實體 抹除單元執(zhí)行寫入操作時,內(nèi)存控制電路單元404可以同時地對另一個信道上的實體抹除單元執(zhí)行讀取操作或其他操作。在內(nèi)存儲存裝置10中,同一個信道中的實體抹除單元可以屬于不同的芯片。在一范例實施例中,屬于不同芯片的實體抹除單元亦屬于不同的交錯(interleave)。內(nèi)存控制電路單元404在程序化某一個芯片中的實體抹除單元以后,不需要等此芯片回復準備好(ready)信號,便可以繼續(xù)程序化下一個芯片中的實體抹除單元。在可復寫式非易失性內(nèi)存模塊406中,同一個交錯中的實體抹除單元還可以屬于不同的平面(plane)。同一個交錯中屬于不同平面的實體抹除單元可以根據(jù)同一個寫入指令而同時被程序化。
在一范例實施例中,內(nèi)存儲存裝置10中配置了一個信道與一個芯片,而此芯片包括兩個平面,但本發(fā)明并不在此限。在另一范例實施例中,內(nèi)存儲存裝置10也可以包括n個通道、m個交錯、以及k個平面。n、m與k為正整數(shù),并且其中一個正整數(shù)會大于1(即,內(nèi)存儲存裝置10包括多個操作單元)。然而,本發(fā)明并不限制正整數(shù)n、m與k的數(shù)值。
在本范例實施例中,可復寫式非易失性內(nèi)存模塊406為多階記憶胞(multilevelcell,mlc)nand型閃存模塊(即,一個記憶胞中可儲存2個數(shù)據(jù)位的閃存模塊)。然而,本發(fā)明不限于此,可復寫式非易失性內(nèi)存模塊406可是單階記憶胞(singlelevelcell,slc)nand型閃存模塊(即,一個記憶胞中可儲存1個數(shù)據(jù)位的閃存模塊)、復數(shù)階記憶胞(trinarylevelcell,tlc)nand型閃存模塊(即,一個記憶胞中可儲存3個數(shù)據(jù)位的閃存模塊)、其他閃存模塊或其他具有相同特性的內(nèi)存模塊。
圖5是根據(jù)一范例實施例所顯示的內(nèi)存控制電路單元的概要方框圖。
請參照圖5,內(nèi)存控制電路單元404包括內(nèi)存管理電路502、主機接口504與內(nèi)存接口506、緩沖存儲器508、電源管理電路510與錯誤檢查與校正電路512。
內(nèi)存管理電路502用以控制內(nèi)存控制電路單元404的整體運作。具體來說,內(nèi)存管理電路502具有多個控制指令,并且在內(nèi)存儲存裝置10運作時,此些控制指令會被執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
在本范例實施例中,內(nèi)存管理電路502的控制指令是以固件型式來實作。例如,內(nèi)存管理電路502具有微處理器單元(未顯示)與只讀存儲器(未顯示),并且此些控制指令是被刻錄至此只讀存儲器中。當內(nèi)存儲存裝置10運作時,此些控制指令會由微處理器單元來執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
在本發(fā)明另一范例實施例中,內(nèi)存管理電路502的控制指令亦可以程序代碼型式儲存于可復寫式非易失性內(nèi)存模塊406的特定區(qū)域(例如,內(nèi)存模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,內(nèi)存管理電路502具有微處理器單元(未顯示)、只讀存儲器(未顯示)及隨機存取內(nèi)存(未顯示)。特別是,此只讀存儲器具有驅(qū)動碼,并且當內(nèi)存控制電路單元404被致能時,微處理器單元會先執(zhí)行此驅(qū)動碼段來將儲存于可復寫式非易失性內(nèi)存模塊406中的控制指令加載至內(nèi)存管理電路502的隨機存取內(nèi)存中。之后,微處理器單元會運轉(zhuǎn)此些控制指令以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
此外,在本發(fā)明另一范例實施例中,內(nèi)存管理電路502的控制指令亦可以一硬件型式來實作。例如,內(nèi)存管理電路502包括微控制器、記憶胞管理電路、內(nèi)存寫入電路、內(nèi)存讀取電路、內(nèi)存抹除電路與數(shù)據(jù)處理電路。記憶胞管理電路、內(nèi)存寫入電路、內(nèi)存讀取電路、內(nèi)存抹除電路與數(shù)據(jù)處理電路是電性連接至微控制器。其中,記憶胞管理電路用以管理可復寫 式非易失性內(nèi)存模塊406的實體抹除單元;內(nèi)存寫入電路用以對可復寫式非易失性內(nèi)存模塊406下達寫入指令以將數(shù)據(jù)寫入至可復寫式非易失性內(nèi)存模塊406中;內(nèi)存讀取電路用以對可復寫式非易失性內(nèi)存模塊406下達讀取指令以從可復寫式非易失性內(nèi)存模塊406中讀取數(shù)據(jù);內(nèi)存抹除電路用以對可復寫式非易失性內(nèi)存模塊406下達抹除指令以將數(shù)據(jù)從可復寫式非易失性內(nèi)存模塊406中抹除;而數(shù)據(jù)處理電路用以處理欲寫入至可復寫式非易失性內(nèi)存模塊406的數(shù)據(jù)以及從可復寫式非易失性內(nèi)存模塊406中讀取的數(shù)據(jù)。
主機接口504是電性連接至內(nèi)存管理電路502并且用以電性連接至連接接口單元402,以接收與識別主機系統(tǒng)11所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)11所傳送的指令與數(shù)據(jù)會通過主機接口504來傳送至內(nèi)存管理電路502。在本范例實施例中,主機接口504是兼容于sata標準。然而,必須了解的是本發(fā)明不限于此,主機接口504亦可以是兼容于pata標準、ieee1394標準、pciexpress標準、usb標準、uhs-i接口標準、uhs-ii接口標準、sd標準、ms標準、mmc標準、cf標準、ide標準或其他適合的數(shù)據(jù)傳輸標準。
內(nèi)存接口506是電性連接至內(nèi)存管理電路502并且用以存取可復寫式非易失性內(nèi)存模塊406。也就是說,欲寫入至可復寫式非易失性內(nèi)存模塊406的數(shù)據(jù)會經(jīng)由內(nèi)存接口506轉(zhuǎn)換為可復寫式非易失性內(nèi)存模塊406所能接受的格式。
緩沖存儲器508是電性連接至內(nèi)存管理電路502并且用以暫存來自于主機系統(tǒng)11的數(shù)據(jù)與指令或來自于可復寫式非易失性內(nèi)存模塊406的數(shù)據(jù)。
電源管理電路510是電性連接至內(nèi)存管理電路502并且用以控制內(nèi)存儲存裝置10的電源。
錯誤檢查與校正電路512是電性連接至內(nèi)存管理電路502并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當內(nèi)存管理電路502從主機系統(tǒng)11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的數(shù)據(jù)產(chǎn)生對應的錯誤檢查與校正碼(errorcheckingandcorrectingcode,ecccode),并且內(nèi)存管理電路502會將對應此寫入指令的數(shù)據(jù)與對應的錯誤檢查與校正碼寫入至可復寫式非易失性內(nèi)存模塊406中。之后,當內(nèi)存管理電路502從可復寫式非易失性內(nèi)存模塊406中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應的錯誤檢查與校正碼,并且錯誤檢查與校正電路512會根據(jù)此錯誤檢查與校正碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。
圖6與圖7是根據(jù)一范例實施例所顯示的管理實體抹除單元的范例示意圖。
必須了解的是,在此描述可復寫式非易失性內(nèi)存模塊406的實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關(guān)聯(lián)”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可復寫式非易失性內(nèi)存模塊的實體抹除單元的實際位置并未改動,而是邏輯上對可復寫式非易失性內(nèi)存模塊的實體抹除單元進行操作。
請參照圖6,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將實體抹除單元410(0)~410(n)邏輯地分組為數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608。
邏輯上屬于數(shù)據(jù)區(qū)602與閑置區(qū)604的實體抹除單元是用以儲存來自于主機系統(tǒng)11的數(shù)據(jù)。具體來說,數(shù)據(jù)區(qū)602的實體抹除單元是被視為已儲存數(shù)據(jù)的實體抹除單元,而閑置區(qū)604的實體抹除單元是用以替換數(shù)據(jù)區(qū)602的實體抹除單元。也就是說,當從主機系統(tǒng)11接收到寫入指令與欲寫入的數(shù)據(jù)時,內(nèi)存管理電路502會從閑置區(qū)604中提取實體抹除單元,并且將數(shù)據(jù)寫入至所提取的實體抹除單元中,以替換數(shù)據(jù)區(qū)602的實體抹除單元。
邏輯上屬于系統(tǒng)區(qū)606的實體抹除單元是用以記錄系統(tǒng)數(shù)據(jù)。例如,系統(tǒng)數(shù)據(jù)包括關(guān)于 可復寫式非易失性內(nèi)存模塊的制造商與型號、可復寫式非易失性內(nèi)存模塊的實體抹除單元數(shù)、每一實體抹除單元的實體程序化單元數(shù)等。
邏輯上屬于取代區(qū)608中的實體抹除單元是用于壞實體抹除單元取代程序,以取代損壞的實體抹除單元。具體來說,倘若取代區(qū)608中仍存有正常的實體抹除單元并且數(shù)據(jù)區(qū)602的實體抹除單元損壞時,內(nèi)存管理電路502會從取代區(qū)608中提取正常的實體抹除單元來更換損壞的實體抹除單元。
特別是,數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608的實體抹除單元的數(shù)量會根據(jù)不同的內(nèi)存規(guī)格而有所不同。此外,必須了解的是,在內(nèi)存儲存裝置10的運作中,實體抹除單元關(guān)聯(lián)至數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608的分組關(guān)系會動態(tài)地變動。例如,當閑置區(qū)604中的實體抹除單元損壞而被取代區(qū)608的實體抹除單元取代時,則原本取代區(qū)608的實體抹除單元會被關(guān)聯(lián)至閑置區(qū)604。
請參照圖7,如上所述,數(shù)據(jù)區(qū)602與閑置區(qū)604的實體抹除單元是以輪替方式來儲存主機系統(tǒng)11所寫入的數(shù)據(jù)。在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會配置邏輯地址710(0)~710(d)給主機系統(tǒng)11,以映像至數(shù)據(jù)區(qū)602中的實體抹除單元414(0)~410(f-1),以利于在以上述輪替方式來儲存數(shù)據(jù)的實體抹除單元中進行數(shù)據(jù)存取。特別是,主機系統(tǒng)11會通過邏輯地址710(0)~710(d)來存取數(shù)據(jù)區(qū)602中的數(shù)據(jù)。在本范例實施例中,一個邏輯地址是映像至一個實體扇,多個邏輯地址會組成一個邏輯程序化單元,并且多個邏輯程序化單元會組成一個邏輯抹除單元。
此外,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會建立邏輯-實體映像表,以記錄邏輯地址與實體抹除單元之間的映像關(guān)系。在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)是以邏輯程序化單元來管理可復寫式非易失性內(nèi)存模塊406,因此內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會建立一個邏輯-實體映像表以記錄邏輯程序化單元與實體程序化單元之間的映像關(guān)系。在另一范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)是以邏輯抹除單元來管理可復寫式非易失性內(nèi)存模塊406,因此內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會建立一個邏輯-實體映像表以記錄邏輯抹除單元與實體抹除單元之間的映像關(guān)系。
在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會配置多個超實體單元,并且每一個超實體單元會包括至少兩個實體抹除單元。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會使用超實體單元來儲存數(shù)據(jù)。例如,當主機系統(tǒng)下達寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會提取一個超實體單元來程序化數(shù)據(jù)。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可配置兩種不同類型的超實體單元,包括第一類超實體單元及第二類超實體單元。一個第一類超實體單元中的至少兩個實體抹除單元是屬于不同的操作單元,例如屬于不同的平面或晶粒,使其可以同時或交錯地被程序化。而一個第二類超實體單元中的至少兩個實體抹除單元不會同時被程序化,并且一個第二類超實體單元所包括的多個實體抹除單元中,至少有兩個實體抹除單元是屬于相同平面或晶粒。以一個超實體單元包括四個實體抹除單元為例,一個第一類超實體單元的四個實體抹除單元皆屬于不同平面或晶粒。然而,一個第二類超實體單元的四個實體抹除單元可以全部屬于同一個平面或晶粒,或者,其中兩個實體抹除單元(或三個實體抹除單元)屬于相同平面或晶粒,其他的實體抹除單元屬于不同平面或晶粒。
圖8a是根據(jù)一范例實施例所顯示的配置超實體單元的范例示意圖。在本范例實施例中,是假設(shè)每一個超實體單元中包括兩個實體抹除單元。
請參照圖8,以下以平面為例說明,假設(shè)可復寫式非易失性內(nèi)存模塊406包括兩個平面平面p1、平面p2,并且平面p1、平面p2各包括8個實體抹除單元。平面p1包括2個壞實體抹除單元(即以斜線顯示的實體抹除單元pba(6)、實體抹除單元pba(12)),而平面p2包括4個壞實體抹除單元(即以斜線顯示的實體抹除單元pba(3)、實體抹除單元pba(5)、實體抹除單元pba(11)、實體抹除單元pba(13))。也就是說,平面p1的好實體抹除單元的數(shù)量為6,而平面p2的好實體抹除單元的數(shù)量為4。在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會先配置第一類超實體單元。換言之,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會從平面p1及平面p2中各提取一個好實體抹除單元以配置一個第一類超實體單元。舉例而言,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)將屬于平面p1的好實體抹除單元pba(0)與屬于平面p2的好實體抹除單元pba(1)配置為第一類超實體單元spba(0)。依此類推,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可配置第一類超實體單元spba(0)~spba(3),每一個第一類超實體單元所包括的兩個好實體抹除單元分別屬于平面p1及p2。
在本范例實施例中,由于一個第一類超實體單元是以兩個分別屬于不同平面的實體抹除單元所配置而成,因此,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)所能配置的第一超實體抹除單元的數(shù)量,最多只會相等于具有較少好實體抹除單元的平面的好實體抹除單元的數(shù)量。如上所述,平面p1的好實體抹除單元的數(shù)量為6,而平面p2所包括的好實體抹除單元的數(shù)量為4。也就是說,平面p2所包括的好實體抹除單元的數(shù)量小于平面p1所包括的好實體抹除單元的數(shù)量。因此,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)所能配置的第一類超實體單元的數(shù)量最多僅可等于平面p2所包括的好實體抹除單元的數(shù)量,也就是最多僅能配置4個第一類超實體單元。如此一來,當配置了最多數(shù)量的第一類超實體單元之后,具有較多好實體抹除單元的平面會存在無法被配置為第一類超實體單元的好實體抹除單元。
基此,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會配置第二類超實體單元,并且每一個第二類超實體單元包括屬于相同平面的兩個實體抹除單元。如圖8a所示,由于平面p1相較于平面p2具有較多的好實體抹除單元,因此,在配置了最多數(shù)量的第一類超實體單元的之后,平面p1會存在無法被配置為第一類超實體單元的好實體抹除單元pba(10)以及實體抹除單元pba(14)。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將好實體抹除單元pba(10)以及實體抹除單元pba(14)配置為一個第二類超實體單元spba(4)。如此一來,使得平面p1以及p2中的所有好實體抹除單元皆被配置為超實體單元。
在本范例實施例中,一個邏輯抹除單元是映像至一個超實體單元,也就是說一個邏輯抹除單元是映像至多個實體抹除單元。如上所述的正整數(shù)n、m與k的乘積代表一個超實體單元中所包括的實體抹除單元的數(shù)量,即代表一個邏輯抹除單元所映像的實體抹除單元的數(shù)量。在以下圖8b及8c的范例實施例中,正整數(shù)n為1、正整數(shù)m為1、以及正整數(shù)k為2。換言之,一個邏輯抹除單元是映像至兩個不同的實體抹除單元。
當主機系統(tǒng)11下達寫入指令時,倘若內(nèi)存控制電路單元404(或內(nèi)存管理電路502)是將對應的寫入數(shù)據(jù)程序化至一個第一類超實體單元時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將寫入數(shù)據(jù)分成多個部分,并將這些部分分別地程序化至此第一類超實體單元的不 同的實體抹除單元中。因此,以第一類超實體單元而言,一個邏輯抹除單元所映像的多個不同的實體抹除單元彼此是分別屬于不同平面,并且一個邏輯程序化單元是映像分別屬于不同的實體抹除單元的多個實體程序化單元,藉此可以增加寫入速度。
圖8b是根據(jù)一范例實施例所顯示的寫入數(shù)據(jù)至第一類超實體單元的范例示意圖。
請參照圖8b,邏輯抹除單元lba(0)是映射至第一類超實體單元spba(0),并且邏輯抹除單元lba(0)包括了邏輯程序化單元lba(0-0)~lba(0-e)。若一個實體程序化單元的容量為4kb(kilobyte),則一個邏輯程序化單元的容量是8kb。主機系統(tǒng)11下達了一個寫入指令,其指示將數(shù)據(jù)810寫入至邏輯程序化單元lba(0-0)。在此假設(shè)數(shù)據(jù)810的大小為8kb,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)810分為兩個部分(即第一部分與第二部分),并且每一個部分的大小都是4kb。其中第二部分所屬的邏輯地址是接續(xù)在第一部分所屬的邏輯地址之后。在接收到寫入指令之后,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會下達至少一指令序列將數(shù)據(jù)810的第一部分寫入至實體抹除單元pba(0),并且同時將數(shù)據(jù)810的第二部分寫入至實體抹除單元pba(1)。
在本范例實施例中,若主機系統(tǒng)11還下達了其他的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將這些寫入指令所指示的數(shù)據(jù)寫入至實體抹除單元pba(0)、實體抹除單元pba(1),直到實體抹除單元pba(0)、實體抹除單元pba(1)中沒有閑置的實體程序化單元。接下來,若內(nèi)存控制電路單元404(或內(nèi)存管理電路502)再接收到一個指示寫入數(shù)據(jù)820的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)820寫入至第一類超實體單元spba(1)中。舉例來說,邏輯抹除單元lba(1)是映射至第一類超實體單元spba(1),邏輯抹除單元lba(1)包括了邏輯程序化單元lba(1-0)~lba(1-e)。數(shù)據(jù)820是要寫入至邏輯程序化單元lba(1-e),并且數(shù)據(jù)820的大小為8kb。相同于將數(shù)據(jù)810分為兩個部分,內(nèi)存管理電路202也會將數(shù)據(jù)820分為兩個部分,并且每一個部分的大小都為4kb。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)820的第一部分寫入至實體抹除單元pba(2),并同時將數(shù)據(jù)820的第二部分寫入至實體抹除單元pba(7)。
另一方面,當主機系統(tǒng)11下達寫入指令時,倘若內(nèi)存控制電路單元404(或內(nèi)存管理電路502)是將對應的寫入數(shù)據(jù)程序化至一個第二類超實體單元時,在一范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可將寫入數(shù)據(jù)先程序化至第二類超實體單元的其中一個實體抹除單元。倘若,此其中一個實體抹除單元的已被寫滿(即沒有閑置的實體程序化單元),內(nèi)存控制電路單元404(或內(nèi)存管理電路502)才將對應的寫入數(shù)據(jù)程序化至此第二類超實體單元的另一個實體抹除單元。也就是說,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會先將寫入數(shù)據(jù)程序化至第二類超實體單元中的一個實體抹除單元中,并且當此實體抹除單元被寫滿時,才將寫入數(shù)據(jù)程序化至同一個第二類超實體單元中的另一個實體抹除單元中。此外,在本范例實施例中,以第二類超實體單元而言,一個邏輯抹除單元所映像的兩個不同的實體抹除單元是屬于相同平面。
圖8c是根據(jù)一范例實施例所顯示的寫入數(shù)據(jù)至第二類超實體單元的范例示意圖。
請參照圖8c,邏輯抹除單元lba(s)是映射至第二類超實體單元spba(4),并且邏輯抹除單元lba(s)包括了邏輯程序化單元lba(s-0)~lba(s-e)。假設(shè)一個邏輯程序化單元是映像至同一個實體抹除單元中的多個實體程序化單元。如上所述,一個實體程序化單元的容量為4kb,并且一個邏輯程序化單元的容量是8kb。主機系統(tǒng)11下達了一個寫入指令,其指示將 數(shù)據(jù)830寫入至邏輯程序化單元lba(s-0)。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)830程序化至第二類超實體單元spba(4)的實體抹除單元pba(10)中。例如,在此假設(shè)數(shù)據(jù)830的大小為8kb。在一范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會下達至少一指令序列將數(shù)據(jù)830的第一部分程序化至實體抹除單元pba(10)的第一個實體程序化單元中,并且將數(shù)據(jù)830的第二部分程序化至實體抹除單元pba(10)的第二個實體程序化單元中。其中數(shù)據(jù)830的第二部分所屬的邏輯地址是接續(xù)在數(shù)據(jù)830的第一部分所屬的邏輯地址之后。具體而言,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會根據(jù)實體抹除單元pba(10)的實體程序化單元的順序,將所接收到的寫入數(shù)據(jù)程序化至實體抹除單元pba(10)的實體程序化單元中。也就是說,在完成實體抹除單元pba(10)的一個實體程序化單元的程序化之后,會執(zhí)行實體抹除單元pba(10)的下一個實體程序化單元的程序化。
如上所述,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)是以一個實體程序化單元接續(xù)一個實體程序化單元的方式將數(shù)據(jù)先程序化至第二類超實體單元的一個實體抹除單元中。在本范例實施例中,若主機系統(tǒng)11還下達了其他的寫入指令,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將這些寫入指令所指示的數(shù)據(jù)先寫入至實體抹除單元pba(10),直到實體抹除單元pba(10)中沒有閑置的實體程序化單元。接下來,若內(nèi)存控制電路單元404(或內(nèi)存管理電路502)再接收到一個寫入數(shù)據(jù)840的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)840寫入至第二類超實體單元spba(4)的實體抹除單元pba(14)中。舉例來說,數(shù)據(jù)840是要寫入至邏輯程序化單元lba(s-c),并且數(shù)據(jù)840的大小為8kb。由于,實體抹除單元pba(10)中已沒有閑置的實體程序化單元,因此,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)840依序程序化至第二類超實體單元spba(4)的實體抹除單元pba(14)中的第一個實體程序化單元及第二個實體程序化單元中。
值得一提的是,在圖8c的范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可使用快取程序化(cacheprogram)的寫入運作方式來將寫入數(shù)據(jù)程序化至第二類超實體單元。例如,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可先將寫入數(shù)據(jù)暫存在緩沖存儲器508的一緩沖區(qū)中并響應確認訊息給主機系統(tǒng)11,以通知主機系統(tǒng)11已完成此寫入指令并可下達下一個指令。爾后再從緩沖存儲器508的緩沖區(qū)中將寫入數(shù)據(jù)程序化至第二類超實體單元。例如,當暫存在緩沖區(qū)中的數(shù)據(jù)量達到一門坎值時,可執(zhí)行將緩沖區(qū)中的數(shù)據(jù)程序化至第二類超實體單元的操作。因此,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可藉由快取程序化的寫入運作方式,先完成第二類超實體單元中的一個實體抹除單元的程序化后,才執(zhí)行第二類超實體單元中的另一個實體抹除單元的程序化。
然而,在另一范例實施例中,第二類超實體單元的多個實體抹除單元也可以交錯地被程序化。例如,以圖8c的例子來說明,假設(shè)一個邏輯程序化單元是映像至不同實體抹除單元中的多個實體程序化單元。當接收到指示將數(shù)據(jù)830寫入至邏輯程序化單元lba(s-0)的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可以下達至少一指令序列將數(shù)據(jù)830的第一部分程序化至超實體單元spba(4)的實體抹除單元pba(10)的第一個實體程序化單元中。并且,在完成實體抹除單元pba(10)的第一個實體程序化單元的程序化之后,將數(shù)據(jù)830的第二部分程序化至超實體單元spba(4)的實體抹除單元pba(14)的第一個實體程序化單元中。以此類推,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將后續(xù)所接收到的寫入數(shù)據(jù)交錯地程序化至超實體單元spba(4)的實體抹除單元pba(10)與實體抹除單元pba(14)中。例如,當 接收到指示將數(shù)據(jù)840寫入至邏輯程序化單元lba(s-c)的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)同樣地會下達至少一指令序列將數(shù)據(jù)840的第一部分程序化至超實體單元spba(4)的實體抹除單元pba(10)的一個實體程序化單元中。并且,在完成實體抹除單元pba(10)的所述實體程序化單元的程序化之后,將數(shù)據(jù)840的第二部分程序化至超實體單元spba(4)的實體抹除單元pba(14)的另一個實體程序化單元中。也就是說,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會以一個實體抹除單元的一個實體程序化單元接續(xù)另一個實體抹除單元的一個實體程序化單元的交錯方式來將數(shù)據(jù)程序化至第二類超實體單元中。
圖9a是根據(jù)另一范例實施例所顯示的配置超實體單元的范例示意圖。不同于圖8a,在本范例實施例中,是假設(shè)每一個超實體單元中包括四個實體抹除單元。
請參照圖9a,假設(shè)可復寫式非易失性內(nèi)存模塊406包括四個平面平面p1、平面p2、平面p3、平面p4,并且平面p1、平面p2、平面p3、平面p4各包括8個實體抹除單元。如前所述,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會使用各平面中的好實體抹除單元來配置超實體單元。在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會從平面p1、平面p2、平面p3、平面p4中各提取一個好實體抹除單元以配置一個第一類超實體單元。舉例而言,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)將屬于平面p1的好實體抹除單元pba(0)、屬于平面p2的好實體抹除單元pba(1)、屬于平面p3的好實體抹除單元pba(2)與屬于平面p4的好實體抹除單元pba(3)配置為第一類超實體單元spba(5),依此類推。在本范例實施例中,由于平面p4僅包括3個好實體抹除單元,因此內(nèi)存控制電路單元404(或內(nèi)存管理電路502)最多只可配置三個第一類超實體單元spba(5)、第一類超實體單元spba(6)、第一類超實體單元spba(7),并且每一個第一類超實體單元所包括的四個好實體抹除單元分別屬于平面p1、平面p2、平面p3、平面p4。
在配置了最多數(shù)量的第一類超實體單元之后,平面p1、平面p2、平面p3還存在無法被配置為第一類超實體單元的好實體抹除單元。平面p1與平面p2分別還存在1個剩余的好實體抹除單元(即實體抹除單元pba(12)、實體抹除單元pba(13)),并且平面p3還存在2個剩余的好實體抹除單元(即實體抹除單元pba(14)、實體抹除單元pba(15))?;?,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將剩余的4個好實體抹除單元配置為一個第二類超實體單元。如圖9a所示,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將屬于平面p1的好實體抹除單元pba(12)、屬于平面p2的好實體抹除單元pba(13)與屬于平面p3的好實體抹除單元pba(14)、實體抹除單元pba(15)配置為第二類超實體單元spba(8)。
在本范例實施例中,第二類超實體單元spba(8)中所包括的四個好實體抹除單元會分別屬于平面p1、平面p2、平面p3。換句話說,第二類超實體單元spba(8)中包括至少兩個好實體抹除單元是屬于相同的平面。
如上所述的正整數(shù)n、m與k的乘積代表一個超實體單元中所包括的實體抹除單元的數(shù)量,即代表一個邏輯抹除單元所映像的實體抹除單元的數(shù)量。在以下圖9b及9c的范例實施例中,正整數(shù)n為1、正整數(shù)m為2、以及正整數(shù)k為2。換言之,一個邏輯抹除單元是映像至四個不同的實體抹除單元。并且,為簡化說明,在圖9b及9c的范例實施例中,假設(shè)一個實體程序化單元的容量是4kb,并且一個邏輯程序化單元的容量是16kb。
圖9b是根據(jù)圖9a的范例實施例所顯示的寫入數(shù)據(jù)至第一類超實體單元的范例示意圖。
由于第一類超實體單元中的好實體抹除單元是都屬于不同平面,因此,內(nèi)存控制電路單 元404(或內(nèi)存管理電路502)會以相同于圖8b的范例實施例的方式將寫入數(shù)據(jù)程序化至第一類超實體單元中。
請參照圖9b,邏輯抹除單元lba(0)是映射至第一類超實體單元spba(5)。主機系統(tǒng)11下達寫入指令,指示將數(shù)據(jù)910寫入至邏輯程序化單元lba(0-0)。在此假設(shè)數(shù)據(jù)910的大小為16kb。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)910分為四個部分,并且每一個部分的大小都是4kb。在接收到寫入指令之后,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會同時地將數(shù)據(jù)910的四個部分分別寫入至第一類超實體單元spba(5)的實體抹除單元pba(0)、實體抹除單元pba(1)、實體抹除單元pba(2)、實體抹除單元pba(3)中。當內(nèi)存控制電路單元404(或內(nèi)存管理電路502)再接收到一個指示寫入數(shù)據(jù)920的寫入指令時,倘若第一類超實體單元spba(5)的實體抹除單元pba(0)、實體抹除單元pba(1)、實體抹除單元pba(2)、實體抹除單元pba(3)中已沒有閑置的實體程序化單元,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)920寫入至第一類超實體單元spba(6)中。將數(shù)據(jù)寫入至第一類超實體單元的方式已于前述圖8b的范例實施例中說明,在此不再多加贅述。
圖9c是根據(jù)圖9a的范例實施例所顯示的寫入數(shù)據(jù)至第二類超實體單元的范例示意圖。
在本范例實施例中,一個第二類超實體單元會包括屬于相同平面的實體抹除單元與屬于不同平面的實體抹除單元。換句話說,以本范例實施例的第二類超實體單元而言,一個邏輯抹除單元所映像的四個不同的實體抹除單元中包括兩個實體抹除單元是屬于相同平面。
請參照圖9c,邏輯抹除單元lba(s)是映射至第二類超實體單元spba(8)。第二類超實體單元spba(8)中的實體抹除單元pba(12)屬于平面p1,實體抹除單元pba(13)屬于平面p2,實體抹除單元pba(14)、實體抹除單元pba(15)屬于平面p3。主機系統(tǒng)11下達寫入指令,指示將數(shù)據(jù)930寫入至邏輯程序化單元lba(s-0)。在此假設(shè)數(shù)據(jù)930的大小為16kb,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)930分為四個部分(即第一部分~第四部分),并且每一個部分的大小都是4kb。內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會下達至少一指令序列將數(shù)據(jù)930的第一部分及第二部分分別程序化至第二類超實體單元spba(8)的實體抹除單元pba(12)、實體抹除單元pba(13),并且將數(shù)據(jù)930的第三部分及第四部分皆程序化至第二類超實體單元spba(8)的實體抹除單元pba(14)。例如,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)930的第一部分程序化至實體抹除單元pba(12)的第一個實體程序化單元,將數(shù)據(jù)930的第二部分程序化至實體抹除單元pba(13)的第一個實體程序化單元,并且將數(shù)據(jù)930的第三部分及第四部分程序化至實體抹除單元pba(14)的第一個實體程序化單元及第二個實體程序化單元。若主機系統(tǒng)11還下達了其他的寫入指令,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將這些寫入指令所指示的數(shù)據(jù)依上述方式分別寫入至第二類超實體單元spba(8)的實體抹除單元pba(12)、實體抹除單元pba(13)、實體抹除單元pba(14),直到實體抹除單元pba(14)中沒有閑置的實體程序化單元。接下來,若內(nèi)存控制電路單元404(或內(nèi)存管理電路502)再接收到一個寫入數(shù)據(jù)940的寫入指令時,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會將數(shù)據(jù)940分別寫入至第二類超實體單元spba(8)的實體抹除單元pba(12)、實體抹除單元pba(13)、實體抹除單元pba(15)中。
也就是說,由于第二類超實體單元spba(8)的實體抹除單元pba(12)、實體抹除單元pba(13)與實體抹除單元pba(14)(或?qū)嶓w抹除單元pba(15))是分別屬于不同平面,因此可同時地被程序化數(shù)據(jù)。而第二類超實體單元spba(8)的實體抹除單元pba(14)、實體抹除單元 pba(15)屬于相同平面,因此在執(zhí)行寫入操作時,會先將數(shù)據(jù)程序化至實體抹除單元pba(14),當實體抹除單元pba(14)中已沒有閑置的實體程序化單元時,才將數(shù)據(jù)程序化至實體抹除單元pba(15)中。并且,第二類超實體單元spba(8)的實體抹除單元pba(14)、實體抹除單元pba(15)會以一個實體程序化單元接續(xù)一個實體程序化單元的方式被程序化數(shù)據(jù)。然而,本發(fā)明不以此為限,第二類超實體單元spba(8)的實體抹除單元pba(14)、實體抹除單元pba(15)也可以交錯地被程序化。
圖10是根據(jù)一范例實施例的內(nèi)存管理方法所顯示的配置超實體單元的流程圖。
請參照圖10,在步驟s1001中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)配置多個第一類超實體單元,其中每一個第一類超實體單元包括至少兩個好實體抹除單元,并且此至少兩個好實體抹除單元分別是屬于不同平面。在本范例實施例中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可判斷各平面中是否存在可被配置為第一類超實體單元的好實體抹除單元。并且,在各平面中仍存在可被配置為第一類超實體單元的好實體抹除單元時,可重復執(zhí)行步驟s1001。
在步驟s1003中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會判斷在同一平面中是否存在多個好實體抹除單元,其中此些好實體抹除單元未對應至已配置的任一個第一類超實體單元。在本范例實施例中,可在各平面中已無可用以配置第一類超實體單元的好實體抹除單元時執(zhí)行步驟s1003。
倘若同一平面中存在未對應至已配置的任一個第一類超實體單元的多個好實體抹除單元,在步驟s1005中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)配置至少一個第二類超實體單元,其中此第二類超實體單元包括同一平面中的至少兩個好實體抹除單元,并且此至少兩個好實體抹除單元未對應至已配置的任一個第一類超實體單元。在本實施例中,此至少兩個好實體抹除單元是無法被配置為第一類超實體單元的好實體抹除單元。此外,倘若同一平面中不存在未對應至已配置的任一個第一類超實體單元的多個好實體抹除單元(例如,同一平面中不存在未對應至已配置的任一個第一類超實體單元的至少兩個好實體抹除單元),則結(jié)束配置超實體單元的流程。
圖11是根據(jù)一范例實施例的內(nèi)存管理方法所顯示的寫入數(shù)據(jù)至第二類超實體單元的流程圖。
在步驟s1101中,接收到來自主機系統(tǒng)指示寫入數(shù)據(jù)的寫入指令。
在步驟s1103中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)提取一個第二類超實體單元,以寫入此數(shù)據(jù)。
在步驟s1105中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)將此數(shù)據(jù)的第一部分寫入至所提取的第二類超實體單元的一個好實體抹除單元中。
在步驟s1107中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)會判斷所提取的第二類超實體單元的此好實體抹除單元中是否存在未寫入數(shù)據(jù)的至少一個實體程序化單元(即閑置的實體程序化單元)。
倘若所提取的第二類超實體單元的此好實體抹除單元中存在未寫入數(shù)據(jù)的至少一個實體程序化單元,在步驟s1109中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)將此數(shù)據(jù)的第二部分寫入至所提取的第二類超實體單元的此好實體抹除單元中。
倘若所提取的第二類超實體單元的此好實體抹除單元中已無未寫入數(shù)據(jù)的實體程序化單 元,在步驟s1111中,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)將此數(shù)據(jù)的第二部分寫入至所提取的第二類超實體單元的另一個好實體抹除單元中。
在另一范例實施例中,在步驟s1105之前,內(nèi)存控制電路單元404(或內(nèi)存管理電路502)可將此數(shù)據(jù)暫存至緩沖存儲器的緩沖區(qū)中。并且,上述步驟已詳細說明如上,在此不再贅述。
綜上所述,本發(fā)明除了可使用屬于不同平面或晶粒的好實體抹除單元來配置超實體單元,還可使用屬于同一個平面或晶粒的好實體抹除單元來配置超實體單元。換言之,同一平面或晶粒中無法被配置為第一類超實體單元的好實體抹除單元可被用來配置第二類超實體單元。如此一來,不僅可增加所配置的超實體單元的數(shù)量,也可更有效地使用可復寫式非易失性內(nèi)存模塊中的好實體抹除單元。
雖然本發(fā)明已以實施例揭示如上,然其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域中普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的改動與潤飾,故本發(fā)明的保護范圍當視所附權(quán)利要求界定范圍為準。