内存管理方法、内存控制电路单元及内存储存装置与流程

文档序号:12806224阅读:261来源:国知局
内存管理方法、内存控制电路单元及内存储存装置与流程

本发明涉及一种内存管理方法,尤其涉及一种可复写式非易失性内存模块的内存管理方法、内存控制电路单元及内存储存装置。



背景技术:

数字相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性内存模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。

一般来说,可复写式非易失性内存模块是由一个内存控制电路单元所控制。内存控制电路单元可接收来自主机系统的数据,并把这些数据写入至可复写式非易失性内存模块中。在一些设置中,可复写式非易失性内存模块具有多个平面(plane),并且每个平面包括多个实体抹除单元。内存控制电路单元会将属于不同平面的多个实体抹除单元配置为同一个超实体抹除单元,并且内存控制电路单元会交错地或是同时地程序化同一个超实体抹除单元内的实体抹除单元。藉此,当主机系统所下达的是连续数据时,把数据写入至可复写式非易失性内存模块的速度会增加。

然而,可复写式非易失性内存模块的各平面中的可能会包括好实体抹除单元及坏实体抹除单元,而内存控制电路仅会使用各平面中的好实体抹除单元来配置为超实体抹除单元。倘若,各平面中包括不同数量的坏实体抹除单元,相对地,各平面中就会包括不对等数量的好实体抹除单元。在此种情况下,包括较多好实体抹除单元的平面中将存在剩余的好实体抹除单元无法被配置为超实体抹除单元,进而影响实际可使用的储存空间的大小。因此,如何充分地利用好实体抹除单元来配置更多的超实体抹除单元以提升实体抹除单元的使用率,为此领域技术人员所关心的议题。



技术实现要素:

本发明提供一种内存管理方法、内存控制电路单元及内存储存装置,可将属于同一平面中的多个实体抹除单元配置为同一个超实体单元,藉以配置更多的超实体单元。

本发明一范例实施例提出一种内存管理方法,用于内存储存装置。此内存储存装置具有可复写式非易失性内存模块,并且此可复写式非易失性内存模块具有多个好实体抹除单元。本内存管理方法包括分配所述好实体抹除单元之中的其中一部分以配置多个第一类超实体单元,其中每一个第一类超实体单元至少包括第一好实体抹除单元及第二好实体抹除单元,并且第一好实体抹除单元及第二好实体抹除单元会同时被程序化。本内存管理方法也包括分配 所述好实体抹除单元之中的剩余部分以配置至少一个第二类超实体单元。所述至少一个第二类超实体单元至少包括第三好实体抹除单元及第四好实体抹除单元,并且第三好实体抹除单元及第四好实体抹除单元不会同时被程序化。

在本发明的一范例实施例中,上述的内存管理方法还包括从主机系统接收指示写入第一数据的第一写入指令,其中第一数据包括第一部分及第二部分。再者,将第一数据的第一部分写入至第三好实体抹除单元中。并且在将第一数据的第一部分写入至第三好实体抹除单元之后,倘若第三好实体抹除单元存在未写入数据的至少一实体程序化单元,将第一数据的第二部分写入至第三好实体抹除单元。此外,在将第一数据的第一部分写入至第三好实体抹除单元之后,倘若第三好实体抹除单元的所有实体程序化单元皆已写入数据,将第一数据的第二部分写入至第四好实体抹除单元。

在本发明的一范例实施例中,上述的内存管理方法还包括配置多个逻辑地址,其中第一数据的第一部分属于所述逻辑地址中的至少一第一逻辑地址,并且第一数据的第二部分属于所述逻辑地址中的至少一第二逻辑地址,并且第二逻辑地址是接续在第一逻辑地址之后。

在本发明的一范例实施例中,上述的多个逻辑地址组成多个逻辑程序化单元,此些逻辑程序化单元组成多个逻辑抹除单元,并且所述至少一个第二类超实体单元是映像至此些逻辑抹除单元的至少其中之一。

在本发明的一范例实施例中,上述的从主机系统接收指示写入第一数据的第一写入指令的步骤还包括将第一数据储存至缓冲存储器的缓冲区并响应第一写入指令。

在本发明的一范例实施例中,上述的内存管理方法还包括从主机系统接收指示写入第一数据的第一写入指令,其中第一数据包括第一部分及第二部分。再者,上述的内存管理方法还包括将第一数据的第一部分写入至第三好实体抹除单元中,并且将第一数据的第二部分写入至第四好实体抹除单元中。

在本发明的一范例实施例中,上述的内存管理方法还包括从主机系统接收指示写入第二数据的第二写入指令,其中第二数据包括第一部分及第二部分。再者,上述的内存管理方法还包括将第二数据的第一部分写入至第一类超实体单元的其中一个第一类超实体单元的第一好实体抹除单元中,并且将第二数据的第二部分写入至第一类超实体单元的此其中一个第一类超实体单元的第二好实体抹除单元中。

本发明一范例实施例提出一种内存控制电路单元,用于控制可复写式非易失性内存模块。可复写式非易失性内存模块具有多个好实体抹除单元。本内存控制电路单元包括主机接口、内存接口及内存管理电路。主机接口电性连接至主机系统。内存接口电性连接至可复写式非易失性内存模块。内存管理电路电性连接至该主机接口与该内存接口。内存管理电路用以分配所述好实体抹除单元之中的其中一部分以配置多个第一类超实体单元,其中每一个第一类超实体单元至少包括第一好实体抹除单元及第二好实体抹除单元,并且第一好实体抹除单元及第二好实体抹除单元会同时被程序化。再者,内存管理电路还用以分配所述好实体抹除单元之中的剩余部分以配置至少一个第二类超实体单元,所述至少一个第二类超实体单元至少包括第三好实体抹除单元及第四好实体抹除单元,并且第三好实体抹除单元及第四好实体抹除单元不会同时被程序化。

在本发明的一范例实施例中,上述的内存管理电路还用以从主机系统接收指示写入第一数据的第一写入指令,其中第一数据包括第一部分及第二部分。再者,内存管理电路还用以 下达第一指令序列将第一数据的第一部分写入至第三好实体抹除单元中。在将第一数据的第一部分写入至第三好实体抹除单元之后,倘若第三好实体抹除单元存在未写入数据的至少一实体程序化单元,内存管理电路还用以下达第二指令序列将第一数据的第二部分写入至第三好实体抹除单元。此外,在将第一数据的第一部分写入至第三好实体抹除单元之后,倘若第三好实体抹除单元的所有实体程序化单元皆已写入数据,内存管理电路还用以下达第三指令序列将第一数据的第二部分写入至第四好实体抹除单元。

在本发明的一范例实施例中,上述的内存管理电路还用以配置多个逻辑地址,其中第一数据的第一部分属于所述逻辑地址中的至少一第一逻辑地址,第一数据的第二部分属于所述逻辑地址中的至少一第二逻辑地址,并且第二逻辑地址是接续在第一逻辑地址之后。

在本发明的一范例实施例中,上述的逻辑地址组成多个逻辑程序化单元,此些逻辑程序化单元组成多个逻辑抹除单元,并且所述至少一个第二类超实体单元是映像至所述逻辑抹除单元的至少其中之一。

在本发明的一范例实施例中,上述的内存管理电路还用以将第一数据储存至缓冲存储器的缓冲区并响应第一写入指令。

在本发明的一范例实施例中,上述的内存管理电路还用以从主机系统接收指示写入第一数据的第一写入指令,其中第一数据包括第一部分及第二部分。再者,内存管理电路还用以下达第一指令序列将第一数据的第一部分写入至第三好实体抹除单元中,并且下达第二指令序列将第一数据的第二部分写入至第四好实体抹除单元中。

在本发明的一范例实施例中,上述的内存管理电路还用以从主机系统接收指示写入第二数据的第二写入指令,其中第二数据包括第一部分及第二部分。再者,内存管理电路还用以下达第一指令序列将第二数据的第一部分写入至第一类超实体单元的其中一个第一类超实体单元的第一好实体抹除单元中,并且下达第二指令序列将第二数据的第二部分写入至第一类超实体单元的此其中一个第一类超实体单元的第二好实体抹除单元中。

本发明的一范例实施例提出一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块及上述的内存控制电路单元。连接接口单元电性连接至主机系统,内存控制电路单元电性连接至连接接口单元与可复写式非易失性内存模块。

基于上述,本发明范例实施例提出的内存管理方法、内存控制电路单元与内存储存装置,可将属于同一平面中的多个好实体抹除单元配置为同一个超实体单元,藉以增加所配置的超实体单元的数量,并且更有效地使用可复写式非易失性内存模块中的好实体抹除单元。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;

图2是根据另一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;

图3是根据另一范例实施例所显示的主机系统与内存储存装置的示意图;

图4是根据一范例实施例所显示的主机系统与内存储存装置的概要方框图;

图5是根据一范例实施例所显示的内存控制电路单元的概要方框图;

图6与图7是根据一范例实施例所显示的管理实体抹除单元的范例示意图;

图8a是根据一范例实施例所显示的配置超实体单元的范例示意图;

图8b是根据图8a的范例实施例所显示的写入数据至第一类超实体单元的范例示意图;

图8c是根据图8a的范例实施例所显示的写入数据至第二类超实体单元的范例示意图;

图9a是根据另一范例实施例所显示的配置超实体单元的范例示意图;

图9b是根据图9a的范例实施例所显示的写入数据至第一类超实体单元的范例示意图;

图9c是根据图9a的范例实施例所显示的写入数据至第二类超实体单元的范例示意图;

图10是根据一范例实施例的内存管理方法所显示的配置超实体单元的流程图;

图11是根据一范例实施例的内存管理方法所显示的写入数据至第二类超实体单元的流程图。

附图标记:

10:内存储存装置

11:主机系统

12:输入/输出(i/o)装置

110:系统总线

111:处理器

112:随机存取内存(ram)

113:只读存储器(rom)

114:数据传输接口

20:主板

201:随身碟

202:记忆卡

203:固态硬盘

204:无线内存储存装置

205:全球定位系统模块

206:网络适配器

207:无线传输装置

208:键盘

209:屏幕

210:喇叭

30:内存储存装置

31:主机系统

32:sd卡

33:cf卡

34:嵌入式储存装置

341:嵌入式多媒体卡

342:嵌入式多芯片封装储存装置

402:连接接口单元

404:内存控制电路单元

406:可复写式非易失性内存模块

410(0)~410(n):实体抹除单元

502:内存管理电路

504:主机接口

506:内存接口

508:缓冲存储器

510:电源管理电路

512:错误检查与校正电路

602:数据区

604:闲置区

606:系统区

608:取代区

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:数据

s1001:配置多个第一类超实体单元,其中每一个第一类超实体单元包括至少两个好实体抹除单元,并且此至少两个好实体抹除单元分别是属于不同平面的步骤

s1003:判断在同一平面中是否存在多个好实体抹除单元,其中此些好实体抹除单元未对应至已配置的任一个第一类超实体单元的步骤

s1005:配置至少一个第二类超实体单元,其中此第二类超实体单元包括同一平面中的至少两个好实体抹除单元,并且此至少两个好实体抹除单元未对应至已配置的任一个第一类超实体单元的步骤

s1101:接收到来自主机系统指示写入数据的写入指令的步骤

s1103:提取一个第二类超实体单元,以写入此数据的步骤

s1105:将此数据的第一部分写入至所提取的第二类超实体单元的一个好实体抹除单元中的步骤

s1107:判断所提取的第二类超实体单元的此好实体抹除单元中是否存在未写入数据的至少一个实体程序化单元的步骤

s1109:将此数据的第二部分写入至所提取的第二类超实体单元的此好实体抹除单元中的步骤

s1111:将此数据的第二部分写入至所提取的第二类超实体单元的另一个好实体抹除单元中的步骤

具体实施方式

一般而言,内存储存装置(亦称,内存储存系统)包括可复写式非易失性内存模块与控制器(亦称,控制电路单元)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。

图1是根据一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图,且图2是根据另一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图。

请参照图1与图2,主机系统11一般包括处理器111、随机存取内存(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取内存112、只读存储器113及数据传输接口114皆电性连接至系统总线(systembus)110。

在本范例实施例中,主机系统11是通过数据传输接口114与内存储存装置10电性连接。例如,主机系统11可经由数据传输接口114将数据写入至内存储存装置10或从内存储存装置10中读取数据。此外,主机系统11是通过系统总线110与i/o装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至i/o装置12或从i/o装置12接收输入信号。

在本范例实施例中,处理器111、随机存取内存112、只读存储器113及数据传输接口114是可设置在主机系统11的主板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主板20可以经由有线或无线方式电性连接至内存储存装置10。内存储存装置10可例如是随身碟201、记忆卡202、固态硬盘(solidstatedrive,ssd)203或无线内存储存装置204。无线内存储存装置204可例如是近距离无线通信(nearfieldcommunicationstorage,nfc)内存储存装置、无线传真(wifi)内存储存装置、蓝牙(bluetooth)内存储存装置或低功耗蓝牙内存储存装置(例如,ibeacon)等以各式无线通信技术为基础的内存储存装置。此外,主板20也可以通过系统总线110电性连接至全球定位系统(globalpositioningsystem,gps)模块205、网络适配器206、无线传输装置207、键盘208、屏幕209、喇叭210等各式i/o装置。例如,在一范例实施例中,主板20可通过无线传输装置207存取无线内存储存装置204。

在一范例实施例中,所提及的主机系统为可实质地与内存储存装置配合以储存数据的任意系统。虽然在上述范例实施例中,主机系统是以计算机系统来作说明,然而,图3是根据另一范例实施例所显示的主机系统与内存储存装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通信装置、音频播放器、视频播放器或平板计算机等系统,而内存储存装置30可为其所使用的sd卡32、cf卡33或嵌入式储存装置34等各式非易失性内存储存装置。嵌入式储存装置34包括嵌入式多媒体卡(embeddedmmc,emmc)341和/或嵌入式多芯片封装储存装置(embeddedmultichippackage,emcp)342等各类型将内存模块直接电性连接于主机系统的基板上的嵌入式储存装置。

图4是根据一范例实施例所显示的主机系统与内存储存装置的概要方框图。

请参照图4,内存储存装置10包括连接接口单元402、内存控制电路单元404与可复写 式非易失性内存模块406。

在本范例实施例中,连接接口单元402是兼容于序列先进附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并列先进附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、安全数字(securedigital,sd)接口标准、记忆棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体储存卡(multimediacard,mmc)接口标准、嵌入式多媒体储存卡(embeddedmultimediacard,emmc)接口标准、通用闪存(universalflashstorage,ufs)接口标准、嵌入式多芯片封装(embeddedmultichippackage,emcp)接口标准、小型快闪(compactflash,cf)接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与内存控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含内存控制电路单元的芯片外。

内存控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统11的指令在可复写式非易失性内存模块406中进行数据的写入、读取与抹除等运作。

可复写式非易失性内存模块406是电性连接至内存控制电路单元404,并且用以储存主机系统11所写入的数据。可复写式非易失性内存模块406具有实体抹除单元410(0)~410(n)。例如,实体抹除单元410(0)~410(n)可属于同一个内存晶粒(die)或者属于不同的内存晶粒。每一实体抹除单元分别具有多个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。

更详细来说,实体抹除单元为抹除的最小单位。即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据位区与冗余位区。数据位区包含多个实体存取地址用以储存用户的数据,而冗余位区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据位区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据位区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。

在本范例实施例中,每一个实体抹除单元410(0)~410(n)是属于多个操作单元的其中之一。属于不同操作单元的实体抹除单元可以同时或是交错地被程序化。例如,操作单元可以是信道、芯片、晶粒或是平面。具体来说,在一范例实施例中内存储存装置10具有多个信道,内存控制电路单元404是通过不同的信道来存取不同部分的实体抹除单元410(0)~410(n)。不同信道上的实体抹除单元可以独立的运作。例如,内存控制电路单元404对一个信道上的实体 抹除单元执行写入操作时,内存控制电路单元404可以同时地对另一个信道上的实体抹除单元执行读取操作或其他操作。在内存储存装置10中,同一个信道中的实体抹除单元可以属于不同的芯片。在一范例实施例中,属于不同芯片的实体抹除单元亦属于不同的交错(interleave)。内存控制电路单元404在程序化某一个芯片中的实体抹除单元以后,不需要等此芯片回复准备好(ready)信号,便可以继续程序化下一个芯片中的实体抹除单元。在可复写式非易失性内存模块406中,同一个交错中的实体抹除单元还可以属于不同的平面(plane)。同一个交错中属于不同平面的实体抹除单元可以根据同一个写入指令而同时被程序化。

在一范例实施例中,内存储存装置10中配置了一个信道与一个芯片,而此芯片包括两个平面,但本发明并不在此限。在另一范例实施例中,内存储存装置10也可以包括n个通道、m个交错、以及k个平面。n、m与k为正整数,并且其中一个正整数会大于1(即,内存储存装置10包括多个操作单元)。然而,本发明并不限制正整数n、m与k的数值。

在本范例实施例中,可复写式非易失性内存模块406为多阶记忆胞(multilevelcell,mlc)nand型闪存模块(即,一个记忆胞中可储存2个数据位的闪存模块)。然而,本发明不限于此,可复写式非易失性内存模块406可是单阶记忆胞(singlelevelcell,slc)nand型闪存模块(即,一个记忆胞中可储存1个数据位的闪存模块)、复数阶记忆胞(trinarylevelcell,tlc)nand型闪存模块(即,一个记忆胞中可储存3个数据位的闪存模块)、其他闪存模块或其他具有相同特性的内存模块。

图5是根据一范例实施例所显示的内存控制电路单元的概要方框图。

请参照图5,内存控制电路单元404包括内存管理电路502、主机接口504与内存接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。

内存管理电路502用以控制内存控制电路单元404的整体运作。具体来说,内存管理电路502具有多个控制指令,并且在内存储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。

在本范例实施例中,内存管理电路502的控制指令是以固件型式来实作。例如,内存管理电路502具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当内存储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

在本发明另一范例实施例中,内存管理电路502的控制指令亦可以程序代码型式储存于可复写式非易失性内存模块406的特定区域(例如,内存模块中专用于存放系统数据的系统区)中。此外,内存管理电路502具有微处理器单元(未显示)、只读存储器(未显示)及随机存取内存(未显示)。特别是,此只读存储器具有驱动码,并且当内存控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性内存模块406中的控制指令加载至内存管理电路502的随机存取内存中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在本发明另一范例实施例中,内存管理电路502的控制指令亦可以一硬件型式来实作。例如,内存管理电路502包括微控制器、记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路。记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写 式非易失性内存模块406的实体抹除单元;内存写入电路用以对可复写式非易失性内存模块406下达写入指令以将数据写入至可复写式非易失性内存模块406中;内存读取电路用以对可复写式非易失性内存模块406下达读取指令以从可复写式非易失性内存模块406中读取数据;内存抹除电路用以对可复写式非易失性内存模块406下达抹除指令以将数据从可复写式非易失性内存模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性内存模块406的数据以及从可复写式非易失性内存模块406中读取的数据。

主机接口504是电性连接至内存管理电路502并且用以电性连接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至内存管理电路502。在本范例实施例中,主机接口504是兼容于sata标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是兼容于pata标准、ieee1394标准、pciexpress标准、usb标准、uhs-i接口标准、uhs-ii接口标准、sd标准、ms标准、mmc标准、cf标准、ide标准或其他适合的数据传输标准。

内存接口506是电性连接至内存管理电路502并且用以存取可复写式非易失性内存模块406。也就是说,欲写入至可复写式非易失性内存模块406的数据会经由内存接口506转换为可复写式非易失性内存模块406所能接受的格式。

缓冲存储器508是电性连接至内存管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性内存模块406的数据。

电源管理电路510是电性连接至内存管理电路502并且用以控制内存储存装置10的电源。

错误检查与校正电路512是电性连接至内存管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当内存管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(errorcheckingandcorrectingcode,ecccode),并且内存管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性内存模块406中。之后,当内存管理电路502从可复写式非易失性内存模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。

图6与图7是根据一范例实施例所显示的管理实体抹除单元的范例示意图。

必须了解的是,在此描述可复写式非易失性内存模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性内存模块的实体抹除单元的实际位置并未改动,而是逻辑上对可复写式非易失性内存模块的实体抹除单元进行操作。

请参照图6,内存控制电路单元404(或内存管理电路502)会将实体抹除单元410(0)~410(n)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。

逻辑上属于数据区602与闲置区604的实体抹除单元是用以储存来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已储存数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,内存管理电路502会从闲置区604中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区602的实体抹除单元。

逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于 可复写式非易失性内存模块的制造商与型号、可复写式非易失性内存模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。

逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,内存管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。

特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的内存规格而有所不同。此外,必须了解的是,在内存储存装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。

请参照图7,如上所述,数据区602与闲置区604的实体抹除单元是以轮替方式来储存主机系统11所写入的数据。在本范例实施例中,内存控制电路单元404(或内存管理电路502)会配置逻辑地址710(0)~710(d)给主机系统11,以映像至数据区602中的实体抹除单元414(0)~410(f-1),以利于在以上述轮替方式来储存数据的实体抹除单元中进行数据存取。特别是,主机系统11会通过逻辑地址710(0)~710(d)来存取数据区602中的数据。在本范例实施例中,一个逻辑地址是映像至一个实体扇,多个逻辑地址会组成一个逻辑程序化单元,并且多个逻辑程序化单元会组成一个逻辑抹除单元。

此外,内存控制电路单元404(或内存管理电路502)会建立逻辑-实体映像表,以记录逻辑地址与实体抹除单元之间的映像关系。在本范例实施例中,内存控制电路单元404(或内存管理电路502)是以逻辑程序化单元来管理可复写式非易失性内存模块406,因此内存控制电路单元404(或内存管理电路502)会建立一个逻辑-实体映像表以记录逻辑程序化单元与实体程序化单元之间的映像关系。在另一范例实施例中,内存控制电路单元404(或内存管理电路502)是以逻辑抹除单元来管理可复写式非易失性内存模块406,因此内存控制电路单元404(或内存管理电路502)会建立一个逻辑-实体映像表以记录逻辑抹除单元与实体抹除单元之间的映像关系。

在本范例实施例中,内存控制电路单元404(或内存管理电路502)会配置多个超实体单元,并且每一个超实体单元会包括至少两个实体抹除单元。内存控制电路单元404(或内存管理电路502)会使用超实体单元来储存数据。例如,当主机系统下达写入指令时,内存控制电路单元404(或内存管理电路502)会提取一个超实体单元来程序化数据。内存控制电路单元404(或内存管理电路502)可配置两种不同类型的超实体单元,包括第一类超实体单元及第二类超实体单元。一个第一类超实体单元中的至少两个实体抹除单元是属于不同的操作单元,例如属于不同的平面或晶粒,使其可以同时或交错地被程序化。而一个第二类超实体单元中的至少两个实体抹除单元不会同时被程序化,并且一个第二类超实体单元所包括的多个实体抹除单元中,至少有两个实体抹除单元是属于相同平面或晶粒。以一个超实体单元包括四个实体抹除单元为例,一个第一类超实体单元的四个实体抹除单元皆属于不同平面或晶粒。然而,一个第二类超实体单元的四个实体抹除单元可以全部属于同一个平面或晶粒,或者,其中两个实体抹除单元(或三个实体抹除单元)属于相同平面或晶粒,其他的实体抹除单元属于不同平面或晶粒。

图8a是根据一范例实施例所显示的配置超实体单元的范例示意图。在本范例实施例中,是假设每一个超实体单元中包括两个实体抹除单元。

请参照图8,以下以平面为例说明,假设可复写式非易失性内存模块406包括两个平面平面p1、平面p2,并且平面p1、平面p2各包括8个实体抹除单元。平面p1包括2个坏实体抹除单元(即以斜线显示的实体抹除单元pba(6)、实体抹除单元pba(12)),而平面p2包括4个坏实体抹除单元(即以斜线显示的实体抹除单元pba(3)、实体抹除单元pba(5)、实体抹除单元pba(11)、实体抹除单元pba(13))。也就是说,平面p1的好实体抹除单元的数量为6,而平面p2的好实体抹除单元的数量为4。在本范例实施例中,内存控制电路单元404(或内存管理电路502)会先配置第一类超实体单元。换言之,内存控制电路单元404(或内存管理电路502)会从平面p1及平面p2中各提取一个好实体抹除单元以配置一个第一类超实体单元。举例而言,内存控制电路单元404(或内存管理电路502)将属于平面p1的好实体抹除单元pba(0)与属于平面p2的好实体抹除单元pba(1)配置为第一类超实体单元spba(0)。依此类推,内存控制电路单元404(或内存管理电路502)可配置第一类超实体单元spba(0)~spba(3),每一个第一类超实体单元所包括的两个好实体抹除单元分别属于平面p1及p2。

在本范例实施例中,由于一个第一类超实体单元是以两个分别属于不同平面的实体抹除单元所配置而成,因此,内存控制电路单元404(或内存管理电路502)所能配置的第一超实体抹除单元的数量,最多只会相等于具有较少好实体抹除单元的平面的好实体抹除单元的数量。如上所述,平面p1的好实体抹除单元的数量为6,而平面p2所包括的好实体抹除单元的数量为4。也就是说,平面p2所包括的好实体抹除单元的数量小于平面p1所包括的好实体抹除单元的数量。因此,内存控制电路单元404(或内存管理电路502)所能配置的第一类超实体单元的数量最多仅可等于平面p2所包括的好实体抹除单元的数量,也就是最多仅能配置4个第一类超实体单元。如此一来,当配置了最多数量的第一类超实体单元之后,具有较多好实体抹除单元的平面会存在无法被配置为第一类超实体单元的好实体抹除单元。

基此,内存控制电路单元404(或内存管理电路502)会配置第二类超实体单元,并且每一个第二类超实体单元包括属于相同平面的两个实体抹除单元。如图8a所示,由于平面p1相较于平面p2具有较多的好实体抹除单元,因此,在配置了最多数量的第一类超实体单元的之后,平面p1会存在无法被配置为第一类超实体单元的好实体抹除单元pba(10)以及实体抹除单元pba(14)。内存控制电路单元404(或内存管理电路502)会将好实体抹除单元pba(10)以及实体抹除单元pba(14)配置为一个第二类超实体单元spba(4)。如此一来,使得平面p1以及p2中的所有好实体抹除单元皆被配置为超实体单元。

在本范例实施例中,一个逻辑抹除单元是映像至一个超实体单元,也就是说一个逻辑抹除单元是映像至多个实体抹除单元。如上所述的正整数n、m与k的乘积代表一个超实体单元中所包括的实体抹除单元的数量,即代表一个逻辑抹除单元所映像的实体抹除单元的数量。在以下图8b及8c的范例实施例中,正整数n为1、正整数m为1、以及正整数k为2。换言之,一个逻辑抹除单元是映像至两个不同的实体抹除单元。

当主机系统11下达写入指令时,倘若内存控制电路单元404(或内存管理电路502)是将对应的写入数据程序化至一个第一类超实体单元时,内存控制电路单元404(或内存管理电路502)会将写入数据分成多个部分,并将这些部分分别地程序化至此第一类超实体单元的不 同的实体抹除单元中。因此,以第一类超实体单元而言,一个逻辑抹除单元所映像的多个不同的实体抹除单元彼此是分别属于不同平面,并且一个逻辑程序化单元是映像分别属于不同的实体抹除单元的多个实体程序化单元,藉此可以增加写入速度。

图8b是根据一范例实施例所显示的写入数据至第一类超实体单元的范例示意图。

请参照图8b,逻辑抹除单元lba(0)是映射至第一类超实体单元spba(0),并且逻辑抹除单元lba(0)包括了逻辑程序化单元lba(0-0)~lba(0-e)。若一个实体程序化单元的容量为4kb(kilobyte),则一个逻辑程序化单元的容量是8kb。主机系统11下达了一个写入指令,其指示将数据810写入至逻辑程序化单元lba(0-0)。在此假设数据810的大小为8kb,内存控制电路单元404(或内存管理电路502)会将数据810分为两个部分(即第一部分与第二部分),并且每一个部分的大小都是4kb。其中第二部分所属的逻辑地址是接续在第一部分所属的逻辑地址之后。在接收到写入指令之后,内存控制电路单元404(或内存管理电路502)会下达至少一指令序列将数据810的第一部分写入至实体抹除单元pba(0),并且同时将数据810的第二部分写入至实体抹除单元pba(1)。

在本范例实施例中,若主机系统11还下达了其他的写入指令时,内存控制电路单元404(或内存管理电路502)会将这些写入指令所指示的数据写入至实体抹除单元pba(0)、实体抹除单元pba(1),直到实体抹除单元pba(0)、实体抹除单元pba(1)中没有闲置的实体程序化单元。接下来,若内存控制电路单元404(或内存管理电路502)再接收到一个指示写入数据820的写入指令时,内存控制电路单元404(或内存管理电路502)会将数据820写入至第一类超实体单元spba(1)中。举例来说,逻辑抹除单元lba(1)是映射至第一类超实体单元spba(1),逻辑抹除单元lba(1)包括了逻辑程序化单元lba(1-0)~lba(1-e)。数据820是要写入至逻辑程序化单元lba(1-e),并且数据820的大小为8kb。相同于将数据810分为两个部分,内存管理电路202也会将数据820分为两个部分,并且每一个部分的大小都为4kb。内存控制电路单元404(或内存管理电路502)会将数据820的第一部分写入至实体抹除单元pba(2),并同时将数据820的第二部分写入至实体抹除单元pba(7)。

另一方面,当主机系统11下达写入指令时,倘若内存控制电路单元404(或内存管理电路502)是将对应的写入数据程序化至一个第二类超实体单元时,在一范例实施例中,内存控制电路单元404(或内存管理电路502)可将写入数据先程序化至第二类超实体单元的其中一个实体抹除单元。倘若,此其中一个实体抹除单元的已被写满(即没有闲置的实体程序化单元),内存控制电路单元404(或内存管理电路502)才将对应的写入数据程序化至此第二类超实体单元的另一个实体抹除单元。也就是说,内存控制电路单元404(或内存管理电路502)会先将写入数据程序化至第二类超实体单元中的一个实体抹除单元中,并且当此实体抹除单元被写满时,才将写入数据程序化至同一个第二类超实体单元中的另一个实体抹除单元中。此外,在本范例实施例中,以第二类超实体单元而言,一个逻辑抹除单元所映像的两个不同的实体抹除单元是属于相同平面。

图8c是根据一范例实施例所显示的写入数据至第二类超实体单元的范例示意图。

请参照图8c,逻辑抹除单元lba(s)是映射至第二类超实体单元spba(4),并且逻辑抹除单元lba(s)包括了逻辑程序化单元lba(s-0)~lba(s-e)。假设一个逻辑程序化单元是映像至同一个实体抹除单元中的多个实体程序化单元。如上所述,一个实体程序化单元的容量为4kb,并且一个逻辑程序化单元的容量是8kb。主机系统11下达了一个写入指令,其指示将 数据830写入至逻辑程序化单元lba(s-0)。内存控制电路单元404(或内存管理电路502)会将数据830程序化至第二类超实体单元spba(4)的实体抹除单元pba(10)中。例如,在此假设数据830的大小为8kb。在一范例实施例中,内存控制电路单元404(或内存管理电路502)会下达至少一指令序列将数据830的第一部分程序化至实体抹除单元pba(10)的第一个实体程序化单元中,并且将数据830的第二部分程序化至实体抹除单元pba(10)的第二个实体程序化单元中。其中数据830的第二部分所属的逻辑地址是接续在数据830的第一部分所属的逻辑地址之后。具体而言,内存控制电路单元404(或内存管理电路502)会根据实体抹除单元pba(10)的实体程序化单元的顺序,将所接收到的写入数据程序化至实体抹除单元pba(10)的实体程序化单元中。也就是说,在完成实体抹除单元pba(10)的一个实体程序化单元的程序化之后,会执行实体抹除单元pba(10)的下一个实体程序化单元的程序化。

如上所述,内存控制电路单元404(或内存管理电路502)是以一个实体程序化单元接续一个实体程序化单元的方式将数据先程序化至第二类超实体单元的一个实体抹除单元中。在本范例实施例中,若主机系统11还下达了其他的写入指令,内存控制电路单元404(或内存管理电路502)会将这些写入指令所指示的数据先写入至实体抹除单元pba(10),直到实体抹除单元pba(10)中没有闲置的实体程序化单元。接下来,若内存控制电路单元404(或内存管理电路502)再接收到一个写入数据840的写入指令时,内存控制电路单元404(或内存管理电路502)会将数据840写入至第二类超实体单元spba(4)的实体抹除单元pba(14)中。举例来说,数据840是要写入至逻辑程序化单元lba(s-c),并且数据840的大小为8kb。由于,实体抹除单元pba(10)中已没有闲置的实体程序化单元,因此,内存控制电路单元404(或内存管理电路502)会将数据840依序程序化至第二类超实体单元spba(4)的实体抹除单元pba(14)中的第一个实体程序化单元及第二个实体程序化单元中。

值得一提的是,在图8c的范例实施例中,内存控制电路单元404(或内存管理电路502)可使用快取程序化(cacheprogram)的写入运作方式来将写入数据程序化至第二类超实体单元。例如,内存控制电路单元404(或内存管理电路502)可先将写入数据暂存在缓冲存储器508的一缓冲区中并响应确认讯息给主机系统11,以通知主机系统11已完成此写入指令并可下达下一个指令。尔后再从缓冲存储器508的缓冲区中将写入数据程序化至第二类超实体单元。例如,当暂存在缓冲区中的数据量达到一门坎值时,可执行将缓冲区中的数据程序化至第二类超实体单元的操作。因此,内存控制电路单元404(或内存管理电路502)可藉由快取程序化的写入运作方式,先完成第二类超实体单元中的一个实体抹除单元的程序化后,才执行第二类超实体单元中的另一个实体抹除单元的程序化。

然而,在另一范例实施例中,第二类超实体单元的多个实体抹除单元也可以交错地被程序化。例如,以图8c的例子来说明,假设一个逻辑程序化单元是映像至不同实体抹除单元中的多个实体程序化单元。当接收到指示将数据830写入至逻辑程序化单元lba(s-0)的写入指令时,内存控制电路单元404(或内存管理电路502)可以下达至少一指令序列将数据830的第一部分程序化至超实体单元spba(4)的实体抹除单元pba(10)的第一个实体程序化单元中。并且,在完成实体抹除单元pba(10)的第一个实体程序化单元的程序化之后,将数据830的第二部分程序化至超实体单元spba(4)的实体抹除单元pba(14)的第一个实体程序化单元中。以此类推,内存控制电路单元404(或内存管理电路502)会将后续所接收到的写入数据交错地程序化至超实体单元spba(4)的实体抹除单元pba(10)与实体抹除单元pba(14)中。例如,当 接收到指示将数据840写入至逻辑程序化单元lba(s-c)的写入指令时,内存控制电路单元404(或内存管理电路502)同样地会下达至少一指令序列将数据840的第一部分程序化至超实体单元spba(4)的实体抹除单元pba(10)的一个实体程序化单元中。并且,在完成实体抹除单元pba(10)的所述实体程序化单元的程序化之后,将数据840的第二部分程序化至超实体单元spba(4)的实体抹除单元pba(14)的另一个实体程序化单元中。也就是说,内存控制电路单元404(或内存管理电路502)会以一个实体抹除单元的一个实体程序化单元接续另一个实体抹除单元的一个实体程序化单元的交错方式来将数据程序化至第二类超实体单元中。

图9a是根据另一范例实施例所显示的配置超实体单元的范例示意图。不同于图8a,在本范例实施例中,是假设每一个超实体单元中包括四个实体抹除单元。

请参照图9a,假设可复写式非易失性内存模块406包括四个平面平面p1、平面p2、平面p3、平面p4,并且平面p1、平面p2、平面p3、平面p4各包括8个实体抹除单元。如前所述,内存控制电路单元404(或内存管理电路502)会使用各平面中的好实体抹除单元来配置超实体单元。在本范例实施例中,内存控制电路单元404(或内存管理电路502)会从平面p1、平面p2、平面p3、平面p4中各提取一个好实体抹除单元以配置一个第一类超实体单元。举例而言,内存控制电路单元404(或内存管理电路502)将属于平面p1的好实体抹除单元pba(0)、属于平面p2的好实体抹除单元pba(1)、属于平面p3的好实体抹除单元pba(2)与属于平面p4的好实体抹除单元pba(3)配置为第一类超实体单元spba(5),依此类推。在本范例实施例中,由于平面p4仅包括3个好实体抹除单元,因此内存控制电路单元404(或内存管理电路502)最多只可配置三个第一类超实体单元spba(5)、第一类超实体单元spba(6)、第一类超实体单元spba(7),并且每一个第一类超实体单元所包括的四个好实体抹除单元分别属于平面p1、平面p2、平面p3、平面p4。

在配置了最多数量的第一类超实体单元之后,平面p1、平面p2、平面p3还存在无法被配置为第一类超实体单元的好实体抹除单元。平面p1与平面p2分别还存在1个剩余的好实体抹除单元(即实体抹除单元pba(12)、实体抹除单元pba(13)),并且平面p3还存在2个剩余的好实体抹除单元(即实体抹除单元pba(14)、实体抹除单元pba(15))。基此,内存控制电路单元404(或内存管理电路502)会将剩余的4个好实体抹除单元配置为一个第二类超实体单元。如图9a所示,内存控制电路单元404(或内存管理电路502)会将属于平面p1的好实体抹除单元pba(12)、属于平面p2的好实体抹除单元pba(13)与属于平面p3的好实体抹除单元pba(14)、实体抹除单元pba(15)配置为第二类超实体单元spba(8)。

在本范例实施例中,第二类超实体单元spba(8)中所包括的四个好实体抹除单元会分别属于平面p1、平面p2、平面p3。换句话说,第二类超实体单元spba(8)中包括至少两个好实体抹除单元是属于相同的平面。

如上所述的正整数n、m与k的乘积代表一个超实体单元中所包括的实体抹除单元的数量,即代表一个逻辑抹除单元所映像的实体抹除单元的数量。在以下图9b及9c的范例实施例中,正整数n为1、正整数m为2、以及正整数k为2。换言之,一个逻辑抹除单元是映像至四个不同的实体抹除单元。并且,为简化说明,在图9b及9c的范例实施例中,假设一个实体程序化单元的容量是4kb,并且一个逻辑程序化单元的容量是16kb。

图9b是根据图9a的范例实施例所显示的写入数据至第一类超实体单元的范例示意图。

由于第一类超实体单元中的好实体抹除单元是都属于不同平面,因此,内存控制电路单 元404(或内存管理电路502)会以相同于图8b的范例实施例的方式将写入数据程序化至第一类超实体单元中。

请参照图9b,逻辑抹除单元lba(0)是映射至第一类超实体单元spba(5)。主机系统11下达写入指令,指示将数据910写入至逻辑程序化单元lba(0-0)。在此假设数据910的大小为16kb。内存控制电路单元404(或内存管理电路502)会将数据910分为四个部分,并且每一个部分的大小都是4kb。在接收到写入指令之后,内存控制电路单元404(或内存管理电路502)会同时地将数据910的四个部分分别写入至第一类超实体单元spba(5)的实体抹除单元pba(0)、实体抹除单元pba(1)、实体抹除单元pba(2)、实体抹除单元pba(3)中。当内存控制电路单元404(或内存管理电路502)再接收到一个指示写入数据920的写入指令时,倘若第一类超实体单元spba(5)的实体抹除单元pba(0)、实体抹除单元pba(1)、实体抹除单元pba(2)、实体抹除单元pba(3)中已没有闲置的实体程序化单元,内存控制电路单元404(或内存管理电路502)会将数据920写入至第一类超实体单元spba(6)中。将数据写入至第一类超实体单元的方式已于前述图8b的范例实施例中说明,在此不再多加赘述。

图9c是根据图9a的范例实施例所显示的写入数据至第二类超实体单元的范例示意图。

在本范例实施例中,一个第二类超实体单元会包括属于相同平面的实体抹除单元与属于不同平面的实体抹除单元。换句话说,以本范例实施例的第二类超实体单元而言,一个逻辑抹除单元所映像的四个不同的实体抹除单元中包括两个实体抹除单元是属于相同平面。

请参照图9c,逻辑抹除单元lba(s)是映射至第二类超实体单元spba(8)。第二类超实体单元spba(8)中的实体抹除单元pba(12)属于平面p1,实体抹除单元pba(13)属于平面p2,实体抹除单元pba(14)、实体抹除单元pba(15)属于平面p3。主机系统11下达写入指令,指示将数据930写入至逻辑程序化单元lba(s-0)。在此假设数据930的大小为16kb,内存控制电路单元404(或内存管理电路502)会将数据930分为四个部分(即第一部分~第四部分),并且每一个部分的大小都是4kb。内存控制电路单元404(或内存管理电路502)会下达至少一指令序列将数据930的第一部分及第二部分分别程序化至第二类超实体单元spba(8)的实体抹除单元pba(12)、实体抹除单元pba(13),并且将数据930的第三部分及第四部分皆程序化至第二类超实体单元spba(8)的实体抹除单元pba(14)。例如,内存控制电路单元404(或内存管理电路502)会将数据930的第一部分程序化至实体抹除单元pba(12)的第一个实体程序化单元,将数据930的第二部分程序化至实体抹除单元pba(13)的第一个实体程序化单元,并且将数据930的第三部分及第四部分程序化至实体抹除单元pba(14)的第一个实体程序化单元及第二个实体程序化单元。若主机系统11还下达了其他的写入指令,内存控制电路单元404(或内存管理电路502)会将这些写入指令所指示的数据依上述方式分别写入至第二类超实体单元spba(8)的实体抹除单元pba(12)、实体抹除单元pba(13)、实体抹除单元pba(14),直到实体抹除单元pba(14)中没有闲置的实体程序化单元。接下来,若内存控制电路单元404(或内存管理电路502)再接收到一个写入数据940的写入指令时,内存控制电路单元404(或内存管理电路502)会将数据940分别写入至第二类超实体单元spba(8)的实体抹除单元pba(12)、实体抹除单元pba(13)、实体抹除单元pba(15)中。

也就是说,由于第二类超实体单元spba(8)的实体抹除单元pba(12)、实体抹除单元pba(13)与实体抹除单元pba(14)(或实体抹除单元pba(15))是分别属于不同平面,因此可同时地被程序化数据。而第二类超实体单元spba(8)的实体抹除单元pba(14)、实体抹除单元 pba(15)属于相同平面,因此在执行写入操作时,会先将数据程序化至实体抹除单元pba(14),当实体抹除单元pba(14)中已没有闲置的实体程序化单元时,才将数据程序化至实体抹除单元pba(15)中。并且,第二类超实体单元spba(8)的实体抹除单元pba(14)、实体抹除单元pba(15)会以一个实体程序化单元接续一个实体程序化单元的方式被程序化数据。然而,本发明不以此为限,第二类超实体单元spba(8)的实体抹除单元pba(14)、实体抹除单元pba(15)也可以交错地被程序化。

图10是根据一范例实施例的内存管理方法所显示的配置超实体单元的流程图。

请参照图10,在步骤s1001中,内存控制电路单元404(或内存管理电路502)配置多个第一类超实体单元,其中每一个第一类超实体单元包括至少两个好实体抹除单元,并且此至少两个好实体抹除单元分别是属于不同平面。在本范例实施例中,内存控制电路单元404(或内存管理电路502)可判断各平面中是否存在可被配置为第一类超实体单元的好实体抹除单元。并且,在各平面中仍存在可被配置为第一类超实体单元的好实体抹除单元时,可重复执行步骤s1001。

在步骤s1003中,内存控制电路单元404(或内存管理电路502)会判断在同一平面中是否存在多个好实体抹除单元,其中此些好实体抹除单元未对应至已配置的任一个第一类超实体单元。在本范例实施例中,可在各平面中已无可用以配置第一类超实体单元的好实体抹除单元时执行步骤s1003。

倘若同一平面中存在未对应至已配置的任一个第一类超实体单元的多个好实体抹除单元,在步骤s1005中,内存控制电路单元404(或内存管理电路502)配置至少一个第二类超实体单元,其中此第二类超实体单元包括同一平面中的至少两个好实体抹除单元,并且此至少两个好实体抹除单元未对应至已配置的任一个第一类超实体单元。在本实施例中,此至少两个好实体抹除单元是无法被配置为第一类超实体单元的好实体抹除单元。此外,倘若同一平面中不存在未对应至已配置的任一个第一类超实体单元的多个好实体抹除单元(例如,同一平面中不存在未对应至已配置的任一个第一类超实体单元的至少两个好实体抹除单元),则结束配置超实体单元的流程。

图11是根据一范例实施例的内存管理方法所显示的写入数据至第二类超实体单元的流程图。

在步骤s1101中,接收到来自主机系统指示写入数据的写入指令。

在步骤s1103中,内存控制电路单元404(或内存管理电路502)提取一个第二类超实体单元,以写入此数据。

在步骤s1105中,内存控制电路单元404(或内存管理电路502)将此数据的第一部分写入至所提取的第二类超实体单元的一个好实体抹除单元中。

在步骤s1107中,内存控制电路单元404(或内存管理电路502)会判断所提取的第二类超实体单元的此好实体抹除单元中是否存在未写入数据的至少一个实体程序化单元(即闲置的实体程序化单元)。

倘若所提取的第二类超实体单元的此好实体抹除单元中存在未写入数据的至少一个实体程序化单元,在步骤s1109中,内存控制电路单元404(或内存管理电路502)将此数据的第二部分写入至所提取的第二类超实体单元的此好实体抹除单元中。

倘若所提取的第二类超实体单元的此好实体抹除单元中已无未写入数据的实体程序化单 元,在步骤s1111中,内存控制电路单元404(或内存管理电路502)将此数据的第二部分写入至所提取的第二类超实体单元的另一个好实体抹除单元中。

在另一范例实施例中,在步骤s1105之前,内存控制电路单元404(或内存管理电路502)可将此数据暂存至缓冲存储器的缓冲区中。并且,上述步骤已详细说明如上,在此不再赘述。

综上所述,本发明除了可使用属于不同平面或晶粒的好实体抹除单元来配置超实体单元,还可使用属于同一个平面或晶粒的好实体抹除单元来配置超实体单元。换言之,同一平面或晶粒中无法被配置为第一类超实体单元的好实体抹除单元可被用来配置第二类超实体单元。如此一来,不仅可增加所配置的超实体单元的数量,也可更有效地使用可复写式非易失性内存模块中的好实体抹除单元。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1