CN108228075A - 访问存储器的方法和设备 - Google Patents
访问存储器的方法和设备 Download PDFInfo
- Publication number
- CN108228075A CN108228075A CN201611131828.6A CN201611131828A CN108228075A CN 108228075 A CN108228075 A CN 108228075A CN 201611131828 A CN201611131828 A CN 201611131828A CN 108228075 A CN108228075 A CN 108228075A
- Authority
- CN
- China
- Prior art keywords
- order
- time interval
- memory
- storage unit
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请提供一种访问存储器的方法,包括:向所述存储器发出所述命令;在所设置的时间间隔之后,查询所述命令的执行结果,以得到查询结果,其中所设置的时间间隔表示从所述命令发出到开始进行所述查询的时间间隔。本申请的技术方案至少能够减少对闪存通道的占用,提升固态硬盘性能,并降低固态硬盘的功耗。
Description
技术领域
本申请涉及存储设备领域,更具体地,涉及通过NVM芯片的命令接口操作NVM芯片的方法与设备。
背景技术
图1是现有技术的固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机***接口)、SAS(Serial AttachedSCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component InterconnectExpress,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式;控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令;控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据;在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
NVM芯片105的接口协议中提供了诸如读、编程、擦除等命令(也称为访问NVM芯片的命令),每种命令具有各自的执行时间。向NVM芯片105发出命令后,基于命令类型,在预定的时间后通过查询/轮询NVM芯片105的状态寄存器(例如SR寄存器),以获知命令的执行是否完成以及是否成功。
发明内容
在研究中发现,即使对于相同类型的访问NVM芯片的命令,其执行时间也可能会发生变化。若根据NVM芯片产品手册提供的参数设置时间窗口,则在发出访问NVM芯片的命令后的指定时间窗口内可能会不断地查询命令执行结果,由此增加对耦合NVM芯片与控制部件104的闪存通道的占用,从而降低了固态硬盘的性能,增加了功耗。
本申请的目的在于,通过改进命令执行结果的查询机制,减少对闪存通道的占用,提升固态硬盘性能,并降低固态硬盘的功耗。
根据本发明的第一方面,提供根据本发明第一方面的访问存储器的第一方法,包括:向所述存储器发出所述命令;在所设置的时间间隔之后,查询所述命令的执行结果,以得到查询结果,其中所设置的时间间隔表示从所述命令发出到开始进行所述查询的时间间隔。
根据本发明第一方面的访问存储器的的第一方法,提供一种访问存储器的第二方法,其中,所述命令为针对所述存储器的擦除命令,所述查询通过执行读状态命令来进行。
根据本发明第一方面的访问存储器的的第一或第二方法,提供一种访问存储器的第三方法,其中,所述时间间隔是根据所述命令所访问的存储单元的PE次数来设置的。
根据本发明第一方面的访问存储器的的第一至第三方法之一,提供一种访问存储器的第四方法,其中,所述时间间隔是根据所述命令所访问的存储单元的PE次数的范围来设置的。
根据本发明第一方面的访问存储器的的第一至第四方法之一,提供一种访问存储器的第五方法,其中,根据如下等式来设置所述时间间隔t:t=a+b*f(x),其中,x表示所述命令所访问的存储单元的PE次数,a为指定的系数,b为指定的系数。
根据本发明第一方面的访问存储器的的第五方法,提供一种访问存储器的第六方法,其中,f(x)=xk,其中k为0-1之间的值。
根据本发明第一方面的访问存储器的的第五方法,提供一种访问存储器的第七方法,其中,f(x)=logmx,其中m>1。
根据本发明第一方面的访问存储器的的第五至第七方法之一,提供一种访问存储器的第八方法,其中,根据如下等式来设置所述当前时间间隔t1:t1=t0+(b*f(x1)-b*f(x0)),其中,x0表示所述命令所访问的存储单元在t0时刻的PE次数,x1表示所述命令所访问的存储单元在t1时刻的PE次数,b为指定的系数。
根据本发明第一方面的访问存储器的的第六方法,提供一种访问存储器的第九方法,其中,k为1/2或1/3。
根据本发明第一方面的访问存储器的的第一方法,提供一种访问存储器的第十方法,其中,所述命令为针对所述存储器的编程命令,所述查询通过执行读状态命令来进行。
根据本发明第一方面的访问存储器的的第十方法,提供一种访问存储器的第十一方法,其中,所述时间间隔是根据所述编程命令要写入的数据量来设置的。
根据本发明第一方面的访问存储器的的第一方法,提供一种访问存储器的第十二方法,其中,所述命令为针对所述存储器的读命令,所述查询通过执行读状态命令来进行
根据本发明第一方面的访问存储器的的第十二方法,提供一种访问存储器的第十三方法,其中,所述时间间隔是根据所述读命令要读取的数据量来设置的。
根据本发明第一方面的访问存储器的的第一至第十三方法之一,提供一种访问存储器的第十四方法,进一步包括:如果所述查询结果表明所述存储器处于“忙”状态,则再次查询所述命令在所述存储器上的执行结果,直到所述存储器处于“就绪”状态。
根据本发明第一方面的访问存储器的的第一至第十三方法之一,提供一种访问存储器的第十五方法,进一步包括:如果所述查询结果表明所述存储器处于“忙”状态,则在第一指定时间间隔之后再次查询所述命令在所述存储器上的执行结果,直到所述存储器处于“就绪”状态。
根据本发明第一方面的访问存储器的的第一至第十三方法之一,提供一种访问存储器的第十六方法,进一步包括:如果在指定的最大时间间隔之后,所述查询结果表明所述存储器处于“忙”状态,则发出故障指示。
根据本发明第一方面的访问存储器的的第一至第十六方法之一,提供一种访问存储器的第十七方法,其中,如果处于高性能模式,则将所述间间隔设置为第一值;以及如果处于低功耗模式,则将所述时间间隔设置为第二值;其中依据从命令发送给在所访问的存储单元到所述存储单元指示命令执行完成的时间间隔的最小值设置第一值;依据从命令发送给在所访问的存储单元到所述存储单元指示命令执行完成的时间间隔的平均值设置第二值。
根据本发明第一方面的访问存储器的的第十七方法,提供一种访问存储器的第十八方法,其中,依据从命令发送给在所访问的其PE次数属于指定PE次数范围的存储单元到所述存储单元指示命令执行完成的时间间隔的最小值设置第一值;依据从命令发送给在所访问的其PE次数属于指定PE次数范围的存储单元到所述存储单元指示命令执行完成的时间间隔的平均值设置第二值。
根据本发明第二方面,提供一种存储控制器,包括:一个或者多个处理器;一个或多个存储器;以及存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述控制器执行如上所述的方法。
根据本发明第三方面,提供一种用于对命令在存储器上的执行结果进行查询的设备,包括:用于向所述存储器发出所述命令的装置;用于在所设置的时间间隔之后,查询所述命令的执行结果,以得到查询结果的装置,其中所设置的时间间隔表示从所述命令发出到开始进行所述查询的时间间隔。
根据本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被一个设备执行时,使得所述设备执行上面所述的方法。
本申请的技术方案至少能够减少对闪存通道的占用,提升固态硬盘性能,并降低固态硬盘的功耗。
附图说明
图1展示了现有技术的存储设备的框图;
图2展示了根据本发明实施例的存储设备的控制部件的框图;
图3是访问NVM芯片的擦除命令的时序图;
图4是访问NVM芯片的读状态命令的时序图;
图5是根据本发明实施例的用于对命令在存储器上的执行结果进行查询的方法的流程图;
图6是从发出擦除命令到SR寄存器指示“就绪”状态的时间曲线;
图7是根据本发明又一实施例的执行擦除命令的流程图;
图8是访问NVM芯片的编程命令的时序图;
图9是根据本发明另一实施例的执行读命令的流程图;以及
图10是根据本发明实施例的控制部件执行读命令的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细描述。需要理解的是,本公开中“第一”、“第二”仅用于指示对象,而并不用于限制数量和/或顺序。
图2展示了根据本发明实施例的存储设备的控制部件的框图。控制部件104包括主机接口210、前端处理模块220、闪存管理模块230与后端处理模块240。
主机接口210用于同主机交换命令与数据。在一个例子中,主机与存储设备通过NVMe/PCIe协议通信,主机接口210处理PCIe协议数据包,提取出NVMe协议命令,并向主机返回NVMe协议命令的处理结果。FTL模块230将闪存访问命令的逻辑地址转换为物理地址,并对闪存实施管理,提供磨损均衡、垃圾回收等服务。后端处理模块240依据物理地址访问一个或多个NVM芯片。将在访问FTL之前的处理称为前端处理,而将在访问FTL之后的处理称为后端处理。前端控制部件104还耦合到外部存储器(例如,RAM)260。存储器260的部分空间被用作前端缓存(前端缓存265),前端处理模块220可访问存储器260来使用前端缓存。可选地,在控制部件104内提供前端缓存模块225用作前端缓存。
本发明以擦除命令和编程命令为例来描述本发明的技术方案。当命令为针对存储器的擦除命令或者编程命令时,均可以通过执行读状态命令来查询擦除命令或编程命令的执行状态或结果。通过向NVM芯片发出读状态命令,获知该NVM芯片的状态。如果对NVM芯片的编程命令或擦除命令尚未执行完毕,则可以获知该NVM芯片处于“忙”状态,如果对NVM芯片的编程命令或擦除命令已执行完毕,则可以获知该NVM芯片处于“就绪”状态。
实施例1
图3是访问NVM芯片的擦除命令的时序图。在图3中,从左向右是时间流逝方向。DQ指示NVM芯片的一个或多个DQ引脚,SR指示NVM芯片的响应于擦除命令执行的状态(由SR寄存器的值所指示)。为发出擦除命令,控制部件104(参看图1和图2)在NVM芯片的DQ引脚上依次产生“命令1”、一个或多个指示被擦写块的“地址”(图3中所示为3个地址)与“命令2”。作为响应,NVM芯片对指定地址的块进行擦写。在t1时刻后,“SR”寄存器变为“忙”状态,指示擦除操作正在进行;并在擦写完成后的t2时刻,“SR”寄存器的对应位变为“就绪”状态。发出擦除命令后,控制部件104查询SR寄存器,响应于SR寄存器为“就绪”状态,控制部件104知晓擦除命令已经完成。
图4是访问NVM芯片的读状态命令的时序图。
在图4中,为发出读状态命令,控制部件104(参看图1)在NVM芯片的DQ引脚上依次产生“命令3”、一个或多个可选“地址”(在图4中为3个地址)。当提供一个或多个可选地址时,可选地址用来指示NVM芯片的管芯(DIE)、逻辑单元(LUN)和/或目标(Target)。作为响应,在较短的预定时间后,NVM芯片在DQ引脚上输出一个或多个数据,用于指示NVM 芯片(或管芯、逻辑单元、目标)上的由SR寄存器的值所指示的命令执行状态。因而,连同图3,在控制部件104向NVM芯片发出擦除命令后,通过反复向NVM芯片发出读状态命令,以获知擦除命令的执行结果。
读状态命令在读取存储器的状态时,相对于所发出的命令(例如擦除命令、编程命令或读命令)之间,需要有合适的时间间隔。间隔太长,则会导致无法及时获得NVM的状态;间隔太短,则会反复地读取状态,造成通道被占用,***性能降低。
图5是根据本发明实施例的用于对命令在存储器上的执行结果进行查询的方法的流程图。在发出命令之后(例如如图3所示的擦除命令),可以在适当的时间间隔之后来查询命令的执行结果。
如图5所示,在步骤S510,控制模块104(参看图1)向NVM芯片发出擦除命令或编程命令。接下来,在所设置的时间间隔之后,通过向NVM芯片发出读状态命令来查询步骤S510中发出的编程命令或擦除命令的执行结果(S520)。若“SR”寄存器指示“忙”状态,表明步骤S510中发出的编程命令或擦除命令的执行尚未完成,在指定时间间隔后(t2),控制模块104再次向NVM芯片发出读状态命令,直到读取到“SR”寄存器指示“就绪”状态,其表明步骤S510中发出的编程命令或擦除命令的执行已完成。
实施例2
时间间隔的设置依赖于多个因素。申请人对访问NVM芯片时从发出擦除命令到SR寄存器指示“就绪”状态的时间进行研究,并在图6中展示了研究结果。
图6是从发出擦除命令到SR寄存器指示“就绪”状态的时间曲线。图6的纵轴指示时间,而横轴指示NVM芯片中被擦除命令访问的物理块的被擦除的次数。在图6中,实线中的每个点指示在指定PE次数(Program-Erase Counts)时,对NVM芯片的多个物理块的擦除操作,从发出擦除命令到SR寄存器指示擦除命令完成的时间的平均值;由点所组成的虚线的每个点指示在指定PE次数时,对NVM芯片的多个块的擦除操作,从发出擦除命令到SR寄存器指示擦除命令完成的时间的最大值;而由短横线所组成的虚线的每个点指示在指定PE次数时,对NVM芯片的多个块的擦除操作,从发出擦除命令到SR寄存器指示擦除命令完成的时间的最小值。
从图6中能够意识到,随着PE次数增加,NVM芯片对擦除命令的响应时间逐渐增加。进一步地,NVM芯片对擦除命令响应时间的最大值/最小值,相对于PE次数的取值而分段。例如,参看图6,在PE次数为0-500次时,对擦除命令响应时间的最大值为t3,在PE次数为0-1000次时,对擦除命令响应时间的最小值为t4,在PE次数为500-1500次时,对擦除命令响应时间的最大值为t5,而在PE次数为1000-3000次时,对擦除命令响应时间的最小值为t6。并且,在相同PE次数下,NVM芯片对擦除命令的响应时间并非定值,而是在一定最大值/最小值的范围内波动。而对擦除命令的响应时间的平均值随PE次数增加而逐渐增加。
可以理解的是,图6及其相关的描述仅仅出于示意和举例的目的,图6中特定的数据根据不同的应用场景可有所不同,本领域技术人员不应当根据上述示例性描述而将本申请要求保护的范围限制在以上的具体实例中。
依据图6,在根据本发明的一个实施方式中,其中,向NVM芯片发出擦除命令后,查询擦除命令的时间间隔根据擦除命令所访问的物理块的PE次数来确定。从图6能够看到,随着PE次数的增多,NVM芯片对擦除命令的响应时间也逐渐增加。因此相应地,当向具有较高的PE次数的物理块发出擦除命令后,在较长的时间间隔后再向NVM芯片发出读状态命令,而向具有较低PE次数的物理块发出擦除命令后,在较短的时间间隔后向NVM芯片发出读状态命令。
在又一个实施方式中,根据PE次数动态地选择相应的时间间隔。
根据本发明的另一个实施方式,该时间间隔可以根据擦除命令所访问的物理块的PE次数的范围来设置,以使得在向PE次数在特定范围内的物理块发出擦除命令后,在与该PE次数的特定范围相对应的时间间隔后发出读状态命令。
参看图6,根据本发明的依然又一个实施方式,将时间间隔设置在图6所示的同PE次数对应的最大值和最小值之间。
根据本发明的一个实施方式,根据如下等式(1)来设置时间间隔t:
t=a+b*f(x) (1)
其中,x表示命令所访问的存储单元的PE次数,a为指定的系数,b为指定的系数,f(x)表示x的函数。其中,a和b可以由所属领域技术人员通过查询NVM芯片手册,实验或者分析来得到。
根据本发明的一种实施方式,将时间间隔设置为最大值和最小值的平均值。对图6示出的实线所指示的平均值进行拟合,可以发现该平均值大体符合t=a+b*xk的函数,即f(x)=xk。其中k为0-1之间的值,优选为k为1/2或1/3。
根据本发明的另一个实施方式,f(x)还可以是对数函数,例如f(x)=logm x,其中m>1。优选地,logmx可以是自然对数,即f(x)=lnx。
更进一步地,可以根据分段的方式来设置时间间隔,从而无需每次发出擦除命令时都使用新的时间间隔,而是可以在被擦除的物理块处于一定的PE次数范围内时保持时间间隔不变,由此简化了操作过程,提高了***效率。例如,如图6所示,对于0-500次的PE次数,可以将时间间隔设置为(t3+t4)/2;对于500-1000次的PE次数,可以将时间间隔设置为(t4+t5)/2;对于1000-1500次的PE次数,可以将时间间隔设置为(t5+t6)/2,以此类推。需要理解的是,上面的描述仅仅是示出了一种简易的实施方式,时间间隔的选择可以是最大时间间隔和最小时间间隔的平均值,也可以根据实际需要来选择最大值与最小值之间任何适当的值,例如,如果需要相对较长的时间间隔,可以为最大时间间隔设置较高的权重,由此可以将所设置的时间间隔适当增大。需要理解的是,上面的描述仅仅是设置时间间隔的一个示例,在本申请的整体构思下,任何需要进行时间间隔设置的情形,都不脱离本申请所要保护的范围。
从上面的实施例可以看出,可以针对每个PE次数来设置相应的时间间隔,也可以就一定的PE次数范围采用相同的时间间隔,而无须频繁地调整时间间隔。
实施例3
如上所述,可以设置从擦除命令发出到开始查询SR寄存器的时间间隔t0。在发出擦除命令t0时间段之后,向NVM芯片发出读状态命令。
若读出的SR寄存器指示处于“忙”状态,则可以再次发出读状态命令,直到SR寄存器指示处于“就绪”状态,这代表擦除命令执行完成。
可选地,还设置时间间隔tmax,指示执行擦除操作的最大时间。若在擦除命令发出后tmax时间后SR寄存器依然处于“忙”状态,则认为发生故障。
可选地,还可以设置重复发出读状态命令的时间间隔dt。响应于读出的SR寄存器指示处于“忙”状态,在dt时间后,再发出读状态命令以查询SR寄存器,以减少高频率反复发出读状态命令而对闪存通道的占用,并降低功耗。进一步可选地,如果在第二次发出读状态命令之后仍然指示SR寄存器处于“忙”状态,则可以再次在dt时间间隔之后发出读状态命令。
更进一步地,如果在第二次发出读状态命令之后SR寄存器仍然指示处于“忙”状态,那么由于接下来SR寄存器处于“就绪”状态的可能性提升,所以可以再次在dt/2时间间隔之后再次发出读状态命令。需要理解的是,dt/2仅仅作为一个示例,该时间间隔可以是dt/3,dt/4等其他值,本申请并不局限于所公开的这些具体数值。
在一个例子中,依据待擦除的物理块的PE次数来设置时间间隔t0。例如,依据图6,对PE次数分段,对PE次数取值的不同分段,设置不同的时间间隔t0。举例而言,在PE次数为0-1000次时,指示对擦除命令响应时间的最小值为t4,因而设置t0=t4;而在PE次数为1000-3000次时,对擦除命令响应时间的最小值为t6,因而设置t0=t6。在本例子中,无需每次发出擦除命令时都设置时间间隔t0,而是可以在PE次数处于或进入指定的PE次数范围时,相应地设置时间间隔t0。可以将时间间隔t0设置为NVM芯片完成擦除命令的时间的最小值,从而控制部件104能够尽早识别擦除命令执行完成,从而提升***性能。可选地,可以将t0设置为NVM芯片完成擦除命令的时间的平均值,能够更准确地读取到擦除命令执行完成的指示,以减少发出读状态命令的次数,降低对闪存通道的占用,并降低功耗。
在另一个例子中,依据待擦除物理块的PE次数,通过幂函数t=a+b*xk来计算时间间隔t0,或者可以通过b*x1 k-b*x0 k来计算时间间隔t0的增量△t=b*x1 k-b*x0 k,从而无需使用平移系数a,其中x指示PE次数。可选地,0<k<1,例如K=1/2或1/3。可以理解地,在幂函数的值变化不大的范围内,无需每次发出擦除命令时都设置时间间隔t0,而是在PE次数处于或进入指定的PE次数范围时,相应地设置时间间隔t0。可选地,通过查表的方式获得时间间隔t0的值。例如,以要擦除的块的PE次数作为索引,查表得到时间间隔t0的值。
需要理解的是,可以采用t=a+b*xk这种指数的方式来确定时间间隔,但本申请并不局限于此,还可以采用例如t=a+b*logmx这种方式,其中m>1,例如m可以为自然对数的底数e。
实施例4
图7是根据本发明又一实施例的控制部件104执行擦除命令的流程图。
在图7所示的实施例中,在操作S710,设置从擦除命令发出到开始查询SR寄存器的最小时间间隔tmin以及典型时间间隔为tNoraml(S710),其中tmin<tNoraml。可选地,参照图6,对于特定的PE次数,依照由短横线所组成的虚线上的点设置最小时间间隔tmin,而依照实线上的点设置典型时间间隔tNoraml。
依然可选地,该典型时间间隔tNoraml可以是从擦除命令发送给NVM到该NVM指示命令执行完成的平均时间间隔。或者,根据另一个实施方式,该最小时间间隔tmin与典型时间间隔tNoraml的取值是依据PE次数而分段的。例如,该最小时间间隔tmin与典型时间间隔tNoraml分别是从擦除命令发送给PE次数属于指定范围的物理块到NVM指示命令执行完成的时间的最小值与平均值。从而该最小时间间隔tmin与典型时间间隔tNoraml对于一定范围的PE次数而言分别保持恒定。
在图7的实施例中,固态存储设备有多种工作模式,例如,低功耗模式或高性能模式。在高性能模式中,将从擦除命令发出到开始查询SR寄存器的时间间隔t0设置为最小时间间隔tmin;而在低功耗模式中,将从擦除命令发出到开始查询SR寄存器的时间间隔t0设置为典型时间间隔为tNoraml(S720)。
向NVM芯片发出擦除命令后,依据所设置的时间间隔t0,在时间间隔t0后开始查询SR寄存器(S730/S740)。
在一个例子中,每次发出擦除命令时,识别固态存储设备的工作模式,并将时间间隔t0设置为最小时间间隔tmin或者典型时间间隔为tNoraml。
在优选的例子中,响应于确定或改变固态存储设备的工作模式为低功耗模式或高性能模式,相应地设置时间间隔t0为最小时间间隔tmin或者典型时间间隔tNoraml,从而无需在每次发出擦除命令时设置时间间隔,提高了固态存储设备处理擦除命令的效率。
若查询SR寄存器的读状态命令指示SR寄存器的状态为“忙”,则可以再发出读状态命令,直到读到SR寄存器指示“就绪”状态。
优选地,依据固态存储设备的工作模式设置发出两条读状态命令的时间间隔dt。例如,在高性能模式下,将dt设置为第一值dt1;而低功耗模式下,将dt设置为第二值dt2,以及dt1<dt2。
实施例5
图8是访问NVM芯片的编程命令的时序图。在图8中,SR指示NVM芯片响应于编程命令的执行状态(由SR寄存器的值所指示)。为发出编程命令,控制部件104(参看图1)在NVM芯片的DQ引脚上依次产生“命令4”、一个或多个指示被编程物理页的“地址”(图8中为4个“地址”)、一个或多个要被写入NVM芯片的数据(图8中为4个“数据”)与“命令5”。作为响应,NVM芯片对指定地址的物理页进行编程以写入数据。在tp1时刻后,“SR”寄存器变为“忙”状态,指示编程操作正在进行;并在编程完成后的tp2时刻,“SR”寄存器的对应位变为“就绪”状态。发出编程命令后,控制部件104查询SR寄存器,响应于SR寄存器为“就绪”状态,控制部件104知晓编程命令已经完成。
申请人发现,NVM芯片处理编程命令的时间基本上不依赖于PE次数,而主要与编程模式有关。操作TLC闪存的编程模式包括,一次编程TLC闪存页的3页数据,一次编程TLC闪存页的前2页数据,一次编程TLC闪存的后2页数据,与一次编程TLC闪存页的第1页数据或最后页数据。一般而言,在一次编程中写入的数据量越大,所需的编程时间越长。
由此,与根据擦除命令的PE次数来设置时间间隔相比,对于编程命令而言,根据编程命令写入的数据量来设置时间间隔。
图9是根据本发明实施例的控制部件104执行编程命令的流程图。如图9所示,在操作S910,设置从编程命令完全发出到开始查询SR寄存器的一个或多个可选时间间隔(例如,tm1或tm2)。接下来,在操作S920,发出编程命令,并依据编程命令对应的编程模式,选择所设置的时间间隔(tm1或tm2)。例如,在操作S920,若编程模式为一次编程TLC闪存页的特定页(例如3页)数据,设置从编程命令完全发出到开始查询SR寄存器的时间间隔为tm1。以及在操作S930,依据所设置的时间间隔,在tm1时间间隔后,向NVM芯片发出读状态命令。以及若读出的SR寄存器指示NVM芯片处于“忙”状态,再次发出读状态命令,直到SR寄存器指示处于“就绪”状态,代表编程命令执行完成。在操作S920,若编程模式为一次编程TLC闪存页的2页数据,设置从编程命令完全发出到开始查询SR寄存器的时间间隔为tm2。以及在操作S940,依据所设置的时间间隔,在tm2时间间隔后,向NVM芯片发出读状态命令。
可选地,还设置重复发出读状态命令的时间间隔tm3。响应于读出的SR寄存器指示处于“忙”状态,在tm3时间后,再次发出读状态命令,以减少频繁和反复地发出读状态命令对闪存通道的占用,并降低功耗。
实施例6
图10是根据本发明实施例的控制部件104执行读命令的流程图。
申请人发现,NVM芯片处理读命令的时间主要依赖于要读取的数据量。例如NVM芯片中读出4KB数据的读命令所需要的时间一般要大于读出1KB数据的读命令所需的时间。因此,如图10所示,在操作S1010,根据读命令所要读取的数据量来设置查询(例如,发出读状态命令)的开始时间,
接下来,在操作S1020,发出读命令以读取数据。然后,在操作S1030,在所设置的开始时间查询读命令的执行结果。如果查询结果显示“SR”寄存器为“忙”状态,则表示读操作正在进行;如果查询结果显示“SR”寄存器为“就绪”状态,则表示读操作已经完成,由此,控制部件104知晓读命令已经完成。
更进一步地,如果读出的SR寄存器仍然指示处于“忙”状态,则再次发出读状态命令,直到SR寄存器指示处于“就绪”状态,代表读命令执行完成。可选地,还设置时间间隔tmax,指示执行读操作的最大时间。若在读命令完全发出后tmax时间后SR寄存器依然处于“忙”状态,则认为发生故障。可选地,还设置重复发出读状态命令的时间间隔t3。响应于读出的SR寄存器指示处于“忙”状态,在t3时间后,在发出读状态命令,以减少频繁和反复地发出读状态命令对闪存通道的占用,并降低功耗。
本发明的方法和装置可以以硬件、软件、固件以及上述中的任意组合来实现。硬件可以包括数字电路、模拟电路、数字信号处理器(DSP)、应用专用集成电路(ASIC)等。软件可以包括计算机可读程序,这些计算机可读程序在被计算机执行时,实现根据本发明实施例所提供的方法。
例如,本申请的实施例可以实施为存储控制器,该存储控制器可以包括:一个或者多个处理器;存储器;存储在存储器中的程序,当被一个或者多个处理器执行时,程序使处理器执行根据本发明实施例所提供的方法。
本发明的软件还可以存储在计算机可读存储介质,例如硬盘,光盘等中,该计算机可读存储介质存储有程序,当程序被一个设备执行时,使得设备执行根据本发明实施例所提供的方法。
上面的描述仅仅是对本发明示例性而非穷尽式的描述,本领域技术人员可以对上述方法、设备、装置、模块等进行添加,删减、修改、替换等等,而并不脱离本发明的实质和保护范围。
Claims (10)
1.一种访问存储器的方法,包括:
向所述存储器发出命令;
在所设置的时间间隔之后,查询所述命令的执行结果,以得到查询结果,其中所设置的时间间隔表示从所述命令发出到开始进行所述查询的时间间隔。
2.根据权利要求1所述的方法,其中,
所述命令为针对所述存储器的擦除命令,所述查询通过执行读状态命令来进行。
3.根据权利要求1或2所述的方法,其中,
所述时间间隔是根据所述命令所访问的存储单元的擦除次数来设置的。
4.根据权利要求1-3中任意一项所述的方法,其中,
所述时间间隔是根据所述命令所访问的存储单元的擦除次数的范围来设置的。
5.根据权利要求1-4中任意一项所述的方法,其中,
根据如下等式来设置所述时间间隔t:
t=a+b*f(x)
其中,x表示所述命令所访问的存储单元的擦除次数,a为指定的系数,b为指定的系数。
6.根据权利要求1-5中任意一项所述的方法,进一步包括:
如果所述查询结果表明所述存储器处于“忙”状态,则在第一指定时间间隔之后再次查询所述命令在所述存储器上的执行结果,直到所述存储器处于“就绪”状态。
7.根据权利要求1-6中任意一项所述的方法,其中,
如果处于高性能模式,则将所述间间隔设置为第一值;以及
如果处于低功耗模式,则将所述时间间隔设置为第二值;其中依据从命令发送给在所访问的存储单元到所述存储单元指示命令执行完成的时间间隔的最小值设置第一值;依据从命令发送给在所访问的存储单元到所述存储单元指示命令执行完成的时间间隔的平均值设置第二值。
8.根据权利要求7所述的方法,其中
依据从命令发送给在所访问的其擦除次数属于指定擦除次数范围的存储单元到所述存储单元指示命令执行完成的时间间隔的最小值设置第一值;依据从命令发送给在所访问的其擦除次数属于指定擦除次数范围的存储单元到所述存储单元指示命令执行完成的时间间隔的平均值设置第二值。
9.一种存储控制器,包括:
一个或者多个处理器;
一个或多个存储器;以及
存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述控制器执行如权利要求1-8中任意一项所述的方法。
10.一种访问存储器的设备,包括:
用于向所述存储器发出所述命令的装置;
用于在所设置的时间间隔之后,查询所述命令的执行结果,以得到查询结果的装置,其中所设置的时间间隔表示从所述命令发出到开始进行所述查询的时间间隔。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131828.6A CN108228075A (zh) | 2016-12-09 | 2016-12-09 | 访问存储器的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131828.6A CN108228075A (zh) | 2016-12-09 | 2016-12-09 | 访问存储器的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108228075A true CN108228075A (zh) | 2018-06-29 |
Family
ID=62637794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611131828.6A Pending CN108228075A (zh) | 2016-12-09 | 2016-12-09 | 访问存储器的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228075A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867640A (zh) * | 2021-09-28 | 2021-12-31 | 合肥兆芯电子有限公司 | 存储器轮询方法、存储器存储装置及存储器控制电路单元 |
WO2023202297A1 (zh) * | 2022-04-22 | 2023-10-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据读取方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410905A (zh) * | 2006-03-28 | 2009-04-15 | 诺基亚公司 | 减小非易失性存储器读取延迟的方法和设备 |
CN101794198A (zh) * | 2009-01-07 | 2010-08-04 | 硅***公司 | 提高非易失性存储器操作性能的***和方法 |
CN102646447A (zh) * | 2011-02-22 | 2012-08-22 | 三星电子株式会社 | 非易失性存储器件、存储控制器及其方法 |
CN102662608A (zh) * | 2012-03-30 | 2012-09-12 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
CN105468534A (zh) * | 2014-09-30 | 2016-04-06 | Emc公司 | 使用读取阈值表提高闪存利用率的方法和*** |
-
2016
- 2016-12-09 CN CN201611131828.6A patent/CN108228075A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410905A (zh) * | 2006-03-28 | 2009-04-15 | 诺基亚公司 | 减小非易失性存储器读取延迟的方法和设备 |
CN101794198A (zh) * | 2009-01-07 | 2010-08-04 | 硅***公司 | 提高非易失性存储器操作性能的***和方法 |
CN102646447A (zh) * | 2011-02-22 | 2012-08-22 | 三星电子株式会社 | 非易失性存储器件、存储控制器及其方法 |
CN102662608A (zh) * | 2012-03-30 | 2012-09-12 | 华为技术有限公司 | 一种降低读延时的方法及装置 |
CN105468534A (zh) * | 2014-09-30 | 2016-04-06 | Emc公司 | 使用读取阈值表提高闪存利用率的方法和*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867640A (zh) * | 2021-09-28 | 2021-12-31 | 合肥兆芯电子有限公司 | 存储器轮询方法、存储器存储装置及存储器控制电路单元 |
WO2023202297A1 (zh) * | 2022-04-22 | 2023-10-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据读取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
US11630766B2 (en) | Memory system and operating method thereof | |
US11334493B2 (en) | Memory system and operating method thereof | |
KR102526608B1 (ko) | 전자 장치 및 그것의 동작 방법 | |
JP5969130B2 (ja) | 情報処理装置 | |
CN109947362A (zh) | 管理闪存存储器读取操作 | |
KR20160024546A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN109164976A (zh) | 利用写缓存优化存储设备性能 | |
CN106649144A (zh) | 数据储存设备及其操作方法 | |
US11762590B2 (en) | Memory system and data processing system including multi-core controller for classified commands | |
CN109977032A (zh) | 垃圾数据回收控制方法及其装置 | |
US11494318B2 (en) | Controller and operation method thereof | |
CN110389709A (zh) | 顺序流检测与数据预读 | |
JP7520994B2 (ja) | メモリサブシステムにおける作業負荷レベルに基づく電力モードの設定 | |
CN109558334A (zh) | 垃圾数据回收方法及固态存储设备 | |
KR20180126656A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110286847A (zh) | 数据存储装置及其操作方法 | |
CN109960466A (zh) | 存储器***及其操作方法 | |
CN108572932A (zh) | 多平面nvm命令融合方法与装置 | |
CN108228075A (zh) | 访问存储器的方法和设备 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与*** | |
CN109815157A (zh) | 编程命令处理方法与装置 | |
CN108628759A (zh) | 乱序执行nvm命令的方法与装置 | |
CN115048034A (zh) | 用于sgl的存储空间映射方法及其装置 | |
CN112181274B (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd. Address before: 100192 room A302 / 303 / 305 / 306 / 307, 3rd floor, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |