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

文档序号:13982766阅读:146来源:国知局
本发明涉及一种数据传输机制,尤其涉及一种数据传输方法、存储器存储装置及存储器控制电路单元。
背景技术
::数字相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可重写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。在某些数据传输系统中,当存储装置完成主机系统所交办的存取任务(例如,从存储装置中读取数据或将数据写入至存储装置)之后,存储装置会即时地回传一个完成信息给主机系统,以藉由此完成信息告知主机系统相关的存取操作已完成。此外,主机系统也可以根据接收到的完成信息评估存储装置的数据存取速度。一般来说,存储装置会优先使用最高的存取速度来支援主机系统的存取操作。然而,在某些情况下(例如,主机系统连续写入大量数据时),存储装置可能会因为其内部需要进行数据搬移等操作而降低数据存取速度,甚至可能会短时间的暂停存取数据。在完成相关的数据搬移等操作后,存储装置会再次回到最高的存取速度。因此,在连续的存取操作中,主机系统根据所接收到的完成信息会量测到存储装置的数据存取速度是相当不稳定的,从而连带影响到对于存储装置的效能评核。技术实现要素:本发明提供一种数据传输方法、存储器存储装置及存储器控制电路单元,可稳定主机系统量测到的数据存取速度。本发明的一范例实施例提供一种数据传输方法,其用于包括可重写式非易失性存储器模块的存储器存储装置,所述数据传输方法包括:从主机系统获得第一指令并计数第一时间值;对所述可重写式非易失性存储器模块执行对应于所述第一指令的第一存取操作;产生对应于所述第一存取操作的完成的第一完成信息并将所述第一完成信息缓存在缓存区;以及若所述第一时间值符合第一等待时间值,将缓存在所述缓存区的所述第一完成信息传送至所述主机系统。在本发明的一范例实施例中,所述的数据传输方法还包括:计数回应闲置时间值并根据所述回应闲置时间值更新指示值;在开始计数所述回应闲置时间值之后,从所述主机系统获得第三指令;若所述指示值与所述第三指令所指示存取的数据的数据量符合第一条件,在完成对应于所述第三指令的第三存取操作之后,允许传送对应于所述第三存取操作的完成的第三完成信息至所述主机系统;以及若所述指示值与所述第三指令所指示存取的数据的数据量不符合所述第一条件,根据所述指示值与所述第三指令所指示存取的数据的数据量决定第二等待时间值,其中所述第二等待时间值用以控制传送所述第三完成信息至所述主机系统的时间点。在本发明的一范例实施例中,所述的数据传输方法还包括:从所述主机系统获得第四指令;若缓存在所述缓存区的完成信息的总数达到第一门槛值,暂停对所述可重写式非易失性存储器模块执行对应于所述第四指令的第四存取操作;以及若缓存在所述缓存区的所述完成信息的所述总数降至第二门槛值,允许执行所述第四存取操作。在本发明的一范例实施例中,所述的数据传输方法还包括:在暂停执行所述第四存取操作的期间,持续将缓存在所述缓存区的完成信息传送至所述主机系统。本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可重写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述存储器控制电路单元连接至所述连接接口单元与所述可重写式非易失性存储器模块,所述存储器控制电路单元用以从所述主机系统获得第一指令并计数第一时间值,所述存储器控制电路单元还用以发送第一存取指令序列以指示对所述可重写式非易失性存储器模块执行对应于所述第一指令的第一存取操作,所述存储器控制电路单元还用以产生对应于所述第一存取操作的完成的第一完成信息并将所述第一完成信息缓存在缓存区,若所述第一时间值符合第一等待时间值,所述存储器控制电路单元还用以将缓存在所述缓存区的所述第一完成信息传送至所述主机系统。在本发明的一范例实施例中,所述存储器控制电路单元更用以计数回应闲置时间值并根据所述回应闲置时间值更新指示值,在开始计数所述回应闲置时间值之后,所述存储器控制电路单元还用以从所述主机系统获得第三指令,若所述指示值与所述第三指令所指示存取的数据的数据量符合第一条件,所述存储器控制电路单元还用以在完成对应于所述第三指令的第三存取操作之后,允许传送对应于所述第三存取操作的完成的第三完成信息至所述主机系统,若所述指示值与所述第三指令所指示存取的数据的数据量不符合所述第一条件,所述存储器控制电路单元还用以根据所述指示值与所述第三指令所指示存取的数据的数据量决定第二等待时间值,其中所述第二等待时间值用以控制传送所述第三完成信息至所述主机系统的时间点。在本发明的一范例实施例中,所述存储器控制电路单元还用以从所述主机系统获得第四指令,若缓存在所述缓存区的完成信息的总数达到第一门槛值,所述存储器控制电路单元还用以暂停对所述可重写式非易失性存储器模块执行对应于所述第四指令的第四存取操作,若缓存在所述缓存区的所述完成信息的所述总数降至第二门槛值,所述存储器控制电路单元还用以允许执行所述第四存取操作。在本发明的一范例实施例中,在暂停执行所述第四存取操作的期间,所述存储器控制电路单元还用以持续将缓存在所述缓存区的完成信息传送至所述主机系统。在本发明的一范例实施例中,所述存储器存储装置相容于快速非易失性存储器(nvmexpress)接口标准。本发明的另一范例实施例提供一种存储器控制电路单元,其用于控制可重写式非易失性存储器模块,所述存储器控制电路单元包括主机接口、存储器接口及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可重写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口与所述存储器接口,所述存储器管理电路用以从所述主机系统获得第一指令并计数第一时间值,所述存储器管理电路更用以发送第一存取指令序列以指示对所述可重写式非易失性存储器模块执行对应于所述第一指令的第一存取操作,所述存储器管理电路还用以产生对应于所述第一存取操作的完成的第一完成信息并将所述第一完成信息缓存在缓存区,若所述第一时间值符合第一等待时间值,所述存储器管理电路更用以将缓存在所述缓存区的所述第一完成信息传送至所述主机系统。在本发明的一范例实施例中,所述第一等待时间值的时间长度长于执行所述第一存取操作的第二时间值的时间长度。在本发明的一范例实施例中,所述第一时间值是从开始执行该第一存取操作的时间点开始计数或从发送对应于第二存取操作的完成的第二完成信息的时间点开始计数,其中所述第二存取操作是对应于早于所述第一指令而从所述主机系统接收的第二指令而执行。在本发明的一范例实施例中,所述第一等待时间值的时间长度正相关于所述第一指令所指示存取的数据的数据量。在本发明的一范例实施例中,所述存储器管理电路更用以计数回应闲置时间值并根据所述回应闲置时间值更新指示值,在开始计数所述回应闲置时间值之后,所述存储器管理电路还用以从所述主机系统获得第三指令,若所述指示值与所述第三指令所指示存取的数据的数据量符合第一条件,所述存储器管理电路还用以在完成对应于所述第三指令的第三存取操作之后,允许传送对应于所述第三存取操作的完成的第三完成信息至所述主机系统,若所述指示值与所述第三指令所指示存取的数据的数据量不符合所述第一条件,所述存储器管理电路更用以根据所述指示值与所述第三指令所指示存取的数据的数据量决定第二等待时间值,其中所述第二等待时间值用以控制传送所述第三完成信息至所述主机系统的时间点。在本发明的一范例实施例中,所述存储器管理电路还用以从所述主机系统获得第四指令,若缓存在所述缓存区的完成信息的总数达到第一门槛值,所述存储器管理电路还用以暂停对所述可重写式非易失性存储器模块执行对应于所述第四指令的第四存取操作,若缓存在所述缓存区的所述完成信息的所述总数降至第二门槛值,所述存储器管理电路还用以允许执行所述第四存取操作。在本发明的一范例实施例中,在暂停执行所述第四存取操作的期间,所述存储器管理电路更用以持续将缓存在所述缓存区的完成信息传送至所述主机系统。在本发明的一范例实施例中,所述存储器控制电路单元相容于快速非易失性存储器接口标准。基于上述,在从主机系统获得一个存取指令之后,对应于此存取指令的一个时间值会开始计数并且对应于此存取指令的一个存取操作会被执行。在对应于此存取操作的完成的一个完成信息被产生后,此完成信息会被缓存在一个缓存区。当所计数的时间值符合一等待时间值时,此完成信息才会从缓存区中提取并且传送给主机系统。相对于未对完成信息的传送进行延迟,本发明可稳定主机系统量测到的数据存取速度。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图;图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图;图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方框图;图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方框图;图6是根据本发明的一范例实施例所示出的管理可重写式非易失性存储器模块的示意图;图7是根据本发明的一范例实施例所示出的数据传输操作的示意图;图8是根据本发明的一范例实施例所示出的管理完成信息的操作的示意图;图9是根据本发明的另一范例实施例所示出的管理完成信息的操作的示意图;图10是根据本发明的一范例实施例所示出的数据传输方法的流程图。附图标记:10、30:存储器存储装置;11、31:主机系统;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:可重写式非易失性存储器模块;502:存储器管理电路;504:主机接口;506:存储器接口;508:错误检查与校正电路;510:缓冲存储器;512:电源管理电路;601:储存区;602:取代区;610(0)~610(b):实体单元;612(0)~612(c):逻辑单元;711、721:指令队列;712、722:数据缓存;713、723:完成队列;s701~s704、s1001~s1005:步骤。具体实施方式一般而言,存储器存储装置(也称,存储器储存系统)包括可重写式非易失性存储器模块(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可为其所使用的安全数字(securedigital,sd)卡32、小型快闪(compactflash,cf)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmultimediacard,emmc)341和/或嵌入式多芯片封装(embeddedmultichippackage,emcp)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方框图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可重写式非易失性存储器模块406。连接接口单元402用以将存储器存储装置10连接至主机系统11。在本范例实施例中,连接接口单元402是相容于快速非易失性存储器(nvmexpress)接口标准。然而,在另一范例实施例中,连接接口单元402也可以是符合其他适合的标准。此外,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令并且根据主机系统11的指令在可重写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。可重写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以储存主机系统11所写入的数据。可重写式非易失性存储器模块406可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可储存1个比特的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可储存2个比特的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可储存3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。可重写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来储存一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与信道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可重写式非易失性存储器模块406中的每一个存储单元具有多个储存状态。通过施予读取电压可以判断一个存储单元是属于哪一个储存状态,藉此取得此存储单元所储存的一个或多个比特。在本范例实施例中,可重写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字元线上的存储单元会组成一个或多个实体程序化单元。若每一个存储单元可储存2个以上的比特,则同一条字元线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效比特(leastsignificantbit,lsb)是属于下实体程序化单元,并且一存储单元的最高有效比特(mostsignificantbit,msb)是属于上实体程序化单元。一般来说,在mlcnand型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以储存使用者数据,而冗余比特区用以储存系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512比特组(byte,b)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方框图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被刻录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式储存于可重写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将储存于可重写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,存储器管理电路502的控制指令也可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可重写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可重写式非易失性存储器模块406下达写入指令序列以将数据写入至可重写式非易失性存储器模块406中。存储器读取电路用以对可重写式非易失性存储器模块406下达读取指令序列以从可重写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可重写式非易失性存储器模块406下达抹除指令序列以将数据从可重写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可重写式非易失性存储器模块406的数据以及从可重写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一个或多个程序码或指令码并且用以指示可重写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可重写式非易失性存储器模块406以指示执行相对应的操作。主机接口504是连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于sata标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。存储器接口506是连接至存储器管理电路502并且用以存取可重写式非易失性存储器模块406。也就是说,欲写入至可重写式非易失性存储器模块406的数据会经由存储器接口506转换为可重写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可重写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压准位或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可重写式非易失性存储器模块406。这些指令序列可包括一个或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。在一范例实施例中,存储器控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可重写式非易失性存储器模块406中。之后,当存储器管理电路502从可重写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可重写式非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。图6是根据本发明的一范例实施例所示出的管理可重写式非易失性存储器模块的示意图。须注意的是,在此描述可重写式非易失性存储器模块406的管理时,“选择”与“分组”等词是逻辑上的操作概念。也就是说,可重写式非易失性存储器模块406中各实体元件的实际位置并未更动,而是逻辑上对可重写式非易失性存储器模块406的部分实体元件进行操作。请参照图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)状态,而无法再写入数据。在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元也可以是指一个实体地址、一个实体程序化单元或由多个连续或不连续的实体地址组成。存储器管理电路502会配置逻辑单元612(0)~612(c)以映射储存区601中的实体单元610(0)~610(a)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(c)中的每一者可被映射至一个或多个实体单元。存储器管理电路502会将逻辑单元与实体单元之间的映射关系(也称为逻辑-实体地址映射关系)记录于至少一逻辑-实体地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体地址映射表来执行对于存储器存储装置10的存取操作。在本范例实施例中,存储器存储装置10是相容于nvmexpress接口标准。相对于采用序列先进附件(serialadvancedtechnologyattachment,sata)标准的存储装置,存储器存储装置10与主机系统11之间的沟通机制有些许不同。图7是根据本发明的一范例实施例所示出的数据传输操作的示意图。请参照图7,当主机系统11欲对存储器存储装置10执行存取操作(例如,从存储器存储装置10读取数据或将数据写入至存储器存储装置10)时,主机系统11的处理器111会将准备好的指令放置在一个指令队列(commandqueue)711中。然后,处理器111会传送一个通知给存储器存储装置10(步骤s701)。在一范例实施例中,步骤s701的操作也称为响铃(ring)。须注意的是,在nvmexpress接口标准下,在发出通知之后,主机系统11对于存储器存储装置10的主动行为至此结束。存储器管理电路502会接收此通知并主动地从指令队列711中读取对应于此通知的一个或多个指令(步骤s702)。例如,所获得的指令会被缓存在一个指令队列721。根据指令队列721中的指令,存储器管理电路502会执行相应的存取操作。例如,根据一个读取指令,存储器管理电路502会对可重写式非易失性存储器模块406执行一个数据读取操作并且将所获得的读取数据从数据缓存(databuffer)722传送给主机系统11(步骤s703)。例如,此读取数据会被存入主机系统11的数据缓存712。或者,根据一个写入指令,存储器管理电路502会主动地从主机系统11的数据缓存712中读取写入数据并将其缓存于数据缓存722中(步骤s703)。然后,存储器管理电路502会对可重写式非易失性存储器模块406执行一个数据写入操作以将缓存在数据缓存722的写入数据写入至可重写式非易失性存储器模块406。对应于一个存取操作的完成,存储器管理电路502会产生一个完成信息,并且此完成信息会被缓存在一个完成队列(completionqueue)723。此完成信息用于通知主机系统11相应于一个指令的一个存取操作已完成。在特定的时间点,包含完成信息的完成数据会被依序地传送给主机系统11并被缓存在主机系统11的一个完成队列713中(步骤s704)。根据完成队列723中的数据,主机系统11可以获得存储器存储装置10对应于一个或多个存取指令的存取数据量以及数据存取速度等等。在图7的范例实施例中,指令队列711、数据缓存712及完成队列713是位于主机系统11的随机存取存储器112中,并且指令队列721、数据缓存722及完成队列723是位于存储器存储装置10的缓冲存储器510中。然而,在另一范例实施例中,指令队列711、数据缓存712及完成队列713中的任一者也可以是位于主机系统11的其他的储存媒体中,并且指令队列721、数据缓存722及完成队列723中的任一者也可以是位于存储器存储装置10的其他的储存媒体(例如,可重写式非易失性存储器模块406)中。更具体来看,当存储器管理电路502从主机系统11获得一个指令(以下也称为第一指令)时,存储器管理电路502会开始计数一个时间值(以下也称为第一时间值)。随着时间经过,计数的第一时间值会持续增加。另外,存储器管理电路502也会发送一个存取指令序列(以下亦称为第一存取指令序列)以指示对可重写式非易失性存储器模块406执行对应于第一指令的一个存取操作(以下也称为第一存取操作)。当完成第一存取操作后,存储器管理电路502会产生对应于第一存取操作的完成的一个完成信息(以下亦称为第一完成信息)并将第一完成信息缓存在一个缓存区。例如,图7的范例实施例的完成队列723即位于此缓存区中,并且此缓存区可以位于缓冲存储器510或可重写式非易失性存储器模块406中。然后,存储器管理电路502会判断第一时间值是否符合一个等待时间值(以下也称为第一等待时间值)。若第一时间值不符合第一等待时间值(例如,第一时间值小于第一等待时间值),存储器管理电路502会持续将第一完成信息缓存在缓存区中。或者,若第一时间值符合第一等待时间值(例如,第一时间值等于或大于第一等待时间值),存储器管理电路502会将缓存在缓存区的第一完成信息传送至主机系统11。换言之,在图7的范例实施例中,即便完成队列723中有一个以上待传送的完成信息,存储器管理电路502也可能不会立即地将其传送给主机系统11,而是会等待对应于此完成信息的时间值达到一个等待时间值之后才会将其传送给主机系统11。藉由管控传送每一个完成信息的时间点或传送任两个完成信息之间的时间间隔,主机系统11可以根据接收到的完成信息判定存储器存储装置10执行的数据存取速度是稳定的。图8是根据本发明的一范例实施例所示出的管理完成信息的操作的示意图。请参照图8,假设存储器管理电路502连续地从主机系统11获得指令w0~w3,其中每一者都是一个写入指令。在时间点ti,存储器管理电路502开始执行对应于指令w0的存取操作。例如,存储器管理电路502会从主机系统11获得数据d0并指示可重写式非易失性存储器模块406储存数据d0。假设对应于指令w0的存取操作在时间点t0完成,存储器管理电路502会产生一个完成信息c0。完成信息c0会被缓存在一个缓存区(例如,图7的完成队列723)并且用于通知主机系统11对应于指令w0的存取操作已完成。然后,存储器管理电路502会接续执行对应于下一个指令w1的存取操作。例如,存储器管理电路502会从主机系统11获得数据d1并指示可重写式非易失性存储器模块406储存数据d1。假设对应于指令w1的存取操作在时间点t1完成,存储器管理电路502会产生一个完成信息c1。完成信息c1也会被缓存在上述缓存区并且用于通知主机系统11对应于指令w1的存取操作已完成。然后,存储器管理电路502会接续执行对应于下一个指令w2的存取操作。例如,存储器管理电路502会从主机系统11获得数据d2并指示可重写式非易失性存储器模块406储存数据d2。以此类推,在时间点t2,对应于写入数据d2的存取操作的完成,一个完成信息c2被产生。完成信息c2用于通知主机系统11对应于指令w2的存取操作已完成。然后,下一个指令w3的存取操作会被执行并且数据d3会被从主机系统11获得并且被写入至可重写式非易失性存储器模块406。在时间点t3,对于数据d3的存取操作完成并且一个完成信息c3会被产生。完成信息c3用于通知主机系统11对应于指令w3的存取操作已完成。完成信息c2与c3皆会被缓存在上述缓存区中。另一方面,在时间点ti(即,开始执行对应于指令w0的存取操作的时间点),存储器管理电路502会启动一个计数器并开始计数对应于指令w0的一个时间值。随着时间经过,此时间值会逐渐增加。在产生完成信息c0之后,存储器管理电路502会判断此时间值的时间长度是否达到一个等待时间值的时间长度tw,其中时间长度tw长于执行对应于指令w0的存取操作的时间的时间长度(即,时间点ti至t0之间的时间长度)。在时间点t0’,对应于指令w0所计数的时间值的时间长度(即,时间点ti至t0’之间的时间长度)等于时间长度tw,因此存储器管理电路502将缓存在缓存区中的完成信息c0传送给主机系统11。在时间点t0’(即,发送缓存的完成信息c0的时间点),存储器管理电路502会启动一个计数器并开始计数对应于指令w1的一个时间值。随着时间经过,此时间值也会逐渐增加。存储器管理电路502会判断此时间值的时间长度是否达到一个等待时间值的时间长度tw,其中时间长度tw长于执行对应于指令w1的存取操作的时间的时间长度(即,时间点t0至t1之间的时间长度)。在时间点t1’,对应于指令w1所计数的时间值的时间长度(即,时间点t0’至t1’之间的时间长度)等于时间长度tw,因此存储器管理电路502将缓存在缓存区中的完成信息c1传送给主机系统11。在时间点t1’(即,发送缓存的完成信息c1的时间点),存储器管理电路502会启动一个计数器并开始计数对应于指令w2的一个时间值。随着时间经过,此时间值也会逐渐增加。存储器管理电路502会判断此时间值的时间长度是否达到另一个等待时间值的时间长度2tw(即,2×tw),其中时间长度2tw长于执行对应于指令w2的存取操作的时间的时间长度(即,时间点t1至t2之间的时间长度)。在时间点t2’,对应于指令w2所计数的时间值的时间长度(即,时间点t1’至t2’之间的时间长度)等于时间长度2tw,因此存储器管理电路502将缓存在缓存区中的完成信息c2传送给主机系统11。在时间点t2’(即,发送缓存的完成信息c2的时间点),存储器管理电路502会启动一个计数器并开始计数对应于指令w3的一个时间值。随着时间经过,此时间值也会逐渐增加。存储器管理电路502会判断此时间值的时间长度是否达到一个等待时间值的时间长度tw,其中时间长度tw长于执行对应于指令w3的存取操作的时间的时间长度(即,时间点t2至t3之间的时间长度)。在时间点t3’,对应于指令w3所计数的时间值的时间长度(即,时间点t2’至t3’之间的时间长度)等于时间长度tw,因此存储器管理电路502将缓存在缓存区中的完成信息c3传送给主机系统11。须注意的是,在一范例实施例中,用来控制某一完成信息的传送的等待时间值的时间长度会正相关于对应于此完成信息的指令所指示存取的数据的数据量。例如,在图8的一范例实施例中,指令w2所指示写入的数据d2的数据量约为指令w1所指示写入的数据d1的数据量的两倍,故用来限制完成信息c2的传送的等待时间值的时间长度为用来限制完成信息c2的传送的等待时间值的时间长度tw的两倍(即,2×tw)。在图8的一范例实施例中,时间长度tw为一个单位等待时间的时间长度,其对应于一个数据单位。例如,在图8的一范例实施例中,数据d0、数据d1及数据d3各别的数据量都是一个数据单位,例如为8千比特组(8kb);而数据d2的数据量则为二个数据单位,例如为16千比特组(16kb)。此外,某一指令所指示存取的数据的数据量可以用此数据使用的逻辑单元的总数来评估。在一范例实施例中,也可利用以下方程序(1)来计算指令wi的完成信息所对应的等待时间pvi。pvi=tw×(nlbi+1)(1)其中,参数tw表示一个单位等待时间的时间长度,并且参数(nlbi+1)表示指令wi所指示存取的数据所使用的逻辑单元的总数。例如,根据方程序(1),图8的指令w1所指示写入的数据d1所对应的等待时间的时间长度会被设为tw,而w2所指示写入的数据d2所对应的等待时间的时间长度会被设为2tw,以此类推。在图8的范例实施例中,假设在时间点t3之后直到时间点ti’才有下一个指令w4的存取操作需要被执行。因此,在时间点t3’至ti’之间,存储器存储装置10与主机系统之间是处于一个闲置状态。在此闲置状态下,没有完成信息被传送给主机系统11。在一范例实施例中,存储器管理电路502还会计数对应于此闲置状态的时间长度的一个回应闲置时间值。例如,此回应闲置时间值用以表示闲置状态的时间长度等于多少个单位等待时间的时间长度总合。存储器管理电路502会根据此回应闲置时间值更新一个指示值。须注意的是,相对于等待时间值是用来延后相应的完成信息的传送时间点,此指示值则是用来缩短或忽略后续指令的等待时间值。请再次参照图8,在进入闲置状态(即,时间点t3’)前,指示值是“0”,表示没有等待时间值需要被缩短或忽略。在进入闲置状态后,经过一个单位等待时间,指示值被更新为“1”,表示后续的指令可忽略一个单位等待时间。在时间点ti’,闲置状态的时间长度达到2个单位等待时间(即,时间长度2tw),因此指示值被更新为“2”,表示后续指令可忽略二个单位等待时间。在时间点ti’之后,存储器管理电路502依序执行来自主机系统11的指令w4~w7,其中每一个指令为一个写入指令。例如,在时间点ti’,存储器管理电路502会从主机系统11获得数据d4并指示可重写式非易失性存储器模块406储存数据d4。假设对应于指令w4的存取操作在时间点t4完成,存储器管理电路502会产生一个完成信息c4。完成信息c4会被缓存在缓存区并且用于通知主机系统11对应于指令w4的存取操作已完成。然后,存储器管理电路502会接续执行对应于下一个指令w5的存取操作。例如,存储器管理电路502会从主机系统11获得数据d5并指示可重写式非易失性存储器模块406储存数据d5。以此类推,在时间点t5,对应于写入数据d5的存取操作的完成,一个完成信息c5被产生。完成信息c5用于通知主机系统11对应于指令w5的存取操作已完成。然后,下一个指令w6的存取操作会被执行并且数据d6会被从主机系统11获得并且被写入至可重写式非易失性存储器模块406。在时间点t6,对于数据d6的存取操作完成并且一个完成信息c6会被产生。完成信息c6用于通知主机系统11对应于指令w6的存取操作已完成。然后,下一个指令w7的存取操作会被执行并且数据d7会被从主机系统11获得并且被写入至可重写式非易失性存储器模块406。在时间点t7,对于数据d7的存取操作完成并且一个完成信息c7会被产生。完成信息c7用于通知主机系统11对应于指令w7的存取操作已完成。完成信息c4~c7皆会被缓存在上述缓存区中。另一方面,对应于完成信息c4,存储器管理电路502会判断指示值与指令w4所指示存取的数据的数据量是否符合某一条件(以下也称为第一条件)。例如,当前的指示值为“2”(表示有两个单位等待时间可被忽略)且数据d4的数据量为一个数据单位,故在产生完成信息c4之后,存储器管理电路502会允许立即将完成信息c4从缓存区传送给主机系统11。由于对应于完成信息c4的一个单位等待时间被忽略,指示值会被更新为“1”(表示还有一个单位等待时间可被忽略)。对应于完成信息c5,存储器管理电路502也会判断指示值与指令w5所指示存取的数据的数据量是否符合第一条件。由于当前的指示值为“1”且数据d5的数据量也为一个数据单位,故在产生完成信息c5之后,存储器管理电路502也会允许立即将完成信息c5从缓存区传送给主机系统11。由于对应于完成信息c5的一个单位等待时间被忽略,指示值会被更新为“0”(表示后续没有单位等待时间可被忽略)。对应于完成信息c6,存储器管理电路502也会判断指示值与指令w6所指示存取的数据的数据量是否符合第一条件。由于当前的指示值为“0”且数据d6的数据量也为一个数据单位,故在产生完成信息c6之后,存储器管理电路502会根据指示值与数据d6的数据量决定另一个等待时间值(以下也称为第二等待时间值)。此第二等待时间值用以控制传送完成信息c6至主机系统的时间点。例如,假设某一数据的数据量为“n”个数据单位(例如,数据使用“n”个逻辑单元)且当前的指示值为“m”(即,“m”个单位等待时间可被忽略)。若“n-m”的值小于或等于零(即,当前指示值与指令所指示存取的数据的数据量符合第一条件),存储器管理电路502可直接传送相应的完成信息,如完成信息c4与c5。反之,若“n-m”的值大于零(即,当前指示值与指令所指示存取的数据的数据量不符合第一条件)存储器管理电路502可将第二等待时间值的时间长度设为“n-m”个单位等待时间的时间长度。例如,由于数据d6的数据量为一个数据单位且当前的指示值为“0”,故对应于完成信息c6的第二等待时间值的时间长度会被设为一个单位等待时间(例如,1-0=1)的时间长度。因此,在时间点t5(即,发送完成信息c5的时间点),存储器管理电路502会开始计数对应于指令w6的时间值并且在等待了一个单位等待时间之后,于时间点t6’将缓存在缓存区中的完成信息c6传送给主机系统11。以此类推,由于数据d7的数据量也为一个数据单位且当前的指示值为“0”,故对应于完成信息c7的第二等待时间值的时间长度也会被设为一个单位等待时间的时间长度。因此,在时间点t6’(即,发送完成信息c6的时间点),存储器管理电路502会开始计数对应于指令w7的时间值并且在等待了一个单位等待时间之后,于时间点t7’将缓存在缓存区中的完成信息c7传送给主机系统11。又例如,在图8的另一范例实施例中,若指令w4所指示存取的数据的数据量为“5”个数据单位且当前的指示值为“2”(即,“2”个单位等待时间可被忽略),则存储器管理电路502会将对应于完成信息c4的第二等待时间值的时间长度设为“3”个(5-2=3)单位等待时间的时间长度(即,3×tw)。藉此,完成信息c4的传送会被从时间点ti’延后4个单位等待时间的时间长度。以此类推,其余的完成信息的传输时间点也可以相应被决定,在此不一一赘述。须注意的是,虽然图8的范例实施例是以指示将数据写入至可重写式非易失性存储器模块406的指令w0~w7作为范例进行说明,但是,在其他未提及的范例实施例中,指令w0~w7也可以替换为指示从可重写式非易失性存储器模块406读取数据的指令,并相应地控制回传通知完成数据读取操作的完成信息的时间点,在此便不赘述。此外,如图8的范例实施例,藉由将大部分的完成信息的传输时间点延后,并使用回应闲置时间来扣除后续的部分延迟时间,对应于每一个数据单位的完成信息可以较为稳定的被传送。例如,平均来看,可约略地将传输多个完成信息的频率控制在每经过一个单位等待时间的时间长度tw就传送一个数据单位的完成信息。例如,时间长度tw可以是10μs,但本发明不限制时间长度tw的值。相应的,主机系统11则可以藉由这些稳定传送的完成信息而判定存储器存储装置10的数据存取速度也是稳定的。在一范例实施例中,存储器管理电路502还会判断缓存在缓存区的完成信息的总数是否达到一个门槛值(以下也称为第一门槛值)。若缓存在缓存区的完成信息的总数达到第一门槛值,存储器管理电路502会暂停对可重写式非易失性存储器模块406执行对应于来自主机系统11的某一个指令的存取操作。然后,若缓存在缓存区的完成信息的总数降到另一门槛值(以下也称为第二门槛值),存储器管理电路502会允许执行此被暂停的存取操作,其中第一门槛值会等于或高于第二门槛值。图9是根据本发明的另一范例实施例所示出的管理完成信息的操作的示意图。请参照图9,在时间点t1之前,许多的数据在存储器存储装置10与主机系统11之间传输且许多新的完成信息被缓存至缓存区中。假设在时间点t1,存储器管理电路502判定当前缓存在缓存区的完成信息的总数达到第一门槛值,存储器管理电路502会暂停对可重写式非易失性存储器模块406执行对应于来自主机系统11的指令的存取操作。同时,也不会有新的完成信息被加入到缓存区中。但是,在暂停对可重写式非易失性存储器模块406执行对应于来自主机系统11的指令的存取操作的期间,已经缓存在缓存区的完成信息仍然会被持续传送给主机系统11。藉此,可避免缓存区中累积过多待回复的完成信息。然后,在时间点t2,由于缓存在缓存区的完成信息的总数降至第二门槛值,故存储器管理电路502会允许执行原先被暂停的存取操作。例如,在时间点t2之后,数据重新开始被允许在存储器存储装置10与主机系统11之间传输并且相应的完成信息也开始被缓存至缓存区中。图10是根据本发明的一范例实施例所示出的数据传输方法的流程图。请参照图10,在步骤s1001中,从主机系统获得第一指令并计数第一时间值。在步骤s1002中,对可重写式非易失性存储器模块执行对应于第一指令的第一存取操作。在步骤s1003中,产生对应于第一存取操作的完成的第一完成信息并将第一完成信息缓存在缓存区。在步骤s1004中,判断所计数的第一时间是否符合第一等待时间值。若是,在步骤s1005中,将缓存在缓存区的第一完成信息传送至主机系统。若否,回到步骤s1004中,直到步骤s1004判断为是为止。然而,图10中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图10中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图10的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,在从主机系统获得一个存取指令之后,对应于此存取指令的一个时间值会开始计数并且对应于此存取指令的一个存取操作会被执行。在对应于此存取操作的完成的一个完成信息被产生后,此完成信息会被缓存在一个缓存区。当所计数的时间值符合一等待时间值时,此完成信息才会从缓存区中提取并且传送给主机系统。相对于未对完成信息的传送进行延迟,本发明可稳定主机系统量测到的数据存取速度。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,均在本发明范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1