微指令序列执行方法及其装置与流程

文档序号:12362708阅读:772来源:国知局
微指令序列执行方法及其装置与流程

本发明涉及固态存储设备(Solid Storage Device,SSD),更具体地,本发明涉及存储器控制器中微码的执行。



背景技术:

同机械式硬盘相类似,固态存储设备(SSD)也是用于计算机系统的大容量、非易失性存储设备。固态存储设备一般以闪存(Flash)作为存储介质。如图1所示,为现有技术的存储系统的框图。其中主要包括主机系统110和固态存储设备120。其中,固态存储设备120包括接口模块130,存储控制器140,以及由多个闪存颗粒150组成的Flash阵列160。其中,接口模块130主要用于实现与主机系统通信的接口协议,例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,快速外围组件互连)、NVMe(NVM Express)、SCSI(Small Computer System Interface,小型计算机系统接口)、IDE(Integrated Drive Electronics,集成驱动器电子)等。通过接口模块130,固态存储设备呈现给主机系统的是拥有一定逻辑地址空间或物理地址空间的标准存储设备。存储控制器140是整个存储设备的控制核心,主要负责接口模块130与闪存阵列160之间的控制信号及数据的传输、闪存管理、主机逻辑地址到闪存物理地址的转换或映射、磨损均衡、和/或坏块管理等。可由软件、硬件、固件或者其组合的多种方式实现存储控制器140。

存储控制器140通过向闪存阵列160中的闪存颗粒150发送命令来访问闪存颗粒150。访问闪存颗粒150的命令包括,例如,读出、编程和/或擦除等。访问闪存颗粒150的命令还包括暂停(suspend)命令,用于临时暂停已发送给闪存颗粒150的命令的执行。

由于编程、擦除等命令的执行时间同读出命令相比相对较长。若读出命令跟在编程或擦除命令之后向闪存颗粒150发出,则读出命令需要等待编程或擦除命令的执行完成后才能得到执行,继而导致读出操作的响应时间较长,并导致存储设备120的读出延迟增大。类似地,若编程命令跟在擦除命令之后向闪存颗粒150发出,编程命令需要等待擦除命令的执行完成后才能执行,继而导致编程命令的响应时间较长。

通过向闪存颗粒150发出暂停(suspend)命令,可以临时暂停编程或擦除命令在闪存颗粒150上的执行,继而闪存颗粒150能够响应读出命令,并在读出命令执行完成后,通过向闪存颗粒150发出恢复(resume)命令,来恢复对被暂停的编程或擦除命令的执行。在闪存颗粒150执行编程或擦除命令期间,可多次接收暂停命令,以及恢复命令,并使同一编程或擦除命令被暂停以及恢复多次。

在公开号为US2013/0198451A1的美国专利申请中,提供了暂停命令的有条件执行。在接收到读/写命令时,基于暂停策略而计算暂停阈值,并判断在前的擦除操作是否满足暂停阈值。若满足暂停阈值,则暂停在前的擦除操作,若不满足暂停阈值,则完成在前的擦除操作。

在公开号为CN1414468A的中国专利申请中,提供了通过执行微指令序列来处理CPU(Central Processing Unit,中央处理单元)指令的方案。当CPU要处理特定指令时,转换逻辑电路将特定指令转换成与之对应的微指令序列,通过执行微指令序列来实现特定指令的功能。微指令序列或者微指令序列的模板存储在ROM(Read Only Memory,只读存储器)中。在将特定指令转换成微指令序列过程中,可对微指令序列模板进行填充,使之与特定指令相对应。



技术实现要素:

虽然现有技术中提供了通过检查暂停阈值来确定是否发出暂停命令的方案,但依然希望提供更多的灵活性,来控制暂停命令的发出时机。并且被期待的是,存储设备的用户能够参与对闪存暂停命令的发出的时机的灵活控制,而不是依赖于存储控制器对访问闪存颗粒的多个命令实施调度。

为实现上述目的,本发明通过微指令序列的执行来响应来自主机或用户的命令。通过微指令处理器对微指令序列的执行,向闪存颗粒发出操作命令和/或接收从闪存颗粒读出的数据或其他信息。存储设备的用户通过对微指令序列的编程、更新和/或修改,能够参与对闪存暂停命令的发出的时机的灵活控制。

根据本发明的第一方面,提供了一种调度微指令序列的第一方法,包括:当接收到第一命令时,执行对应于所述第一命令的第一微指令序列;当接收到第二命令时,若所述第一微指令序列正在执行中,暂停(suspend)所述第一微指令序列;执行对应于所述第二命令的第二微指令序列。

根据本发明的第一方面,还提供了一种调度微指令序列的第二方法,包括:当接收到第一命令时,执行对应于所述第一命令的第一微指令序列;所述第一微指令序列使控制器执行以下操作:第一微指令序列让步;当接收到第二命令时,执行对应于所述第二命令的第二微指令序列;所述第二微指令序列使控制器执行以下操作:第二微指令序列让步;检查微指令序列执行状态;恢复所述第二微指令序列。

根据本发明的第一方面的第一方法或第二方法,提供了本发明第一方面的第三方法,其中:所述执行对应于所述第一命令的第一微指令序列还包括:启动定时器。

根据本发明的第一方面的第三方法,提供了本发明第一方面的第四方法,其中若所述第一微指令序列正在执行中,以及若所述定时器记录的时间小于阈值,则暂停(suspend)所述第一微指令序列;执行所述第二微指令序列。

根据本发明的第一方面的第一方法,提供了本发明第一方面的第五方法,其中:若所述第一微指令序列正在执行中,以及若所述第二命令的优先级高于所述第一命令,则暂停(suspend)所述第一微指令序列;执行所述第二微指令序列。

根据本发明的第一方面的上述方法之一,提供了本发明第一方面的第六方法,其中:所述第一命令指示存储器擦除操作和/或存储器编程操作;以及所述第二命令指示存储器读取操作。

根据本发明的第一方面的上述方法之一,提供了本发明第一方面的第七方法,其中所述暂停(suspend)所述第一微指令序列包括:向存储器发送暂停存储器擦除操作和/或存储器编程操作的命令。

根据本发明第一方面的第七方法,提供了本发明第一方面的第八方法,第八方法还还包括:响应于所述第二微指令序列执行完成,恢复所述第一微指令序列。

根据本发明第一方面的第八方法,提供了本发明第一方面的第九方法,其中恢复所述第一微指令序列包括:向存储器发送恢复所述存储器擦除操作和/或存储器编程操作的命令。

根据本发明第一方面的第五方法,提供了本发明第一方面的第十方法,该第十方法还包括:调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第二方面,提供了一种调度存储器操作的第一方法,包括:当接收到第一命令时,若所述第一命令指示擦除操作,执行擦除操作微指令序列;

所述擦除操作微指令序列使存储器控制器执行以下操作:

向存储器件发出擦除命令;以及

擦除操作微指令序列让步(yield);

当接收到第二命令时,若所述第二命令指示读取操作,执行读取操作微指令序列;所述读取操作微指令序列使存储器控制器执行以下操作:

读取操作微指令序列让步;以及

向存储器件发出读取命令;

该第一方法还包括检查微指令序列的执行状态;恢复所述读取操作微指令序列。

根据本发明的第二方面的第一方法,提供了本发明第二方面的第二方法,其中所述擦除操作微指令序列使存储器控制器执行以下操作:

向存储器件发出擦除命令;

启动定时器;以及

擦除操作微指令序列让步(yield);

以及本发明第二方面的第二方法中:检查微指令序列的执行状态,若定时器记录的时间小于阈值,则向存储器发送暂停存储器擦除操作的命令,恢复所述读取操作微指令序列。

根据本发明的第二方面的第一方法,提供了本发明第二方面的第三方法,其中所述擦除操作微指令序列使存储器控制器执行以下操作:

启动定时器;

向存储器件发出擦除命令;以及

擦除操作微指令序列让步(yield);

以及本发明第二方面的第三方法中:检查微指令序列的执行状态,若定时器记录的时间小于阈值,则向存储器发送暂停存储器擦除操作的命令,恢复所述读取操作微指令序列。

根据本发明的第二方面的第二方法或第三方法,提供了本发明第二方面的第四方法,其中检查微指令序列的执行状态,若定时器记录的时间小于阈值,则还暂停所述定时器。

根据本发明的第二方面的第四方法,提供了本发明第二方面的第五方法,其中所述读取操作微指令序列使存储器控制器执行以下操作:

读取操作微指令序列让步;

向存储器件发出读取命令;以及

获取存储器返回的数据;

以及本发明第二方面的第五方法中:响应于所述读取操作微指令序列执行完成,恢复所述擦除操作微指令序列。

根据本发明的第二方面的第五方法,提供了本发明第二方面的第六方法,其中所述恢复所述擦除操作微指令序列包括恢复所述定时器。

根据本发明的第二方面的第一方法,提供了本发明第二方面的第七方法,其中检查微指令序列的执行状态,若所述第二命令的优先级高于所述第一命令的优先级,则向存储器发送暂停存储器擦除操作的命令,恢复所述读取操作微指令序列。

根据本发明的第二方面的上述方法之一,提供了本发明第二方面的第八方法,其中所述恢复所述读取操作微指令序列包括:向存储器发送恢复所述存储器擦除操作和/或存储器编程操作的命令。

根据本发明的第二方面的第七方法,提供了本发明第二方面的第九方法,该第九方法还包括:调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第三方面,提供了一种微指令序列的第一执行方法,包括:处理第一命令,若所述第一命令指示擦除操作,向存储器件发出擦除命令;在所述擦除操 作执行过程中,若接收到指示读取操作的第二命令,向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的第三方面的第一方法,提供了本发明第三方面的第二方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行未完成,所述微指令序列让步(yield)。

根据本发明的第三方面的第一方法或第二方法,提供了本发明第三方面的第三方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,获取存储器返回的数据;以及发出恢复所述擦除操作的命令。

根据本发明的第三方面的第三方法,提供了本发明第三方面的第四方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,其中发出恢复所述擦除操作的命令后,所述微指令序列让步(yield)。

根据本发明的第三方面的上述方法之一,提供了本发明第三方面的第五方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,其中若所述第一命令指示擦除操作,还启动定时器;以及若接收到指示读取操作的第二命令,且定时器记录的时间小于阈值,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的第三方面的第五方法,提供了本发明第三方面的第六方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,,其中在所述读取命令的执行完成,获取存储器返回的数据后,恢复所述定时器。

根据本发明的第三方面的上述方法之一,提供了本发明第三方面的第七方法,其中若接收到指示读取操作的第二命令,且第二命令的优先级高于所述第一命令,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的第三方面的第七方法,提供了本发明第三方面的第八方法,该第八方法还包括:调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第四方面,依然提供了一种微指令序列的第一执行方法,包括:处理第一命令,若所述第一命令指示擦除操作,向存储器件发出擦除命令;检查第二命令,若所述第二命令指示读取操作,向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明第四方面的第一方法,提供了本发明第四方面的第二方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行未完成,所述微指令序列让步(yield)。

根据本发明第四方面的第一方法或第二方法,提供了本发明第四方面的第三方法,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,获取存储器返回的数据;以及发出恢复所述擦除操作的命令。

根据本发明第四方面的第三方法,提供了本发明第四方面的第四方法,其中发出恢复所述擦除操作的命令后,所述微指令序列让步(yield)。

根据本发明第四方面的上述方法之一,提供了本发明第四方面的第五方法,其中若所述第一命令指示擦除操作,还启动定时器;以及若所述第二命令指示读取操作,且定时器记录的时间小于阈值,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明第四方面的第五方法,提供了本发明第四方面的第六方法,其中在所述读取命令的执行完成,获取存储器返回的数据后,恢复所述定时器。

根据本发明第四方面的上述方法之一,提供了本发明第四方面的第七方法,其中若所述第二命令指示读取操作,且第二命令的优先级高于所述第一命令,则向所述 存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明第四方面的第七方法,提供了本发明第四方面的第八方法,该第八方法还包括:调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第五方面,提供了第一存储控制器,包括微指令存储器、微指令处理器与调度器;所述微指令存储器中存储第一微指令序列与第二微指令序列;响应于接收到第一命令,所述微指令处理器执行第一微指令序列;响应于接收到第二命令,调度器检查所述第一微指令序列的执行状态,若所述第一微指令序列正在执行中,暂停(suspend)所述第一微指令序列;并使微指令处理器执行第二微指令序列。

根据本发明的第五方面,提供了第二存储控制器,包括微指令存储器、微指令处理器与调度器;所述微指令存储器中存储第一微指令序列与第二微指令序列;响应于接收到第一命令,所述微指令处理器执行执行第一微指令序列;所述第一微指令序列使控制器执行以下操作:第一微指令序列让步;响应于接收到第二命令,所述微指令处理器执行执行第二微指令序列;所述第二微指令序列使控制器执行以下操作:第二微指令序列让步;所述调度器检查微指令序列执行状态,并恢复所述第二微指令序列在所述微指令处理器上的执行。

根据本发明的第五方面的第一存储控制器或第二存储控制器,提供了本发明第五方面的第三存储控制器,其中:所述存储控制器还包括定时器;所述执行第一微指令序列还包括:启动定时器。

根据本发明第五方面的第三存储控制器,提供了根据本发明第五方面的第四存储控制器,其中所述调度器若发现所述第一微指令序列正在执行中,以及若所述定时器记录的时间小于阈值,则暂停(suspend)所述第一微指令序列,并使微指令处理器执行所述第二微指令序列。

根据本发明第五方面的第一存储控制器,提供了根据本发明第五方面的第五存储控制器,其中:所述调度器若发现所述第一微指令序列正在执行中,以及若所述第二命令的优先级高于所述第一命令,则暂停(suspend)所述第一微指令序列,并使微指令处理器执行所述第二微指令序列。

根据本发明第五方面的上述存储控制器之一,提供了根据本发明第五方面的第六存储控制器,其中:所述第一命令指示存储器擦除操作和/或存储器编程操作;以及所述第二命令指示存储器读取操作。

根据本发明第五方面的上述存储控制器之一,提供了根据本发明第五方面的第七存储控制器,其中所述暂停(suspend)所述第一微指令序列包括:通过接口控制器向存储器发送暂停存储器擦除操作和/或存储器编程操作的命令。

根据本发明第五方面的第七存储控制器,提供了根据本发明第五方面的第八存储控制器,还包括:所述调度器响应于所述第二微指令序列执行完成,使微指令处理器恢复所述第一微指令序列。

根据本发明第五方面的第八存储控制器,提供了根据本发明第五方面的第九存储控制器,其中恢复所述第一微指令序列包括:通过接口控制器向存储器发送恢复所述存储器擦除操作和/或存储器编程操作的命令。

根据本发明第五方面的第五存储控制器,提供了根据本发明第五方面的第十存储控制器,还包括:所述调度器调整所述第一命令和/或所述第二命令的优先级。

根据本发明第六方面,提供了第一存储控制器,包括微指令存储器、微指令处理器与调度器;所述微指令存储器中存储擦除操作微指令序列与读取操作微指令序列;响应于接收到第一命令,调度器若确定所述第一命令指示擦除操作,则使所述微指令处理器执行擦除操作微指令序列;所述擦除操作微指令序列使微指令处理器执行 以下操作:向存储器件发出擦除命令;以及擦除操作微指令序列让步(yield);响应于接收到接收到第二命,调度器若确定所述第二命令指示读取操作,则使所述微指令处理器执行读取操作微指令序列;所述读取操作微指令序列使微指令处理器执行以下操作:读取操作微指令序列让步;以及向存储器件发出读取命令;所述调度器检查微指令序列的执行状态,并使所述微指令控制器恢复所述读取操作微指令序列的执行。

根据本发明的第六方面的第一存储控制器,提供了根据本发明第六方面的第二存储控制器,所述第二存储控制器还包括定时器,其中所述擦除操作微指令序列使所述微指令处理器执行以下操作:向存储器件发出擦除命令;启动定时器;以及擦除操作微指令序列让步(yield);以及其中:所述调度器检查微指令序列的执行状态,若定时器记录的时间小于阈值,则使接口控制器向存储器发送暂停存储器擦除操作的命令,并使所述微指令处理器恢复所述读取操作微指令序列的执行。

根据本发明的第六方面的第一存储控制器,提供了根据本发明第六方面的第三存储控制器,所述第三存储控制器还包括定时器,其中所述擦除操作微指令序列使所述微指令处理器执行以下操作:启动定时器;向存储器件发出擦除命令;以及擦除操作微指令序列让步(yield);以及其中:所述调度器检查微指令序列的执行状态,若定时器记录的时间小于阈值,则使接口控制器向存储器发送暂停存储器擦除操作的命令,并使所述微指令处理器恢复所述读取操作微指令序列的执行。

根据本发明的第六方面的第二存储控制器或第三存储控制器,提供了根据本发明第六方面的第四存储控制器,其中调度器检查微指令序列的执行状态,若定时器记录的时间小于阈值,则还暂停所述定时器。

根据本发明的第六方面的第四存储控制器,提供了根据本发明第六方面的第五存储控制器,其中所述读取操作微指令序列使微指令处理器执行以下操作:读取操作微指令序列让步;向存储器件发出读取命令;以及获取存储器返回的数据;以及其中:响应于所述读取操作微指令序列执行完成,所述调度器使所述微指令处理器恢复所述擦除操作微指令序列的执行。

根据本发明的第六方面的第五存储控制器,提供了根据本发明第六方面的第六存储控制器,其中所述恢复所述擦除操作微指令序列包括恢复所述定时器。

根据本发明的第六方面的第一存储控制器,提供了根据本发明第六方面的第七存储控制器,其中所述调度器检查微指令序列的执行状态,若所述第二命令的优先级高于所述第一命令的优先级,则使接口控制器向存储器发送暂停存储器擦除操作的命令,并使微指令处理器恢复所述读取操作微指令序列的执行。

根据本发明的第六方面的上述存储控制器之一,提供了根据本发明第八方面的第五存储控制器,其中所述调度器使所述微指令控制器恢复所述读取操作微指令序列的执行:使接口控制器向存储器发送恢复所述存储器擦除操作和/或存储器编程操作的命令。

根据本发明的第六方面的第七存储控制器,提供了根据本发明第六方面的第九存储控制器,其中所述调度器调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第七方面,提供了一种存储设备,包括根据本发明第五方面或第六方面的存储控制器之一。

根据本发明的第八方面,提供了一种电子系统,包括计算机与同所述计算机相耦合的存储设备,所述存储设备可响应所述计算机的访问请;所述存储设备是根据本发明第七方面的存储设备。

根据本发明的第九方面,提供了一种非瞬时性计算设备可读介质,在该计算设备可读存储介质上存储了程序,所述程序包括微指令序列;当由计算设备执行时,所 述程序使得该计算设备被配置为执行根据本发明第三方面或第四方面的方法之一。

根据本发明的第十方面,提供了一种程序,包括微指令序列,当由计算设备执行时,所述程序使得该计算设备被配置为执行根据本发明第三方面或第四方面的方法之一。

根据本发明的第十一方面,提供了一种微指令序列的第一执行设备,包括:第一装置,用于处理第一命令,若所述第一命令指示擦除操作,向存储器件发出擦除命令;以及第二装置,用于在所述擦除操作执行过程中,若接收到指示读取操作的第二命令,向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的第十一方面的第一设备,提供了本发明第十一方面的第设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行未完成,所述微指令序列让步(yield)。

根据本发明的第十一方面的第一设备或第二设备,提供了本发明第十一方面的第三设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,获取存储器返回的数据;以及发出恢复所述擦除操作的命令。

根据本发明的第十一方面的第三设备,提供了本发明第十一方面的第四设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,其中发出恢复所述擦除操作的命令后,所述微指令序列让步(yield)。

根据本发明的十一方面的上述设备之一,提供了本发明第十一方面的第五设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,其中若所述第一命令指示擦除操作,还启动定时器;以及若接收到指示读取操作的第二命令,且定时器记录的时间小于阈值,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的十一方面的第五设备,提供了本发明第十一方面的第六设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,,其中在所述读取命令的执行完成,获取存储器返回的数据后,恢复所述定时器。

根据本发明的第十一方面的上述设备之一,提供了本发明第十一方面的第七设备,其中若接收到指示读取操作的第二命令,且第二命令的优先级高于所述第一命令,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明的第十一方面的第七设备,提供了本发明第十一方面的第八设备,该第八设备还包括:第三装置,用于调整所述第一命令和/或所述第二命令的优先级。

根据本发明的第十二方面,依然提供了一种微指令序列的第一执行设备,包括:第一装置,用于处理第一命令,若所述第一命令指示擦除操作,向存储器件发出擦除命令;以及第二装置,用于检查第二命令,若所述第二命令指示读取操作,向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明第十二方面的第一设备,提供了本发明第十二方面的第二设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行未完成,所述微指令序列让步(yield)。

根据本发明第十二方面的第一设备或第二设备,提供了本发明第十二方面的第三设备,其中向所述存储器件发出读取命令后,检查执行状态,若所述读取命令的执行完成,获取存储器返回的数据;以及发出恢复所述擦除操作的命令。

根据本发明第十二方面的三设备,提供了本发明第十二方面的第四设备,其中发出恢复所述擦除操作的命令后,所述微指令序列让步(yield)。

根据本发明第十二方面的上述设备之一,提供了本发明第十二方面的第五设 备,其中若所述第一命令指示擦除操作,还启动定时器;以及若所述第二命令指示读取操作,且定时器记录的时间小于阈值,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明第十二方面的第五设备,提供了本发明十二方面的第设备,其中在所述读取命令的执行完成,获取存储器返回的数据后,恢复所述定时器。

根据本发明第十二方面的上述设备之一,提供了本发明第十二方面的第七设备,其中若所述第二命令指示读取操作,且第二命令的优先级高于所述第一命令,则向所述存储器件发出暂停(suspend)所述擦除操作的命令,并向所述存储器件发出读取命令。

根据本发明十二方面的第七设备,提供了本发明第十二方面的第八设备,该第八设备还包括:第三装置,用于调整所述第一命令和/或所述第二命令的优先级。

附图说明

当连同附图阅读时,通过参考后面对示出性的实施例的详细描述,将最佳地理解本发明以及优选的使用模式和其进一步的目的和优点,其中附图包括:

图1是现有技术的存储系统的框图;

图2是根据本发明实施例的存储器控制器的处理微指令的部件的结构框图;

图3是根据本发明实施例的调度微指令序列的方法的流程图;

图4是根据本发明另一实施例的存储器控制器的处理微指令的部件的结构框图;

图5展示了根据本发明另一实施例的调度器与微指令处理器进行处理的时序图;

图6是根据本发明另一实施例的存储器控制器的处理微指令的部件的结构框图;

图7是根据本发明实施例的微指令序列的执行方法的流程图;

图8是根据本发明又一实施例的微指令序列的执行方法的流程图;以及

图9是根据本发明依然又一实施例的微指令序列的执行方法的流程图。

具体实施方式

参看图2,图2是根据本发明实施例的存储器控制器的处理微指令的部件的结构框图。为实现对微指令的处理,存储设备的存储器控制器可包括微指令处理器210、命令队列220、接口控制器230和/或微指令存储器240。

微指令存储器240用于存储微指令。微指令处理器210从微指令存储器240中读取并执行微指令。微指令使得微指令处理器通过接口控制器230向闪存颗粒发出访问闪存颗粒的命令,包括,例如,读出、编程、擦除、暂停、读取闪存颗粒特征(feature)和/或读设置存颗粒特征等命令。微指令也使得微指令处理器通过接口控制器230获得从闪存颗粒读出的数据。一条微指令或多条微指令可对应于读出、编程、擦除和/或暂停等访问闪存颗粒的命令之一。微指令还可以包括分支、跳转微指令,其使得微指令处理器改变执行微指令的顺序。

微指令存储器240中可存储一段或多段微指令序列。作为举例,在图2的微指令存储器240中,存储了n段微指令序列,包括微指令序列1、微指令序列2……以及微指令序列n。微指令序列1、微指令序列2……以及微指令序列n的每段包括多条微指令。

在微指令序列中的多条微指令可由微指令处理器210执行。每段微指令序列 拥有自己的执行状态,从而每段微指令的执行可被暂停(suspend)和恢复(resume)。微指令处理器能够暂停正在执行的微执行序列,并选择执行其他微指令序列。也可以在微指令序列中提供让步(yield)微指令,当执行到让步微指令时,微指令处理器可调度并执行其他微指令序列。微指令处理器210暂停正在执行的微指令序列,或者执行让步微指时,正在执行的微指令序列的执行状态被保存;当微指令处理器恢复微指令序列的执行时,读出被保存的执行状态,从而继续被恢复的微指令序列的执行。

接口控制器230同闪存颗粒相耦合,用于向闪存颗粒发出访问闪存颗粒的命令,包括,例如,读出、编程、擦除、暂停和/或恢复等;也用于获得从闪存颗粒读出的数据。

命令队列220用于缓存来自用户或上层系统的命令。来自用户或上层系统的命令可包括读出、写入、删除、标记为无效等命令,还可以包括读取存储设备状态、读取/设置闪存颗粒特征(feature)等命令,以及也可以包括用户自定义命令。命令队列220可由存储器、先进先出存储器寄存器堆等实现。

在处理命令队列220中的命令时,获取与该命令对应的微指令序列,并由微指令处理器210执行该微指令序列,以完成对命令队列220中的命令的处理。可由转换电路(未示出)实现从处理命令队列220中的命令到微指令序列的转换。也可以由微指令处理器210实现从处理命令队列220中的命令到微指令序列的转换。在获取微指令序列的过程中,可以基于命令队列220中的命令对微指令序列进行填充或适配,以使微指令序列同命令队列220中的命令相适应。

例如,在微指令处理器210执行微指令序列1时,命令队列220中被写入来自用户或上层系统的新命令。可提供调度逻辑(未示出)来协助微指令处理器210对微指令序列的调度。响应于该新命令,调度逻辑可暂停微指令序列1的执行,并调度对应于新命令的微指令序列(例如,微指令序列2)由微指令处理器执行。被暂停的微指令序列1的执行状态被保存,使得在微指令序列1的执行被恢复时,可获取被暂停时的执行状态。在一个实施例中,该新命令是读取命令。读取命令可具有较高的优先级,调度逻辑基于读取命令具有较高的优先级而响应于该新命令而暂停微指令序列1的执行。

在一个实施例中,微指令序列1用于执行对闪存颗粒的擦除操作。当调度逻辑暂停微指令序列1的执行时,调度逻辑还向闪存颗粒发出暂停闪存颗粒擦除操作的命令。当微指令序列2执行完成后,调度逻辑还向闪存颗粒发出恢复闪存颗粒擦除操作的命令。继而获取微指令序列1被暂停时的执行状态,并恢复微指令序列1的执行。

在另一个实施例中,微指令序列1用于执行对闪存颗粒的编程操作。当调度逻辑暂停微指令序列1的执行时,调度逻辑还向闪存颗粒发出暂停闪存颗粒编程操作的命令。当微指令序列2执行完成后,调度逻辑还向闪存颗粒发出恢复闪存颗粒编程操作的命令。继而获取微指令序列1被暂停时的执行状态,并恢复微指令序列1的执行。

调度逻辑可实现为软件、硬件电路和/或固件,可独立于微指令处理器210,也可集成于微指令处理器210。

在一个实施例中,微指令序列1包括让步微指令。微指令处理器210执行让步微指令时,保存微指令序列1的执行状态,并选择执行或恢复微指令序列之一。此时,若命令队列220中存在来自用户或上层系统的新命令,该新命令对应于微指令序列2,调度逻辑可响应于该新命令而执行微指令序列2。调度逻辑也可以基于存在已让步或被暂停的微指令序列3,而恢复微指令序列3。在进一步的实施例中,微指令处理器210执行微指令序列1的让步微指令后,比较微指令序列1、微指令序列2和/或微指令序列3的优先级,并决定接下来执行哪一微指令。在依然进一步的实施例 中,对应于读操作的微指令序列的优先级高于对应于擦除操作的微指令序列的优先级。对应于读操作的微指令序列的优先级高于对应于编程操作的微指令序列的优先级。

在一个实施例中,微指令序列1与微指令序列2均包括让步微指令。例如,在微指令序列1、微指令序列2的开始位置包括让步微指令。当响应于命令队列220中的命令而执行微指令序列1时,随着让步微指令的执行,微指令序列1让步。此时调度逻辑决定接下来执行哪一微指令序列。若命令队列220中存在对应于微指令序列2的新命令,调度逻辑可调度执行微指令序列2。由于微指令序列2的开始位置包括让步微指令,微指令序列2同样让步。此时,微指令序列1与微指令序列2均已让步。调度逻辑可选择微指令序列1或微指令序列2之一恢复执行;若命令队列220中存储对应于其他微指令序列(例如,微指令序列n)的新命令,调度逻辑也可以选择执行微指令序列n。在进一步的实施例中,调度逻辑基于微指令序列1、微指令序列2和/或微指令序列n的优先级来确定执行那个微指令序列。

在又一个的实施例中,微指令序列1与微指令序列2均包括让步微指令。例如,在微指令序列1、微指令序列2的开始位置包括让步微指令。当响应于命令队列220中的命令而执行微指令序列1时,随着让步微指令的执行,微指令序列1让步。此时调度逻辑决定接下来执行哪一微指令序列。若命令队列220中存在对应于微指令序列2的新命令,调度逻辑可调度执行微指令序列2。由于微指令序列2的开始位置包括让步微指令,微指令序列2同样让步。此时调度逻辑决定接下来执行哪一微指令序列。调度逻辑发现微指令序列1与微指令序列2均已让步。调度逻辑可基于先来先服务的原则,恢复微指令序列1的执行。接下来,微指令序列1的执行过程中,使得接口控制器230向闪存颗粒发出擦除操作。微指令序列1中可包括进一步的让步指令。随着让步指令的执行,微指令序列1再次让步。调度逻辑再次决定接下来执行哪一微指令序列。由于微指令序列1对应擦除操作,而微指令序列2对应读取操作,而读取操作的优先级高于擦除操作,调度逻辑决定恢复微指令序列2的执行。此时,调度逻辑还使得接口控制器230向闪存颗粒发出擦除暂停命令,以暂停由于微指令序列1发出的擦除命令,从而使得闪存颗粒可以响应后续的读取命令。接下来在执行微指令序列2的过程中,指令处理器210使得接口控制器向闪存颗粒发出读取命令。在进一步的实施例中,当接收到闪存颗粒返回的数据,微指令序列2执行完成。调度逻辑再次决定接下来执行哪一微指令序列。注意到微指令序列1已让步,调度逻辑决定恢复微指令序列1的执行。为恢复微指令序列1,调度逻辑还使得接口控制器230向闪存颗粒发出恢复擦除操作的命令,继而恢复微指令序列1的执行。以同执行对应于擦除操作的微指令序列1相似的方式,调度逻辑可调度对应于编程操作的微指令序列。在一个实施例中,命令队列220中的来自用户或上层系统的命令,提供命令的优先级信息。

在另一个实施例中,微指令序列1的执行过程中,使得接口控制器230向闪存颗粒发出擦除操作。微指令序列1中可包括进一步的让步指令。随着让步指令的执行,微指令序列1再次让步。调度逻辑为微指令序列1的擦除操作启动定时器,以记录向闪存颗粒发出擦除操作后经历的时间。接下来,当响应于命令队列220中的命令,而希望执行微指令序列2时,调度逻辑再次决定接下来执行哪一微指令序列。在该实施例中,微指令序列1对应擦除操作,而微指令序列2对应读取操作,而读取操作的优先级高于擦除操作。调度逻辑进一步检查定时器。如果定时器的值大于阈值,表示距在前的闪存颗粒擦除命令的发出已经历了较长时间,可以期待擦除操作将很快完成。此时若向闪存颗粒发出擦除暂停命令来暂停在前的擦除操作,并发出读取命令,对读取操作延迟的改善效果并不明显,又增加了在前的擦除操作的执行延迟。在此情 况下,调度逻辑不会调度执行微指令序列2,也不会使接口控制器230向闪存颗粒发出擦除暂停命令。而如果定时器的值不大于或小于阈值,表示在前的擦除命令还需要执行较长时间。在此情况下,若等待擦除命令完成再执行读取命令,将显著增加用户体验到的读取操作的执行延迟。因而调度逻辑选择调度执行微指令序列2。并使接口控制器230向闪存颗粒发出擦除暂停命令,以及暂停定时器。调度逻辑还可以调整微指令序列1和/或微指令序列2的优先级。继而在微指令序列2的执行过程中,微指令序列2将使接口控制器230向闪存颗粒发出读取命令。当微指令序列2执行完成后,或从闪存颗粒读出该读取命令指定的数据后,调度逻辑使得接口控制器230向闪存颗粒发出恢复擦除操作的命令,并恢复定时器,使定时器继续计时。在进一步的实施例中,响应于希望执行其他微指令序列,调度逻辑再次使接口控制器230向闪存颗粒发出擦除暂停命令,并再次停止定时器。在依然又一个实施例中,微指令序列1对应于编程操作,而微指令序列2对应于读取操作。

参看图3,图3展示了根据本发明实施例的调度微指令序列的方法的流程图。图3的处理流程可由调度逻辑实现。调度逻辑可以实现为软件、硬件电路和/或固件,可独立于微指令处理器210(参见图2),也可集成于微指令处理器210。

当通过例如命令队列220而接收到来自用户或上层系统的第一命令(310),调度逻辑调度执行与第一命令相对应的第一微指令序列(320)。在一个实施例中,转换电路根据第一命令的内容,将第一命令转换为第一微指令序列。参看图2,微指令序列可存储于微指令存储器240中,以由转换电路根据第一命令的内容来选择。微指令存储器中存储的也可以是微指令序列的模板,并由转换电路根据第一命令的内容来填充微指令序列模板,以得到可由微指令处理器210执行的微指令序列。

在第一微指令序列执行过程中,通过例如命令队列220而接收到来自用户或上层系统的第二命令(330)。调度逻辑检查第一微指令序列和/或其他微指令序列的执行状态(340)。在一个实施例中,第一微指令序列正在执行,并且可被暂停。在又一个实施例中,第一微指令序列正在执行,并且可被暂停,而第二命令对应的优先级高于第一命令的优先级。在又一个实施例中,第一微指令序列已经例如通过执行让步微指令而让步。调度逻辑暂停第一微指令序列(350)。为暂停并恢复第一微指令序,调度逻辑还保存第一微指令序列的执行状态。在一个实施例中,第一微指令序列发出了闪存颗粒擦除命令。调度逻辑还向闪存颗粒发出擦除暂停命令。接下来,调度逻辑调度执行第二微指令序列(360)。

图4是根据本发明另一实施例的存储器控制器的处理微指令的部件的结构框图。图4中提供的处理微指令的部件与图2中提供的处理微指令的部件相似,包括微指令处理器410、命令队列420、接口控制器430和/或微指令存储器440。在微指令存储器440中存储了微指令序列1、微指令序列2……微指令序列n。在图4的实施例中,还示出了状态寄存器450、寄存器池460以及调度器470。

状态寄存器450耦合到微指令处理器410,用于保存和提供微指令序列的执行状态。微指令序列的执行状态包括程序计数器(PC)、通用寄存器(GR)、物理地址寄存器和/或定时器等。程序计数器用于指示微指令序列中当前执行的微指令地址。物理地址寄存器用于指示微指令序列访问的闪存颗粒的地址。

寄存器池460用于保存微指令序列的执行状态。寄存器池460保存的微指令序列的执行状态可包括状态寄存器450的内容。在寄存器池460中,可保存一条或多条微指令序列460的执行状态。在寄存器池460中保存了状态信息的微指令序列460,可由调度器470恢复执行。通过将寄存器池460中保存的对应于一条微指令序列的状态信息恢复到状态寄存器450中,微指令处理器410可恢复该微指令序列的执行。

调度器470耦合到微指令处理器410、命令队列420。调度器470可指示微指 令处理器410暂停正在执行的微指令序列。调度器470可以指示微指令处理器410恢复微指令序列的执行。调度器470还可以指示微指令处理器410开始对微指令序列的新的执行。通过将微指令序列对应的状态信息(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等)保存在状态寄存器450中,调度器470实现对微指令序列的调度。

调度器470也可以实现为微指令序列。在一个实施例中,通过在周期性地调用同调度器470对应的微指令序列,来检查微指令序列的执行状态,在微指令处理器410上调度执行微指令序列。

图5展示了根据本发明另一实施例的调度器与微指令处理器进行处理的时序图。在图5中,时间轴的箭头方向展示了时间的流逝方向。由调度器570执行的处理列在调度器570下方,而由微指令处理器510执行的处理列在微指令处理器510下方。

在图5的实施例中,首先,调度器570发现或响应于第一命令的接收(520)。调度器调度第一微指令序列(522)。作为调度第一微指令序列的结果,微处理器510开始执行第一微指令序列(532)。在第一微指令序列执行(532)期间,调度器发现或响应于第二命令的接收(524)。经过对执行条件和/或调度条件的判断,调度器570暂停指示微指令处理器510第一微指令序列(526)。作为响应,微指令处理器510停止对第一微指令序列的执行。被暂停的第一微指令序列的状态信息被保存。调度器调度第二微指令序列(528)。作为调度二微指令序列的结果,微处理器510开始执行第二微指令序列(534)。随着处理的进行,第二微指令序列的执行完成。经过对执行条件和/或调度条件的进一步判断,调度器570决定调度第一微指令序列(530)。通过恢复之前保存大的第一微指令序列的状态信息,微指令处理器510恢复执行第一微指令序列(536)。

图6是根据本发明另一实施例的存储器控制器的处理微指令的部件的结构框图。图6中提供的处理微指令的部件与图6中提供的处理微指令的部件相似,包括微指令处理器610、命令队列620、接口控制器630和/或微指令存储器640。在微指令存储器640中存储了微指令序列。在图6的实施例中,微指令存储器640中存储的微指令序列中包括了用于指示接口控制器630向闪存颗粒发出一种或多种命令的微指令。例如,微指令存储器640中存储的微指令序列中包括擦除微指令、擦除暂停微指令、读取微指令、擦除恢复微指令。擦除微指令用于指示接口控制器630向闪存颗粒发出擦除命令。擦除暂停微指令用于指示接口控制器630向闪存颗粒发出擦除暂停命令。读取微指令用于指示接口控制器630向闪存颗粒发出读取命令。擦除恢复微指令用于指示接口控制器630向闪存颗粒发出擦除恢复命令。在另一个实施例中,微指令存储器640中存储的微指令序列中还包括编程暂停微指令,和/或编程恢复微指令。编程暂停微指令用于指示接口控制器630向闪存颗粒发出编程暂停命令,编程恢复微指令用于指示接口控制器630向闪存颗粒发出编程恢复命令。

图7是根据本发明实施例的微指令序列710的执行方法的流程图。在图7中,时间轴箭头的方向展示了时间的流逝方向。在一个实施例中,第一命令指示闪存颗粒擦除操作。通过执行微指令序列710,处理第一命令720。可从命令队列620(参见图6)中获取第一命令。所属领域技术人员将意识到也有其他获取第一命令的方式。通过执行微指令序列710中的微指令,向闪存颗粒发出擦除命令730。通过执行微指令序列710中的微指令,获取并处理第二命令740。例如,通过执行微指令序列710中的微指令,微指令序列710检查命令队列620(参见图6)是否接收到第二命令,在接收到第二命令后,对第二命令进行处理。接下来,通过执行微指令序列710中的微指令,微指令序列710确定要暂停在前发出的擦除命令,于是向闪存颗粒发出擦除暂停命令750。例如,通过执行微指令序列710中的微指令,微指令序列710通过比 较第一命令与第二命令的优先级来确定是否要暂停在前发出的擦除命令。在另一个例子中,基于第一命令对应擦除、编程或写入操作,而第二命令对应读取操作,而确定要暂停在前向闪存颗粒发出的擦除命令或写入命令。接下来,通过执行微指令序列710中的微指令,向闪存颗粒发出读取命令760。

图8是根据本发明又一实施例的第一微指令序列810的执行方法的流程图。在图8中,时间轴箭头方向展示了时间的流逝方向。

在一个实施例中,第一命令指示闪存颗粒擦除操作。通过执行第一微指令序列810,处理第一命令820。可从命令队列620(参见图6)中获取第一命令。所属领域技术人员将意识到也有其他获取第一命令的方式。通过执行第一微指令序列810中的微指令,向闪存颗粒发出擦除命令830。随后,执行第一微指令序列810中的让步微指令来使第一微指令序列810让步835。第一微指令序列810让步后,微指令处理器610(参见图6)可执行其他微指令序列815中的微指令837。在一个例子中,由调度器或调度逻辑来选择微指令处理器610接下来执行的微指令序列。在另一个例子中,由于不存在等待执行的其他微指令序列或者第一微指令序列810的优先级较高,调度器或调度逻辑选择恢复第一微指令序列810的执行。在其他微指令序列815中也包括让步微指令。通过执行其他微指令序列815中的让步微指令,该其他微指令序列815让步839。由于该其他微指令序列815让步,微处理器610可执行另一微指令序列。在一个例子中,调度器或调度逻辑选择恢复第一微指令序列810的执行。通过恢复第一微指令序列810让步时的执行状态(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等),微指令处理器610继续执行第一微指令序列810。

接下来,通过执行第一微指令序列810中的微指令,获取并处理第二命令840。例如,通过执行第一微指令序列810中的微指令,微指令序列810检查命令队列620(参见图6)是否接收到第二命令,在接收到第二命令后,对第二命令进行处理。接下来,通过执行微指令序列810中的微指令,第一微指令序列810确定要暂停在前发出的擦除命令,于是向闪存颗粒发出擦除暂停命令850。例如,通过执行第一微指令序列810中的微指令,微指令序列810通过比较第一命令与第二命令的优先级来确定上是否要暂停在前发出的擦除命令。在另一个例子中,基于第一命令对应擦除、编程或写入操作,而第二命令对应读取操作,而确定要暂停在前向闪存颗粒发出的擦除命令或编程命令。接下来,通过执行第一微指令序列810中的微指令,向闪存颗粒发出读取命令860。

图9是根据本发明依然又一实施例的微指令序列的执行方法的流程图。在图8中,时间轴箭头方向展示了时间的流逝方向。

在一个实施例中,第一命令指示闪存颗粒擦除操作。通过执行第一微指令序列910,处理第一命令920。可从命令队列620(参见图6)中获取第一命令。所属领域技术人员将意识到也有其他获取第一命令的方式。通过执行第一微指令序列910中的微指令,向闪存颗粒发出擦除命令930。随后,执行第一微指令序列910中的让步微指令来使第一微指令序列910让步935。在进一步的实施例中,第一微指令序列910让步时,其执行状态(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等)被保存。第一微指令序列910让步后,微指令处理器610(参见图6)可执行其他微指令序列915中的微指令937。在一个例子中,由调度器或调度逻辑来选择微指令处理器610接下来执行的微指令序列。在另一个例子中,由于不存在等待执行的其他微指令序列或者第一微指令序列910的优先级较高,调度器或调度逻辑选择恢复第一微指令序列910的执行。

在其他微指令序列915中也包括让步微指令。通过执行其他微指令序列915 中的让步微指令,该其他微指令序列915让步939。由于该其他微指令序列915让步,微处理器610可执行另一微指令序列。在一个例子中,调度器或调度逻辑选择恢复第一微指令序列910的执行。通过恢复第一微指令序列910让步时的执行状态(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等),微指令处理器610继续执行第一微指令序列910。

接下来,通过执行第一微指令序列910中的微指令,获取并处理第二命令940。例如,通过执行第一微指令序列910中的微指令,微指令序列910检查命令队列620(参见图6)是否接收到第二命令,在接收到第二命令后,对第二命令进行处理。接下来,通过执行微指令序列910中的微指令,第一微指令序列910确定要暂停在前发出的擦除命令,于是向闪存颗粒发出擦除暂停命令950。例如,通过执行第一微指令序列910中的微指令,微指令序列910通过比较第一命令与第二命令的优先级来确定上是否要暂停在前发出的擦除命令。在另一个例子中,基于第一命令对应擦除、编程或写入操作,而第二命令对应读取操作,而确定要暂停在前向闪存颗粒发出的擦除命令或编程命令。在依然另一个例子中,通过第一微指令序列910,在执行发出擦除命令的步骤930之前或之后,启动定时器。而在第一微指令序列910确定是否要暂停在前发出的擦除命令时,还参考定时器的值。如果定时器的值大于阈值,表示距在前的闪存颗粒擦除命令的发出已经历了较长时间,可以期待擦除操作将很快完成。此时若向闪存颗粒发出擦除暂停命令来暂停在前的擦除操作,并发出读取命令,对读取操作延迟的改善效果并不明显,又增加了在前的擦除操作的执行延迟。在此情况下,微指令序列910不会向闪存颗粒发出擦除暂停命令。而如果定时器的值不大于或小于阈值,表示在前的擦除命令还需要执行较长时间。在此情况下,若等待擦除命令完成再执行读取命令,将显著增加用户体验到的读取操作的执行延迟。因而通过微指令序列910中的微指令,向闪存颗粒发出擦除暂停命令950。之后第一微指令序列910还使定时器暂停。

接下来,通过执行第一微指令序列910中的微指令,向闪存颗粒发出读取命令960。通过执行第一微指令序列910中的微指令,检查读取命令是否完成970。例如,响应于从闪存颗粒获得读取命令对应的数据,确定读取命令执行完成。若读取命令执行完成,向闪存颗粒发出擦除恢复命令980。在进一步的实施例中,恢复定时器使之继续计时。若读取命令尚未执行完成,第一微指令序列910让步972。在进一步的实施例中,第一微指令序列910让步时,其执行状态(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等)被保存。第一微指令序列910让步后,微指令处理器610(参见图6)可执行其他微指令序列915中的微指令974。在一个例子中,由调度器或调度逻辑来选择微指令处理器610接下来执行的微指令序列(例如,其他微指令序列915)。在另一个例子中,由于不存在等待执行的其他微指令序列或者第一微指令序列910的优先级较高,调度器或调度逻辑选择恢复第一微指令序列910的执行。

在其他微指令序列915中,也可包括让步微指令。通过在其他微指令序列915中执行让步微指令,其他微指令序列915让步976。其他微指令序列915让步时,其执行状态(例如,程序计数器值、通用计数器值、物理地址寄存器值和/或定时器值等)被保存。其他微指令序列915让步后,微指令处理器610(参见图6)可选择执行第一微指令序列910或其他微指令序列915中的微指令。在一个例子中,由调度器或调度逻辑来选择微指令处理器610接下来执行的微指令序列。在另一个例子中,由于第一微指令序列910在等待执行和/或第一微指令序列910的优先级较高,调度器或调度逻辑选择恢复第一微指令序列910的执行。

接下来,通过执行第一微指令序列910中的微指令,检查擦除命令是否完成 990。该擦除命令是在步骤930中向闪存颗粒发出的擦除命令。若擦除命令执行完成,则第一微指令序列910的执行完成998。若擦除命令尚未执行完成,第一微指令序列910让步992。第一微指令序列910让步后,微指令处理器610(参见图6)可执行其他微指令序列915中的微指令994。在其他微指令序列中,也可包括让步微指令。通过在其他微指令序列915中执行让步微指令,其他微指令序列915让步996。其他微指令序列915让步后,微指令处理器610(参见图6)可选择执行第一微指令序列910或其他微指令序列915中的微指令。

接下来,当第一微指令序列910被再次恢复执行时,检查命令队列620是否接收到新的命令。在接收到新的命令后,通过执行微指令序列910中的微指令,第一微指令序列910再次确定是否要暂停在前发出的擦除命令。在进一步的实施例中,微指令序列910再次检查定时器,若定时器不大于或小于阈值,以及第二命令对应闪存颗粒读取操作,则确定要再次暂停在前发出的擦除命令。在另一个实施例中,微指令序列910比较第一命令与新的命令的优先级。若新的命令的优先级高于第一命令的优先级,则确定要再次暂停在前发出的擦除命令。在依然另一个例子中,随着时间的流逝或依据定时器的值,调整第一命令、第二命令和/或该新的命令的优先级。在依然另一个例子中,在用户或上层系统下发第一命令、第二命令和/或新的命令时,提供命令的优先级。在依然另一个例子中,用户或上层系统可调整命令的优先级。

可利用处理第二命令的步骤940以及后续步骤对新的命令进行处理。以及还可以再次向闪存颗粒发出擦除暂停和/或擦除恢复命令。

通过提供微指令序列执行机制,以及让步、擦除暂停、擦除恢复等微指令,为存储设备的用户提供了控制暂停命令的发出时机的能力。使得存储设备的用户能够参与对闪存暂停命令的发出的时机的灵活控制,而不是依赖于存储控制器对访问闪存颗粒的多个命令实施调度。存储设备的用户通过对微指令序列的编程、更新和/或修改,能够参与对闪存暂停命令的发出的时机的灵活控制。

上面以闪存颗粒作为例子而公开了本发明的多种实施例。所属领域技术人员将意识到本发明的实施例也可应用于其他类型的支持擦除暂停和/或擦除恢复命令的存储介质,例如相变存储器、电阻存储器、铁电存储器等。

已经为了示出和描述的目的而展现了对本发明的描述,并且不旨在以所公开的形式穷尽或限制本发明。对所属领域技术人员,许多调整和变化是显而易见的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1