本申请涉及存储技术,特别地,涉及一种存储设备,包括:命令接口、控制部件和NVM;所述存储设备向主机提供存储空间与内存空间;所述内存空间的缓存单元存储第一类地址;控制部件通过命令接口接收指示缓存单元索引的IO命令,并且根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。本申请在不修改操作系统内核的情况下,提供了使用物理地址访问存储设备的方法、主机与存储设备,从而使应用程序得以获得开放通道固态存储设备提供的优势,且避免了修改内核引入的风险。
【技术实现步骤摘要】
使用CMB提供开放通道存储设备
本申请涉及存储技术,特别地,涉及使用CMB(ControllerMemoryBuffer,控制器内存缓冲区)来提供开放通道(OpenChannel)存储设备。
技术介绍
图1是现有技术中的存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)、SCSI(SmallComputerSystemInterface,小型计算机系统接口)、SAS(SerialAttachedSCSI,串行连接SCSI)、IDE(IntegratedDriveElectronics,集成驱动器电子)、USB(UniversalSerialBus,通用串行总线)、PCIE(PeripheralComponentInterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandomAccessMemory,动态随机访问存储器)110。NAND闪存、相变存储器、FeRAM(FerroelectricRAM,铁电存储器)、MRAM(MagneticRandomAccessMemory,磁阻存储器)、RRAM(ResistiveRandomAccessMemory,阻变存储器)、XPoint存储器等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及DRAM110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。在一些存储设备中,利用FTL(FlashTranslationLayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了访问存储设备的主机所感知到的存储设备的存储空间。物理地址是用于访问存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。一些存储设备的FTL由同存储设备所耦合的主机提供,由主机的存储器存储FTL表,主机的CPU执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。这些情况下,物理地址构成了访问存储设备的主机所感知到的存储设备的存储空间,存储设备所接收的读/写命令指示物理地址。根据NVMe协议,主机使用逻辑地址访问存储设备,存储设备向主机提供的存储地址空间是由逻辑地址构成的逻辑地址空间。近年来,还提供了开放通道固态存储设备(Open-ChannelSolidStateDrives),在http://lightnvm.io/docs/OCSSD-2_0-20180129.pdf可获得《开放通道固态存储设备规范(Open-ChannelSolidStateDrivesSpecification)》,将其全文通过引用合并于此。开放通道固态存储设备规范在NVMe协议基础上提供了扩展。根据开放通道固态存储设备规范,主机使用物理地址访问存储设备,存储设备向主机提供的存储地址空间是由物理地址构成的地址空间。为实施《开放通道固态存储设备规范》,存储设备要支持开放通道固态存储设备规范定义的IO命令,而主机的操作系统内核中要增加驱动程序(例如,从https://openchannelssd.readthedocs.io/en/latest/可获得的LightNVM子系统)。图2是现有技术中的使用开放通道固态存储设备的示意图。主机同开放通道固态存储设备耦合。主机的操作系统中安装了NVMe设备驱动与LightNVM子系统。主机的用户空间运行应用程序。应用程序访问存储设备(开放通道SSD)。NVMe设备驱动是为访问NVMe存储设备而运行在操作系统内核的驱动程序,从https://nvmexpress.org/resources/drivers/可获得。LightNVM子系统是为访问开放通道SSD而运行在内核的驱动程序。作为举例,应用程序使用逻辑地址访问存储设备。运行于主机的FTL将逻辑地址转换为物理地址,并提供给LightNVM子系统。LightNVM子系统通过NVMe设备驱动生成符合《开放通道固态存储设备规范》的IO命令,并提供给开放通道SSD。开放通道SSD执行IO命令。IO命令指示了例如主机内存地址、存储设备的物理地址与IO命令要访问的数据长度。可选地,IO命令还指示例如在NVMe协议中由存储设备生成并附加写入非易失存储介质中的元数据。元数据例如同存储的数据关联的逻辑地址、用于保护数据的校验信息等。作为又一个例子,应用程序向LightNVM子系统提供物理地址以访问存储设备。
技术实现思路
NVMe设备驱动通常认为是成熟的驱动程序,并已得到广泛的验证。而使用开放通道固态存储设备,需要在内核中添加LightNVM子系统或提供类似功能的驱动程序,或使用包括了LightNVM子系统的新版本操作系统内核。修改或更新操作系统内核带来了风险。数据中心、互联网运营商等不愿意承担修改内核的风险。当使用开放通道固态存储设备时,主机知晓开放通道存储设备的同非易失存储介质相关的特性,例如,在向存储介质写入数据前要实施擦除操作。而现有技术本文档来自技高网...
【技术保护点】
1.一种存储设备,包括:命令接口、控制部件和NVM;所述存储设备向主机提供存储空间与内存空间;/n所述内存空间的缓存单元存储第一类地址;控制部件通过命令接口接收指示缓存单元索引的IO命令,并且根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。/n
【技术特征摘要】
1.一种存储设备,包括:命令接口、控制部件和NVM;所述存储设备向主机提供存储空间与内存空间;
所述内存空间的缓存单元存储第一类地址;控制部件通过命令接口接收指示缓存单元索引的IO命令,并且根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。
2.根据权利要求1所述的存储设备,其中,所述IO命令指示的缓存单元索引,是对所述IO命令的第二类地址的替代。
3.根据权利要求1或2所述的存储设备,其中,若IO命令指示用于存储设备的第一类地址,控制部件根据第一类地址访问NVM。
4.根据权利要求1或2所述的存储设备,其中,若IO命令指示用于存储设备的用于KV存储设备的关键字,控制部件根据闪存转换层(FTL)将关键字转换为第一类地址,并根据第一类地址访问NVM。
5.根据权利要求1或2所述的存储设备,其中,IO命令是通过使用pread()/pwrite()系统调用来操作存储设备驱动生成的。
<...
【专利技术属性】
技术研发人员:贾舒,孙通,郑宏亮,
申请(专利权)人:北京忆芯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。