固态存储设备的分布式缓存制造技术

技术编号:19176480 阅读:36 留言:0更新日期:2018-10-17 00:12
本申请提供了用于固态存储设备的分布式缓存的方法与装置。所提供的方法包括:接收来自主机的写命令;将写命令分配给多个CPU之中的第一CPU;第一CPU为写命令分配缓存单元;第一CPU将写命令的数据写入所分配的缓存单元;响应于写命令要写入的数据被全部写入缓存单元,第一CPU向主机指示写命令处理完成。

Distributed cache for solid state storage devices

This application provides a method and device for distributed caching of solid-state storage devices. The methods provided include: receiving a write command from the host; assigning a write command to a first CPU of multiple CPUs; assigning a cache unit to the first CPU for the write command; writing the data of the write command to the allocated cache unit by the first CPU; and writing all the data to be written to the cache unit in response to the write command, and the first CPU to the host. The machine indicates that the write command is processed.

【技术实现步骤摘要】
固态存储设备的分布式缓存
本申请涉及存储
,尤其涉及在存储设备中提供分布式缓存的方法与装置。
技术介绍
参看图1,展示了存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)、SCSI(SmallComputerSystemInterface,小型计算机系统接口)、SAS(SerialAttachedSCSI,串行连接SCSI)、IDE(IntegratedDriveElectronics,集成驱动器电子)、USB(UniversalSerialBus,通用串行总线)、PCIE(PeripheralComponentInterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM(非易失存储器,Non-VolatileMemory)芯片105以及DRAM(DynamicRandomAccessMemory,动态随机访问存储器)110。NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理主机IO命令。控制部件104还耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和/或缓存的主机IO命令的数据。控制部件104包括闪存接口控制器(或称为闪存通道控制器)。闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。NVM芯片105的接口协议包括“Toggle”、“ONFI”等公知的接口协议或标准。存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,ChipEnable)信号的一个或多个逻辑单元(LUN,LogicUNit)。每个逻辑单元具有逻辑单元号(LogicUnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“OpenNANDFlashInterfaceSpecification(Revision3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。固态存储设备中包括多个NVM芯片。每个NVM芯片包括一个或多个管芯(DIE)或逻辑单元(LUN,LogicUNit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。存储介质上通常按页来存储和读取数据。而按块来擦除数据。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。物理页中可以包括多个数据帧(dataframe),数据帧具有指定的尺寸,例如4096或4416字节。在固态存储设备中,利用FTL(FlashTranslationLayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。固态存储设备的FTL表具有较大的尺寸,例如若干GB级。而在固态存储设备关闭时,需要完整地保存FTL表,在固态存储设备启动时,需要完成FTL完全加载。FTL表包括多个FTL表条目(或称表项)。在一个实施例中,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一个例子中,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一个实施例中,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一个实施例中,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。一些固态存储设备中还提供备用电源,当发生意外断电时,由备用电源向存储设备提供临时的电能,用于备份FTL表等元数据以及处理尚未完成的命令。备用电源包括超级电容、铝电容、钽聚合物电容、锂电池等。将要备份的数据写入固态存储设备提供的日志区。固态存储设备再次上电时,从日志区恢复所备份的元数据。在NVMe规范(http://nvmexpress.org/wp-content/uploads/NVM_Express_1_2_1_Gold_20160603.pdf)中定义了原子操作(AtomicOperation)。原子操作包括原子写命令。为执行原子写命令,固态存储设备确保在原子写命令中指示的数据,要么都写入到固态存储设备中,要么都未写入到固态存储设备中,而不会有其他自行结果。当同时存在向相同或部分相同的地址写入数据的两个或更多原子写命令时,这些原子写命令的执行结果是如同这些原子写命令串行执行的。例如,参看下表1,原子写命令A向逻辑地址(LogicBlockAddress,LBA)LBA0-3写入数据,原子写命令B向逻辑地址LBA1-4写入数据(表1中用“A”指示由原子写命令A写入的数据,而由“B”指示由原子写命令B写入的数据)。下表的第2行与第3行示出了命令A与命令B的正确执本文档来自技高网...

【技术保护点】
1.一种写命令处理方法,其特征在于,包括:接收来自主机的写命令;将写命令分配给多个CPU之中的第一CPU;第一CPU为写命令分配缓存单元;第一CPU将写命令的数据写入所分配的缓存单元;响应于写命令要写入的数据被全部写入缓存单元,第一CPU向主机指示写命令处理完成。

【技术特征摘要】
1.一种写命令处理方法,其特征在于,包括:接收来自主机的写命令;将写命令分配给多个CPU之中的第一CPU;第一CPU为写命令分配缓存单元;第一CPU将写命令的数据写入所分配的缓存单元;响应于写命令要写入的数据被全部写入缓存单元,第一CPU向主机指示写命令处理完成。2.根据权利要求1所述的方法,其特征在于,还包括:依据写命令访问的逻辑地址范围,将写命令分配给多个CPU中的第一CPU。3.根据权利要求2所述的方法,其特征在于,其中,若写命令访问的逻辑地址范围完全属于第一CPU所管理的逻辑地址范围,将写命令分配给第一CPU;以及若写命令访问的逻辑地址范围的第一部分属于第一CPU所管理的逻辑地址范围,而写命令访问的逻辑地址范围的第二部分属于第二CPU所管理的逻辑地址范围,将所述写命令分配给第一CPU或第二CPU。4.一种读命令处理方法,其特征在于,包括:接收来自主机的读命令;依据读命令的逻辑地址范围,将读命令分配给多个CPU中的第一CPU;若读命令命中缓存单元,第一CPU从缓存单元中获取读命令所访问的数据,并提供给主机;若读命令未命中缓存单元,第一CPU根据读命令的逻辑地址范围获取对应的物理地址,并根据物理地址从存储器中读出数据,并提供给主机。5.根据权利要求4所述的方法,其特征在于,还包括若读命令的逻辑地址范围大于第一CPU所管理的逻辑地址范围,第一CPU向第二CPU请求临时管理读命令所需的逻辑地址范围;第一CPU检查读命令是否命中了第二CPU所管理的缓存单元;若读命令命中第二CPU所管理的缓存单元,则第一CPU从缓存单元中获取读命令所访问的数据,并提供给主机。6.一种IO命令处理方法,其特征...

【专利技术属性】
技术研发人员:侯俊伟王立辰孙清涛
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:北京,11

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

1