数据程序化方法与内存储存装置与流程

文档序号:12664031阅读:237来源:国知局
本发明涉及一种内存管理机制,尤其涉及一种数据程序化方法与内存储存装置。
背景技术
::数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性内存模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。随着内存芯片的效能不断提升,部分的内存装置支持多信道(multi-channel)存取。然而,虽然可以藉由增加可并行存取的信道的数目来提升数据存取效率,但是若一次平行地写入的数据量过大或者所使用的信道数目过多,则可能会导致部分原先已储存在内存中的数据发生过多错误而无法被完全更正。特别是,内存中属于成对页(pairpage)的数据最容易因程序化上页(upperpage)而影响到下页(lowerpage)中的数据。传统上,可以藉由程序化下页时一并将虚设(dummy)数据填补至对应的上页,从而保护整个成对页中的数据。但是,这样的机制却也造成了储存空间的浪费。因此,在支持多信道存取的内存装置中,如何维持属于成对页的数据的正确性实为本领域技术人员所需致力研究的课题之一。技术实现要素:本发明的一范例实施例提供一种数据程序化方法与内存储存装置,可利用错误更正能力有限的编码数据来维持多信道的程序化程序中属于成对实体单元的数据的正确性。本发明的一范例实施例提供一种数据程序化方法,其用于可复写式非易失性内存模块,其中所述可复写式非易失性内存模块包括多个实体单元,其中所述实体单元被对应至多个信道,其中所述实体单元包括多个第一类实体单元与对应于所述第一类实体单元的多个第二类实体单元,所述数据程序化方法包括:程序化所述第一类实体单元中的多个实体单元以储存第一数据;编码所述第一数据以产生编码数据;接收第二数据;以及在编码所述第一数据之后,程序化所述第二类实体单元中的至少一实体单元以储存所述第二数据中的至少一部分数据。在本发明的一范例实施例中,所述编码数据用以更正因程序化所述第二类实体单元中的所述实体单元而在用以储存所述第一数据的所述实体单元中引起的错误。在本发明的一范例实施例中,程序化所述第二类实体单元中的所述实体单元的步骤包括:执行第一程序化程序以储存所述第二数据的第一部分数据,其中所述第一程序化程序包括经由所述信道中的至少一第一信道来程序化所述第二类实体单元中第一部分的实体单元,其中 所述第二类实体单元中的所述第一部分的实体单元对应于用以储存所述第一数据的所述实体单元中第一部分的实体单元,其中所述第一信道的第一数目小于所述信道中的多个可用信道的总数;以及在执行所述第一程序化程序之后,执行第二程序化程序以储存所述第二数据的第二部分数据,其中所述第二程序化程序包括经由所述信道中的至少一第二信道来程序化所述第二类实体单元中第二部分的实体单元,其中所述第二类实体单元中的所述第二部分的实体单元对应于用以储存所述第一数据的所述实体单元中第二部分的实体单元,其中所述第二信道的第二数目小于所述可用信道的所述总数。在本发明的一范例实施例中,所述可用信道是指当接收到所述第二数据时所述信道中对应于所述第二数据而默认可以被平行地使用的多个信道。在本发明的一范例实施例中,所述编码数据用以更正用以储存所述第一数据的所述实体单元中的所述第一部分的实体单元所储存的数据中的第一错误或者用以储存所述第一数据的所述实体单元中的所述第二部分的实体单元所储存的数据中的第二错误,其中所述第一错误的错误位的总数小于或等于所述编码数据可以更正的错误位的总数的最大值,其中所述第二错误的错误位的总数小于或等于所述编码数据可以更正的所述错误位的总数的所述最大值。在本发明的一范例实施例中,所述第一错误是对应于所述第一程序化程序而产生,其中所述第二错误是对应于所述第二程序化程序而产生。在本发明的一范例实施例中,编码所述第一数据以产生所述编码数据的步骤包括:编码所述第一数据的第一部分数据以产生第一编码数据,其中所述第一数据的所述第一部分数据为所述第一数据中被储存于所述第一类实体单元中对应于所述信道中的至少一第三信道的多个实体单元中的数据;以及编码所述第一数据的第二部分数据以产生第二编码数据,其中所述第一数据的所述第二部分数据为所述第一数据中被储存于所述第一类实体单元中对应于所述信道中的至少一第四信道的多个实体单元中的数据,其中所述第一编码数据与所述第二编码数据彼此独立。在本发明的一范例实施例中,所述数据程序化方法还包括:判断是否接收到特定操作指令,其中编码所述第一数据的步骤是反应于接收到所述特定操作指令而执行。在本发明的一范例实施例中,所述特定操作指令包括转存清除指令。在本发明的一范例实施例中,所述数据程序化方法还包括:若没有接收到所述特定操作指令,则在程序化所述第二类实体单元中的所述实体单元之前,不编码所述第一数据。本发明的另一范例实施例提供一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块及内存控制电路单元。所述连接接口单元用以电性连接至主机系统。所述可复写式非易失性内存模块包括多个实体单元,其中所述实体单元被对应至多个信道,其中所述实体单元包括多个第一类实体单元与对应于所述第一类实体单元的多个第二类实体单元。所述内存控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性内存模块,其中所述内存控制电路单元用以发送第一写入指令序列以指示程序化所述第一类实体单元中的多个实体单元以储存第一数据,其中所述内存控制电路单元还用以编码所述第一数据以产生编码数据,其中所述内存控制电路单元还用以接收第二数据,其中在编码所述第一数据之后,所述内存控制电路单元还用以发送第二写入指令序列以指示程序化所述第二类实体单元中的至少一实体单元以储存所述第二数据中的至少一部分数据。在本发明的一范例实施例中,所述编码数据用以更正因程序化所述第二类实体单元中的 所述实体单元而在用以储存所述第一数据的所述实体单元中引起的错误。在本发明的一范例实施例中,所述第二写入指令序列指示执行第一程序化程序以储存所述第二数据的第一部分数据并且在执行所述第一程序化程序之后执行第二程序化程序以储存所述第二数据的第二部分数据,其中所述第一程序化程序包括经由所述信道中的至少一第一信道来程序化所述第二类实体单元中第一部分的实体单元,其中所述第二类实体单元中的所述第一部分的实体单元对应于用以储存所述第一数据的所述实体单元中第一部分的实体单元,其中所述第一信道的第一数目小于所述信道中的多个可用信道的总数,其中所述第二程序化程序包括经由所述信道中的至少一第二信道来程序化所述第二类实体单元中第二部分的实体单元,其中所述第二类实体单元中的所述第二部分的实体单元对应于用以储存所述第一数据的所述实体单元中第二部分的实体单元,其中所述第二信道的第二数目小于所述可用信道的所述总数。在本发明的一范例实施例中,所述可用信道是指当接收到所述第二数据时所述信道中对应于所述第二数据而默认可以被平行地使用的多个信道。在本发明的一范例实施例中,所述编码数据用以更正用以储存所述第一数据的所述实体单元中的所述第一部分的实体单元所储存的数据中的第一错误或者用以储存所述第一数据的所述实体单元中的所述第二部分的实体单元所储存的数据中的第二错误,其中所述第一错误的错误位的总数小于或等于所述编码数据可以更正的错误位的总数的最大值,其中所述第二错误的错误位的总数小于或等于所述编码数据可以更正的所述错误位的总数的所述最大值。在本发明的一范例实施例中,所述第一错误是对应于所述第一程序化程序而产生,其中所述第二错误是对应于所述第二程序化程序而产生。在本发明的一范例实施例中,所述内存控制电路单元编码所述第一数据以产生所述编码数据的操作包括:编码所述第一数据的第一部分数据以产生第一编码数据,其中所述第一数据的所述第一部分数据为所述第一数据中被储存于所述第一类实体单元中对应于所述信道中的至少一第三信道的多个实体单元中的数据;以及编码所述第一数据的第二部分数据以产生第二编码数据,其中所述第一数据的所述第二部分数据为所述第一数据中被储存于所述第一类实体单元中对应于所述信道中的至少一第四信道的多个实体单元中的数据,其中所述第一编码数据与所述第二编码数据彼此独立。在本发明的一范例实施例中,所述内存控制电路单元还用以判断是否接收到特定操作指令,其中所述内存控制电路单元是反应于接收到所述特定操作指令而执行编码所述第一数据的操作。在本发明的一范例实施例中,所述特定操作指令包括转存清除指令。在本发明的一范例实施例中,若没有接收到所述特定操作指令,则在程序化所述第二类实体单元中的所述实体单元之前,所述内存控制电路单元不编码所述第一数据。本发明的另一范例实施例提供一种数据程序化方法,其用于可复写式非易失性内存模块,其中所述可复写式非易失性内存模块包括多个实体单元,其中所述实体单元被对应至多个信道,其中所述实体单元包括多个第一类实体单元与对应于所述第一类实体单元的多个第二类实体单元,所述数据程序化方法包括:程序化所述第一类实体单元中的多个实体单元以储存第一数据;接收第二数据;在储存所述第一数据之后,执行第一程序化程序以储存所述第二数据的第一部分数据,其中所述第一程序化程序包括经由所述信道中的至少一第一信道来程 序化所述第二类实体单元中第一部分的实体单元,其中所述第二类实体单元中的所述第一部分的实体单元对应于用以储存所述第一数据的所述实体单元中第一部分的实体单元,其中所述第一信道的第一数目小于所述信道中的多个可用信道的总数;以及在执行所述第一程序化程序之后,执行第二程序化程序以储存所述第二数据的第二部分数据,其中所述第二程序化程序包括经由所述信道中的至少一第二信道来程序化所述第二类实体单元中第二部分的实体单元,其中所述第二类实体单元中的所述第二部分的实体单元对应于用以储存所述第一数据的所述实体单元中第二部分的实体单元,其中所述第二信道的第二数目小于所述可用信道的所述总数。在本发明的一范例实施例中,所述可用信道是指当接收到所述第二数据时所述信道中对应于所述第二数据而默认可以被平行地使用的多个信道。本发明的另一范例实施例提供一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块及内存控制电路单元。所述连接接口单元用以电性连接至主机系统。所述可复写式非易失性内存模块包括多个实体单元,其中所述实体单元被对应至多个信道,其中所述实体单元包括多个第一类实体单元与对应于所述第一类实体单元的多个第二类实体单元。所述内存控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性内存模块,其中所述内存控制电路单元用以发送第一写入指令序列以指示程序化所述第一类实体单元中的多个实体单元以储存第一数据,其中所述内存控制电路单元还用以接收第二数据,其中在储存所述第一数据之后,所述内存控制电路单元还用以发送第二写入指令序列以指示执行第一程序化程序以储存所述第二数据的第一部分数据并且在执行所述第一程序化程序之后,执行第二程序化程序以储存所述第二数据的第二部分数据,其中所述第一程序化程序包括经由所述信道中的至少一第一信道来程序化所述第二类实体单元中第一部分的实体单元,其中所述第二类实体单元中的所述第一部分的实体单元对应于用以储存所述第一数据的所述实体单元中第一部分的实体单元,其中所述第一信道的第一数目小于所述信道中的多个可用信道的总数,其中所述第二程序化程序包括经由所述信道中的至少一第二信道来程序化所述第二类实体单元中第二部分的实体单元,其中所述第二类实体单元中的所述第二部分的实体单元对应于用以储存所述第一数据的所述实体单元中第二部分的实体单元,其中所述第二信道的第二数目小于所述可用信道的所述总数。在本发明的一范例实施例中,所述可用信道是指当接收到所述第二数据时所述信道中对应于所述第二数据而默认可以被平行地使用的多个信道。基于上述,被储存至对应于多个信道的第一类实体单元的第一数据会被编码。藉此,当执行对于相对应的第二类实体单元的多信道程序化程序时,可维持属于成对实体单元的数据的正确性。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一范例实施例所显示的主机系统、内存储存装置及输入/输出(I/O)装置的示意图;图2是根据本发明的另一范例实施例所显示的主机系统、内存储存装置及I/O装置的示意图;图3是根据本发明的另一范例实施例所显示的主机系统与内存储存装置的示意图;图4是根据本发明的一范例实施例所显示的内存储存装置的概要方框图;图5A是根据本发明的一范例实施例所显示的记忆胞数组的示意图;图5B是根据本发明的另一范例实施例所显示的记忆胞数组的示意图;图6A是根据本发明的一范例实施例所显示的可复写式非易失性内存模块的示意图;图6B是根据本发明的一范例实施例所显示的使用实体单元的示意图;图7是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图;图8是根据本发明的一范例实施例所显示的多框架编码编码的示意图;图9是根据本发明的一范例实施例所显示的程序化第一类实体单元并且编码第一数据的示意图;图10是根据本发明的一范例实施例所显示的程序化第二类实体单元的示意图;图11与图12是根据本发明的一范例实施例所显示的数据程序化程序的示意图;图13是根据本发明的另一范例实施例所显示的数据程序化程序的示意图;图14是根据本发明的一范例实施例所显示的数据程序化方法的流程图;图15是根据本发明的另一范例实施例所显示的数据程序化方法的流程图;图16是根据本发明的另一范例实施例所显示的数据程序化方法的流程图;图17是根据本发明的另一范例实施例所显示的数据程序化方法的流程图。附图标记:10:内存储存装置11:主机系统110:系统总线111:处理器112:随机存取内存113:只读存储器114:数据传输接口12:输入/输出(I/O)装置20:主板201:随身盘202:记忆卡203:固态硬盘204:无线内存储存装置205:全球定位系统模块206:网络适配器207:无线传输装置208:键盘209:屏幕210:喇叭32:SD卡33:CF卡34:嵌入式储存装置341:嵌入式多媒体卡342:嵌入式多芯片封装储存装置402:连接接口单元404:内存控制电路单元406:可复写式非易失性内存模块510:记忆胞数组502、522:记忆胞504、524:位线506:字符线508:共享源极线512:选择栅漏极晶体管514:选择栅源极晶体管524(1)~524(4):位线组526(1)~526(8):字符线层601(1)~601(M):内存平面602(1)~602(M):信道610(0)~610(A)、610(B)~610(C)、610(D)~610(E)、810(0)~810(E):第一类实体单元620(0)~620(A)、620(B)~620(C)、620(D)~620(E):第二类实体单元702:内存管理电路704:主机接口706:内存接口708:错误检查与校正电路710:缓冲存储器712:电源管理电路801(1)~810(r):位置820、902、1102(0)、1102(1)、1310(0)、1310(1):编码数据1001、1002、1201、1301(0)、1301(1)、1302(0)、1302(1):程序化程序S1401:步骤(程序化第一类实体单元中的多个实体单元以储存第一数据)S1402:步骤(编码第一数据以产生编码数据并接收第二数据)S1403:步骤(程序化对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据)S1501:步骤(程序化第一类实体单元中的多个实体单元以储存第一数据)S1502:步骤(编码第一数据以产生编码数据并接收第二数据)S1503:步骤(执行第一程序化程序以储存第二数据的第一部分数据,其中第一程序化程序包括经由至少一第一信道来程序化第一部分的第二类实体单元,其中所述第一部分的第二类实体单元对应于储存有第一数据的第一类实体单元中一第一部分的实体单元,其中第一信道 的第一数目小于多个可用信道的总数)S1504:步骤(执行第二程序化程序以储存第二数据的第二部分数据,其中第二程序化程序包括经由至少一第二信道来程序化第二部分的第二类实体单元,其中所述第二部分的第二类实体单元对应于储存有第一数据的第一类实体单元中一第二部分的实体单元,其中第二信道的第二数目小于所述可用信道的总数)S1601:步骤(程序化第一类实体单元中的多个实体单元以储存第一数据)S1602:步骤(编码第一数据中被储存于第一类实体单元中对应于至少一第三信道的多个实体单元中的第一部分数据以产生第一编码数据)S1603:步骤(编码第一数据中被储存于第一类实体单元中对应于至少一第四信道的多个实体单元中的第二部分数据以产生第二编码数据,其中第一编码数据与第二编码数据彼此独立)S1604:步骤(程序化对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据)S1701:步骤(程序化第一类实体单元中的多个实体单元以储存第一数据)S1702:步骤(判断是否接收到特定操作指令)S1703:步骤(编码第一数据以产生编码数据)S1704:步骤(程序化对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据)具体实施方式一般而言,内存储存装置(亦称内存储存系统)包括可复写式非易失性内存模块(rewritablenon-volatilememorymodule)与控制器(亦称控制电路)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。图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可例如是近距离无线通信(NearFieldCommunication,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)标准、安全数字(SecureDigital,SD)接口标准、超高速一代(UltraHighSpeed-I,UHS-I)接口标准、超高速二代(UltraHighSpeed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-ChipPackage)接口标准、多媒体储存卡(MultiMediaCard,MMC)接口标准、崁入式多媒体储存卡(EmbeddedMultimediaCard,eMMC)接口标准、通用闪存(UniversalFlashStorage,UFS)接口标准、嵌入式多芯片封装(embeddedMultiChipPackage,eMCP)接口标准、小型快闪(CompactFlash,CF)接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。连接接口单元402可与内存控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含内存控制电路单元404的芯片外。内存控制电路单元404用以执行以硬件型式或韧体型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性内存模块406中进行数据的写入、读取与抹除等运作。可复写式非易失性内存模块406是电性连接至内存控制电路单元404并且用以储存主机系统11所写入的数据。可复写式非易失性内存模块406可以是单阶记忆胞(SingleLevelCell,SLC)NAND型闪存模块(即一个记忆胞中可储存1个位的闪存模块)、多阶记忆胞(MultiLevelCell,MLC)NAND型闪存模块(即一个记忆胞中可储存2个位的闪存模块)、复数阶记忆胞(TripleLevelCell,TLC)NAND型闪存模块(即一个记忆胞中可储存3个位的闪存模块)、其他闪存模块或其他具有相同特性的内存模块。可复写式非易失性内存模块406中的记忆胞是以数组的方式设置。以下分别以二维数组 与三维数组来对不同范例实施例中的记忆胞数组进行说明。但是,在此须注意的是,以下范例实施例只是记忆胞数组的几种范例,在其他的范例实施例中,记忆胞数组的配置方式可以被调整以符合实务上的需求。图5A是根据本发明的一范例实施例所显示的记忆胞数组的示意图。请参照图5A,记忆胞数组510包括用以储存数据的多个记忆胞502、多个选择栅漏极(selectgatedrain,SGD)晶体管512与多个选择栅源极(selectgatesource,SGS)晶体管514、以及连接此些记忆胞的多条位线504、多条字符线506、与共享源极线508。记忆胞502是以数组方式配置在位线504与字符线506的交叉点上。图5B是根据本发明的另一范例实施例所显示的记忆胞数组的示意图。请参照图5B,在本范例实施例中,记忆胞数组包括用以储存数据的多个记忆胞522、多个位线组524(1)~524(4)及多个字符线层526(1)~526(8)。位线组524(1)~524(4)彼此独立(例如,彼此分离)并且沿第一方向(例如,X轴)排列。位线组524(1)~524(4)中的每一个字符线组包括彼此独立(例如,彼此分离)的多条位线524。包含于位线组524(1)~524(4)中的位线524沿第三方向(例如,Y轴)排列并且往第二方向(例如,Z轴)延伸。字符线层526(1)~526(8)彼此独立(例如,彼此分离)并且沿第二方向堆栈。在本范例实施例中,字符线层526(1)~526(8)中的每一个字符线层可视为一个字符线平面。记忆胞522被配置于位线组524(1)~524(4)中的每一位线524与字符线层526(1)~526(8)之间的每一个交错处。然而,在另一范例实施例中,一个位线组可以包括更多或更少的位线,并且一个字符线层也可以让更多或更少的位线组通过。可复写式非易失性内存模块406中的每一个记忆胞是基于电压(以下亦称为临界电压)的改变来储存一个或多个位。当从内存控制电路单元404接收到写入指令序列或读取指令序列时,可复写式非易失性内存模块406中的控制电路(未显示)会控制施予至某一字符线(或字符线层)与某一位线(或位线组)的电压来改变至少一记忆胞的临界电压或侦测所述记忆胞的储存状态(state)。例如,每一个记忆胞的控制栅极(controlgate)与信道之间有一个电荷捕捉层。通过施予一写入电压(或程序化电压)至某一个记忆胞的控制栅极,可以改变其电荷补捉层的电子量,进而改变此记忆胞的临界电压。此改变临界电压的程序亦称为“把数据写入至记忆胞”或“程序化记忆胞”。随着临界电压的改变,可复写式非易失性内存模块406中的记忆胞可具有多个储存状态。通过施予读取电压可以判断一个记忆胞是属于哪一个储存状态,藉此取得此记忆胞所储存的一个或多个位。可复写式非易失性内存模块406的记忆胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体而言,同一条字符线或同一个字符线层上的记忆胞会组成一个或多个实体程序化单元。例如,若可复写式非易失性内存模块406为MLCNAND型闪存模块,则同一条字符线(或字符线层)与多条位线的交错处上的记忆胞会构成2个实体程序化单元。或者,若可复写式非易失性内存模块406为TLCNAND型闪存模块,则同一条字符线(或字符线层)与多条位线的交错处上的记忆胞会构成3个实体程序化单元。在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据位区与冗余(redundancy)位区。数据位区包含多个实体扇,用以储存用户数据,而冗余位区用以储存系统数据(例如错误更正码)。在本范例实施例中,数据位区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然 而,在其他范例实施例中,数据位区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。即每一实体抹除单元含有最小数目之一并被抹除的记忆胞。例如,实体抹除单元为实体区块(block)。在一个记忆胞可以储存多个位(例如,MLC或TLCNAND闪存模块)的范例实施例中,属于同一条字符线(或同一个字符线层)的实体程序化单元至少可被分类为第一类实体程序化单元与第二类实体程序化单元。例如,在MLCNAND闪存模块中,一记忆胞的最低有效位(LeastSignificantBit,LSB)是属于第一类实体程序化单元,并且此记忆胞的最高有效位(MostSignificantBit,MSB)是属于第二类实体程序化单元。一般来说,第一类实体程序化单元的写入速度会大于第二类实体程序化单元的写入速度。此外,第一类实体程序化单元的可靠度一般会高于第二类实体程序化单元的可靠度。在一范例实施例中,第一类实体程序化单元亦称为快页(fastpage)或下实体程序化单元,而第二类实体程序化单元亦称为慢页(slowpage)或上实体程序化单元。在本范例实施例中,可复写式非易失性内存模块406具有多个内存平面(plane)。此些内存平面属于一个或多个内存晶粒(die)。在本范例实施例中,一个内存平面会被规划为一个装置。然而,在另一范例实施例中,多个内存平面也可以被规划为一个装置。每一个内存平面可包括一个或多个记忆胞数组。例如,每一个记忆胞数组可以是图5A的记忆胞数组510、图5B的记忆胞数组或其他类型的记忆胞数组。图6A是根据本发明的一范例实施例所显示的可复写式非易失性内存模块的示意图。值得一提的是,本范例实施例是以MLCNAND型闪存作为范例,但相关操作亦可以应用于其他类型的闪存(例如TLCNAND型闪存)。请参照图6A,可复写式非易失性内存模块406包括M个内存平面601(1)~601(M)。内存平面601(1)~601(M)中的每一个包含多个记忆胞。在内存平面601(1)~601(M)中,属于同一个内存平面的记忆胞被规划为多个实体单元。例如,属于同一个内存平面的实体单元会包括多个第一类实体单元与对应于此些第一类实体单元的多个第二类实体单元。例如,内存平面601(1)包括第一类实体单元610(0)~610(A)与第二类实体单元620(0)~620(A),内存平面601(2)包括第一类实体单元610(B)~610(C)与第二类实体单元620(B)~620(C);以此类推,内存平面601(M)包括第一类实体单元610(D)~610(E)与第二类实体单元620(D)~620(E)。其中,第一类实体单元610(0)对应于第二类实体单元620(0),第一类实体单元610(1)对应于第二类实体单元620(1);以此类推,第一类实体单元610(E)对应于第二类实体单元620(E)。在本范例实施例中,实体单元是指实体程序化单元。因此,第一类实体单元是指上述第一类实体程序化单元,并且第二类实体单元则是指上述第二类实体程序化单元。此外,相互对应的一个第一类实体单元与一个第二类实体单元是指属于同一条字符线(或同一个字符线层)的实体单元。例如,第一类实体单元610(0)与第二类实体单元620(0)属于同一条字符线(或同一个字符线层),第一类实体单元610(1)与第二类实体单元620(1)属于同一条字符线(或同一个字符线层);以此类推,第一类实体单元610(E)与第二类实体单元620(E)也属于同一条字符线(或同一个字符线层)。然而,在另一范例实施例中,一个实体单元也可以是由同一位线(或位线层)上任意数目的记忆胞构成。在本范例实施例中,在一组相互对应的实体单元中,第一类实体单元会先被使用(例如程 序化);然后,第二类实体单元才会被使用(例如程序化)。图6B是根据本发明的一范例实施例所显示的使用实体单元的示意图。请参照图6B,以图6A中的内存平面601(1)为例,数字1~12表示用来储存数据的实体单元的使用顺序(或程序化顺序)。在程序化实体单元以储存数据的过程中,标记为1~3的第一类实体单元610(0)~610(2)会依序被程序化;在程序化第一类实体单元610(2)之后,标记为4~6的第二类实体单元620(0)~620(2)会依序被程序化;在程序化第二类实体单元620(2)之后,标记为7~9的第一类实体单元610(3)~610(5)会依序被程序化;在程序化第一类实体单元610(5)之后,标记为10~12的第二类实体单元620(3)~620(5)会依序被程序化。值得一提的是,图6B的范例实施例中的数字1~12只是一个范例,在另一范例实施例中,每一个内存平面中实体单元的使用顺序也可以视实务上的需求来加以调整。例如,在图6B的另一范例实施例中,实体单元的使用顺序也可以是依序程序化第一类实体单元610(0)、第二类实体单元620(0)、第一类实体单元610(1)、第二类实体单元620(1)、第一类实体单元610(2)、第二类实体单元620(2)、第一类实体单元610(3)、第二类实体单元620(3)、第一类实体单元610(4)、第二类实体单元620(4)、第一类实体单元610(5)、第二类实体单元620(5)等,视实务上的需求而定。此外,图6B的范例实施例是以连续地储存数据至属于同一个内存平面(即内存平面601(1))中的实体单元为例,但是,在另一范例实施例中,数据也可以被交错或平行地储存至多个内存平面中的实体单元,只要每一个内存平面中实体单元的使用顺序符合默认规定即可。在一范例实施例中,在平行地程序化多个内存平面中的实体单元的程序化操作中,每一个内存平面中被平行程序化的实体单元皆(或只能)是第一类实体单元与第二类实体单元的其中之一。以图6A为例,假设所有的实体单元都可以被使用,则在一个程序化程序中,每一个内存平面中部分的第一类实体单元会先被平行地程序化;然后,在下一个程序化程序中,每一个内存平面中部分的第二类实体单元会被平行地程序化。然而,在另一范例实施例中,多个内存平面中被平行程序化的实体单元则可以同时包含第一类实体单元与第二类实体单元。在本范例实施例中,内存控制电路单元404(或可复写式非易失性内存模块406中的控制电路(未显示))经由信道602(1)~602(M)来存取内存平面601(1)~601(M)中的实体单元(或记忆胞)。例如,信道602(1)用以存取内存平面601(1)中的实体单元,信道602(2)用以存取内存平面601(2)中的实体单元;以此类推,信道602(M)用以存取内存平面601(M)中的实体单元。在一范例实施例中,属于内存平面601(1)的实体单元(例如第一类实体单元610(0)~610(A)与第二类实体单元620(0)~620(A))亦可以视为是对应于信道602(1)的实体单元,属于内存平面601(2)的实体单元(例如第一类实体单元610(B)~610(C)与第二类实体单元620(B)~620(C))亦可以视为是对应于信道602(2)的实体单元;以此类推,属于内存平面601(M)的实体单元(例如第一类实体单元610(D)~610(E)与第二类实体单元620(D)~620(E))亦可以视为是对应于信道602(M)的实体单元。在本范例实施例中,信道602(1)~602(M)中的至少两者支持平行地(inparallel)数据读取或写入。例如,当欲储存某一数据时,此数据可以被平行地写入至属于多个内存平面的实体单元。例如,第一类实体单元610(0)与610(B)可以被平行地程序化以储存此数据。或者,第二类实体单元620(0)、620(B)及620(D)可以被平行地程序化以储存某一数据。此外,当接收到来自主机系统11的某一读取指令时,数据也可以平行地被从属于多个内存平面的实体单元读取 出来。例如,数据也可以被平行地从第一类实体单元610(0)、610(B)及610(D)读取。藉此,可提升数据的存取效率或访问速度。图7是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图。请参照图7,内存控制电路单元404包括内存管理电路702、主机接口704、内存接口706及错误检查与校正电路708。内存管理电路702用以控制内存控制电路单元404的整体运作。具体来说,内存管理电路702具有多个控制指令,并且在内存储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明内存管理电路702或任何包含于内存控制电路单元404中的电路组件的操作时,等同于说明内存控制电路单元404的操作。在本范例实施例中,内存管理电路702的控制指令是以韧体型式来实作。例如,内存管理电路702具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当内存储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,内存管理电路702的控制指令亦可以程序代码型式储存于可复写式非易失性内存模块406的特定区域(例如内存模块中专用于存放系统数据的系统区)中。此外,内存管理电路702具有微处理器单元(未显示)、只读存储器(未显示)及随机存取内存(未显示)。特别是,此只读存储器具有开机码(bootcode),并且当内存控制电路单元404被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性内存模块406中的控制指令加载至内存管理电路702的随机存取内存中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,内存管理电路702的控制指令亦可以一硬件型式来实作。例如,内存管理电路702包括微控制器、记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路。记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路是电性连接至微控制器。记忆胞管理电路用以管理可复写式非易失性内存模块406的记忆胞或其群组。内存写入电路用以对可复写式非易失性内存模块406下达写入指令序列以将数据写入至可复写式非易失性内存模块406中。内存读取电路用以对可复写式非易失性内存模块406下达读取指令序列以从可复写式非易失性内存模块406中读取数据。内存抹除电路用以对可复写式非易失性内存模块406下达抹除指令序列以将数据从可复写式非易失性内存模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性内存模块406的数据以及从可复写式非易失性内存模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一个或多个程序代码或脚本并且用以指示可复写式非易失性内存模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,内存管理电路702还可以下达其他类型的指令序列给可复写式非易失性内存模块406以指示执行相对应的操作。主机接口704是电性连接至内存管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至内存管理电路702。在本范例实施例中,主机接口704是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口704亦可以是兼容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。内存接口706是电性连接至内存管理电路702并且用以存取可复写式非易失性内存模块406。也就是说,欲写入至可复写式非易失性内存模块406的数据会经由内存接口706转换为可复写式非易失性内存模块406所能接受的格式。具体来说,若内存管理电路702要存取可复写式非易失性内存模块406,内存接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种记忆体操作(例如改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由内存管理电路702产生并且通过内存接口706传送至可复写式非易失性内存模块406。这些指令序列可包括一个或多个信号,或是在总线上的数据。这些信号或数据可包括脚本或程序代码。例如,在读取指令序列中,会包括读取的辨识码、内存地址等信息。错误检查与校正电路708是电性连接至内存管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当内存管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ECC)和/或错误检查码(errordetectingcode,EDC),并且内存管理电路702会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性内存模块406中。之后,当内存管理电路702从可复写式非易失性内存模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路708会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。在一范例实施例中,内存控制电路单元404还缓冲存储器710与电源管理电路712。缓冲存储器710是电性连接至内存管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性内存模块406的数据。电源管理电路712是电性连接至内存管理电路702并且用以控制内存储存装置10的电源。在本范例实施例中,错误检查与校正电路708执行编码程序的基本单位是一个框架(frame)。一个框架包括多个数据位。在本范例实施例中,一个框架包括256个位。然而,在另一范例实施例中,一个框架也可以包括更多或更少的位。在本范例实施例中,错误检查与校正电路708可以针对储存于同一个实体单元中的数据进行单框架(single-frame)编码,也可以针对储存于多个实体单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(lowdensityparitycode,LDPC)、BCH码、回旋码(convolutionalcode)或涡轮码(turbocode)等编码算法的至少其中之一。或者在一范例实施例中,多框架编码还可以采用里德-所罗门码(Reed-solomoncodes,RScodes)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路708可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。图8是根据本发明的一范例实施例所显示的多框架编码的示意图。请参照图8,以编码实体单元810(0)~810(E)所储存的数据来产生相对应的编码数据820为例,实体单元810(0)~810(E)中的每一个所储存的至少部分数据可视为一个框架。在多框架编码中,是以每一个位(或,字节)所在的位置为依据来对实体单元810(0)~810(E)中的数据进行编码。例如,位于位置801(1)的位b11、b21、…、bp1会被编码为编码数据820中的位bo1,位 于位置801(2)的位b12、b22、…、bp2会被编码为编码数据820中的位bo2;以此类推,位于位置801(r)的位b1r、b2r、…、bpr会被编码为编码数据820中的位bor。然后,根据编码数据820即可对从实体单元810(0)~810(E)中读取的数据进行译码,以尝试更正所读取的数据中可能存在的错误。此外,在图8的另一范例实施例中,用于产生编码数据820的数据也可能包括实体单元810(0)~810(E)所储存的数据中的数据位(databits)所对应的冗余位(redundancybits)。以实体单元810(0)所储存的数据为例,其中的冗余位例如是对储存于实体单元810(0)中的数据位进行单框架编码而产生的。在本范例实施例中,内存管理电路702会指示程序化属于一个或多个内存平面的多个第一类实体单元以储存某一数据(以下亦称为第一数据)。错误检查与校正电路708会编码第一数据以产生编码数据并且内存管理电路702会接收第二数据。在编码第一数据之后,内存管理电路702会指示程序化储存有第一数据的第一类实体单元所对应的多个第二类实体单元的至少其中之一,以储存第二数据中的至少一部分数据。藉此,即使在程序化已储存有数据的第一类实体单元所对应的第二类实体单元的过程中发生断电等突发状况而影响到第一类实体单元中的数据,根据事先产生的编码数据即可更正受影响的第一类实体单元中的错误。图9是根据本发明的一范例实施例所显示的程序化第一类实体单元并且编码第一数据的示意图。请参照图9,假设可复写式非易失性内存模块406具有4个内存平面601(1)~601(4)并且可经由信道602(1)~602(4)来分别存取内存平面601(1)~601(4)中的实体单元。然而,在另一范例实施中,可复写式非易失性内存模块406也可能具有更多或更少的内存平面,并且更多或更少的信道可以用来存取此些内存平面。在本范例实施例中,内存管理电路702会程序化第一类实体单元610(0)~610(11)以储存第一数据,并且错误检查与校正电路708会执行多框架编码来编码第一数据以产生编码数据902。相关的编码操作已详述于上,在此便不赘述。编码数据902会被储存在可复写式非易失性内存模块406中。然后,若在程序化第一类实体单元610(0)~610(11)所对应的第二类实体单元620(0)~620(11)中的任一个的过程中,第一类实体单元610(0)~610(11)所储存的数据受到影响,则错误检查与校正电路708可以尝试利用编码数据902来更正第一类实体单元610(0)~610(11)所储存的数据中的错误。值得一提的是,在图9的另一范例实施例中,用来产生编码数据902的第一类实体单元的数目也可以是更多或更少,并且用来产生编码数据902的第一类实体单元可以是分布在更多或更少的内存平面中。例如,在一范例实施例中,用来产生编码数据902的多个第一类实体单元可能仅位于一个内存平面中。在一范例实施例中,上述编码第一数据的操作可以在任意的时间点执行,以保护储存于第一类实体单元中的数据。在另一范例实施例中,内存管理电路702会判断是否从主机系统11接收到预先定义的一操作指令(以下亦称为特定操作指令)。在一范例实施例中,此特定操作指令为转存清除(flush)指令。然而,在另一范例实施例中,其他类型的操作指令也可以作为此特定操作指令。若有接收到此特定操作指令,内存管理电路702会指示错误检查与校正电路708执行上述编码第一数据的操作。换言之,在一范例实施例中,上述编码第一数据的操作是反应于此特定操作指令而执行的。若没有接收到此特定操作指令,则在程序化储存有上述第 一数据的第一类实体单元所对应的第二类实体单元之前,上述编码第一数据的操作可以不被执行。例如,在图9的另一范例实施例中,若没有接收到此特定操作指令,则在程序化第一类实体单元610(0)~610(11)之后,不需要编码第一数据,第二数据中的部分数据可以直接被储存至第二类实体单元620(0)~620(11)中的任一个。在本范例实施例中,上述第一数据可以是用户数据或系统数据,并且上述第二数据也可以是用户数据或系统数据。其中,用户数据是指来自主机系统11的写入指令所指示需储存的数据,而系统数据是指可复写式非易失性内存模块406的管理数据(例如逻辑-实体映像表格等各种管理表格)。在某些情况下(例如主机系统11即将关机、重开机或清理内存时),主机系统11会下达转存清除指令给内存储存装置10,以指示内存储存装置10实时地储存重要数据。一般来说,在接收到转存清除指令之后,若某一第一类实体单元所对应的第二类实体单元没有储存数据,则填充数据(dummydata)会被写入至此空的第二类实体单元中,以保护相对应的第一类实体单元不容易因突然地断电等原因而流失数据。其中,填充数据是指没有具体意义的数据(例如一连串的位0)或者无效数据。但是,根据上述范例实施例,在将储存在第一类实体单元中的数据编码之后,任意的数据都可以被继续写入至相对应的第二类实体单元中。往后,即便发生程序化失败,也可以在任意时间点利用事先产生的编码数据来更正第一类实体单元中的错误。换言之,在一范例实施例中,即便接收到转存清除指令,填充数据也可以不被写入至需要保护的第一类实体单元所对应的第二类实体单元中,从而延长内存储存装置的使用寿命。在一范例实施例中,藉由编码第一数据而产生的编码数据是用以更正一默认数目的错误位。在此,默认数目是指编码数据最多可以更正几个错误位。若编码数据的错误更正能力越强,则预设数目越大。若编码数据的错误更正能力越弱,则预设数目越小。例如,此默认数目可表示为N个实体单元的容量。在本范例实施例中,每一个实体单元用以储存256个字节(bytes)的数据,故此默认数目可表示为256×N个字节。然而,在另一范例实施例中,默认数目也可以用其他方式来表示。在一范例实施例中,当欲程序化对应于第一类实体单元610(0)~610(11)的第二类实体单元时,一个程序化程序中可以被平行地存取的信道(或内存平面)的总数会被限制为小于一信道总数。此信道总数与上述编码数据的错误更正能力有关。例如,此信道总数可以是正相关于上述预设数目。也就是说,若对应于已储存于第一类实体单元中的数据(即第一数据)的编码数据的错误更正能力越强,则可设定信道总数为一个较大的值;若对应于第一数据的编码数据的错误更正能力越弱,则可设定信道总数为一个较小的值。藉由限制在程序化第二类实体单元时可以并行存取的信道(或内存平面)的总数,可减少在同一个程序化程序中可能受影响的第一类实体单元的数目并确保第一类实体单元中后续可能需要被更正的位的总数不大于上述预设数目。图10是根据本发明的一范例实施例所显示的程序化第二类实体单元的示意图。请同时参照图9与图10,假设编码数据902最多可用于更正512个字节(即,两个实体单元的总容量)的错误位,则内存管理电路702会限制每一次程序化程序中最多只能经由两个信道来平行地程序化两个内存平面中的两个第二类实体单元。例如,内存管理电路702会指示可复写式非易失性内存模块406执行程序化程序1001以储存第二数据的一部分数据。在程序化程序1001中,经由信道602(1)与602(2),第二类实体单元620(0)与620(3)会被平行地程序 化。特别是,程序化程序1001中所平行地使用到的信道(例如信道602(1)与602(2))的数目会小于信道602(1)~602(4)中多个可用信道的总数。在此,每一个可用信道是指当接收到第二数据(或欲储存第二数据)时,信道602(1)~602(4)中预设可以被平行地用来写入第二数据的至少一部分数据的信道。例如,当接收到第二数据时,若信道602(1)~602(4)皆处于闲置(idle)状态,则信道602(1)~602(4)中的每一个皆可视为是一个可用信道。或者,当接收到第二数据时,若信道602(1)~602(3)皆处于闲置状态而信道602(4)处于忙碌(busy)状态(或内存储存装置10的效能不足以支持同时经由4个信道来存取数据),则信道602(1)~602(3)中的每一个皆可视为是一个可用信道。换言之,在程序化程序1001中,即使有更多的信道可以被使用来对更多的内存平面平行地执行数据写入操作,但是仍然只有信道602(1)与602(2)被平行地使用。在完成程序化程序1001之后,内存管理电路702会指示可复写式非易失性内存模块406接续执行程序化程序1002以储存第二数据的另一部分数据。在程序化程序1002中,经由信道602(3)与602(4),第二类实体单元620(6)与620(9)会被平行地程序化。特别是,程序化程序1002中所平行地使用到的信道(例如信道602(3)与602(4))的数目也会小于当接收到第二数据时,信道602(1)~602(4)中的可用信道的总数。然后,若还有尚未储存的第二数据中的部分数据,则至少一个程序化程序可被接续执行,其中每一个程序化程序可平行地程序化两个内存平面中的两个第二类实体单元(例如第二类实体单元620(1)与620(4)),直到写满第二类实体单元620(0)~620(11)为止。值得一提的是,在图10的一范例实施例中,即便已经接收到第二数据的所述另一部分数据,内存管理电路702仍然只会先执行程序化程序1001。待完成程序化程序1001之后,用以储存第二数据的所述另一部分数据的程序化程序1002才会被执行。在图10的另一范例实施例中,若在上述对于第二类实体单元的任一程序化程序中发生断电等因素而导致对于任两个第二类实体单元的程序化程序失败或异常中止,则相对应的第一类实体单元中的数据可能会出现大量错误。在重新上电之后或任意时间点,错误检查与校正电路708会基于事先产生的编码数据来对储存于第一类实体单元中的数据执行译码程序。在此译码操作中,第一类实体单元所储存的数据会被读取出来并且其中的错误可被更正。例如,针对程序化程序1001的失败或异常终止,基于译码数据902的译码程序可被执行。藉此,在第一类实体单元610(0)与610(3)中产生的错误有很大的机率可被完全更正。或者,针对程序化程序1002的失败或异常终止,基于译码数据902的另一译码程序可被执行。藉此,在第一类实体单元610(6)与610(9)中产生的错误也有很大的机率可被完全更正。在一范例实施例中,若为了储存第二数据而平行地使用所有的可用信道来执行程序化程序,虽然可以较为有效率地执行程序化程序,但也可能会使得过多的第一类实体单元在同一个程序化程序中受到影响并且受到影响而引起的错误位可能无法被完全更正。例如,在图9与图10的另一范例实施例中,若平行地执行程序化程序1001与1002且在程序化程序1001与1002的过程中发生断电,则可能导致第一类实体单元610(0)、610(3)、610(6)及610(9)所储存的数据都发生大量错误。在此情况下,由于需要更正的位的总数超过上述预设数目(即两个实体单元的总容量),故第一类实体单元610(0)、610(3)、610(6)及610(9)所储存的数据可能都会被视为无效或损毁。因此,在图10的范例实施例中,在编码储存于第一类实体单元中的第一数据之后,藉由依序使用部分的可用信道来执行对于相对应的第二类实体单元的程序化程序(例如依序执行程序化程序1001与1002),可进一步增加对于第一类实体单元中数据的保护 能力。除了上述范例实施例中提及的减少一次的程序化程序中平行地被使用的信道/内存平面的总数之外,在另一范例实施例中,亦可以藉由增强编码数据的错误更正能力来达到类似效果。图11与图12是根据本发明的一范例实施例所显示的数据程序化程序的示意图。请参照图11,在本范例实施例中,内存管理电路702会程序化第一类实体单元610(0)~610(11)以储存第一数据,并且错误检查与校正电路708会执行包含多框架编码的编码程序来编码此第一数据以产生相对应的编码数据。相对于图9的范例实施例,在本范例实施例中,经由编码第一数据而产生的编码数据的错误更正能力较强。此外,本范例实施例中编码第一数据的操作可以是反应于上述特定操作指令而执行或在任意时间点执行。在本范例实施例中,错误检查与校正电路708会编码储存于第一类实体单元610(0)~610(5)中的数据(即,第一数据中的一部分数据)以产生编码数据1102(0)并且编码储存于第一类实体单元610(6)~610(11)中的数据(即第一数据中的另一部分数据)以产生编码数据1102(1)。在本范例实施例中,编码数据1102(0)与1102(1)彼此独立。在此,编码数据1102(0)与1102(1)彼此独立是指编码数据1102(0)与1102(1)可以分别用来对不同的数据进行译码。例如,编码数据1102(0)可用来译码储存于第一类实体单元610(0)~610(5)中的数据,而编码数据1102(1)则可用来译码储存于第一类实体单元610(6)~610(11)中的数据。在本范例实施例中,编码数据1102(0)与1102(1)可分别用以更正上述预设数目(例如512个字节)的错误位。换言之,编码数据1102(0)与1102(1)合计可用以更正最多1024个字节的错误位。然而,在另一范例实施例中,编码数据1102(0)与1102(1)也可分别用以更正更多或更少的错误位。请参照图12,在程序化第一类实体单元610(0)~610(11)之后,内存管理电路702会指示可复写式非易失性内存模块406执行程序化程序1201以储存第二数据的至少一部分数据。特别是,相对于图10的范例实施例,在程序化程序1201中,更多的可用信道可以被平行地使用来程序化更多的第二类实体单元。例如,当欲储存第二数据时,信道602(1)~602(4)皆处于闲置状态,则经由信道602(1)~602(4),第二类实体单元620(0)、620(3)、620(6)及620(9)可被平行地程序化。在一范例实施例中,若执行程序化程序1201的操作失败或异常中止,错误检查与校正电路708会基于编码数据1102(0)与1102(1)来分别对储存于第一类实体单元610(0)~610(5)与610(6)~610(11)中的数据执行相对应的译码程序。例如,基于编码数据1102(0),对应于程序化程序1201中程序化第二类实体单元620(0)与620(3)而在第一类实体单元610(0)~610(5)中产生的错误可被更正;而基于编码数据1102(1),对应于程序化程序1201中程序化第二类实体单元620(6)与620(9)而在第一类实体单元610(6)~610(9)中产生的错误也可被更正。更具体而言,若程序化程序1201失败或异常中止(例如,在程序化程序1201中发生断电),则有很大机率会在第一类实体单元610(0)、610(3)、610(6)及610(9)中同步出现大量错误。在内存储存装置10重新上电或开机之后,即便被储存于第一类实体单元610(0)、610(3)、610(6)及610(9)中的第一数据皆已事先被执行单框架编码(即以一个实体单元为基本单位执行的编码程序),但此些大量出现的错误仍无法藉由相对应的单框架译码程序(即以一个实体单元中的数据为基本单位执行的译码程序)而被完全更正。然而,在图12的范例实施例中,编码数据1102(0)与编码数据1102(1)分别可以用来更正512个字节的错误位(即两个实体单元的数据量)。因此,藉由编码数据1102(0),第一类实体单元610(0)与610(3)中的错误有很大的机率可以被完全更 正;藉由编码数据1102(1),第一类实体单元610(6)与610(9)中的错误也有很大的机率可以被完全更正。换言之,相对于图9与图10的范例实施例,在本范例实施例中,用于保护储存于第一类实体单元中的第一数据的编码数据的错误更正能力较强,并且要使用更多的内存空间来储存此编码数据;但是,由于一个程序化程序中使用的信道/内存平面较多,对于数据的写入效率或写入速度则可被提升。在一范例实施例中,亦可以根据是否接收到上述特定操作指令(例如转存清除指令)来决定是否要提升编码数据的错误更正能力。例如,在一范例实施例中,将图9的编码数据902的错误更正能力称为第一错误更正能力并且将图11的编码数据1102(0)与1102(1)的错误更正能力合并称为第二错误更正能力。例如,第一错误更正能力是对应于最多更正一第一默认数目的错误位,而第二错误更正能力是对应于最多更正一第二默认数目的错误位,且第二默认数目多于第一预设数目。在此范例实施例中,当接收到所述特定操作指令时,可根据此特定操作指令来编码上述第一数据以产生具有第二错误更正能力的编码数据;反之,若没有接收到所述特定操作指令,则可编码第一数据并产生具有相对较差的第一错误更正能力的编码数据。在一范例实施例中,亦可以合并使用上述范例实施例中提及的减少程序化程序中平行地使用的信道/内存平面的总数以及增强编码数据的错误更正能力的操作。图13是根据本发明的另一范例实施例所显示的数据程序化程序的示意图。请参照图13,在本范例实施例中,是以具有8个内存平面601(1)~601(8)的可复写式非易失性内存模块406为例。在将第一数据储存至此些内存平面601(1)~601(8)中的部分第一类实体单元(以网点表示于图13中)之后,可编码第一数据中储存于内存平面601(1)~601(4)的部分数据为编码数据1310(0)并且编码第一数据中储存于内存平面601(5)~601(8)的另一部分数据为编码数据1310(1)。在本范例实施例中,编码数据1310(0)与编码数据1310(1)分别用以更正上述预设数目(例如,512个字节)的错误位。然而,在另一范例实施例中,编码数据1310(0)与编码数据1310(1)皆可以用以更正更多或更少的错误位。然后,当欲储存第二数据时,假设信道602(1)~602(8)皆为可用信道,则程序化程序1301(0)与1301(1)会先被平行地执行。例如,在程序化程序1301(0)与1301(1)中,第二类实体单元620(0)、620(3)、620(12)及620(15)会经由信道602(1)、602(2)、602(5)及602(6)而平行地被程序化以储存第二数据的一部分数据。在执行程序化程序1301(0)与1301(1)之后,程序化程序1302(0)与1302(1)会被平行地执行。例如,在程序化程序1302(0)与1302(1)中,第二类实体单元620(6)、620(9)、620(18)及620(21)会经由信道602(3)、602(4)、602(7)及602(8)而平行地被程序化以储存第二数据的另一部分数据。在一范例实施例中,若程序化程序1301(0)与1301(1)失败或异常中止(例如程序化过程中发生断电),则编码数据1310(0)会(例如在重新上电之后)被用来对第一数据中储存于内存平面601(1)~601(4)的部分数据进行译码以更正因程序化第二类实体单元620(0)与620(3)而在内存平面601(1)与601(2)中产生的错误;而编码数据1310(1)则会被用来对第一数据中储存于内存平面601(5)~601(8)的部分数据进行译码以更正因程序化第二类实体单元620(12)与620(15)而在内存平面601(5)与601(6)中产生的错误。或者,若程序化程序1302(0)与1302(1)发生错误(例如程序化过程中发生断电),则编码数据1310(0)会被用来对第一数据中储存于内存平面601(1)~601(4)的部分数据进行译码以更正因程序化第二类实体单元620(6)与620(9)而在内存 平面601(3)与601(4)中产生的错误;而编码数据1310(1)则会被用来对第一数据中储存于内存平面601(5)~601(8)的部分数据进行译码以更正因程序化第二类实体单元620(18)与620(21)而在内存平面601(7)与601(8)中产生的错误。更具体而言,在程序化程序1301(0)与1301(1)失败或异常中止的一范例实施例中,编码数据1310(0)可用来更正因程序化程序1301(0)与1301(1)失败或异常中止而在对应于第二类实体单元620(0)与620(3)的两个第一类实体单元中产生的大量错误,而编码数据1310(1)则可用来更正因程序化程序1301(0)与1301(1)失败或异常中止而在对应于第二类实体单元620(12)与620(15)的两个第一类实体单元中产生的大量错误。而在程序化程序1302(0)与1302(1)失败或异常中止的一范例实施例中,编码数据1310(0)可用来更正因程序化程序1302(0)与1302(1)失败或异常中止而在对应于第二类实体单元620(6)与620(9)的两个第一类实体单元中产生的大量错误,而编码数据1310(1)则可用来更正因程序化程序1302(0)与1302(1)失败或异常中止而在对应于第二类实体单元620(18)与620(21)的两个第一类实体单元中产生的大量错误。图14是根据本发明的一范例实施例所显示的数据程序化方法的流程图。请参照图14,在步骤S1401中,程序化可复写式非易失性内存模块中的多个第一类实体单元中的多个实体单元以储存第一数据。在步骤S1402中,编码第一数据以产生编码数据并且接收第二数据。在步骤S1403中,程序化可复写式非易失性内存模块中对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据。图15是根据本发明的另一范例实施例所显示的数据程序化方法的流程图。请参照图15,在步骤S1501中,程序化多个第一类实体单元中的多个实体单元以储存第一数据。在步骤S1502中,编码第一数据以产生编码数据并且接收第二数据。在步骤S1503中,执行第一程序化程序以储存第二数据的一第一部分数据。其中,第一程序化程序包括经由至少一第一信道来程序化第一部分的第二类实体单元,其中所述第一部分的第二类实体单元对应于储存有第一数据的所述第一类实体单元中一第一部分的实体单元。其中,所述第一信道的第一数目小于多个可用信道的总数。在步骤S1504中,执行第二程序化程序以储存第二数据的一第二部分数据。其中,第二程序化程序包括经由至少一第二信道来程序化第二部分的第二类实体单元,其中所述第二部分的第二类实体单元对应于储存有第一数据的所述第一类实体单元中一第二部分的实体单元。其中,所述第二信道的第二数目也小于所述可用信道的总数。值得一提的是,在本范例实施例中,步骤S1504的操作会在步骤S1503的操作被完成之后才会被执行。图16是根据本发明的另一范例实施例所显示的数据程序化方法的流程图。请参照图16,在步骤S1601中,程序化多个第一类实体单元中的多个实体单元以储存第一数据。在步骤S1602中,编码第一数据中被储存于第一类实体单元中对应于至少一第一信道的多个实体单元中的第一部分数据以产生第一编码数据。在步骤S1603中,编码第一数据中被储存于第一类实体单元中对应于至少一第二信道的多个实体单元中的第二部分数据以产生第二编码数据。其中,第一编码数据与第二编码数据彼此独立。在步骤S1604中,程序化对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据。图17是根据本发明的另一范例实施例所显示的数据程序化方法的流程图。请参照图17,在步骤S1701中,程序化多个第一类实体单元以储存第一数据。在步骤S1702 中,判断是否接收到特定操作指令。例如,此特定操作指令可以是转存清除指令。此外,第二数据也会被接收。若有接收到此特定操作指令,在步骤S1703中,编码第一数据以产生编码数据。在步骤S1704中,程序化对应于所述第一类实体单元的多个第二类实体单元中的至少一实体单元以储存第二数据中的至少一部分数据。若未接收到此特定操作指令,则在接收到第二数据之后,不编码第一数据而直接执行步骤S1704。然而,图14至图17中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图14至图17中各步骤可以作为多个程序代码或是电路,本发明不加以限制。此外,图14至图17的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,在一范例实施例中,被储存至对应于多个信道的第一类实体单元的第一数据会被编码。例如,编码第一数据的操作可以是反应于某一特定操作指令而执行。在另一范例实施例中,在储存第一数据之后,若需使用相对应的第二类实体单元来储存数据,则可藉由调整程序化程序中可平行使用的信道的总数和/或调整对应于第一数据的编码数据的错误更正能力来维持多信道的程序化程序中属于成对实体单元的数据的正确性。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1