存储器管理方法、存储器存储装置及存储器控制电路单元

文档序号:1598849 发布日期:2020-01-07 浏览:13次 >En<

阅读说明:本技术 存储器管理方法、存储器存储装置及存储器控制电路单元 (Memory management method, memory storage device and memory control circuit unit ) 是由 曾明晖 于 2018-06-29 设计创作,主要内容包括:本发明的范例实施例提供一种存储器管理方法,其用于包括可复写式非易失性存储器模块的存储器存储装置。所述方法包括:接收第一指令并对应于所述第一指令执行第一操作;对应于所述第一操作的完成发送完成信息至主机系统;检测指令处理信息;根据所述指令处理信息决定中断信息的传送模式;以及根据所述传送模式传送所述中断信息至所述主机系统。此外,本发明的范例实施例也提供一种存储器存储装置与存储器控制电路单元。(Example embodiments of the present invention provide a memory management method for a memory storage device including a rewritable non-volatile memory module. The method comprises the following steps: receiving a first instruction and executing a first operation corresponding to the first instruction; sending a completion message to the host system corresponding to completion of the first operation; detecting instruction processing information; determining a transmission mode of interrupt information according to the instruction processing information; and transmitting the interrupt information to the host system according to the transmission mode. In addition, the exemplary embodiments of the present invention also provide a memory storage device and a memory control circuit unit.)

存储器管理方法、存储器存储装置及存储器控制电路单元

技术领域

本发明涉及一种存储器技术,尤其涉及一种存储器管理方法、存储器存储装置及存储器控制电路单元。

背景技术

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

在非易失性存储器主机控制器接口(Non-Volatile Memory Host ControllerInterface)规范或快速非易失性存储器(NVM express,NVMe)接口规范中,主机系统可以执行主机指令处理程序以产生欲提供给存储器存储装置的操作指令。存储器存储装置可以主动地从主机系统取得操作指令并执行相应的操作。在完成相应操作后,存储器存储装置可以发送一个完成信息与一个中断信息给主机系统。根据中断信息,主机系统可以将执行中的操作程序从主机指令处理程序转换为检查程序,以中断指令产生作业并开始检查所接收到的完成信息。然而,若主机系统频繁地接收到中断信息,则主机系统需要频繁地在主机指令处理程序与检查程序之间切换,从而增加系统负载。

虽然某些存储器存储装置可以在完成多个操作指令后或者在回应逾时后才传送中断信息,以降低主机系统在主机指令处理程序与检查程序之间的切换频率。然而,当指令排列的深度较浅时,前述机制很容易使整个存储系统的反应效率下降。例如,当指令排列的深度为1~8时,主机系统通常需要等到回应逾时后才能收到来自存储器存储装置的中断信息。在某些情况下,若主机系统迟迟无法收到中断信息,则主机系统将无法执行下阶段程序,从而降低主机系统的数据处理效能。

发明内容

本发明提供一种存储器管理方法、存储器存储装置及存储器控制电路单元,可动态决定中断信息的传输模式,从而改善上述问题。

本发明的范例实施例提供一种存储器管理方法,其用于包括可复写式非易失性存储器模块的存储器存储装置,所述存储器管理方法包括:接收第一指令并对应于所述第一指令执行第一操作;对应于所述第一操作的完成发送完成信息至主机系统;检测指令处理信息;根据所述指令处理信息决定中断信息的传送模式;以及根据所述传送模式传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,检测所述指令处理信息的步骤包括:根据已接收的指令的所述数目与已完成的指令的所述数目之间的差值决定待执行的指令的所述数目。

在本发明的一范例实施例中,根据所述指令处理信息决定所述中断信息的所述传送模式的步骤包括:根据待执行的指令的数目是否大于门槛值决定所述传送模式。

在本发明的一范例实施例中,所述中断信息发送状态反映预设时间范围内所述中断信息的发送状态或发送模式。根据所述指令处理信息决定所述中断信息的所述传送模式的步骤包括:若所述中断信息发送状态反映在所述预设时间范围内发生N次所述中断信息的回应逾时事件,将所述中断信息的所述传送模式从第一模式切换为第二模式,其中N为不小于1的正整数。

在本发明的一范例实施例中,根据所述传送模式传送所述中断信息至所述主机系统的步骤包括:在第一模式中,在已发送的所述完成信息的数目达到预设数目之后,传送所述中断信息至所述主机系统;以及在第二模式中,在已发送的所述完成信息的所述数目达到所述预设数目之前,传送所述中断信息至所述主机系统,其中所述预设数目大于一。

在本发明的一范例实施例中,根据所述传送模式传送所述中断信息至所述主机系统的步骤还包括:在所述第一模式中,致能第一中断控制机制,其中经致能的所述第一中断控制机制用以控制在已发送的所述完成信息的所述数目达到所述预设数目后,传送所述中断信息至所述主机系统;以及在所述第二模式中,禁能所述第一中断控制机制。

在本发明的一范例实施例中,根据所述传送模式传送所述中断信息至所述主机系统的步骤包括:在第一模式中,在计数时间达到预设时间之后,传送所述中断信息至所述主机系统;以及在第二模式中,在所述计数时间达到所述预设时间之前,传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,根据所述传送模式传送所述中断信息至所述主机系统的步骤还包括:在所述第一模式中,致能第二中断控制机制,其中经致能的所述第二中断控制机制用以控制在所述计数时间达到所述预设时间之后,传送所述中断信息至所述主机系统;以及在所述第二模式中,禁能所述第二中断控制机制。

在本发明的一范例实施例中,根据所述传送模式传送所述中断信息至所述主机系统的步骤包括:在第一模式中,根据已发送的第一数目的所述完成信息,传送所述中断信息至所述主机系统;以及在所述第二模式中,根据已发送的第二数目的所述完成信息,传送所述中断信息至所述主机系统,其中所述第一数目大于所述第二数目。

本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以接收第一指令并对应于所述第一指令执行第一操作。所述存储器控制电路单元还用以对应于所述第一操作的完成发送完成信息至所述主机系统。所述存储器控制电路单元还用以检测指令处理信息。所述存储器控制电路单元还用以根据所述指令处理信息决定中断信息的传送模式。所述存储器控制电路单元还用以根据所述传送模式传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,所述存储器控制电路单元检测所述指令处理信息的操作包括:根据已接收的指令的所述数目与已完成的指令的所述数目之间的差值决定待执行的指令的所述数目。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述指令处理信息决定所述中断信息的所述传送模式的操作包括:根据待执行的指令的数目是否大于门槛值决定所述传送模式。

在本发明的一范例实施例中,所述中断信息发送状态反映预设时间范围内所述中断信息的发送状态或发送模式。所述存储器控制电路单元根据所述指令处理信息决定所述中断信息的所述传送模式的步骤包括:若所述中断信息发送状态反映在所述预设时间范围内发生N次所述中断信息的回应逾时事件,将所述中断信息的所述传送模式从第一模式切换为第二模式,其中N为不小于1的正整数。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,在已发送的所述完成信息的数目达到预设数目之后,传送所述中断信息至所述主机系统;以及在第二模式中,在已发送的所述完成信息的所述数目达到所述预设数目之前,传送所述中断信息至所述主机系统,其中所述预设数目大于一。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述传送模式传送所述中断信息至所述主机系统的操作还包括:在所述第一模式中,致能第一中断控制机制,其中经致能的所述第一中断控制机制用以控制在已发送的所述完成信息的所述数目达到所述预设数目后,传送所述中断信息至所述主机系统;以及在所述第二模式中,禁能所述第一中断控制机制。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,在计数时间达到预设时间之后,传送所述中断信息至所述主机系统;以及在第二模式中,在所述计数时间达到所述预设时间之前,传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述传送模式传送所述中断信息至所述主机系统的操作还包括:在所述第一模式中,致能第二中断控制机制,其中经致能的所述第二中断控制机制用以控制在所述计数时间达到所述预设时间之后,传送所述中断信息至所述主机系统;以及在所述第二模式中禁能所述第二中断控制机制。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,根据已发送的第一数目的所述完成信息,传送所述中断信息至所述主机系统;以及在所述第二模式中,根据已发送的第二数目的所述完成信息,传送所述中断信息至所述主机系统,其中所述第一数目大于所述第二数目。

本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块。所述存储器控制电路单元包括主机接口、存储器接口、检测电路、中断控制电路及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口、所述检测电路及所述中断控制电路。所述存储器管理电路用以接收第一指令并对应于所述第一指令执行第一操作。所述存储器管理电路还用以对应于所述第一操作的完成发送完成信息至所述主机系统。所述检测电路用以检测指令处理信息。所述存储器管理电路还用以根据所述指令处理信息决定中断信息的传送模式。所述存储器管理电路还用以指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,所述传送模式包括第一模式与第二模式,所述第一模式对应于用于传送所述中断信息的第一规则,所述第二模式对应于用于传送所述中断信息的第二规则,且所述第一规则不同于所述第二规则。

在本发明的一范例实施例中,所述中断信息用以中断所述主机系统的主机指令处理程序。

在本发明的一范例实施例中,所述指令处理信息包括已接收的指令的数目、已完成的指令的数目、待执行的指令的数目及中断信息发送状态的至少其中之一。

在本发明的一范例实施例中,所述检测电路检测所述指令处理信息的操作包括:根据已接收的指令的所述数目与已完成的指令的所述数目之间的差值决定待执行的指令的所述数目。

在本发明的一范例实施例中,所述存储器管理电路根据所述指令处理信息决定所述中断信息的所述传送模式的操作包括:根据待执行的指令的数目是否大于门槛值决定所述传送模式。

在本发明的一范例实施例中,所述中断信息发送状态反映预设时间范围内所述中断信息的发送状态或发送模式。所述存储器管理电路根据所述指令处理信息决定所述中断信息的所述传送模式的步骤包括:若所述中断信息发送状态反映在所述预设时间范围内发生N次所述中断信息的回应逾时事件,将所述中断信息的所述传送模式从第一模式切换为第二模式,其中N为不小于1的正整数。

在本发明的一范例实施例中,所述存储器管理电路指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,在已发送的所述完成信息的数目达到预设数目之后,传送所述中断信息至所述主机系统;以及在第二模式中,在已发送的所述完成信息的所述数目达到所述预设数目之前,传送所述中断信息至所述主机系统,其中所述预设数目大于一。

在本发明的一范例实施例中,所述存储器管理电路指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统的操作还包括:在所述第一模式中,致能第一中断控制机制,其中经致能的所述第一中断控制机制用以控制在已发送的所述完成信息的所述数目达到所述预设数目后,传送所述中断信息至所述主机系统;以及在所述第二模式中,禁能所述第一中断控制机制。

在本发明的一范例实施例中,所述存储器管理电路指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,在计数时间达到预设时间之后,传送所述中断信息至所述主机系统;以及在第二模式中,在所述计数时间达到所述预设时间之前,传送所述中断信息至所述主机系统。

在本发明的一范例实施例中,所述存储器管理电路指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统的操作还包括:在所述第一模式中,致能第二中断控制机制,其中经致能的所述第二中断控制机制用以控制在所述计数时间达到所述预设时间之后,传送所述中断信息至所述主机系统;以及在所述第二模式中禁能所述第二中断控制机制。

在本发明的一范例实施例中,所述存储器管理电路指示所述中断控制电路根据所述传送模式传送所述中断信息至所述主机系统的操作包括:在第一模式中,根据已发送的第一数目的所述完成信息,传送所述中断信息至所述主机系统;以及在所述第二模式中,根据已发送的第二数目的所述完成信息,传送所述中断信息至所述主机系统,其中所述第一数目大于所述第二数目。

在本发明的一范例实施例中,所述第一数目为大于一的整数,且所述第二数目为一。

基于上述,在接收到第一指令并完成对应于所述第一指令的第一操作后,一个完成信息可被传送给主机系统。同时,根据所检测的指令处理信息,中断信息的传送模式可被决定。根据所决定的传送模式,中断信息可被传送至主机系统。通过动态地决定中断信息的传输模式,无论指令排列的深度是深或浅,中断信息皆可以适当地被传送至主机系统,避免回应逾时或主机系统在主机指令处理程序与检查程序之间太频繁切换。

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

附图说明

图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:电源管理电路;

513:检测电路;

601:存储区;

602:替换区;

610(0)~610(B):实体单元;

612(0)~612(C):逻辑单元;

S701:步骤(传送通知);

S702:步骤(获得指令);

S703:步骤(传送读取数据或获得写入数据);

S704:步骤(传送完成信息);

S705:步骤(传送中断信息);

711、721:指令排列;

712、722:数据缓存;

713、723:完成排列;

714:中断器;

724:中断控制电路;

801~810、901~903:完成信息;

811、911~913:中断信息;

S1001:步骤(接收第一指令并对应于所述第一指令执行第一操作);

S1002:步骤(对应于所述第一操作的完成发送完成信息至主机系统);

S1003:步骤(检测指令处理信息);

S1004:步骤(根据所述指令处理信息决定中断信息的传送模式);

S1005:步骤(根据所述传送模式传送中断信息至主机系统)。

具体实施方式

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

图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。

请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至系统总线(system bus)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、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。

在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通信装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的安全数码(SecureDigital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi MediaCard,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接连接于主机系统的主板上的嵌入式存储装置。

图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。

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

连接接口单元402用以将存储器存储装置10连接至主机系统11。在本范例实施例中,连接接口单元402是相容于快速非易失性存储器(NVM express,NVMe)接口规范。然而,在另一范例实施例中,连接接口单元402也可以是符合其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于包含存储器控制电路单元404芯片外。

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

可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入数据。可复写式非易失性存储器模块406可以是单阶存储单元(SingleLevel Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予写入电压至控制栅极,可以改变电荷捕捉层的电子量,进而改变存储单元的临界电压。此改变存储单元临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。

在本范例实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。

在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(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具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在另一范例实施例中,存储器管理电路502的控制指令也可以硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。

主机接口504是连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于NVM express接口标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于SATA标准、PATA标准、IEEE1394标准、PCI Express标准、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会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。

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

图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。

请参照图6,存储器管理电路502会将可复写式非易失性存储器模块406的实体单元610(0)~610(B)逻辑地分组至存储区601与替换区602。存储区601中的实体单元610(0)~610(A)是用以存储数据,而替换区602中的实体单元610(A+1)~610(B)则是用以替换存储区601中损坏的实体单元。例如,若从某一个实体单元中读取的数据所包含的错误过多而无法被更正时,此实体单元会被视为是损坏的实体单元。须注意的是,若替换区602中没有可用的实体抹除单元,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(write protect)状态,而无法再写入数据。

在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元也可以是指一个实体地址、一个实体程序化单元或由多个连续或不连续的实体地址组成。存储器管理电路502会配置逻辑单元612(0)~612(C)以映射存储区601中的实体单元610(0)~610(A)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(C)中的每一者可被映射至一或多个实体单元。

存储器管理电路502会将逻辑单元与实体单元之间的映射关系(也称为逻辑-实体地址映射关系)记录于至少一逻辑-实体地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体地址映射表来执行对于存储器存储装置10的数据存取操作。

图7是根据本发明的一范例实施例所示出的数据传输操作的示意图。以下以图7作为范例对采用NVM express接口标准的存储装置10与主机系统11之间的沟通机制进行说明。

请参照图7,当主机系统11欲对存储器存储装置10执行存取操作(例如,从存储器存储装置10读取数据或将数据写入至存储器存储装置10)时,主机系统11的处理器111(例如CPU)可执行一个处理程序(也称为主机指令处理程序)以产生欲提供给存储器存储装置的操作指令。处理器111可将准备好的操作指令放置在一个指令排列(command queue)711中。然后,处理器111可传送一个通知给存储器存储装置10(步骤S701)。在一范例实施例中,步骤S701之操作也称为响铃(ring)。须注意的是,在NVM express接口标准下,在发出通知之后,主机系统11对于存储器存储装置10的主动行为至此结束。

存储器管理电路502可接收此通知并主动地从指令排列711中读取对应于此通知的一或多个指令(也称为第一指令)(步骤S702)。例如,所获得的指令可被缓存在一个指令排列721。根据指令排列721中的指令,存储器管理电路502可执行相应的存取操作(也称为第一操作)。例如,根据一个读取指令,存储器管理电路502可对可复写式非易失性存储器模块406执行一个数据读取操作并且将所获得的读取数据从数据缓存(data buffer)722传送给主机系统11(步骤S703)。例如,此读取数据可被存入主机系统11的数据缓存712。或者,根据一个写入指令,存储器管理电路502可主动地从主机系统11的数据缓存712中读取写入数据并将其缓存于数据缓存722中(步骤S703)。然后,存储器管理电路502可对可复写式非易失性存储器模块406执行一个数据写入操作以将缓存在数据缓存722的写入数据写入至可复写式非易失性存储器模块406。

对应于一个存取操作的完成,存储器管理电路502可产生一个完成信息,并且此完成信息可被缓存在一个完成排列(completion queue)723。此完成信息用于通知主机系统11相应于某一个指令的存取操作已完成。然后,完成信息可被传送给主机系统11并被缓存在主机系统11的一个完成排列713中(步骤S704)。根据完成排列713中的数据,主机系统11可得知对应于特定操作指令的存储器存取操作已经完成。或者,在一范例实施例中,根据完成排列713中的数据,主机系统11还可获得存储器存储装置10对应于一或多个操作指令的存取数据量以/或数据存取速度等等。

在图7的范例实施例中,指令排列711、数据缓存712及完成排列713是位于主机系统11的随机存取存储器112中,并且指令排列721、数据缓存722及完成排列723是位于存储器存储装置10的缓冲存储器510中。然而,在另一范例实施例中,指令排列711、数据缓存712及完成排列713中的任一者也可以是位于主机系统11之其他的存储媒体中,并且指令排列721、数据缓存722及完成排列723中的任一者也可以是位于存储器存储装置10之其他的存储媒体(例如,可复写式非易失性存储器模块406)中。

在本范例实施例中,主机系统11还配置有一个中断器714,并且存储器存储装置10还配置有一个中断控制电路724。中断器714连接至处理器111,且中断控制电路724连接至存储器管理电路502。在产生和/或传送至少一个完成信息后,中断控制电路724会传送一个中断信息至主机系统11的中断器714(步骤S705)。此中断信息用以中断主机系统11的主机指令处理程序。例如,中断控制电路724可以是在存储器管理电路502完成一或多个操作指令后或者在发生中断信息的回应逾时(timeout)后才传送一个中断信息。在接收到中断信息后,中断器714可传送一个中断信号至处理器111。根据此中断信号,处理器111可将执行中的操作程序从先前用于产生操作指令的主机指令处理程序转换为一个检查程序,以中断指令产生作业并开始检查所接收到的完成信息。在完成检查程序后,处理器111可再次切换为执行主机指令处理程序,以继续提供操作指令至指令排列711。

须注意的是,若当前指令排列711或721是处于高排列深度的状态(例如指令排列711或721中待处理的指令数目介于9个至127个之间),则对应于多个指令连续地被处理,完成信息与中断信息被提供的频率较高。但是,若主机系统11太频繁地接收到中断信息(即中断控制电路724提供中断信息的频率太高),则处理器111需要频繁地在主机指令处理程序与检查程序之间切换,从而增加系统负载。

或者,若当前指令排列711或721是处于低排列深度的状态(例如指令排列711或721中待处理的指令的数目介于1个至8个之间),则对应于需要处理的指令较少,完成信息与中断信息被提供的频率也较低。例如,在低排列深度的状态下,中断控制电路724可能会等到中断信息的回应逾时才会传送一个中断信息。但是,若主机系统11太久未接收到中断信息(即中断控制电路724提供中断信息的频率太低),则主机系统11可能会认为存储器存储装置10尚未完成某一个存取操作而暂不执行其他作业,从而拖慢主机系统11和/或存储器存储装置10的数据处理速度。

在一范例实施例中,存储器管理电路502可根据指令处理信息来动态决定和/或调整中断信息的传送模式。此指令处理信息可包括已接收的指令的数目、已完成的指令的数目、待执行的指令的数目及中断信息发送状态的至少其中之一。通过动态决定和/或调整中断信息的传送模式,无论当前指令排列711或721是处于高排列深度或低排列深度,可在增加主机系统11的系统负载与降低主机系统11和/或存储器存储装置10的数据处理速度之间取得平衡。例如,若当前指令排列711或721是处于高排列深度的状态,则存储器管理电路502可减少中断信息的传输频率,以降低主机系统11在主机指令处理程序与检查程序之间切换的频率。或者,若当前指令排列711或721是处于低排列深度的状态,则存储器管理电路502可增加(或不减少)中断信息的传输频率,以提高主机系统11和/或存储器存储装置10的数据处理速度。

在一范例实施例中,所决定的传送模式可包括第一模式与第二模式。第一模式对应于用于传送中断信息的第一规则,第二模式对应于用于传送中断信息的第二规则,且第一规则不同于第二规则。根据不同的模式和/或规则,存储器管理电路502可控制中断控制电路724传送中断信息的频率。

在一范例实施例中,第一规则是用以降低中断信息的传送频率。在一范例实施例中,第二规则是用以提高(或不降低)中断信息的传送频率或将中断信息的传送频率回复为正常传送频率。

请同时参照图5与图7,在一范例实施例中,存储器控制电路单元404还具有一个检测电路513。检测电路513用以检测指令处理信息。在一范例实施例中,所检测的指令处理信息包括指令排列711或721中待处理的指令的数目。例如,检测电路513可计数一计数值。当检测到一个新的指令被加入至指令排列711或721时,检测电路513可将此计数值加一。藉此,根据此计数值,检测电路513可获得当前待处理的指令的数目并通知存储器管理电路502。在一范例实施例中,检测电路513可检测并计数指令排列711或721中已接收的指令的数目以及已完成的指令的数目。检测电路513可根据已接收的指令的数目以及已完成的指令的数目之间的差值决定待处理的指令的数目。

在一范例实施例中,存储器管理电路502可根据待处理的指令的数目是否大于门槛值(例如8)决定所述传送模式。例如,存储器管理电路502可判断待处理的指令的数目是否大于此门槛值。若待处理的指令的数目大于此门槛值,存储器管理电路502可将中断信息的传送模式设定为第一模式。或者,若待处理的指令的数目不大于此门槛值,存储器管理电路502可将中断信息的传送模式设定为第二模式。须注意的是,所述门槛值还可以是7或9等正整数,本发明不加以限制。

在一范例实施例中,存储器管理电路502可持续计数已发送的完成信息的数目。基于第一模式,在已发送的完成信息的数目达预设数目之后,存储器管理电路502可指示中断控制电路724传送中断信息至主机系统11。然而,基于第二模式,在已发送的完成信息的数目达到此预设数目之前,存储器管理电路502即可指示中断控制电路724传送中断信息至主机系统11。

在一范例实施例中,基于第一模式,存储器管理电路502可致能一个中断控制机制(也称为第一中断控制机制)。经致能的第一中断控制机制用以控制在已发送的完成信息的数目达到一个预设数目后,传送中断信息至主机系统11。然而,基于第二模式,存储器管理电路502可禁能(或不致能)此第一中断控制机制。

在一范例实施例中,在致能第一中断控制机制后,存储器管理电路502会计数已发送的完成信息的数目以控制中断信息的传送。在一范例实施例中,在未致能第一中断控制机制的状况下,存储器管理电路502可不计数已发送的完成信息的数目。

图8是根据本发明的一范例实施例所示出的基于第一模式传送中断信息的示意图。横轴方向为时间,并且假设预设数目为10。

请参照图7与图8,在第一模式中,完成信息801~810被依序传送至主机系统11。完成信息801~810分别对应于一个已被执行的操作指令。响应于已发送的完成信息801~810的数目(即10)达到此预设数目,存储器管理电路502可指示中断控制电路724传送中断信息811至主机系统11。但是,在第一模式中,在尚未传送完成信息810之前,存储器管理电路502暂不指示中断控制电路724传送中断信息811至主机系统11。或者,从另一角度来看,基于第一模式,若已发送的完成信息的数目未达到此预设数目,则存储器管理电路502暂时禁止中断控制电路724传送中断信息811至主机系统11,直到完成信息801~810皆已发送为止。在图8的一范例实施例中,中断信息811的传送与否是受到经致能的第一中断控制机制所控制。此外,根据中断信息811,主机系统11的处理器11可得知完成信息801~810所分别对应的10个指令已被执行完毕。

图9是根据本发明的一范例实施例所示出的基于第二模式传送中断信息的示意图。横轴方向为时间,并且假设预设数目为10。

请参照图7与图9,基于第二模式,完成信息901~903以及中断信息911~913被依序传送至主机系统11。完成信息901~903分别对应于一个已被执行的操作指令。中断信息911~913分别对应于完成信息901~903而被传送。也即,在已发送的完成信息901~903的数目(即3)达到所设定的预设数目(即10)之前,存储器管理电路502即可指示中断控制电路724依序传送中断信息911~913至主机系统11。在图9的一范例实施例中,第一中断控制机制未被致能,故中断信息911~913的传送与否不受到第一中断控制机制所控制。此外,根据中断信息911~913,主机系统11的处理器11可得知完成信息901~903所分别对应的3个指令已被执行完毕。

须注意的是,虽然图8与图9的范例实施例中是假设预设数目为10,然而,在其他范例实施例中,预设数目也可以设定为6或11等大于1的整数,本发明不加以限制。

在图8的一范例实施例中,根据已发送的第一数目(例如10个)的完成信息801~810,存储器管理电路502指示中断控制电路724传送中断信息811至主机系统11。在图9的一范例实施例中,根据已发送的第二数目(例如1个)的完成信息901,存储器管理电路502指示中断控制电路724传送中断信息911至主机系统11。在另一范例实施例中,第一数目和/或第二数目也可以是其他大于1的整数,只要第一数目大于第二数目即可。例如,在图9的另一范例实施例中,也可以根据已发送的2个的完成信息901与902而传送中断信息911至主机系统11,且中断信息911可告知主机系统11完成信息901与902所各别对应的指令已被执行。

在一范例实施例中,基于第一模式,在计数时间达到预设时间之后,存储器管理电路502可指示中断控制电路724传送中断信息至主机系统11。例如,在传送某一个中断信息后,中断控制电路724可启动一个计时器(或计数器)以开始计时。若此计时器的计数时间达到此预设时间(例如1秒)且在此预设时间内没有任何中断信息被传送,则存储器管理电路502可指示中断控制电路724根据此计数时间内传送的一或多个完成信息提供中断信息至主机系统11。藉此,可避免中断信息的回应逾时。然而,在第二模式中,在计数时间达到预设时间之前,存储器管理电路502即可指示中断控制电路724传送中断信息至主机系统11。

在一范例实施例中,基于第一模式,存储器管理电路502可致能另一个中断控制机制(也称为第二中断控制机制)。经致能的第二中断控制机制用以控制在计数时间达到预设时间之后,传送中断信息至主机系统11。然而,基于第二模式,存储器管理电路502可禁能(或不致能)此第二中断控制机制。

在一范例实施例中,在致能第二中断控制机制后,中断控制电路724会启动计时器以计时并据以控制中断信息的传送。在一范例实施例中,在未致能第二中断控制机制的状况下,存储器管理电路502可不启动计时器。

须注意的是,第一中断控制机制与第二中断控制机制可以在第一模式中同时被致能。例如,在图8的一范例实施例中,假设第一中断控制机制与第二中断控制机制皆被致能,且预设数目为10。基于第一模式,若只累积到9个完成信息801~809且从发送完成信息801开始的计数时间已经达到预设时间(例如1秒),则即便未满足第一中断控制机制的中断信息发送条件(即已发送的完成信息的数目大于预设数目),中断信息811也可以受第二中断控制机制控制而被发送至主机系统11,以避免回应逾时。

在一范例实施例中,也可以在第一模式中同时致能第一中断控制机制与第二中断控制机制,而在第二模式中致能第二中断控制机制但不致能第一中断控制机制。在一范例实施例中,中断信息的传送模式还可以包括更多模式,而不限于前述第一模式与第二模式。

在一范例实施例中,中断信息发送状态反映预设时间范围内中断信息的发送状态或发送模式。例如,此中断信息发送状态可包括中断信息的发送记录。存储器管理电路502可根据过去一段时间(即预设时间范围)内中断信息的发送状态或发送模式而动态调整中断信息的传送模式。例如,在一范例实施例中,若中断信息发送状态反映连续或在预设时间范围内发生N次(N大于或等于1)中断信息的回应逾时事件,存储器管理电路502可将中断信息的传送模式从第一模式切换为第二模式。例如,在第一模式中,若连续或在预设时间范围内发生N次因为满足第二中断控制机制的中断信息发送条件(即计数时间达到预设时间)而发送中断信息的事件(即中断信息的回应逾时事件),则存储器管理电路502可将中断信息的传送模式动态切换为第二模式,以禁能第一中断控制机制和/或第二中断控制机制。

图10是根据本发明的一范例实施例所示出的存储器管理方法的流程图。请参照图10,在步骤S1001中,接收第一指令并对应于所述第一指令执行第一操作。在步骤S1002中,对应于所述第一操作的完成发送完成信息至主机系统。在步骤S1003中,检测指令处理信息。在步骤S1004中,根据指令处理信息决定中断信息的传送模式。在步骤S1005中,根据所述传送模式传送中断信息至主机系统。

然而,图10中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图10中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图10的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。

综上所述,在接收到第一指令并完成对应于所述第一指令的第一操作后,一个完成信息可被传送给主机系统。同时,根据所检测的指令处理信息,中断信息的传送模式可被决定。根据所决定的传送模式,中断信息可被传送至主机系统。通过动态地决定中断信息的传输模式,无论指令排列的深度是深或浅,中断信息皆可以适当地被传送至主机系统,避免回应逾时或主机系统在主机指令处理程序与检查程序之间太频繁切换。

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

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:高速缓存监视

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!