一种固态存储设备以及向其写入数据的方法技术

技术编号:33777945 阅读:21 留言:0更新日期:2022-06-12 14:31
本申请提供一种固态存储设备以及向其写入数据的方法,其中该方法包括如下步骤:响应于接收了写命令,识别所述写命令是否命中了缓存单元;若所述写命令命中了缓存单元,判断所述命中的缓存单元是否受到刷写命令的影响;若被命中的缓存单元受刷写命令的影响,则临时缓存所述写命令以待所述刷写命令处理完成后再处理所述写命令或者为写命令分配新的不受刷写命令影响的缓存单元。写命令影响的缓存单元。写命令影响的缓存单元。

【技术实现步骤摘要】
一种固态存储设备以及向其写入数据的方法


[0001]本申请涉及存储设备,尤其涉及一种固态存储设备以及向其写入数据的方法。

技术介绍

[0002]图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。固态存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
[0003]NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
[0004]接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
[0005]控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储以及管理主机逻辑地址到闪存物理地址的映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field

programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
[0006]控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
[0007]在现有的固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而
将中间地址进一步映射为物理地址。
[0008]存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
[0009]NVMe协议中还定义了刷写(Flush)命令。通过Flush命令,指示存储设备将先于Flush命令接收到的所有命令要写入的数据(及其元数据)都保存到非易失存储介质。
[0010]固态存储设备使用缓存来提高性能。对于写命令,将写命令指示的数据写入缓存后,即指示写命令处理完成。由于缓存的存在,在处理Flush命令时,要将缓存中的数据写入非易失存储介质,这一过程占用了过长的时间。需要降低或避免因Flush命令而使主机经历的将缓存中的数据写入非易失存储介质过程引起的性能抖动。

技术实现思路

[0011]本申请的固态存储设备以及向其写入数据的方法的解决了因Flush命令所引发的固态存储设备写入数据时产生的性能抖动问题。
[0012]根据本申请的第一方面,本申请提供一种向固态存储设备写入数据的方法,其中,包括如下步骤:响应于接收了刷写命令,获取当前时间以生成关联于所述刷写命令的时间戳;访问缓存描述符;获得缓存描述符中的时间戳数据;将缓存描述符的时间戳早于所述刷写命令的时间戳的缓存描述符所指示的缓存单元的数据写入非易使性存储器。
[0013]根据本申请的第一方面的一种向固态存储设备写入数据的方法,其中,在时间戳早于所述刷写命令的时间戳的所有缓存描述符所指示的缓存单元的数据都写入非易使性存储器时,指示所述刷写命令处理完成。
[0014]根据本申请的第一方面的一种向固态存储设备写入数据的方法,其中,所述缓存描述符中包括所分配的缓存单元的索引、指示所分配的缓存单元写入时间的时间戳以及所分配的缓存单元中数据的地址。
[0015]根据本申请的第一方面的一种向固态存储设备写入数据的方法,其中,其中,所述数据的地址是非易使性存储器的逻辑地址或物理地址。
[0016]根据本申请的第一方面的一种向固态存储设备写入数据的方法,其中,当接收的是写命令时,为写命令分配动态随机存储器的缓存单元与缓存描述符。
[0017]根据本申请的第一方面的一种向固态存储设备写入数据的方法,其中,在接收刷写命令之后,设置标记以指示有刷写命令待处理;在刷写命令处理完成后,清除所设置的标记。
[0018]根据本申请的第二方面,本申请还提供一种向固态存储设备写入数据的方法,其中,包括如下步骤:响应于动态随机存储器的缓存单元被写入数据,轮询缓存描述符;根据缓存描述符,将缓存单元内的数据写入非易使性存储器。
[0019]根据本申请的第二方面的一种向固态存储设备写入数据的方法,其中,响应于缓存单元内的数据写入非易使性存储器,释放所述缓存单元。
[0020]根据本申请的第三方面,本申请还提供一种向固态存储设备写入数据的方法,其中,包括如下步骤:响应于接收了写命令,识别所述写命令是否命中了缓存单元;若所述写命令命中了缓存单元,判断所述命中的缓存单元是否受到刷写命令的影响;若被命中的缓
存单元受刷写命令的影响,则临时缓存所述写命令以待所述刷本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种向固态存储设备写入数据的方法,其特征在于,包括如下步骤:响应于接收了写命令,识别所述写命令是否命中了缓存单元;若所述写命令命中了缓存单元,判断所述命中的缓存单元是否受到刷写命令的影响;若被命中的缓存单元受刷写命令的影响,则临时缓存所述写命令以待所述刷写命令处理完成后再处理所述写命令或者为写命令分配新的不受刷写命令影响的缓存单元。2.如权利要求1所述的向固态存储设备写入数据的方法,其特征在于,若所述写命令未命中缓存单元,则为所述写命令分配空闲的缓存单元,并将写命令对应的数据存储在缓存单元中。3.如权利要求1或2所述的向固态存储设备写入数据的方法,其特征在于,若被命中的缓存单元不受刷写命令的影响,则将写命令待写入的存储在被命中的缓存单元中,并指示写命令处理完成。4.如权利要求3所述的向固态存储设备写入数据的方法,其特征在于,在当前没有待执行的刷写命令或者当前虽然有待执行的刷写命令,但所述待执行的刷写命令的时间戳小于被命中的缓存单元的时间戳时,判断被命中的缓存单元不受刷写命令的影响。5.如权利要求1

4任一项所述的向固态存储设备写入数据的方法,其特征在于,在当前有待执行的刷写命令且所述待执行的刷写命令...

【专利技术属性】
技术研发人员:杨腾汤峰金石
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1