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

文档序号:24154229发布日期:2021-03-05 10:22阅读:89来源:国知局
[0001]本发明涉及一种存储器控制技术,尤其涉及一种存储器控制方法、存储器存储装置及存储器控制电路单元。
背景技术
::[0002]数字相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。[0003]一般来说,为了提升存储器存储装置的数据读取效率,在执行连续读取时,可通过预读取操作来预测下一个被存取的逻辑单元并预先读取此逻辑单元所存储的数据。但是,在存放读取指令的指令伫列的深度较深(即待处理的指令较多)和/或待处理的数据量较大的情况下,使用预读取操作来预先读取下一笔数据反而有可能降低存储器存储装置的数据读取效率。技术实现要素:[0004]本发明提供一种存储器控制方法、存储器存储装置及存储器控制电路单元,可在适当的时机启动预读取操作,以有效提升存储器存储装置的数据读取效率。[0005]本发明的范例实施例提供一种存储器控制方法,其用于可复写式非易失性存储器模块。所述可复写式非易失性存储器模块包括多个实体单元。所述存储器控制方法包括:从主机系统接收至少一第一读取指令;以及根据所述至少一第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作。所述预读取操作用以预读取存储于至少一第一逻辑单元的数据,且所述至少一第一逻辑单元映射至所述多个实体单元的至少其中之一。[0006]在本发明的一范例实施例中,根据所述至少一第一读取指令所指示的所述待读取数据的所述总数据量决定是否启动所述预读取操作的步骤包括:将所述总数据量与临界值进行比较;以及根据比较结果来决定是否启动所述预读取操作。[0007]在本发明的一范例实施例中,所述的存储器控制方法还包括:根据读取缓冲区的容量决定所述临界值,其中所述读取缓冲区用以暂存从所述可复写式非易失性存储器模块读取的数据。[0008]在本发明的一范例实施例中,根据所述比较结果来决定是否启动所述预读取操作的步骤包括:若所述总数据量大于所述临界值,不启动所述预读取操作;以及若所述总数据量不大于所述临界值,启动所述预读取操作。[0009]在本发明的一范例实施例中,所述的存储器控制方法还包括:获得指令伫列的深度信息;以及在判定所述深度信息符合预设条件后,启动所述预读取操作。[0010]在本发明的一范例实施例中,所述的存储器控制方法还包括:判断多个第二读取指令是否指示连续读取操作,并且根据所述至少一第一读取指令所指示的所述待读取数据的所述总数据量决定是否启动所述预读取操作的步骤仅在判定所述多个第二读取指令是指示所述连续读取操作之后执行。[0011]在本发明的一范例实施例中,判断所述多个第二读取指令是否指示所述连续读取操作的步骤包括:若所述多个第二读取指令是用以读取连续的多个第二逻辑单元,判定所述多个第二读取指令是指示所述连续读取操作。[0012]本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述可复写式非易失性存储器模块包括多个实体单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以从所述主机系统接收至少一第一读取指令。所述存储器控制电路单元还用以根据所述至少一第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作。所述预读取操作用以预读取存储于至少一第一逻辑单元的数据,且所述至少一第一逻辑单元映射至所述多个实体单元的至少其中之一。[0013]在本发明的一范例实施例中,所述存储器控制电路单元还用以根据读取缓冲区的容量决定所述临界值,其中所述读取缓冲区用以暂存从所述可复写式非易失性存储器模块读取的数据。[0014]在本发明的一范例实施例中,所述存储器控制电路单元还用以获得指令伫列的深度信息,并且所述存储器控制电路单元还用以在判定所述深度信息符合一预设条件后,启动所述预读取操作。[0015]在本发明的一范例实施例中,所述存储器控制电路单元还用以判断多个第二读取指令是否指示连续读取操作,并且其中根据所述至少一第一读取指令所指示的所述待读取数据的所述总数据量决定是否启动所述预读取操作的操作仅在判定所述多个第二读取指令是指示所述连续读取操作之后执行。[0016]本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块。所述可复写式非易失性存储器模块包括多个实体单元。所述存储器控制电路单元包括主机接口、存储器接口及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口与所述存储器接口。所述存储器管理电路用以从所述主机系统接收至少第一读取指令。所述存储器管理电路还用以根据所述至少一第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作。所述预读取操作用以预读取存储于至少一第一逻辑单元的数据,且所述至少一第一逻辑单元映射至所述多个实体单元的至少其中之一。[0017]在本发明的一范例实施例中,根据所述至少一第一读取指令所指示的所述待读取数据的所述总数据量决定是否启动所述预读取操作的操作包括:将所述总数据量与临界值进行比较;以及根据比较结果来决定是否启动所述预读取操作。[0018]在本发明的一范例实施例中,所述存储器管理电路还用以根据读取缓冲区的容量决定所述临界值,其中所述读取缓冲区用以暂存从所述可复写式非易失性存储器模块读取的数据。[0019]在本发明的一范例实施例中,根据所述比较结果来决定是否启动所述预读取操作的操作包括:若所述总数据量大于所述临界值,不启动所述预读取操作;以及若所述总数据量不大于所述临界值,启动所述预读取操作。[0020]在本发明的一范例实施例中,所述存储器管理电路还用以获得指令伫列的深度信息。所述存储器管理电路还用以在判定所述深度信息符合预设条件后,启动所述预读取操作。[0021]在本发明的一范例实施例中,所述存储器管理电路还用以判断多个第二读取指令是否指示连续读取操作,并且根据所述至少一第一读取指令所指示的所述待读取数据的所述总数据量决定是否启动所述预读取操作的操作仅在判定所述多个第二读取指令是指示所述连续读取操作之后执行。[0022]在本发明的一范例实施例中,判断所述多个第二读取指令是否指示所述连续读取操作的操作包括:若所述多个第二读取指令是用以读取连续的多个第二逻辑单元,判定所述多个第二读取指令是指示所述连续读取操作。[0023]本发明的范例实施例另提供一种存储器控制方法,其用于可复写式非易失性存储器模块。所述可复写式非易失性存储器模块包括多个实体单元。所述存储器控制方法包括:从主机系统接收至少一第一读取指令;以及根据指令伫列的深度信息与所述至少一第一读取指令的数据长度信息决定是否启动预读取操作。所述预读取操作用以预读取存储于至少一第一逻辑单元的数据,且所述至少一第一逻辑单元映射至所述多个实体单元的至少其中之一。[0024]在本发明的一范例实施例中,根据所述指令伫列的所述深度信息与所述至少一第一读取指令的所述数据长度信息决定是否启动所述预读取操作的步骤包括:根据所述深度信息与所述数据长度信息决定逻辑值;将所述逻辑值与临界值进行比较;以及根据比较结果来决定是否启动所述预读取操作。[0025]基于上述,在从主机系统接收至少一第一读取指令后,预读取操作可根据此至少一第一读取指令所指示的待读取数据的总数据量来决定是否启动。藉此,可有效提升存储器存储装置的数据读取效率。[0026]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明[0027]图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。[0028]图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图。[0029]图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。[0030]图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。[0031]图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。[0032]图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。[0033]图7是根据本发明的一范例实施例所示出的管理缓冲存储器的示意图。[0034]图8是根据本发明的一范例实施例所示出的指令伫列的示意图。[0035]图9是根据本发明的一范例实施例所示出的存储器控制方法的流程图。[0036]图10是根据本发明的一范例实施例所示出的存储器控制方法的流程图。[0037]图11是根据本发明的一范例实施例所示出的存储器控制方法的流程图。[0038]图12是根据本发明的一范例实施例所示出的存储器控制方法的流程图。[0039]图13是根据本发明的一范例实施例所示出的存储器控制方法的流程图。[0040]附图标号说明:[0041]10、30:存储器存储装置[0042]11、31:主机系统[0043]110:系统总线[0044]111:处理器[0045]112:随机存取存储器[0046]113:只读存储器[0047]114:数据传输接口[0048]12:输入/输出(i/o)装置[0049]20:主机板[0050]201:随身盘[0051]202:存储卡[0052]203:固态硬盘[0053]204:无线存储器存储装置[0054]205:全球定位系统模块[0055]206:网络接口卡[0056]207:无线传输装置[0057]208:键盘[0058]209:屏幕[0059]210:喇叭[0060]32:sd卡[0061]33:cf卡[0062]34:嵌入式存储装置[0063]341:嵌入式多媒体卡[0064]342:嵌入式多芯片封装存储装置[0065]402:连接接口单元[0066]404:存储器控制电路单元[0067]406:可复写式非易失性存储器模块[0068]502:存储器管理电路[0069]504:主机接口[0070]506:存储器接口[0071]508:错误检查与校正电路[0072]510:缓冲存储器[0073]512:电源管理电路[0074]601:存储区[0075]602:替换区[0076]610(0)~610(b):实体单元[0077]612(0)~612(c):逻辑单元[0078]710:指令伫列[0079]720:读取缓冲区[0080]qd:伫列深度[0081]s901:步骤(从主机系统接收第一读取指令)[0082]s902:步骤(根据第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作)[0083]s1001:步骤(获得第一读取指令所指示的待读取数据的总数据量)[0084]s1002:步骤(总数据量是否大于临界值)[0085]s1003:步骤(启动预读取操作)[0086]s1004:步骤(不启动预读取操作)[0087]s1101:步骤(从主机系统接收第一读取指令)[0088]s1102:步骤(根据指令伫列的深度信息与第一读取指令的数据长度信息决定是否启动预读取操作)[0089]s1201:步骤(根据指令伫列的深度信息与第一读取指令的数据长度信息决定一逻辑值)[0090]s1202:步骤(所述逻辑值是否大于临界值)[0091]s1203:步骤(启动预读取操作)[0092]s1204:步骤(不启动预读取操作)[0093]s1301:步骤(从主机系统接收多个第二读取指令)[0094]s1302:步骤(所述多个第二读取指令是否指示一连续读取操作)[0095]s1303:步骤(根据指令伫列中的第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作)具体实施方式[0096]一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(亦称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。[0097]图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图。[0098]请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至系统总线(systembus)110。[0099]在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与i/o装置12连接。例如,主机系统11可经由系统总线110将输出信号传送至i/o装置12或从i/o装置12接收输入信号。[0100]在本范例实施例中,处理器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。[0101]在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的安全数字(securedigital,sd)卡32、小型快闪(compactflash,cf)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmultimediacard,emmc)341和/或嵌入式多芯片封装(embeddedmultichippackage,emcp)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。[0102]图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。[0103]连接接口单元402用以将存储器存储装置10连接至主机系统11。存储器存储装置10可通过连接接口单元402与主机系统11通讯。在本范例实施例中,连接接口单元402是相容于串行高级技术附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并行高级技术附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、存储棒(memorystick,ms)接口标准、mcp接口标准、mmc接口标准、emmc接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。[0104]存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。[0105]可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(quadlevelcell,qlc)nand型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。[0106]可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下亦称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作亦称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。[0107]在本范例实施例中,可复写式非易失性存储器模块406的存储单元可构成多个实体程序化单元,并且此些实体程序化单元可构成多个实体抹除单元。具体来说,同一条字线上的存储单元可组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元可至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效位(leastsignificantbit,lsb)是属于下实体程序化单元,并且一存储单元的最高有效位(mostsignificantbit,msb)是属于上实体程序化单元。一般来说,在mlcnand型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。[0108]在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元可为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元可包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,b)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。[0109]图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。[0110]存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。[0111]在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。[0112]在另一范例实施例中,存储器管理电路502的控制指令亦可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。[0113]此外,在另一范例实施例中,存储器管理电路502的控制指令亦可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或存储单元群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。[0114]主机接口504是连接至存储器管理电路502。存储器管理电路502可通过主机接口504与主机系统11通讯。主机接口504可用以接收与识别主机系统11所传送的指令与数据。例如,主机系统11所传送的指令与数据可通过主机接口504来传送至存储器管理电路502。此外,存储器管理电路502可通过主机接口504将数据传送至主机系统11。在本范例实施例中,主机接口504是相容于sata标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是相容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。[0115]存储器接口506是连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。[0116]在一范例实施例中,存储器控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。[0117]缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。[0118]在一范例实施例中,图4的可复写式非易失性存储器模块406亦称为快闪(flash)存储器模块,存储器控制电路单元404亦称为用于控制快闪存储器模块的快闪存储器控制器,和/或图5的存储器管理电路502亦称为快闪存储器管理电路。[0119]图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。请参照图5与图6,存储器管理电路502可将可复写式非易失性存储器模块406的实体单元610(0)~610(b)逻辑地分组至存储区601与替换区602。存储区601中的实体单元610(0)~610(a)是用以存储数据,而替换区602中的实体单元610(a+1)~610(b)则是用以替换存储区601中损坏的实体单元。例如,若从某一个实体单元中读取的数据所包含的错误过多而无法被更正时,此实体单元会被视为是损坏的实体单元。须注意的是,若替换区602中没有可用的实体单元,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(writeprotect)状态,而无法再写入数据。[0120]在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元亦可以是指一个实体地址、一个实体程序化单元或由多个连续或不连续的实体地址组成。存储器管理电路502会配置逻辑单元612(0)~612(c)以映射存储区601中的实体单元610(0)~610(a)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(c)中的每一者可被映射至一或多个实体单元。[0121]存储器管理电路502可将逻辑单元与实体单元之间的映射关系(亦称为逻辑-实体地址映射关系)记录于至少一逻辑-实体地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体地址映射表来执行对于存储器存储装置10的数据存取操作。[0122]在一范例实施例中,存储器管理电路502可从图1的主机系统11接收至少一个读取指令(亦称为第一读取指令)。第一读取指令和/或第一读取指令所指示的待读取数据可存储于缓冲存储器510中的一或多个指令伫列。存储器管理电路502可根据第一读取指令所指示的待读取数据的总数据量决定是否启动一个预读取操作。须注意的是,预读取操作是用以预读取存储于至少一逻辑单元(亦称为第一逻辑单元)的数据,且第一逻辑单元映射至可复写式非易失性存储器模块406中的至少一个实体单元。[0123]在一般的读取操作中,存储器管理电路502是指示可复写式非易失性存储器模块406从某一个读取指令所指示的逻辑单元所映射的实体单元读取数据。但是,预读取操作则是通过猜测下一个可能被读取的逻辑单元(或实体单元)来预先从所猜测的逻辑单元(或实体单元)读取数据。也就是说,预读取操作所读取的数据所属的逻辑单元并不是由某一个已经被处理的读取指令所指示。[0124]若通过预读取操作所预读取的数据刚好是下一个读取指令所指示读取的数据,则此预读取的数据可被视为命中数据。命中数据可被直接处理(例如传送给图1的主机系统11),从而有效提高对于可复写式非易失性存储器模块406的数据读取效率。此外,若预读取操作所预读取的数据并非是下一个读取指令所读取的数据,则此预读取的数据可被视为误数据并且被舍弃。[0125]在一范例实施例中,存储器管理电路502可将上述总数据量与一个临界值进行比较并根据比较结果决定是否启动预读取操作。例如,存储器管理电路502可判断上述总数据量是否大于临界值。若上述总数据量大于临界值,存储器管理电路502可不启动预读取操作。也就是说,若缓冲存储器510中待处理的第一读取指令所指示的待读取数据的总数据量大于临界值,则存储器管理电路502可不启动预读取操作。[0126]或者,若上述总数据量不大于(例如等于或小于)临界值,存储器管理电路502可启动预读取操作。也就是说,若缓冲存储器510中待处理的第一读取指令所指示的待读取数据的总数据量不大于临界值,则存储器管理电路502可启动预读取操作。在启动预读取操作后,存储器管理电路502可指示可复写式非易失性存储器模块406预先从一或多个所猜测的逻辑单元所映射的实体单元读取数据。[0127]图7是根据本发明的一范例实施例所示出的管理缓冲存储器的示意图。请参照图7,在一范例实施例中,存储器管理电路502可在缓冲存储器510中设置指令伫列710与读取缓冲区720。指令伫列710用以存放第一读取指令和/或第一读取指令所指示的待读取数据。读取缓冲区720用以存放从可复写式非易失性存储器模块406读取的数据。例如,存储器管理电路502可根据指令伫列710中的至少一读取指令从可复写式非易失性存储器模块406读取数据并将所读取的数据存放于读取缓冲区720。读取缓冲区720中可存储根据读取指令而正常读取的数据和/或通过预读取操作而预先读取的数据。读取缓冲区720中的命中数据可被传送给图1的主机系统11。读取缓冲区720中的误数据可被舍弃。[0128]在一范例实施例中,存储器管理电路502可根据指令伫列710中待执行的第一读取指令获得待读取数据的总数据量。例如,假设指令伫列710中待执行的第一读取指令的总数为n,且每一个第一读取指令是指示读取4k字节(bytes)的数据,则存储器管理电路502可获得待读取数据的总数据量为4k×n字节。或者,若每一个第一读取指令是指示读取8k字节的数据,则存储器管理电路502可获得待读取数据的总数据量为8k×n字节,依此类推。[0129]在一范例实施例中,一个第一读取指令所指示读取的数据的数据量亦称为此第一读取指令的数据长度。存储器管理电路502可根据指令伫列710的深度信息与第一读取指令的数据长度信息来获得所述待读取数据的总数据量。指令伫列710的深度信息可反映当前指令伫列710的伫列深度。第一读取指令的数据长度信息可反映第一读取指令所指示读取的数据的数据量。例如,假设指令伫列710的伫列深度为n,表示指令伫列710中待执行的第一读取指令的总数为n。若每一个第一读取指令是指示读取4k字节的数据,则存储器管理电路502可获得待读取数据的总数据量为4k×n字节。[0130]在一范例实施例中,存储器管理电路502可根据指令伫列710的深度信息与第一读取指令的数据长度信息来获得一个逻辑值。此逻辑值反映待读取数据的总数据量。例如,存储器管理电路502可将指令伫列710的伫列深度(例如n)乘上第一读取指令的数据长度(例如4k字节)以获得此逻辑值(例如12k字节、64k字节、512k字节或1024k字节)。[0131]图8是根据本发明的一范例实施例所示出的指令伫列的示意图。请参照图8,若当前指令伫列710中存放有读取指令cmd(1)~cmd(n),则指令伫列710的伫列深度qd可被决定为n。在不同时间点,若数值n改变,则伫列深度qd亦随之改变。[0132]在一范例实施例中,读取指令cmd(1)的数据长度可能不同于cmd(n)的数据长度。例如,读取指令cmd(1)的数据长度为4k字节,而读取指令cmd(n)的数据长度为8k字节。在一范例实施例中,存储器管理电路502可根据读取指令cmd(1)~cmd(n)中最大的数据长度(例如8k字节)来获得上述逻辑值(或待读取数据的总数据量)。例如,存储器管理电路502可将伫列深度qd(例如n)乘上8k字节以获得上述逻辑值(或待读取数据的总数据量)。[0133]在一范例实施例中,存储器管理电路502可将上述逻辑值与临界值进行比较并根据比较结果来决定是否启动预读取操作。例如,若上述逻辑值大于临界值,存储器管理电路502可不启动预读取操作。或者,若上述逻辑值不大于(例如等于或小于)临界值,存储器管理电路502可启动预读取操作。[0134]在一范例实施例中,存储器管理电路502可根据图7的读取缓冲区720的容量决定上述临界值。换言之,此临界值可反映读取缓冲区720的容量。例如,存储器管理电路502可直接将读取缓冲区720的容量设定为上述临界值。或者,存储器管理电路502可对读取缓冲区720的容量执行逻辑运算后获得上述临界值。[0135]在一范例实施例中,存储器管理电路502可判断指令伫列710中待读取数据的总数据量是否大于读取缓冲区720的容量。若此总数据量大于读取缓冲区720的容量,存储器管理电路502可不启动预读取操作,以避免因预先读取的数据太多而降低数据读取效率。或者,若此总数据量不大于读取缓冲区720的容量,则存储器管理电路502可启动预读取操作,以提升数据读取效率。[0136]在一范例实施例中,在获得指令伫列710的深度信息后,存储器管理电路502亦可判断此深度信息是否符合一个预设条件。若此深度信息符合此预设条件,存储器管理电路502可直接启动预读取操作。在一范例实施例中,此预设条件可包括指令伫列710的伫列深度为k(即指令伫列710中有k个待处理的读取指令,或第一读取指令的总数为k)。若指令伫列710的伫列深度为k,存储器管理电路502可判定深度信息符合预设条件并且直接启动预读取操作。在一范例实施例中,若指令伫列710的伫列深度为k,则无论第一读取指令的数据长度是多少,预读取操作皆可直接启动。在一范例实施例中,k为1。在一范例实施例中,k亦可以是2、3或其他数值。[0137]在一范例实施例中,在决定是否启动预读取操作之前,存储器管理电路502可判断多个已执行的读取指令(亦称为第二读取指令)是否指示一个连续读取(sequentialread)操作。若此些第二读取指令是指示一个连续读取操作,则存储器管理电路502可接续判断是否启动预读取操作。或者,若此些第二读取指令不是指示一个连续读取操作(例如此些第二读取指令是指示随机读取操作),则存储器管理电路502可不判断是否启动预读取操作。换言之,在一范例实施例中,上述决定是否启动预读取操作的操作仅在判定此些第二读取指令是指示连续读取操作之后执行。[0138]在一范例实施例中,存储器管理电路502可判断此些第二读取指令是否是用以读取连续的多个逻辑单元(亦称为第二逻辑单元)。若此些第二读取指令是用以读取连续的多个第二逻辑单元,存储器管理电路502可判定此些第二读取指令是指示连续读取操作。或者,若此些第二读取指令不是用以读取连续的多个第二逻辑单元,存储器管理电路502可判定此些第二读取指令不是指示连续读取操作。[0139]在一范例实施例中,第二逻辑单元的总数为p。也就是说,若存储器管理电路502侦测到p个连续的逻辑单元被连续读取,则存储器管理电路502可判定当前正在执行连续读取操作并接续判断是否启动预读取操作。若决定启动预读取操作,则上述第一逻辑单元所存储的数据可被预先读取。第一逻辑单元可连续地排序在这p个连续的逻辑单元之后。在一范例实施例中,p是5。在一范例实施例中,p也可以是3、6或其他数值。此外,若当前执行的读取操作为随机读取操作,则存储器管理电路502可直接决定不启动预读取操作。[0140]图9是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图9,在步骤s901中,从主机系统接收至少一第一读取指令。在步骤s902中,根据所述至少一第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作。[0141]图10是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图10,在步骤s1001中,获得至少一第一读取指令所指示的待读取数据的总数据量。在步骤s1002中,判断所述总数据量是否大于临界值。若所述总数据量不大于临界值,在步骤s1003中,启动预读取操作,以预先读取存储于第一逻辑单元的数据。然而,若所述总数据量大于临界值,则在步骤s1004中,不启动预读取操作。[0142]图11是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图11,在步骤s1101中,从主机系统接收至少一第一读取指令。在步骤s1102中,根据指令伫列的深度信息与所述至少一第一读取指令的数据长度信息决定是否启动预读取操作。[0143]图12是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图12,在步骤s1201中,根据指令伫列的深度信息与所述至少一第一读取指令的数据长度信息决定一逻辑值。此逻辑值可反映待读取数据的总数据量。在步骤s1202中,判断所述逻辑值是否大于临界值。若所述逻辑值不大于临界值,在步骤s1203中,启动预读取操作。然而,若所述逻辑值大于临界值,则在步骤s1204中,不启动预读取操作。[0144]图13是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图13,在步骤s1301中,从主机系统接收多个第二读取指令。所述多个第二读取指令可被执行。在步骤s1302中,判断所述多个第二读取指令是否指示一连续读取操作。若所述多个第二读取指令是指示连续读取操作(即非随机读取操作),在步骤s1303中,根据指令伫列中当前的第一读取指令所指示的待读取数据的总数据量决定是否启动预读取操作。然而,若所述多个第二读取指令不是指示连续读取操作,则可回到步骤s1301,持续接收并执行第二读取指令。须注意的是,在一范例实施例中,图13中的步骤s1303亦可以是以图11中的步骤s1102取代,本发明不加以限制。[0145]然而,图9至图13中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图9至图13中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图9至图13的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。[0146]综上所述,在判定当前正在执行连续读取操作后,本发明的范例实施例可根据待读取数据的总数据量或者指令伫列的深度信息与第一读取指令的数据长度信息的组合来决定是否启动预读取操作。藉此,可有效提升存储器存储装置的数据读取效率。[0147]虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1