固态存储设备及其写命令和读命令处理方法技术

技术编号:19933488 阅读:55 留言:0更新日期:2018-12-29 04:17
本申请公开了固态存储设备及其写命令和读命令处理方法,写命令处理方法包括:接收写命令;将写命令拆分为多个子命令;为单个的子命令或连续的两个或更多子命令分配连续的物理地址;将子命令对应的数据写入为子命令分配的物理地址。本申请的实施例将写命令拆分为子命令,并为单个或多个子命令分配连续的物理地址,以便使逻辑地址连续的数据放置在连续的物理地址上,以充分利用存储介质的读写能力,提高了固态存储设备的读写性能。

【技术实现步骤摘要】
固态存储设备及其写命令和读命令处理方法
本申请涉及存储设备
,尤其涉及固态存储设备及其写命令和读命令处理方法。
技术介绍
参看图1,展示了存储设备100的框图。存储设备100同主机相耦合,用于为主机提供存储能力。主机与存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于例如SATA、IDE、USB、PCIE、NVMe(NVMExpress)、SAS、以太网、光纤通道、无线通信网络等。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备100包括接口110、控制部件120、一个或多个NVM(非易失存储器,Non-VolatileMemory)芯片130,可选地,存储设备100还包括固件存储器140。接口110可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件120用于控制在接口110、NVM芯片130以及固件存储器140之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址的映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件120。控制部件120可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件120也可以包括处理器或者控制器。控制部件120在运行时从固件存储器140加载固件。固件存储器140可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片130的部分。NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,ChipEnable)信号的一个或多个逻辑单元(LogicUnit)。每个逻辑单元具有逻辑单元号(LUN,LogicUnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“OpenNANDFlashInterfaceSpecification(Revision3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。存储介质上通常按页来存储和读取数据。而按块来擦除数据。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。物理页中可以包括多个数据段,数据段具有指定的尺寸,例如4096或4416字节。在固态存储设备中,利用FTL(FlashTranslationLayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。FTL表包括多个FTL表条目(或称表项)。在一个例子中,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一个例子中,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一个例子中,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一个实施例中,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。在处理来自主机的读命令时,固态存储设备利用读命令中携带的逻辑地址从FTL表中获得对应的物理地址,并依据物理地址向NVM芯片发出读请求,并接收NVM芯片响应于读请求输出的数据。在处理来自主机的写命令时,固态存储设备为写命令分配物理地址,在FTL表中记录写命令的逻辑地址与分配的物理地址的对应关系,并依据分配的物理地址向NVM芯片发出写请求。一些固态存储设备中还提供备用电源,当发生意外断电时,由备用电源向存储设备提供临时的电能,用于备份FTL表等元数据以及处理尚未完成的命令。备用电源包括超级电容、铝电容、钽聚合物电容、锂电池等。将要备份的数据写入固态存储设备提供的日志区。固态存储设备再次上电时,从日志区恢复所备份的元数据。将FTL表的一个条目的物理地址对应的数据部分称为数据帧。数据帧的大小例如是4K字节。主机发送给固态存储设备的IO命令的最小可寻址单元称为数据单元,数据单元的大小是例如512字节或1K字节。在一条IO命令中可访问多个(例如,1-256)数据单元。固态存储设备采用NVM芯片作为存储介质。NVM芯片的存储单元有多种类型,例如,SLC(SingleLevelCell,单级存储单元)、MLC(MultipleLevelCell,多级存储单元)与TLC(TripleLevelCell,三级存储单元)等。NVM芯片的物理页包括不同类型,例如,SLC页、MLCMSB(MostSignificantBit)页、MLCLSB(LeastSignificantBit)页、TLCMSB(MostSignificantBit)页、TLC(TripleLevelCell)CSB(CentralSignificantBit)页、TLCLSB(LeastSignificantBit)页。MLCMSB页的每个比特存储在MLC存储单元的最高位,MLCLSB页的每个比特存储在MLC存储单元的最低位,TLCMSB页的每个比特存储在TLC存储单元的最高位,TLCCSB页的每个比特存储在TLC存储单元的中间位,TLCLSB页的每个比特存储在TLC存储单元的最低位。一些NVM芯片还将同一存储单元上的两个或更多物理页的写入操作组合在一起。在固态存储设备中,依据物理地址可识别所访问的NVM芯片的物理页的类型。
技术实现思路
物理页的数据段、FTL表条目对应的数据帧与主机发送的IO命令访问的数据单元具有不同的大小。现在技术中,将IO命令拆分为多个子命令,每个子命令访问的数据大小为FTL表条目对应的数据帧大小,将多个FTL表数据帧组合为物理页大小并向物理页写入数据,或者根据数据帧从物理页读出数据。本申请的实施例解决了按数据帧读写物理页的方法无法充分利用存储介质的读写能力,进而限制了固态存储设备的读写性能的技术问题。本申请的目的在于提供固态存储设备及其写命令和读命令处理方法,以充分利用存储介质的读写能力,提高固态存储设备的读写性能。根据本申请的第一方面,提供了根据本申请第一方面的第一写命令处理方法,包括本文档来自技高网
...

【技术保护点】
1.一种写命令处理方法,包括:接收写命令;将所述写命令拆分为多个子命令;为单个的所述子命令或连续的两个或更多所述子命令分配连续的物理地址;将所述子命令对应的数据写入为所述子命令分配的物理地址。

【技术特征摘要】
1.一种写命令处理方法,包括:接收写命令;将所述写命令拆分为多个子命令;为单个的所述子命令或连续的两个或更多所述子命令分配连续的物理地址;将所述子命令对应的数据写入为所述子命令分配的物理地址。2.根据权利要求1所述的写命令处理方法,其特征在于,所述子命令访问的逻辑地址范围由一个或多个数据帧提供;其中所述物理地址指示数据帧在非易失性存储器中的存储位置。3.根据权利要求1-2中任一项所述的写命令处理方法,其特征在于,所述写命令的子命令数量被记录,所述方法还包括:响应于每个所述子命令完成,将所述子命令数量递减;响应于所述子命令数量为0,识别出所述写命令被处理完成。4.根据权利要求1-3中任一项所述的写命令处理方法,其特征在于,第一中央处理器接收所述写命令;所述第一中央处理器将所述写命令拆分为多个子命令;所述第二中央处理器为单个的所述子命令或连续的两个或更多所述子命令分配连续的物理地址;所述第二中央处理器指示将所述子命令对应的数据写入为所述子命令分配的物理地址。5.根据权利要求4所述的写命令处理方法,其特征在于,还包括:所述第一中央处理器为所述写命令或所述子命令分配存储空间;所述第二中央处理器释放所述写命令或所述子命令访问的数据所占用的存储空间。6.一种读命令处理方法,包括:接收读命令;将所述读命...

【专利技术属性】
技术研发人员:许海苹张志青王树柯秦汉章蔡述楠
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:北京,11

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

1