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

文档序号:1719703 发布日期:2019-12-17 浏览:12次 >En<

阅读说明:本技术 存储器管理方法、存储器存储装置及存储器控制电路单元 (Memory management method, memory storage device and memory control circuit unit ) 是由 仇志良 于 2018-06-11 设计创作,主要内容包括:本发明的范例实施例提供一种存储器管理方法、存储器存储装置及存储器控制电路单元,存储器管理方法用于包括可复写式非易失性存储器模块的存储器存储装置,所述存储器管理方法包括:接收多个指令;检测电源故障;以及在发生所述电源故障后,根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令。(An exemplary embodiment of the present invention provides a memory management method, a memory storage device and a memory control circuit unit, the memory management method is used for the memory storage device comprising a rewritable nonvolatile memory module, the memory management method comprises: receiving a plurality of instructions; detecting a power failure; and after the power failure occurs, sending an instruction sequence according to a first instruction in the instructions to instruct to execute a first operation, and ignoring a second instruction in the instructions.)

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

技术领域

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

背景技术

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

在存储器存储装置的运作过程中,可能会无预警地发生电源故障(powerglitch)。此电源故障可能会导致存储器存储装置的供应电源在短时间内发生大幅变化。一般来说,一旦发生电源故障,存储器存储装置就会启动重置机制,以清空缓冲存储器(包含缓冲存储器中的指令队列)并备份尚未写入完成的数据。但是,若存储器存储装置只是短暂地发生电源故障且随即恢复正常供电,则前述重置机制往往需要花费很多时间,从而导致系统效能下降。

发明内容

本发明的范例实施例提供一种存储器管理方法、存储器存储装置及存储器控制电路单元,可提高电源故障发生时的系统恢复效率。

本发明的范例实施例提供一种存储器管理方法,其用于包括可复写式非易失性存储器模块的存储器存储装置,所述存储器管理方法包括:接收多个指令;检测电源故障;以及在发生所述电源故障后,根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令。

在本发明的一范例实施例中,所述指令是暂存于所述存储器存储装置的缓冲存储器中的指令队列中。

在本发明的一范例实施例中,根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作且忽略所述指令中的所述第二指令的步骤还包括:判断所述电源故障发生时于所述指令队列中正在被执行的所述指令中的一者是所述第一指令或所述第二指令;若为所述第一指令,则于所述电源故障后重新根据所述第一指令发送所述指令序列以指示执行所述第一操作;以及若为所述第二指令,则于所述电源故障后不重新根据所述第二指令发送所述指令序列。

在本发明的一范例实施例中,所述存储器管理方法还包括以下操作的至少其中之一:若检测到所述电源故障,停止执行对应于抹除指令的抹除操作;若检测到所述电源故障,停止执行对应于读取指令的读取操作;以及若检测到所述电源故障,继续执行对应于写入指令的程序化操作。

在本发明的一范例实施例中,继续执行对应于所述写入指令的所述程序化操作的步骤包括:判断所述写入指令为全连续程序化指令或非全连续程序化指令;若所述写入指令为所述非全连续程序化指令,继续执行对应于所述写入指令的所述程序化操作;以及若所述写入指令为所述全连续程序化指令,检查此全连续程序化指令所带有的特定标记,并根据所述特定标记在完成对应于所述写入指令的所述程序化操作后停止执行其他指令。

在本发明的一范例实施例中,根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的步骤包括:扫描所述指令队列;若扫瞄到第一类指令,停止扫瞄并恢复所述指令队列;以及若扫瞄到第二类指令,继续扫瞄。

在本发明的一范例实施例中,根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的步骤包括:扫描所述指令队列;若扫瞄到抹除指令,根据所述抹除指令发送一抹除指令序列至所述可复写式非易失性存储器模块;若扫瞄到第一读取指令与对应于所述第一读取指令的至少一读取DMA指令,使所述第一读取指令无效,并根据所述读取DMA指令发送第一读取指令序列至所述可复写式非易失性存储器模块;以及若扫瞄到第二读取指令且未扫瞄到对应于所述第二读取指令的至少一读取DMA指令,根据所述第二读取指令发送第二读取指令序列至所述可复写式非易失性存储器模块。

本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以接收多个指令。所述存储器控制电路单元还用以检测电源故障。在发生所述电源故障后,所述存储器控制电路单元还用以根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作且忽略所述指令中的所述第二指令的操作还包括:判断所述电源故障发生时于所述指令队列中正在被执行的所述指令中的一者是所述第一指令或所述第二指令;若为所述第一指令,则于所述电源故障后重新根据所述第一指令发送所述指令序列以指示执行所述第一操作;以及若为所述第二指令,则于所述电源故障后不重新根据所述第二指令发送所述指令序列。

在本发明的一范例实施例中,所述存储器控制电路单元还用以执行以下操作的至少其中之一:若检测到所述电源故障,停止执行对应于抹除指令的抹除操作;若检测到所述电源故障,停止执行对应于读取指令的读取操作;以及若检测到所述电源故障,继续执行对应于写入指令的程序化操作。

在本发明的一范例实施例中,所述存储器控制电路单元继续执行对应于所述写入指令的所述程序化操作的操作包括:判断所述写入指令为全连续程序化指令或非全连续程序化指令;若所述写入指令为所述非全连续程序化指令,继续执行对应于所述写入指令的所述程序化操作;以及若所述写入指令为所述全连续程序化指令,检查此全连续程序化指令所带有的特定标记,并根据所述特定标记在完成对应于所述写入指令的所述程序化操作后停止执行其他指令。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的操作包括:扫描所述指令队列;若扫瞄到第一类指令,停止扫瞄并恢复所述指令队列;以及若扫瞄到第二类指令,继续扫瞄。

在本发明的一范例实施例中,所述存储器控制电路单元根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的操作包括:扫描所述指令队列;若扫瞄到抹除指令,根据所述抹除指令发送抹除指令序列至所述可复写式非易失性存储器模块;若扫瞄到第一读取指令与对应于所述第一读取指令的至少一读取DMA指令,使所述第一读取指令无效,并根据所述读取DMA指令发送第一读取指令序列至所述可复写式非易失性存储器模块;以及若扫瞄到一第二读取指令且未扫瞄到对应于所述第二读取指令的至少一读取DMA指令,根据所述第二读取指令发送第二读取指令序列至所述可复写式非易失性存储器模块。

本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块。所述存储器控制电路单元包括主机接口、存储器接口、缓冲存储器及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述缓冲存储器。所述存储器管理电路用以接收多个指令。所述存储器管理电路还用以检测电源故障。在发生所述电源故障后,所述存储器管理电路还用以根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令。

在本发明的一范例实施例中,所述指令是暂存于所述存储器存储装置的所述缓冲存储器中的所述指令队列中,而所述存储器管理电路根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作且忽略所述指令中的所述第二指令的操作还包括:判断所述电源故障发生时于所述指令队列中正在被执行的所述指令中的一者是所述第一指令或所述第二指令;若为所述第一指令,则于所述电源故障后重新根据所述第一指令发送所述指令序列以指示执行所述第一操作;以及若为所述第二指令,则于所述电源故障后不重新根据所述第二指令发送所述指令序列。

在本发明的一范例实施例中,所述第一指令包括抹除指令与读取指令的至少其中之一,且所述第二指令包含写入指令。

在本发明的一范例实施例中,所述存储器管理电路还用以执行以下操作的至少其中之一:若检测到所述电源故障,停止执行对应于抹除指令的抹除操作;若检测到所述电源故障,停止执行对应于读取指令的读取操作;以及若检测到所述电源故障,继续执行对应于写入指令的程序化操作。

在本发明的一范例实施例中,所述存储器管理电路继续执行对应于所述写入指令的所述程序化操作的操作包括:判断所述写入指令为全连续程序化指令或非全连续程序化指令;若所述写入指令为所述非全连续程序化指令,继续执行对应于所述写入指令的所述程序化操作;以及若所述写入指令为所述全连续程序化指令,检查此全连续程序化指令所带有的特定标记,并根据所述特定标记在完成对应于所述写入指令的所述程序化操作后停止执行其他指令。

在本发明的一范例实施例中,所述存储器管理电路根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的操作包括:扫描所述指令队列;若扫瞄到第一类指令,停止扫瞄并恢复所述指令队列;以及若扫瞄到第二类指令,继续扫瞄。

在本发明的一范例实施例中,所述第一类指令包括抹除指令与写入指令的至少其中之一,且所述第二类指令包括读取指令。

在本发明的一范例实施例中,所述存储器管理电路根据所述指令中的所述第一指令发送所述指令序列以指示执行所述第一操作的操作包括:扫描所述指令队列;若扫瞄到抹除指令,根据所述抹除指令发送抹除指令序列至所述可复写式非易失性存储器模块;若扫瞄到第一读取指令与对应于所述第一读取指令的至少一读取DMA指令,使所述第一读取指令无效,并根据所述读取DMA指令发送第一读取指令序列至所述可复写式非易失性存储器模块;以及若扫瞄到第二读取指令且未扫瞄到对应于所述第二读取指令的至少一读取DMA指令,根据所述第二读取指令发送第二读取指令序列至所述可复写式非易失性存储器模块。

基于上述,在接收到多个指令后,若发生电源故障,则所述指令中的至少部分指令(即第一指令)可被(重复)执行,且所述指令中的至少部分指令(即第二指令)可被忽略。藉此,可提高电源故障发生时的系统恢复效率。

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

附图说明

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

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

图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。

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

图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。

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

图7是根据本发明的一范例实施例所示出的指令序列的示意图。

图8是根据本发明的一范例实施例所示出的电源故障的示意图。

图9A是根据本发明的一范例实施例所示出的扫瞄与恢复指令队列的示意图。

图9B是根据本发明的一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

图10A是根据本发明的另一范例实施例所示出的扫瞄与恢复指令队列的示意图。

图10B是根据本发明的另一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

图11A是根据本发明的另一范例实施例所示出的扫瞄与恢复指令队列的示意图。

图11B是根据本发明的另一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

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

图12B是根据本发明的一范例实施例所示出的扫瞄指令队列的示意图。

图12C是根据本发明的另一范例实施例所示出的扫瞄指令队列的示意图。

图13是根据本发明的一范例实施例所示出的存储器管理方法的流程图。

附图标记说明

10、30:存储器存储装置

11、31:主机系统

110:系统总线

111:处理器

112:随机存取存储器

113:只读存储器

114:数据传输接口

12:输入/输出(I/O)装置

20:主机板

201:U盘

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):逻辑单元

710:指令队列

1210:缓冲区

1211、1212:缓冲器

1220:存储单元阵列

1301:步骤(接收多个指令)

1302:步骤(检测电源故障)

1303:步骤(在发生所述电源故障后,根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令)

具体实施方式

一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(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可例如是U盘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是相容于串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCIExpress)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。

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

可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level 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是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、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会为对应此写入指令的数据产生对应的错误更正码(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是根据本发明的一范例实施例所示出的指令序列的示意图。图8是根据本发明的一范例实施例所示出的电源故障的示意图。

请参照图1、图4、图5、图7及图8,缓冲存储器510中配置有一个指令队列(queue)710。在一范例实施例中,指令队列710也称为多触发序列(Multi-trigger queue,MTQ)。存储器管理电路502可以从主机系统11接收至少一个指令并将来自主机系统11的指令(例如指令CMD(0)~CMD(N))加入至指令队列710。指令CMD(0)~CMD(N)可依接收的先后顺序排序在指令队列710中。例如,在指令队列710中,最下面的指令CMD(0)最先被接收,并且最上面的指令CMD(N)最后被接收。在存储器管理电路502运作时,指令CMD(0)可先被执行,且指令CMD(N)可最后被执行。在一范例实施例中,从主机系统11接收的指令也可以先暂存在缓冲存储器510中,然后再依据特定规则加入至指令队列710中,以调整所接收的指令的执行顺序。

在一范例实施例中,指令CMD(0)~CMD(N)可包括来自主机系统11的写入指令、抹除指令及读取指令的至少其中一者。存储器管理电路502可根据写入指令发送写入指令序列至可复写式非易失性存储器模块406以指示执行将数据存储至可复写式非易失性存储器模块406的程序化操作。存储器管理电路502可根据抹除指令发送抹除指令序列至可复写式非易失性存储器模块406以指示执行将数据从可复写式非易失性存储器模块406抹除的抹除操作。存储器管理电路502可根据读取指令发送读取指令序列至可复写式非易失性存储器模块406以指示执行将数据从可复写式非易失性存储器模块406读取的读取操作。然而,在另一范例实施例中,指令CMD(0)~CMD(N)还可包括来自主机系统11的其他类型的指令,本发明不加以限制。

在正常供电状态(或稳定供电状态)下,存储器存储装置10的供应电压VDD会被维持在一个正常电压范围(例如1.65V至3.6V),且此正常电压范围高于一个电压值VTH(也称为预设电压值)。当发生电源故障(power glitch)时,此电源故障会导致供应电压VDD在此时间范围内降低至低于此预设电压值VTH。在经过此时间范围后,供应电压VDD会回复至高于此预设电压值VTH。

存储器管理电路502可检测此电源故障。例如,存储器管理电路502可配置有一个电压检测器,此电压检测器可检测存储器存储装置10的供应电压VDD是否低于此预设电压值VTH。若供应电压VDD低于此预设电压值VTH,存储器管理电路502可判定发生电源故障。

在发生所述电源故障后,存储器管理电路502可扫瞄指令队列710并根据扫瞄结果恢复(resume)指令队列710。以图7为例,假设发生电源故障时,存储器管理电路502可从指令队列710中当前正在执行(或即将执行)的指令CMD(0)开始由下往上扫瞄。基于所设定的扫瞄与处理规则,存储器管理电路502可直接根据扫瞄结果在缓冲存储器510中恢复指令队列710。换言之,在发生所述电源故障后,指令队列710不需要被重置(reset),从而加快系统遇到电源故障时的恢复效率。

在一范例实施例中,指令队列710中的指令可包括第一类指令和/或第二类指令。若扫瞄到第一类指令时,存储器管理电路502可停止扫瞄并恢复指令队列710。若扫瞄到第二类指令时,存储器管理电路502可继续扫瞄指令队列710。在一范例实施例中,第一类指令可包括抹除指令和/或写入指令,而第二类指令则可包括读取指令。须注意的是,在另一范例实施例中,第一类指令也可包括读取指令,且第二类指令则可包括抹除指令和/或写入指令,本发明不加以限制。

图9A是根据本发明的一范例实施例所示出的扫瞄与恢复指令队列的示意图。图9B是根据本发明的一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

请参照图4、图5、图9A与图9B,响应于所发生的电源故障,存储器管理电路502会由下往上开始扫瞄指令队列710。在本范例实施例中,假设所扫瞄到的指令(即图7的CMD(0))为抹除指令,其表示在发生电源故障之前,可能一个抹除操作响应于此抹除指令而正在(或即将)执行。因此,当检测到电源故障时,存储器管理电路502会停止执行此抹除操作(此抹除操作可能尚未执行完毕)。待电源故障恢复(即供应电压VDD回复至正常电压范围)后,存储器管理电路502会根据此抹除指令重新发送一个抹除指令序列以指示可复写式非易失性存储器模块406重新执行被停止的抹除操作,如图9B所示。

另一方面,存储器管理电路502会响应于所扫瞄到的指令为抹除指令,而判定扫瞄操作完成并停止扫瞄指令队列710。在停止扫瞄后,存储器管理电路502会恢复指令队列710。例如,存储器管理电路502可将此抹除指令从指令队列710中移除并根据剩余的指令CMD(1)~CMD(N)更新指令队列710,如图9A所示。

图10A是根据本发明的另一范例实施例所示出的扫瞄与恢复指令队列的示意图。图10B是根据本发明的另一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

请参照图5、图10A与图10B,响应于所发生的电源故障,存储器管理电路502会由下往上开始扫瞄指令队列710。在本范例实施例中,假设所扫瞄到的指令(即图7的CMD(0))为写入指令,其表示在发生电源故障之前,可能一个程序化操作响应于此写入指令而正在(或即将)执行。须注意的是,当检测到电源故障时,存储器管理电路502可不停止执行此程序化操作,而可允许此程序化操作继续执行,如图10B所示。

在一范例实施例中,存储器管理电路502可判断所扫瞄到的写入指令为全连续程序化(Full Sequential Programming,FSP)指令或非全连续程序化(non-FSP)指令。若所扫瞄到的写入指令为非全连续程序化指令(例如指令码为8011的写入指令),则存储器管理电路502可继续执行此指令所对应的程序化操作。然而,若所扫瞄到的写入指令为全连续程序化指令(例如指令码为8015的写入指令),则存储器管理电路502可检查此全连续程序化指令所带有的一特定标记。此特定标记可用以控制是否在完成对应于此写入指令的程序化操作后停止执行其他指令。存储器管理电路502可根据此特定标记在完成对应于此写入指令的程序化操作后停止执行其他指令。

在一范例实施例中,在检测到电源故障时,所执行的程序化操作也包含将缓冲存储器510中的数据(包含此写入指令所指示存储的数据)备份至一个特定物理单元。例如,此特定物理单元可具有较快的写入速度和/或较高的数据可靠度。例如,存储器管理电路502可使用快页(fast page)模式(或SLC模式)将数据备份至此特定物理单元。快页模式与SLC模式是以在一个存储单元中仅存储一个比特的方式来将数据存储至存储单元中,差别仅在于所使用的程序化电压不同。尔后,若此电源故障并未如预期恢复,则此特定物理单元中的数据可用于在存储器存储装置10恢复正常供电后回复先前的工作状态(即重置指令队列710)。

在一范例实施例中,存储器管理电路502可响应于所扫瞄到的指令为写入指令,而判定扫瞄操作完成并停止扫瞄指令队列710。在停止扫瞄后,存储器管理电路502会恢复指令队列710。例如,存储器管理电路502可将此写入指令从指令队列710中移除并根据剩余的指令CMD(1)~CMD(N)更新指令队列710,如图10A所示。

一般来说,主机系统11可连续送出成对的非全连续程序化指令与全连续程序化指令,以指示连续执行相关的程序化操作。因此,在指令队列710中,全连续程序化指令往往排序在非全连续程序化指令之后。在一范例实施例中,若扫瞄到非全连续程序化指令,则存储器管理电路502可继续扫描指令队列710,以确认后面是否还有相应的全连续程序化指令。若扫瞄到全连续程序化指令或者依序扫瞄到非全连续程序化指令与全连续程序化指令,则存储器管理电路502可停止扫瞄指令队列710。

图11A是根据本发明的另一范例实施例所示出的扫瞄与恢复指令队列的示意图。图11B是根据本发明的另一范例实施例所示出的响应于电源故障所执行的系统操作的示意图。

请参照图4、图5、图11A与图11B,响应于所发生的电源故障,存储器管理电路502会由下往上开始扫瞄指令队列710。在本范例实施例中,假设所扫瞄到的指令(即图7的CMD(0))为读取指令,其表示在发生电源故障之前,可能一个读取操作响应于此读取指令而正在(或即将)执行。因此,当检测到电源故障时,存储器管理电路502会停止执行此读取操作(此读取操作可能尚未执行完毕)。待电源故障恢复(即供应电压VDD回复至正常电压范围)后,存储器管理电路502会根据此读取指令重新发送一个读取指令序列以指示可复写式非易失性存储器模块406重新执行被停止的读取操作,如图11B所示。

须注意的是,若所扫瞄到的指令为读取指令且指令队列710中还有待扫瞄的指令(例如指令CMD(1)~CMD(N)),则存储器管理电路502会继续扫瞄指令队列710,而不会直接停止扫瞄。换言之,存储器管理电路502可响应于所扫瞄到的指令为读取指令,而继续扫瞄指令队列710的下一个指令(例如指令CMD(1)),如图11A所示。

若所扫瞄的下一个指令为抹除指令,则此扫瞄操作可被停止并且执行类似于图9A与图9B的范例实施例中的相关操作。若所扫瞄的下一个指令为写入指令,则此扫瞄操作也可被停止并且执行类似于图10A与图10B的范例实施例中的相关操作。此外,若所扫瞄的下一个指令为读取指令,则此扫瞄操作可接续扫瞄下一个指令并且执行类似于图11A与图11B的范例实施例中的相关操作。

图12A是根据本发明的一范例实施例所示出的可复写式非易失性存储器模块的示意图。图12B是根据本发明的一范例实施例所示出的扫瞄指令队列的示意图。图12C是根据本发明的另一范例实施例所示出的扫瞄指令队列的示意图。

请参照图5、图7及图12A,可复写式非易失性存储器模块406可包括缓冲区1210与存储单元阵列1220。

在一范例实施例中,指令队列710中的读取指令可进一步区分为(通用)读取指令与读取直接存储器存取(Direct Memory Access,DMC)指令。根据(通用)读取指令,存储器管理电路502可发送相应的读取指令序列以指示可复写式非易失性存储器模块406将数据(也称为第一数据)从存储单元阵列1220读取至缓冲区1210。根据读取DMA指令,存储器管理电路502可发送相应的读取指令序列以指示可复写式非易失性存储器模块406将缓冲区1210中的第一数据传送至缓冲存储器510,以准备将此数据传送给主机系统11。

在一范例实施例中,若扫瞄到一个(通用)读取指令(也称为第一读取指令)且后续又扫瞄到对应于此第一读取指令的至少一个读取DMA指令,则存储器管理电路502可使此第一读取指令无效。待电源故障恢复后,存储器管理电路502会忽略此第一读取指令,而根据对应于此第一读取指令的读取DMA指令重新发送一个读取指令序列以指示可复写式非易失性存储器模块406重新执行被停止的读取操作。

以图12A与图12B为例,假设在指令队列710中扫瞄到一个读取指令(0)后,又扫瞄到对应于读取指令(0)的读取DMA指令(1)与读取DMA指令(2)。由于指令队列710中已经存在对应于读取指令(0)的读取DMA指令(1)与读取DMA指令(2),表示读取指令(0)所指示读取的数据(例如第一数据)已被从存储单元阵列1220读取至缓冲区1210。在此状况下,存储器管理电路502可使读取指令(0)无效。须注意的是,若读取指令(0)被无效,则在电源故障恢复后,存储器管理电路502不会根据此读取指令(0)重新发送指示将第一数据从存储单元阵列1220读取至缓冲区1210的读取指令序列。相反地,在电源故障恢复后,存储器管理电路502可直接根据读取DMA指令(1)与读取DMA指令(2)发送相应的读取指令序列以指示将第一数据从缓冲区1210读取至缓冲存储器510。

在一范例实施例中,若扫瞄到一个(通用)读取指令(也称为第二读取指令)且后续未扫瞄到对应于此第二读取指令的至少一个读取DMA指令,则待电源故障恢复后,存储器管理电路502可根据此第二读取指令重新发送一个读取指令序列以指示可复写式非易失性存储器模块406重新执行被停止的读取操作。

以图12A与图12C为例,在停止扫瞄指令队列710之前,有扫瞄到一个读取指令(0)但未扫瞄到对应于读取指令(0)的读取DMA指令。因此,在电源故障恢复后,存储器管理电路502可根据读取指令(0)发送相应的读取指令序列以指示将第一数据从存储单元阵列1220读取至缓冲区1210。

须注意的是,在图12A与图12B的范例实施例中,是假设缓冲区1210包括缓冲器1211与1212。读取DMA指令(1)是指示将一部分的第一数据从缓冲器1211传送至缓冲存储器510,且读取DMA指令(2)是指示将另一部分的第一数据从缓冲器1212传送至缓冲存储器510。在图12B的一范例实施例中,根据读取DMA指令(1)与读取DMA指令(2)发送的读取指令序列也称为多平面读取指令序列,且此多平面读取指令序列可指示可复写式非易失性存储器模块406平行地传送多个存储器平面(或通道)的数据。

在一范例实施例中,存储器管理电路502可根据是否扫瞄到足以产生至少一个多平面读取指令序列的读取DMA指令来决定是否停止扫瞄。例如,在图12B的一范例实施例中,若读取DMA指令(1)与读取DMA指令(2)可用以产生一个多平面读取指令序列,则在扫瞄到读取DMA指令(1)与读取DMA指令(2)后,可停止对于指令队列710的扫瞄。或者,在图12B的一范例实施例中,当扫瞄到读取DMA指令(1)时,可接续扫瞄指令队列710中的下一个指令。

在图12A的另一范例实施例中,若缓冲区1210包括更多缓冲器(例如3个缓冲器),则在扫瞄到对应于第一数据的3个读取DMA指令后可停止扫瞄。在电源故障恢复后,可根据这3个读取DMA指令产生多平面读取指令序列以指示可复写式非易失性存储器模块406平行地存取多个存储器平面(或通道)的数据。

在一范例实施例中,也可以制定其他的规则以停止所述扫描操作。以图7为例,若指令队列710为空的、指令队列710中没有尚未扫描的指令或扫瞄到的指令为虚设指令(例如dummy multi trigger parameter(MTP)),则可停止对于指令队列710的扫描。

从另一角度来看,在发生所述电源故障后,存储器管理电路502可从缓冲存储器510所暂存的多个指令中选择至少一指令(也称为第一指令)并根据所选择的指令重新发送相应的指令序列以指示可复写式非易失性存储器模块406执行相应操作。此外,在发生所述电源故障后,存储器管理电路502可忽略缓冲存储器510中的至少部分指令(也称为第二指令)。存储器管理电路502不会根据被忽略的第二指令重新发送相应的指令序列。例如,第一指令可包括图9A的抹除指令、图11A的读取指令、图12A的读取DMA指令(1)与读取DMA指令(2)及图12B的读取指令(0),而第二指令可包括图10A的写入指令与图12A的读取指令(0)。在一范例实施例中,在发生所述电源故障后,存储器管理电路502也可以根据缓冲存储器510中不是位于指令队列710内的其他指令重新发送相应的指令序列。

图13是根据本发明的一范例实施例所示出的存储器管理方法的流程图。请参照图13,在步骤1301中,接收多个指令。在步骤1302中,检测电源故障。在发生电源故障后,在步骤1303中,根据所述指令中的第一指令发送指令序列以指示执行第一操作,且忽略所述指令中的第二指令。

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

综上所述,在接收到至少一指令后,此指令可被加入至指令队列。电源故障可被检测。在发生所述电源故障后,所述指令队列可被扫瞄并且所述指令队列可根据扫瞄结果而恢复。此外,在发生电源故障后,本发明可选择性地根据指令队列中的部分指令(即第一指令)补打指令序列,而忽略部分指令(即第二指令)。相较于传统上一旦发生电源故障就需要执行系统重置,通过本发明范例实施例所述的快速恢复指令队列的机制,可提高电源故障发生时的系统恢复效率。

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

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:处理电路、缓冲器、存储器及处理器

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类