修改命令

阅读:389发布:2020-05-11

专利汇可以提供修改命令专利检索,专利查询,专利分析的服务。并且本 发明 包括用于 修改 命令的方法、装置、模 块 及系统。一个装置 实施例 包括 存储器 控制器 ,所述存储器控制器包括通道,其中所述通道包括经配置以保持命令的命令队列及经配置以修改所述队列中的至少若干个命令且执行所述经修改命令的 电路 。,下面是修改命令专利的具体信息内容。

1.一种存储器控制器,其包含:
通道,其中所述通道包括:
命令队列,其经配置以保持命令;及
电路,其经配置以:
修改所述队列中的至少若干个命令;及
执行所述经修改命令。
2.根据权利要求1所述的存储器控制器,其中经配置以修改至少若干个命令的电路包含经配置以在所述若干个命令保持于所述队列中时修改所述若干个命令的电路。
3.根据权利要求1所述的存储器控制器,其中经配置以修改至少若干个命令的电路包含经配置以改变所述队列中的命令保持于所述队列中的次序的电路。
4.根据权利要求3所述的存储器控制器,其中经配置以执行所述经修改命令的电路包含经配置以根据所述已改变次序执行所述队列中的命令的电路。
5.根据权利要求1到4中任一权利要求所述的存储器控制器,其中所述电路进一步经配置以确定是否可修改所述队列中的命令。
6.根据权利要求1所述的存储器控制器,其中经配置以修改至少若干个命令的电路包含以下电路中的至少一者:
经配置以在可将所述队列中的若干个命令组合成一命令的情况下修改所述队列中的所述若干个命令的电路;或
经配置以在所述队列中的若干个命令将被所述队列中的另一命令盖写的情况下修改所述队列中的所述若干个命令的电路。
7.根据权利要求6所述的存储器控制器,其中经配置以在可将所述队列中的若干个命令组合成一命令的情况下修改所述队列中的所述若干个命令的电路包含经配置以在可将所述队列中的若干个命令组合成单个命令的情况下修改所述队列中的所述若干个命令的电路。
8.根据权利要求6所述的存储器控制器,其中经配置以在可将所述队列中的若干个命令组合成一命令的情况下修改所述队列中的所述若干个命令的电路包含以下电路中的至少一者:
经配置以将若干个重叠命令组合成一命令的电路;或
经配置以将若干个顺序命令组合成一命令的电路。
9.根据权利要求6到8中任一权利要求所述的存储器控制器,其中经配置以在所述队列中的若干个命令将被所述队列中的另一命令盖写的情况下修改所述队列中的所述若干个命令的电路包含经配置以进行以下操作的电路:
确定所述队列中的一命令是否将被所述队列中的另一个命令盖写;及
删除将被所述另一个命令盖写的所述命令。
10.根据权利要求1到4中任一权利要求所述的存储器控制器,其中所述电路包括以下各项中的至少一者:
处理器;或
专用集成电路
11.一种存储器控制器,其包含:
通道,其中所述通道包括:
命令队列,其经配置以保持若干个命令;及
处理器,其经配置以执行选自包括以下各项的功能群组的若干个功能:
改变将命令保持于所述队列中的次序;
将所述队列中的若干个可组合命令组合成一命令;及
删除所述队列中的将被所述队列中的另一个命令盖写的命令。
12.根据权利要求11所述的存储器控制器,其中经配置以执行选自所述功能群组的若干个功能的处理器包含经配置以执行选自所述功能群组的一个或一个以上功能的处理器。
13.根据权利要求11所述的存储器控制器,其中可组合命令包括:
重叠命令;及
顺序命令。
14.根据权利要求11到13中任一权利要求所述的存储器控制器,其中:
所述通道为后端通道;且
所述存储器控制器包括前端通道,其中:
所述前端通道包括命令调度程序;且
所述命令调度程序经配置以将若干个命令发送到所述后端通道;且
所述队列经配置以按所述命令调度程序将命令发送到所述后端通道的次序保持所述命令。
15.根据权利要求14所述的存储器控制器,其中所述队列经配置以保持等于所述命令调度程序可保持的命令的数目的数目个命令。
16.根据权利要求14所述的存储器控制器,其中所述命令调度程序经配置以:
从主机接收若干个命令;及
按所述命令调度程序从所述主机接收所述命令的次序将所述命令发送到所述后端通道。
17.根据权利要求16所述的存储器控制器,其中:
所述前端通道包括命令处理器;且
所述命令处理器经配置以执行选自包括以下各项的功能群组的若干个功能:
改变所述命令调度程序将命令发送到所述后端通道的所述次序;
将所述命令调度程序从所述主机接收的若干个可组合命令组合成一命令;及删除所述命令调度程序从所述主机接收的将被所述命令调度程序从所述主机接收的另一个命令盖写的命令。
18.根据权利要求17所述的存储器控制器,其中所述命令处理器经配置以在所述命令调度程序不能够从所述主机接收命令时执行所述若干个功能。
19.根据权利要求18所述的存储器控制器,其中所述命令处理器经配置以在所述命令调度程序已满时执行所述若干个功能。
20.根据权利要求14所述的存储器控制器,其中:
所述前端通道包括命令处理器;且
所述命令处理器经配置以:
确定是否不对所述命令调度程序中所保持的命令执行所述功能群组中的所述功能;及标记所述命令调度程序中所保持的不对其执行所述功能群组中的所述功能的命令。
21.根据权利要求20所述的存储器控制器,其中所述处理器经配置以不对经标记命令执行所述功能群组中的所述功能。
22.一种存储器控制器,其包含:
若干个后端通道,其中所述若干个后端通道包括:
命令队列,其经配置以保持若干个命令;及
处理器,其经配置以:
修改所述命令队列中的命令,其中修改所述命令包括执行选自包括以下各项的功能群组的若干个功能:
改变将命令保持于所述队列中的次序;
将所述队列中的重叠命令组合成一命令;
将所述队列中的顺序命令组合成一命令;及
删除所述队列中的将被所述队列中的另一个命令盖写的命令;及
根据将所述经修改命令保持于所述队列中的次序执行所述经修改命令。
23.根据权利要求22所述的存储器控制器,其中经配置以保持若干个命令的命令队列包含经配置以保持若干个读取命令的命令队列,其中所述若干个读取命令包括用以读取响应于先前读取命令先前所读取的存储于存储器阵列中的若干个存储器单元上的数据的命令,且其中所述存储器控制器进一步经配置以在不存取所述阵列的情况下执行所述用以读取先前所读取的数据的命令。
24.根据权利要求23所述的存储器控制器,其中所述若干个后端通道包括经配置以保持所述先前所读取的数据的数据缓冲器,且其中所述处理器经配置以通过存取所述数据缓冲器来执行所述若干个读取命令中的至少一者的至少一部分。
25.根据权利要求22所述的存储器控制器,其中:
所述存储器控制器包括前端通道;且
所述前端通道包括耦合到所述若干个后端通道的前端直接存储器存取(DMA)。
26.根据权利要求25所述的存储器控制器,其中:
所述若干个后端通道包括通道DMA;且
所述前端DMA耦合到所述通道DMA。
27.根据权利要求22到26中任一权利要求所述的存储器控制器,其中所述若干个后端通道包括经配置以将所述存储器控制器耦合到若干个存储器阵列的接口
28.一种用于操作存储器装置的方法,其包含:
修改保持于队列中的若干个命令,其中修改所述若干个命令包括执行选自包括以下各项的功能群组的若干个功能:
改变将命令保持于所述队列中的次序;
将所述队列中的若干个可组合命令组合成一命令;及
删除所述队列中的将被所述队列中的另一个命令盖写的命令;及
根据将所述经修改命令保持于所述队列中的次序执行所述经修改命令。
29.根据权利要求28所述的方法,其中:
改变将命令保持于所述队列中的次序包括按将执行所述命令的次序来排序所述命令;

根据将所述经修改命令保持于所述队列中的次序执行所述经修改命令包括根据将执行所述命令的所述次序来执行所述命令。
30.根据权利要求28所述的方法,其中将所述队列中的若干个可组合命令组合成一命令包括将所述队列中的若干个可组合命令组合成单个命令。
31.根据权利要求28所述的方法,其中组合所述若干个可组合命令包括:
组合重叠命令;及
组合顺序命令。
32.根据权利要求28到31中任一权利要求所述的方法,其中所述方法包括:
在正执行所述经修改命令时在所述队列中接收额外命令;及
在正执行所述经修改命令时修改所述额外命令。
33.根据权利要求28到31中任一权利要求所述的方法,其中执行所述经修改命令包括执行所述经修改命令以对存储器阵列进行操作。
34.一种用于操作存储器装置的方法,其包含将保持于队列中的若干个可组合命令组合成一命令,借此避免部分页编程操作。
35.根据权利要求34所述的方法,其中将所述若干个可组合命令中的每一者与特定存储器单元页的一部分相关联。
36.根据权利要求34到35中任一权利要求所述的方法,其进一步包含执行所述经组合命令。
37.一种用于操作存储器装置的方法,其包含:
在位于存储器控制器的后端通道中的队列中接收若干个命令;
修改所述队列中的所述若干个命令;及
执行所述经修改命令。
38.根据权利要求37所述的方法,其中:
修改所述队列中的所述若干个命令包括改变所述若干个命令的次序;且执行所述经修改命令包括根据所述已改变次序执行所述若干个命令。
39.根据权利要求37所述的方法,其中:
在所述队列中接收若干个命令包括接收与重叠逻辑地址(LBA)相关联的若干个命令;且
修改所述队列中的所述若干个命令包括将与重叠LBA相关联的所述若干个命令组合成单个命令。
40.根据权利要求37所述的方法,其中:
在所述队列中接收若干个命令包括接收与顺序逻辑块地址(LBA)相关联的若干个命令;且
修改所述队列中的所述若干个命令包括将与顺序LBA相关联的所述若干个命令组合成单个命令。
41.根据权利要求37所述的方法,其中:
在所述队列中接收若干个命令包括:
接收与特定逻辑块地址(LBA)相关联的第一命令;及
在所述第一命令之后接收与所述特定LBA相关联的第二命令;且
修改所述队列中的所述若干个命令包括删除所述第一命令。
42.根据权利要求37到41中任一权利要求所述的方法,其中在所述队列中接收若干个命令包括从前端通道接收若干个命令。

说明书全文

修改命令

技术领域

[0001] 本发明一般来说涉及半导体存储器装置、方法及系统,且更特定来说涉及修改命令。

背景技术

[0002] 通常提供存储器装置作为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包括易失性及非易失性存储器。易失性存储器可需要电来维持其数据,且可包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可通过在不被供电时保留所存储的信息来提供永久性数据,且可包括NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及相变随机存取存储器(PCRAM)以及其它存储器。
[0003] 可将存储器装置组合在一起以形成固态驱动器(SSD)。SSD可包括非易失性存储器(例如,NAND快闪存储器及NOR快闪存储器)及/或可包括易失性存储器(例如,DRAM及SRAM)以及各种其它类型的非易失性及易失性存储器。
[0004] SSD可用于取代硬盘驱动器作为计算机的主存储装置,因为SSD可在(举例来说)性能、大小、重量、耐用性、操作温度范围及功率消耗方面具有胜于硬驱动器的优点。举例来说,SSD在与磁盘驱动器比较时因其缺少移动部件而可具有优越的性能,缺少移动部件可改善与磁盘驱动器相关联的搜寻时间、等待时间及其它机电延迟。SSD制造商可使用非易失性快闪存储器来形成快闪SSD,所述快闪SSD可不使用内部电池电源,因此允许所述驱动器更通用且更小型。
[0005] SSD可包括若干个存储器装置,例如若干个存储器芯片(本文所用“若干个”某物可指代一个或一个以上此物,例如,若干个存储器装置可指代一个或一个以上存储器装置)。所属领域的技术人员将了解,存储器芯片可包括若干个裸片。每一裸片可包括若干个存储器阵列及其上的外围电路。存储器阵列可包括若干个平面,其中每一平面包括若干个存储器单元物理。每一物理块可包括可存储若干个数据扇区的若干个存储器单元页。
[0006] 在SSD的操作期间,可使用例如编程命令、读取命令及擦除命令等命令以及其它命令。举例来说,可使用编程(例如,写入)命令将数据编程于固态驱动器上,可使用读取命令读取固态驱动器上的数据,且可使用擦除命令擦除固态驱动器上的数据。附图说明
[0007] 图1图解说明根据本发明的一个或一个以上实施例的存储器系统的框图
[0008] 图2图解说明可根据本发明的一个或一个以上实施例操作的存储器控制器的功能框图。
[0009] 图3图解说明根据本发明的一个或一个以上实施例的通道命令队列的框图。
[0010] 图4A及4B图解说明根据本发明的一个或一个以上实施例的通道命令队列的框图。

具体实施方式

[0011] 本发明包括用于修改命令的方法、装置、模块及系统。一个装置实施例包括存储器控制器,所述存储器控制器包括通道,其中所述通道包括经配置以保持命令的命令队列及经配置以修改所述队列中的至少若干个命令且执行所述经修改命令的电路。
[0012] 在本发明的以下详细说明中,参照形成本发明的一部分且其中以图解说明方式显示可如何实践本发明的一个或一个以上实施例的附图。充分详细地描述这些实施例以使得所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可作出过程、电及/或结构改变,而不背离本发明的范围。如本文中所使用,标示符“N”及“M”(特定来说关于图式中的参照编号)指示本发明的一个或一个以上实施例可包括如此标示的特定特征的数目。所述标示符可表示相同数目个或不同数目个特定特征。
[0013] 本文中的图遵循以下编号惯例:其中第一个数字或前几个数字对应于图式图编号,且其余数字识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,101可指代图1中的元件“10”,且类似元件在图2中可标号为201。如将了解,可添加、交换及/或消除本文中各种实施例中所示的元件以便提供本发明的若干个额外实施例。另外,如将了解,所述图中所提供的所述元件的比例及相对比例尺打算图解说明本发明的实施例而不应被视为具有限制意义。
[0014] 图1图解说明根据本发明的一个或一个以上实施例的存储器系统120的框图。在一个或一个以上实施例中,存储器系统120可为固态驱动器。图1的实施例图解说明存储器系统120的一个实施例的组件及架构。在图1中所图解说明的实施例中,存储器系统120包括控制器101、接口连接器103及存储器阵列130-1、…、130-N。在一个或一个以上实施例中,存储器系统120可包括用以装纳存储器系统120的外壳,但此外壳并非是基本的。
[0015] 可使用接口连接器103在存储器系统120与另一装置(例如,计算装置)之间传递信息。举例来说,当存储器系统120用于计算装置中的数据存储时,接口103可为串行高级技术附件(SATA)以及其它。
[0016] 控制器101可与存储器阵列130-1、…、130-N通信以在存储器阵列130-1、…、130-N上执行读取、编程(例如,写入)及擦除操作及其它操作。控制器101可用于管理存储器系统120中的操作。控制器101可具有可为若干个集成电路的电路。控制器101也可具有可为若干个离散组件的电路。对于一个或一个以上实施例,控制器101中的电路可包括用于控制跨越若干个存储器阵列的存取的控制电路。控制器101中的电路也可包括用于提供外部主机与存储器系统120之间的翻译层的控制电路。因此,存储器控制器可选择性地耦合存储器阵列的I/O连接(未在图1中显示)以在适当时间在适当I/O连接处接收适当信号。类似地,主机与存储器系统120之间的通信协议可不同于存取存储器阵列(例如,存储器阵列130-1、…、130-N)所需的协议。然后,存储器控制器101可将从主机接收的命令翻译成适当命令以实现对存储器阵列的所要存取。
[0017] 存储器阵列130-1、…、130-N可为各种类型的易失性及非易失性存储器阵列(例如,快闪及DRAM阵列以及其它阵列)。在一个或一个以上实施例中,存储器阵列130-1、…、130-N可为固态存储器阵列。存储器阵列130-1、…、130-N可包括可按单位分组的若干个存储器单元。如本文所用,单位可包括若干个存储器单元,例如页、物理块、平面、整个阵列或其它存储器单元群组。举例来说,存储器阵列可包括若干个平面,其中每一平面包括若干个物理块。每一物理块中的存储器单元可作为单位一起擦除,例如,可以大致同时的方式擦除每一物理块中的单元。举例来说,可在单个操作中一起擦除每一物理块中的单元。物理块可包括若干个页。每一页中的存储器单元可作为单位一起编程,例如,可以大致同时的方式编程每一页中的单元。每一页中的存储器单元也可作为单位一起读取。作为实例,128GB存储器装置可包括每页4314个数据字节,每物理块128个页,每平面2048个物理块,且每装置16个平面。然而,实施例并不限于此实例。
[0018] 存储器系统的物理扇区可对应于逻辑扇区且可包括开销信息(例如,错误校正码(ECC)信息)及逻辑块地址(LBA)信息以及用户数据。所属领域的技术人员将了解,逻辑块寻址是主机识别信息逻辑扇区通常使用的方案。作为实例,每一物理扇区可存储表示若干个数据字节的信息,例如,256个字节、512个字节或1,024个字节以及其它数目个字节。然而,本发明的实施例并不限于存储于物理扇区中或与逻辑扇区相关联的特定数目个数据字节。
[0019] 图2图解说明可根据本发明的一个或一个以上实施例操作的存储器控制器201的功能框图。在一个或一个以上实施例中,存储器控制器201可为固态驱动器控制器。在一个或一个以上实施例中,存储器控制器201可类似于图1中所示的控制器101。
[0020] 如在图2中所示,存储器控制器201包括前端部分及后端部分。所述前端部分可对应于前端通道,且所述后端部分可对应于若干个后端通道,例如后端通道1 210-1、…、后端通道N 210-N。存储器控制器201可使用前端通道及后端通道来与存储器阵列230-1、…、230-N通信以在存储器阵列230-1、…、230-N上执行读取、编程(例如,写入)及擦除操作以及其它操作。在一个或一个以上实施例中,存储器阵列230-1、…、230-N可为固态存储器阵列。在一个或一个以上实施例中,存储器阵列230-1、…、230-N可类似于图1中所示的存储器阵列130-1、…、130-N。
[0021] 如在图2中所示,控制器201的前端部分(例如,前端通道)包括主机接口202、命令处理器204、前端直接存储器存取(DMA)206及命令调度程序208。后端通道210-1、…、210-N可包括后端通道处理器211-1、…、211-N、后端通道DMA 213-1、…、213-N、后端通道命令队列215-1、…、215-N、数据缓冲器217-1、…、217-N及ECC引擎/阵列接口219-1、…、
219-N。尽管图2中所示的实施例将每一后端通道210-1、…、210-N图解说明为包括后端通道处理器,但本发明的实施例并不如此受限制。举例来说,所述后端部分可包括可对每一后端通道210-1、…、210-N进行操作的电路,例如,单个后端处理器或硬件逻辑,例如专用集成电路(ASIC)。
[0022] 在图2中所图解说明的实施例中,所述前端通道可经由前端DMA 206及命令调度程序208耦合到后端通道,例如后端通道210-1、…、210-N。举例来说,前端DMA 206可耦合到后端通道处理器211-1、…、211-N及后端通道DMA 213-1、…、213-N。命令调度程序208可耦合到后端通道命令队列215-1、…、215-N。可使用主机接口202在控制器201与主机装置(未显示,例如计算装置)之间传递信息。在一个或一个以上实施例中,可使用主机接口202经由接口连接器(例如,图1中所示的接口连接器103)在控制器201与所述主机装置之间传递信息。
[0023] 在一个或一个以上实施例中,在主机装置与控制器201之间传递的信息可包括若干个命令,例如编程命令、读取命令及擦除命令以及其它命令。可使用编程(例如,写入)命令在存储器阵列230-1、…、230-N上编程数据,可使用读取命令读取存储器阵列230-1、…、230-N上的数据,且可使用擦除命令擦除存储器阵列230-1、…、230-N上的数据。所述命令可包括指示被命令的操作类型(例如,编程、读取或擦除)、数量(例如,逻辑扇区的数目)及所述命令的执行将开始的位置(例如,开始地址)的信息以及其它信息。如果所述命令为编程命令,那么所述命令可后跟(未必紧接着)将编程到对应存储器单元的数据。在一个或一个以上实施例中,所述数量可为主机的对应于若干个存储器单元的若干个逻辑扇区。在一个或一个以上实施例中,所述命令中所包括的“位置”可为逻辑块地址(LBA)。
[0024] 数据缓冲器217-1、…、217-N可经由主机接口202、前端DMA 206及后端通道DMA213-1、…、213-N从主机接收将在存储器阵列230-1、…、230-N上编程的数据。所述数据可经由ECC引擎/阵列接口219-1、…、219-N从数据缓冲器217-1、…、217-N发送到存储器阵列230-1、…、230-N。
[0025] 在一个或一个以上实施例中,LBA可与主机的逻辑扇区相关联,例如,主机的每一逻辑扇区可与特定LBA相关联。举例来说,LBA 1000可与第一逻辑扇区相关联,LBA 1001可与第二逻辑扇区相关联,LBA 1002可与第三逻辑扇区相关联等。作为进一步实例,用以编程所述阵列中对应于开始于LBA 1000的16个逻辑扇区的存储器单元的命令可编程与LBA1000到1016相关联的存储器单元,例如,对应于与LBA 1000到1016相关联的逻辑扇区的存储器单元。
[0026] 命令调度程序208可经由主机接口202从主机接收若干个命令。命令调度程序208可保持所述所接收的命令,且将所述命令发送到适当后端通道210-1、…、210-N。举例来说,后端通道队列215-1、…、215-N可从命令调度程序208接收所述命令。在一个或一个以上实施例中,后端通道210-1、…、210-N可按命令调度程序208从主机接收所述命令的次序接收所述命令。在一个或一个以上实施例中,命令调度程序208可保持多达特定数目个命令,且如果命令调度程序208正保持所述特定数目个命令(例如,如果命令调度程序
208已满),那么命令调度程序208可不能够从主机接收命令。
[0027] 在一个或一个以上实施例中,后端通道命令队列215-1、…、215-N可保持从命令调度程序208接收的若干个命令。在一个或一个以上实施例中,所述队列可按将执行所述命令的次序保持所述命令。在一个或一个以上实施例中,所述队列可按从所述命令调度程序接收所述命令的次序保持所述命令。在一个或一个以上实施例中,每一队列可保持等于命令调度程序208可保持的若干个命令的若干个命令。举例来说,在一个或一个以上实施例中,命令调度程序208及所述队列可各自保持多达32个命令。然而,本发明的实施例并不限于特定数目个命令。
[0028] 根据一个或一个以上实施例,后端通道处理器211-1、…、211-N可确定是否可修改保持于所述队列中的命令,且可(例如)在所述命令保持于所述队列中时相应地对所述命令进行修改。在一个或一个以上实施例中,如果可改变命令保持于队列中的次序,如果可将队列中的命令中的若干个命令组合成一命令(例如,单个命令),或如果队列中的命令中的若干个命令将被队列中的随后命令盖写,那么可修改所述命令。在一个或一个以上实施例中,修改命令可包括:改变命令保持于队列中的次序;将队列中的若干个可组合命令组合成单个命令;或删除队列中的将被队列中的随后命令盖写的若干个命令;以及其它修改。
[0029] 在一个或一个以上实施例中,如果保持于队列中的命令是重叠命令,那么所述命令是可组合的,例如,可被组合成单个命令。如本文所用,重叠命令是与重叠地址(例如,重叠逻辑块地址(LBA))相关联的若干个命令。举例来说,重叠命令可包括与存储器阵列中将在其上执行所述命令的共用位置相关联的命令。具体实例包括用以编程阵列中对应于主机的开始于逻辑块地址(LBA)1000的48个逻辑扇区(例如,来自所述主机的48个数据逻辑扇区)的存储器单元的第一命令及用以编程所述阵列中对应于所述主机的开始于LBA 1040的16个逻辑扇区的存储器单元的第二命令。所述第一命令与第二命令是重叠命令,因为两个命令均与开始于LBA 1040的相同8个逻辑扇区相关联。因此,可将这两个命令组合成用以编程对应于开始于LBA 1000的56个逻辑扇区的存储器单元的单个命令。可组合保持于所述队列中的重叠命令而不管将其接收于所述队列中的次序如何。
[0030] 在一个或一个以上实施例中,如果保持于队列中的命令是顺序命令,那么所述命令是可组合的,例如,可组合成单个命令。如本文所用,顺序命令是与将在其上执行所述命令的顺序地址(例如,顺序LBA)相关联的若干个命令。举例来说,顺序命令可包括与紧在与其它命令中的一者相关联的逻辑扇区之前或紧在其之后的逻辑扇区相关联的命令。具体实例包括用以编程阵列中对应于主机的开始于LBA 1000的16个逻辑扇区的存储器单元的第一命令及用以编程所述阵列中对应于所述主机的开始于LBA 1016的32个逻辑扇区的存储器单元的第二命令。所述第一命令与第二命令是顺序命令,因为与所述第一命令相关联的地址紧在与所述第二命令相关联的地址之前,例如,与所述第二命令相关联的位置紧在与所述第一命令相关联的位置之后。因此,可将这两个命令组合成用以编程对应于所述主机的开始于LBA 1000的48个逻辑扇区的存储器单元的单个命令。可组合保持于所述队列中的顺序命令而不管将其接收于所述队列中的次序如何。
[0031] 在一个或一个以上实施例中,如果队列中的第一命令及所述队列中的随后命令两者与将在其上执行所述命令的同一地址(例如,同一LBA)相关联,那么所述第一命令将被所述随后命令盖写。举例来说,用以编程阵列中对应于主机的开始于LBA 1000的16个逻辑扇区的存储器单元的第一命令将被用以编程所述阵列中对应于所述主机的开始于LBA1000的16个逻辑扇区的存储器单元的随后命令盖写,因为所述第一命令及所述随后命令两者与同一地址相关联。因此,可删除所述第一命令。
[0032] 在一个或一个以上实施例中,如果与队列中的第一命令相关联的地址在与所述队列中的随后命令相关联的地址范围内,那么所述第一命令将被所述随后命令盖写。举例来说,用以编程阵列中对应于主机的开始于LBA 1000的16个逻辑扇区的存储器单元的第一命令将被用以编程所述阵列中对应于所述主机的开始于LBA 1000的48个逻辑扇区的存储器单元的随后命令盖写。因此,可删除所述第一命令。
[0033] 后端通道处理器211-1、…、211-N可根据经修改命令保持于队列中的次序执行所述经修改命令。举例来说,如果通过改变命令保持于队列中的次序来修改所述命令,那么后端通道处理器可根据所述已改变次序来执行所述命令。如果通过将命令中的若干个命令组合成单个命令来修改所述命令,那么后端通道处理器可执行所述单个命令而非单独地执行所述若干个命令。如果通过删除将被随后命令盖写的命令来修改命令,那么后端通道处理器可执行所述随后命令而非所述已删除的命令。
[0034] 在一个或一个以上实施例中,如果通过将保持于后端通道命令队列215-1、…、215-N中的命令中的若干个命令组合成单个命令来修改所述命令,那么可认为命令调度程序208中所保持的也可与所述单个命令组合的任何命令已完成。后端通道处理器
211-1、…、211-N可向命令处理器204通信:此些命令已完成。举例来说,如果将队列215-1中用以编程阵列中对应于主机的开始于LBA 1000的48个逻辑扇区的存储器单元的第一命令与队列215-N中用以编程所述阵列中对应于所述主机的开始于LBA 1040的16个逻辑扇区的存储器单元的第二命令组合成单个命令(例如,用以编程对应于所述主机的开始于LBA 1000的56个逻辑扇区的存储器单元的命令),那么可认为命令调度程序208中所保持的用以编程对应于所述主机的开始于LBA 1000的16个逻辑扇区的存储器单元的命令已完成,例如,后端通道处理器211-1可向命令处理器204通信:此命令已完成,因为此命令可与所述单个命令组合。
[0035] 后端通道处理器211-1、…、211-N也可根据经修改命令修改将在存储器阵列230-1、…、230-N上编程的数据。举例来说,后端通道处理器211-1、…、211-N可修改所述数据以匹配所述经修改命令。后端通道处理器211-1、…、211-N可在数据缓冲器217-1、…、
217-N接收到所述数据之前(例如,在所述数据正被从前端DMA 206发送到数据缓冲器
217-1、…、217-N时)修改所述数据。后端通道处理器211-1、…、211-N也可在所述数据被从数据缓冲器217-1、…、217-N发送到存储器阵列230-1、…、230-N之后修改所述数据。
[0036] 在一个或一个以上实施例中,后端通道命令队列215-1、…、215-N可在后端通道处理器211-1、…、211-N正在执行经修改命令时保持从命令调度程序208接收的额外命令。后端通道处理器211-1、…、211-N可在执行所述经修改命令时修改所述额外命令。
[0037] 可使用ECC引擎/阵列接口219-1、…、219-N将存储器控制器201耦合到存储器阵列230-1、…、230-N。后端通道处理器211-1、…、211-N可经由ECC引擎/阵列接口219-1、…、219-N在存储器阵列230-1、…、230-N上执行经修改命令。尽管图2中所示的实施例将命令图解说明为穿过后端通道处理器211-1、…、211-N行进,但本发明的实施例并不如此受限制。举例来说,所述命令可经由ECC引擎/阵列接口219-1、…、219-N直接从后端通道命令队列215-1、…、215-N行进到存储器阵列230-1、…、230-N。
[0038] 数据缓冲器217-1、…、217-N可保持在若干个先前读取操作期间所读取的数据,例如,响应于先前读取命令在位于存储器阵列230-1、…、230-N中的若干个存储器单元上执行的读取。在一个或一个以上实施例中,保持于后端通道命令队列215-1、…、215-N中的命令可包括用以读取先前已经读取的若干个存储器单元(例如,所述存储器单元的数据已经保持于数据缓冲器217-1、…、217-N中)的若干个命令。在此些实施例中,后端通道处理器211-1、…、211-N可通过(例如)在不存取存储器阵列230-1、…、230-N的情况下存取数据缓冲器217-1、…、217-N或通过仅针对不在所述数据缓冲器中的数据而仅存取所述存储器阵列来执行这些读取命令。
[0039] 在一个或一个以上实施例中,通过将若干个可组合命令组合成单个命令来修改命令可消除或减少存储器系统所执行的部分页编程操作的数目,此可改善所述系统的总性能及/或可靠性。所属领域的技术人员将理解,部分页编程操作可包括定位新块、将存储于位于旧块中的页上的数据读取到数据缓冲器中、将所述数据缓冲器中的数据与新数据合并及/或用新数据取代所述数据缓冲器中的数据以使得所述数据缓冲器中的数据包括新数据及从旧块中的页读取的数据两者,且以所述数据缓冲器中的数据编程新块中的页。所述部分页编程操作还可包括将存储于旧块中的剩余页上的数据传送到新块中的剩余页(例如,读取存储于旧块中的剩余页上的数据且以此数据编程新块中的剩余页)、标记旧块以用于擦除且擦除旧块。
[0040] 所属领域的技术人员将理解,部分页编程操作可因用以仅编程页的一部分的命令而产生,例如,由所述命令起始。举例来说,用以仅编程页的一部分的命令可在用以编程所述页的剩余部分的命令已经被执行的情形下起始部分页编程操作。然而,可通过根据本发明的一个或一个以上实施例组合用以仅编程页的一部分的命令与用以编程所述页的剩余部分的若干个命令来避免部分页编程操作,例如,可避免执行与上文所描述的部分页编程操作相关联的操作的需要。举例来说,涉及包括对应于主机的开始于LBA 3000的4个逻辑扇区的存储器单元的页的部分页编程操作可通过根据本发明的一个或一个以上实施例组合用以编程所述页中对应于所述主机的开始于LBA 3000的2个逻辑扇区的存储器单元的命令与用以编程所述页中对应于所述主机的开始于LBA 3002的2个逻辑扇区的存储器单元的命令而避免。
[0041] 在一个或一个以上实施例中,命令处理器204可执行类似于后端通道处理器211-1、…、211-N所执行的功能的功能。举例来说,命令处理器204可确定是否可修改命令调度程序208中所保持的命令,且可在将所述命令保持于命令调度程序208中时相应地修改所述命令。如果可改变所述命令发送到后端通道的次序,如果可将所述命令中的若干个命令组合成单个命令,如果所述命令中的若干个命令将被随后命令盖写等,那么可修改所述命令。修改所述命令可包括改变命令调度程序208将所述命令发送到后端通道的次序、将命令调度程序208所接收的若干个可组合命令组合成单个命令、删除命令调度程序208所接收的将被命令调度程序208所接收的随后命令盖写的若干个命令等。
[0042] 在一个或一个以上实施例中,命令处理器204可在命令调度程序208不能够从主机接收命令时执行这些功能,例如,可确定是否可修改命令调度程序208中所保持的命令且可在将所述命令保持于命令调度程序208中时相应地修改所述命令。举例来说,命令处理器204可在命令调度程序208已满时执行这些功能。
[0043] 在一个或一个以上实施例中,命令处理器204可确定命令调度程序208中所保持的命令是否是不再由后端通道处理器211-1、…、211-N修改的命令。如果命令处理器204确定命令调度程序208中所保持的若干个命令不再由后端通道处理器修改,那么命令处理器204可将这些命令标记(例如,加标签)为不再由后端通道处理器修改的命令。当由命令处理器204标记为不再被修改的命令保持于后端通道命令队列215-1、…、215-N中时,其将不被后端通道处理器211-1、…、211-N修改。举例来说,如果后端通道命令队列215-1保持用以编程阵列中对应于主机的开始于LBA 1000的48个逻辑扇区的存储器单元的第一命令及用以编程所述阵列中对应于所述主机的开始于LBA 1040的16个逻辑扇区的存储器单元的第二命令,且命令处理器204已将这些命令中的一者或两者标记为不再被修改的命令,那么后端通道处理器211-1将不修改(例如,组合)这两个命令。不再被修改的命令可包括(举例来说)为盖写操作的一部分的命令,例如,其中第一编程命令后跟读取命令且所述读取命令后跟既定盖写初始编程命令的第二编程命令的操作。然而,本发明的实施例并不如此受限制,且不再被修改的命令可包括其它类型的命令。
[0044] 根据本发明的一个或一个以上实施例操作存储器装置可通过(举例来说)删除重复命令且将多个命令组合成一个命令来减少执行若干个命令所使用的时间量,借此增加所述存储器装置的效率。另外,由于后端通道可与存储器阵列230-1、…、230-N紧密地耦合(例如,位于其附近),因此可通过根据本发明的一个或一个以上实施例操作存储器装置来增加所述存储器装置的效率。
[0045] 图3图解说明根据本发明一个或一个以上实施例的通道命令队列315的框图。在一个或一个以上实施例中,通道命令队列315可类似于图2中所示的后端通道命令队列215-1、…、215-N。
[0046] 如在图3中所示,通道命令队列315包括通道命令时隙1 325-1、通道命令时隙2325-2、通道命令时隙3 325-3、通道命令时隙4 325-4、…、通道命令时隙M 325-M。每一通道命令时隙325-1、325-2、325-3、325-4、…、325-M可保持一个命令,例如,通道命令队列
315可保持多达M个命令。在一个或一个以上实施例中,如前文所描述,可修改保持于通道命令队列315中的命令。
[0047] 在一个或一个以上实施例中,通道命令队列315中的时隙的数目(例如,通道命令队列315可保持的命令的数目)可等于通道命令队列315从其接收命令的装置(例如,图2中所示的命令调度程序208)可保持的命令的数目。举例来说,如果命令调度程序208可保持多达32个命令,那么通道命令队列315可具有32个时隙,例如,通道命令队列315可保持多达32个命令。然而,本发明的实施例并不如此受限制,且通道命令队列315可具有不同数目个时隙。
[0048] 在一个或一个以上实施例中,通道命令队列315可按将执行命令的次序保持所述命令。在一个或一个以上实施例中,通道命令队列315可按通道命令队列315接收命令的次序保持所述命令。举例来说,通道命令时隙1 325-1可保持将第一个执行及/或由通道命令队列315第一个接收的命令,通道命令时隙1 325-2可保持将在执行保持于通道命令时隙1 325-1中的命令之后执行及/或在接收到保持于通道命令时隙1 325-1中的命令之后接收到的命令,通道命令时隙2 325-3可保持将在执行保持于通道命令时隙2 325-2中的命令之后执行及/或在接收到保持于通道命令时隙2 325-2中的命令之后接收到的命令等。
[0049] 图4A图解说明根据本发明一个或一个以上实施例的通道命令队列415的框图。在一个或一个以上实施例中,通道命令队列415可类似于图2中所示的后端通道1命令队列215-1、…、215-N或图3中所示的通道命令队列315。通道命令队列415包括通道命令时隙
425-1、425-2、425-3、425-4、425-5、425-6、425-7、425-8、…、425-M,所述通道命令时隙可类似于图3中所示的通道命令时隙1 325-1、通道命令时隙2 325-2、通道命令时隙3 325-3、通道命令时隙4 325-4、…、通道命令时隙M 325-M。
[0050] 在图4A所图解说明的实施例中,每一通道命令时隙425-1到425-M保持命令。举例来说,通道命令时隙425-1正保持命令1,通道命令时隙425-2正保持命令2等。命令1是用以编程阵列中对应于主机的开始于LBA 1000的16个逻辑扇区(例如,来自所述主机的16个数据逻辑扇区)的存储器单元的命令。命令2是用以读取所述阵列中对应于所述主机的开始于LBA 2000的4个逻辑扇区的存储器单元的命令。命令3是用以编程所述阵列中对应于所述主机的开始于LBA 1000的48个逻辑扇区的存储器单元的命令。命令4是用以读取所述阵列中对应于所述主机的开始于LBA 2002的10个逻辑扇区的存储器单元的命令。命令5是用以读取所述阵列中对应于所述主机的开始于LBA 2000的16个逻辑扇区的存储器单元的命令。命令6是用以编程所述阵列中对应于所述主机的开始于LBA 1040的16个逻辑扇区的存储器单元的命令。命令7是用以编程所述阵列中对应于所述主机的开始于LBA 3000的2个逻辑扇区的存储器单元的命令。命令8是用以编程所述阵列中对应于所述主机的开始于LBA 3002的2个逻辑扇区的存储器单元的命令。
[0051] 可根据本发明的一个或一个以上实施例修改保持于通道命令队列415中的命令。举例来说,可将通道命令时隙425-1、425-3及425-6中的命令组合成用以编程所述阵列中对应于所述主机的开始于LBA 1000的56个逻辑扇区的存储器单元的命令(例如,单个命令)。可删除通道命令时隙425-2及425-4中的命令。可将通道命令时隙425-7及425-8中的命令组合成用以编程所述阵列中对应于所述主机的开始于LBA 3000的4个逻辑扇区的存储器单元的单个命令。
[0052] 图4B图解说明在已根据本发明的一个或一个以上实施例修改图4A中所示的命令之后的通道命令队列415的框图。如在图4B中所示,保持于通道命令时隙425-1中的命令1是用以编程所述阵列中对应于所述主机的开始于LBA 1000的56个逻辑扇区的存储器单元的命令,保持于通道命令时隙425-2中的命令2是用以读取所述阵列中对应于所述主机的开始于LBA 2000的16个逻辑扇区的存储器单元的命令,且保持于通道命令时隙425-3中的命令3是用以编程所述阵列中对应于所述主机的开始于LBA 3000的4个逻辑扇区的存储器单元的命令。
[0053] 结论
[0054] 本发明包括用于修改命令的方法、装置、模块及系统。一个装置实施例包括存储器控制器,所述存储器控制器包括通道,其中所述通道包括经配置以保持命令的命令队列及经配置以修改所述队列中的至少若干个命令且执行所述经修改命令的电路。
[0055] 尽管本文中已图解说明及描述了具体实施例,但所属领域的技术人员将了解,经计算以实现相同结果的布置可替代所显示的具体实施例。本发明既定涵盖本发明的一个或一个以上实施例的更改或变化形式。应理解,已以说明性方式而非限制性方式作出以上说明。在审阅以上说明后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一个或一个以上实施例的范围包括其中使用以上结构及方法的其它应用。因此,应参照所附权利要求书连同授权于此权利要求书的等效物的全部范围来确定本发明的一个或一个以上实施例的范围。
[0056] 在前述实施方式中,出于简化本发明的目的而将一些特征一起集合于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如以上权利要求书所反映,发明性标的物在于少于单个所揭示实施例的所有特征。因此,以上权利要求书借此并入实施方式中,其中每一权利要求独立地作为单独实施例。
相关专利内容
标题 发布/更新时间 阅读量
修改分析流 2020-05-11 493
修改对象的基层 2020-05-12 643
多功能修改器 2020-05-12 324
已修改流同步 2020-05-12 34
路线修改 2020-05-11 126
一种面型修改油 2020-05-13 559
修改对话窗口 2020-05-12 7
修改颜色色域 2020-05-13 448
引导过程修改 2020-05-13 886
错字修改笔 2020-05-12 309
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈