CN112416819A - 基于主机内存缓冲器的固态驱动器的实现方法及装置 - Google Patents
基于主机内存缓冲器的固态驱动器的实现方法及装置 Download PDFInfo
- Publication number
- CN112416819A CN112416819A CN202011225421.6A CN202011225421A CN112416819A CN 112416819 A CN112416819 A CN 112416819A CN 202011225421 A CN202011225421 A CN 202011225421A CN 112416819 A CN112416819 A CN 112416819A
- Authority
- CN
- China
- Prior art keywords
- hmb
- space
- ssd
- host
- mapping table
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供基于主机内存缓冲器的固态驱动器的实现方法及装置,该方法包括:固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间;将所述SSD的映射表缓存在所述HMB空间中;当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。本申请实施例的技术方案,可以减小硬件体积和功耗,并且降低了硬件成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于主机内存缓冲器的固态驱动器的实现方法及装置。
背景技术
固态驱动器(solid state drive,SSD),也称固态硬盘,是用固态电子存储芯片阵列制成的硬盘。固态驱动器被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。
传统的SSD由存储控制器、缓存器和闪存颗粒组成,其中,SSD内置了缓存器,用于保证产品性能。目前,SSD中的缓存器通常采用动态随机存取存储器(dynamic randomaccess memory,DRAM)实现,对于采用DRAM作为缓存器的SSD,虽然性能可以得到有效提高,但是增加了硬件体积,功耗也较高,硬件成本较高。
发明内容
本申请提供一种基于主机内存缓冲器的固态驱动器的实现方法及装置,可以减小硬件体积和功耗,并且降低了硬件成本。
第一方面,本申请提供了一种基于主机内存缓冲器的固态驱动器的实现方法,包括:
固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间;
将所述SSD的映射表缓存在所述HMB空间中;
当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
结合第一方面,在第一方面的一种可能的实施方式中,所述SSD根据NVMe协议实现向主机申请分配所述HMB空间,通过PCIe接口实现对所述HMB空间中缓存的映射表进行操作。
结合第一方面,在第一方面的一种可能的实施方式中,所述将所述SSD的映射表缓存在所述HMB空间中包括:
当所述HMB空间的容量不小于所述映射表的大小时,将所述映射表全部存储在所述HMB空间中;
当所述HMB空间的容量小于所述映射表的大小时,将所述HMB空间作为所述映射表的缓存,所述映射表存储在所述SSD的闪存颗粒中。
结合第一方面,在第一方面的一种可能的实施方式中,所述HMB空间包括至少一个内存段,所述至少一个内存段中的每个内存段对应一个条目号。
结合第一方面,在第一方面的一种可能的实施方式中,所述HMB空间中缓存的映射表包括N个表单元,其中,N为正整数且为4的倍数,所述N个表单元中的每个表单元对应覆盖所述闪存颗粒的存储空间。
结合第一方面,在第一方面的一种可能的实施方式中,所述N个表单元对应映射到4路元数据数组,所述4路元数据数组中的每路元数据数组的路偏移为0至(N/4-1)。
结合第一方面,在第一方面的一种可能的实施方式中,所述通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作,包括:
当接收数据读取命令时,获取逻辑地址;
根据所述逻辑地址,计算段偏移;
根据所述段偏移查找所述HMB空间中的内存段,获取表单元的主机地址;
根据所述表单元的主机地址,从所述HMB空间中读取所述表单元;
判断是否查找到元数据;
若查找到所述元数据,则根据所述元数据从所述HMB空间中读取表单元数据,将所述表单元数据返回给所述SSD;
若未查找到所述元数据,则返回查找失败结果给所述SSD。
第二方面,本申请提供了一种基于主机内存缓冲器的固态驱动器的实现装置,包括:
申请模块,用于向主机申请分配主机内存缓冲器HMB空间;
缓存模块,用于将固态驱动器SSD的映射表缓存在所述HMB空间中;
操作模块,用于当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
第三方面,本申请提供了一种电子设备,所述电子设备包括处理器、存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行第一方面或第一方面的任一可能的实施方式中的步骤的指令。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现第一方面或第一方面的任一可能的实施方式中所描述的部分或全部步骤。
第五方面,本申请提供了一种计算机程序产品,包括计算机指令,当所述计算机指令在推荐装置上运行时,使得所述推荐装置执行第一方面或第一方面的任一可能的实施方式中的方法。
可以看到,通过本申请提供的基于主机内存缓冲器的固态驱动器的实现方法及装置,固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间,将所述SSD的映射表缓存在所述HMB空间中,当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。这样,通过实现HMB技术,在主机的内存中留出一块缓存区专门供SSD使用,SSD不需要再单独设置DRAM作为其缓存器,实现了无DRAM的SSD硬件架构,大幅度减小了硬件体积和功耗。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为AHCI和PCIe技术原理架构图;
图2为HMB的原理示意图;
图3为本申请实施例提供的HMB的架构示意图;
图4为本申请实施例提供的HMB的线性空间映射示意图;
图5为本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现方法的流程示意图;
图6为本申请实施例提供的一种HMB中缓存的映射表的示意图;
图7为本申请实施例提供的一种4路元数据数组的示意图;
图8为本申请实施例提供的一种数据读取方法的流程示意图;
图9为本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现装置的示意图;
图10为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。
具体实施方式
本申请实施例提供的基于主机内存缓冲器的固态驱动器的实现方法及装置,可以减小硬件体积和功耗,并且降低了硬件成本。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请,首先对本申请涉及的概念进行解释:
固态驱动器(solid state drive,SSD),也称固态硬盘,是用固态电子存储芯片阵列制成的硬盘。传统的SSD由存储控制器、缓存器和闪存颗粒组成。目前常见的SSD大都采用SATA接口,少数新型产品则采用PCIe接口,符合AHCI(advanced host controllerinterface)协议或NVMe协议。SSD中内置了缓存器,用以保证产品性能。
现有SSD中的存储控制器无论是采用DRAM实现缓存器还是不设置缓存器,虽然都能完成计算机主机与SSD之间的数据传输功能,但都存在明显缺点。对于无缓存功能的SSD存储控制器,由于没有数据缓存区,在主机与存储控制器之间需要频繁交换数据,大大迟缓了数据传输效率,难以满足高速应用的需要,一般都只能用在低端计算机,性能受限。对于采用DRAM缓存的SSD存储控制器,虽然其性能得到有效提高,但是大幅增加了硬件成本,而且还增加了体积和功耗。
参见图1,图1为AHCI和PCIe技术原理架构图。如图1所示,对于传统SATA设备来说,符合AHCI协议,AHCI用作总线适配器(hosts bus adapter,HBA),而且大多数情况下AHCI控制器内建在主机的芯片中。在这种工作模式下,应用程序首先经由PCIe或其它系统总线与AHCI HBA会话,再经由SATA链路层与SATA物理层通道与SATA设备通信。而对于SATAExpress设备来说,其工作模式包括两种,一种是SATA标准/AHCI,另一种则是SATA标准/NVMe。这两种工作模式下的设备可以视为基于PCIe的插卡式设备。不同的是,在设备端,SATA标准/AHCI设备集成的是AHCI控制器,而SATA标准/NVMe设备集成的是NVMe控制器。
下面对本申请实施例进行详细介绍。
主机内存缓冲器(host memory buffer,HMB)是一种基于NVMe协议、旨在降低固态硬盘硬件成本(少了缓存器),同时尽量与带有缓存器的SSD性能保持持平的一项新技术。
参见图2,图2为HMB的原理示意图。如图2所示,HMB技术中,在主机的内存中留出一块缓存区专门供SSD使用。主机内存中留出的缓存区只占用内存的小部分空间(128M以内),主机内存保留充足的空间协调完成中央处理器(central processing unit,CPU)与硬盘之间的数据交换。支持HMB功能的NVMe SSD进行读写时,会自动启用该功能进行提速。而当遇到系统内存不稳定,危及SSD数据安全时,HMB功能还会自动被禁用以保护数据安全,安全可靠。
参见图3,图3为本申请实施例提供的HMB的架构示意图。如图3所示,SSD向主机申请分配HMB空间,将所述SSD的映射表缓存在所述HMB空间中,当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。HMB的关键技术点是将闪存颗粒(例如NAND)的存储空间进行分段映射到HMB,通过对HMB的查找、读、写纠错等操作,完成对闪存颗粒的管理。
参见图4,图4为本申请实施例提供的HMB的线性空间映射示意图。如图4所示,在主机中,所有段的主机地址空间是不连续的。为了有效地使用内存,HMB空间的内存应该为连续的内存,HMB控制逻辑创建一个内存分配表,以与HMB中的内存段进行线性空间映射。从图4中可以看出,HMB空间包括M个内存段,M为正整数,M个内存段中的每个内存段对应一个条目号,总条目号与内存段号数目相同。HMB控制逻辑从静态随机存取存储器(static randomaccess memory,SRAM)读取段大小,并累加大小以创建线性条目表。如果HMB的最大总大小为512MB,则每个条目都需要一个10位寄存器。
参见图5,图5为本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现方法的流程示意图,该方法应用的固态驱动器可以为图1中的SATA标准/NVMe设备。如图5所示,本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现方法可以包括:
501、固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间。
可选的,所述SSD根据NVMe协议实现向主机申请分配所述HMB空间。
可选的,所述HMB空间包括至少一个内存段,所述至少一个内存段中的每个内存段对应一个条目号。
502、将所述SSD的映射表缓存在所述HMB空间中。
具体的,SSD的映射表存储在SSD的闪存颗粒(例如NAND)中,因此在掉电时是安全的。数据读取操作和数据写入操作都需要使用映射表。对于每次数据读取操作或数据写入操作,访问闪存颗粒中的映射表花费的时间太长。为了降低命令处理的延迟,可以将全部或部分映射表存储在SRAM或DDR内存或其他内存中。如果SRAM和DDR内存的资源有限,则可以使用HMB存储映射表。
可选的,所述将所述SSD的映射表缓存在所述HMB空间中包括:当所述HMB空间的容量不小于所述映射表的大小时,将所述映射表全部存储在所述HMB空间中;当所述HMB空间的容量小于所述映射表的大小时,将所述HMB空间作为所述映射表的缓存,所述映射表存储在所述SSD的闪存颗粒中。
存储控制器/固件通过PCIe访问HMB大约需要2us,包括PCIe读取延迟和数据传输时间。而存储控制器/固件访问NAND需要花费50us以上的时间。因此,与访问NAND相比,访问HMB要快得多。因此,HMB可以作为NAND的缓存。
可选的,所述HMB空间中缓存的映射表包括N个表单元,其中,N为正整数且为4的倍数,所述N个表单元中的每个表单元对应覆盖所述闪存颗粒的存储空间。
参见图6,图6为本申请实施例提供的一种HMB中缓存的映射表的示意图。如图6所示,HMB空间中缓存的映射表由表单元组成,一个表单元(table-unit)的大小为4KB,每个表单元覆盖4M闪存颗粒的存储空间。每个表单元都有一个缓存状态的元数据。例如,64MB大小的HMB只能覆盖闪存颗粒的存储空间的某些范围,即64GB。
可选的,所述N个表单元对应映射到4路元数据数组,所述4路元数据数组中的每路元数据数组的路偏移为0至(N/4-1)。
参见图7,图7为本申请实施例提供的一种4路元数据数组的示意图。如图7所示,N个表单元对应映射到4路元数据数组,所述4路元数据数组中的每路元数据数组的路偏移为0至(N/4-1),也就是说元数据数组的索引从0到(N/4–1)。在一种可能的实施方式中,每个路偏移都指向64位元数据,包括4个12位元数据条目和这4个12位元数据的16位CRC,且具有固定顺序。
可选的,HMB空间中缓存的映射表通过循环冗余校验(cyclic redundancy check,CRC)技术进行保护。
在一种可能的实施方式中,对于每个256字节的数据,通过16位CRC保护这些数据。
在一种可能的实施方式中,固件可以启用或禁用CRC。如果启用,则固件应该为CRC内容提供有效的主机基地址和足够的HMB内存。
503、当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
可选的,所述SSD通过PCIe接口实现对所述HMB空间中缓存的映射表进行操作。
可选的,所述通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作,包括:当接收数据读取命令时,获取逻辑地址;根据所述逻辑地址,计算段偏移;根据所述段偏移查找所述HMB空间中的内存段,获取表单元的主机地址;根据所述表单元的主机地址,从所述HMB空间中读取所述表单元;判断是否查找到元数据;若查找到所述元数据,则根据所述元数据从所述HMB空间中读取表单元数据,将所述表单元数据返回给所述SSD;若未查找到所述元数据,则返回查找失败结果给所述SSD。
可以看到,通过本申请实施例提供的基于主机内存缓冲器的固态驱动器的实现方法,固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间,将所述SSD的映射表缓存在所述HMB空间中,当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。这样,通过实现HMB技术,在主机的内存中留出一块缓存区专门供SSD使用,SSD不需要再单独设置DRAM作为其缓存器,实现了无DRAM的SSD硬件架构,大幅度减小了硬件体积和功耗,并且降低了硬件成本。
参见图8,图8为本申请实施例提供的一种数据读取方法的流程示意图,对于所有数据读取操作,查找逻辑地址对应的物理地址需要映射表,如果映射表存储在HMB中,则当获取新的数据读取命令时,可以自动查找映射表,这样可以减少查找映射表的时间。并且,固件也可以发出HMB命令进行查找。如图8所示,本申请实施例提供的一种数据读取方法可以包括以下步骤:
步骤801、根据逻辑地址,计算段偏移和元数据位置。
对于自动查找,首先找出线性映射表的位置。
具体的,线性映射表的表位置即为主机发布的NVMe命令中的逻辑地址或者固件发布的逻辑地址。
然后计算段数量,段数量的计算公式为:段数量=表位置/段大小=逻辑地址/段大小。
然后计算段偏移,段偏移的计算公式为:段偏移=逻辑地址-(段编号×段大小)。
最后计算元数据位置,元数据位置的计算公式为:元数据位置=段偏移/4KB表单元(段偏移/4096)。
步骤802、根据段偏移查找HMB空间中的内存段,获取表单元的主机地址。
具体的,首先,根据段偏移和HMB线性映射表搜索HMB空间中的内存段,具体搜索的方式包括步骤A-步骤C,如下所述。
A、将HMB线性映射表分为4个表。
HMB中的内存段可能不会在四分之一边界中均匀地划分开,并且每个四分之一的内存段都有实际大小。
B、找出段偏移的四分之一HMB内存段号。
C、查找四分之一偏移量的HMB内存段号,双向同时搜索:
(1)从底部开始搜索:
i.将段偏移与线性映射表的输入大小进行比较;如果截面偏移较大,转到ii,否则转到iii;
ii.增加条目号,然后转到i;
iii.搜索命中/完成。
(2)从顶部开始搜索:
i.将段偏移与线性映射表的输入大小进行比较;如果截面偏移较小,转到ii,否则转到iii;
ii减少条目号,然后转到i;
iii.搜索命中/完成。
如果找到了目标段号,无论哪个搜索成功,都将停止搜索进度。
然后,获取命中段的地址偏移量。最后,获取表单元的主机地址。
步骤803、根据表单元的主机地址,从HMB空间中读取表单元。
步骤804、判断是否查找到元数据。
如果查找到元数据,则执行步骤805;否则,执行步骤806。
步骤805、根据元数据从HMB空间中读取表单元数据。
根据命中方式,从相关HMB位置读取表单元数据。具体的,最多可以读取14个物理地址。
步骤806、将查询结果返回给固件。
若查找到元数据,则将表单元数据返回给SSD;若未查找到元数据,则返回查找失败结果给SSD。
参见图9,图9为本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现装置的示意图。其中,如图9所示,本申请实施例提供的一种基于主机内存缓冲器的固态驱动器的实现装置可以包括:
申请模块901,用于向主机申请分配主机内存缓冲器HMB空间。
缓存模块902,用于将固态驱动器SSD的映射表缓存在所述HMB空间中。
操作模块903,用于当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
本申请基于主机内存缓冲器的固态驱动器的实现装置的具体实施可参见上述基于主机内存缓冲器的固态驱动器的实现方法的各实施例,在此不做赘述。
参见图10,图10为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。其中,如图10所示,本申请的实施例涉及的硬件运行环境的电子设备可以包括:
处理器1001,例如CPU。
存储器1002,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口1003,用于实现处理器1001和存储器1002之间的连接通信。
本领域技术人员可以理解,图10中示出的电子设备的结构并不构成对电子设备的限定,可以包括比图10所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图10所示,存储器1002中可以包括操作系统、网络通信模块以及基于主机内存缓冲器的固态驱动器的实现程序。操作系统是管理和控制电子设备硬件和软件资源的程序,支持基于主机内存缓冲器的固态驱动器的实现程序以及其他软件或程序的运行。网络通信模块用于实现存储器1002内部各组件之间的通信,以及与电子设备中其他硬件和软件之间通信。
在图10所示的电子设备中,处理器1001用于执行存储器1002中存储的基于主机内存缓冲器的固态驱动器的实现程序,实现以下步骤:
固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间;
将所述SSD的映射表缓存在所述HMB空间中;
当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
本申请电子设备的具体实施可参见上述基于主机内存缓冲器的固态驱动器的实现方法的各实施例,在此不做赘述。
本申请的另一个实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现以下步骤:
固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间;
将所述SSD的映射表缓存在所述HMB空间中;
当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
本申请计算机可读存储介质的具体实施可参见上述基于主机内存缓冲器的固态驱动器的实现方法的各实施例,在此不做赘述。
本申请的另一个实施例提供了一种计算机程序产品,包括计算机指令,当所述计算机指令在推荐装置上运行时,使得所述推荐装置执行本申请实施例提供的基于主机内存缓冲器的固态驱动器的实现方法中的步骤。
还需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于主机内存缓冲器的固态驱动器的实现方法,其特征在于,包括:
固态驱动器SSD向主机申请分配主机内存缓冲器HMB空间;
将所述SSD的映射表缓存在所述HMB空间中;
当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
2.根据权利要求1所述的方法,其特征在于,所述SSD根据NVMe协议实现向主机申请分配所述HMB空间,通过PCIe接口实现对所述HMB空间中缓存的映射表进行操作。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述SSD的映射表缓存在所述HMB空间中包括:
当所述HMB空间的容量不小于所述映射表的大小时,将所述映射表全部存储在所述HMB空间中;
当所述HMB空间的容量小于所述映射表的大小时,将所述HMB空间作为所述映射表的缓存,所述映射表存储在所述SSD的闪存颗粒中。
4.根据权利要求3所述的方法,其特征在于,所述HMB空间包括至少一个内存段,所述至少一个内存段中的每个内存段对应一个条目号。
5.根据权利要求4所述的方法,其特征在于,所述HMB空间中缓存的映射表包括N个表单元,其中,N为正整数且为4的倍数,所述N个表单元中的每个表单元对应覆盖所述闪存颗粒的存储空间。
6.根据权利要求5所述的方法,其特征在于,所述N个表单元对应映射到4路元数据数组,所述4路元数据数组中的每路元数据数组的路偏移为0至(N/4-1)。
7.根据权利要求6所述的方法,其特征在于,所述通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作,包括:
当接收数据读取命令时,获取逻辑地址;
根据所述逻辑地址,计算段偏移;
根据所述段偏移查找所述HMB空间中的内存段,获取表单元的主机地址;
根据所述表单元的主机地址,从所述HMB空间中读取所述表单元;
判断是否查找到元数据;
若查找到所述元数据,则根据所述元数据从所述HMB空间中读取表单元数据,将所述表单元数据返回给所述SSD;
若未查找到所述元数据,则返回查找失败结果给所述SSD。
8.一种基于主机内存缓冲器的固态驱动器的实现装置,其特征在于,包括:
申请模块,用于向主机申请分配主机内存缓冲器HMB空间;
缓存模块,用于将固态驱动器SSD的映射表缓存在所述HMB空间中;
操作模块,用于当执行主机操作指令时,通过对所述HMB空间中缓存的映射表进行操作,实现对所述SSD中的闪存颗粒的操作。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1至7任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225421.6A CN112416819A (zh) | 2020-11-05 | 2020-11-05 | 基于主机内存缓冲器的固态驱动器的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011225421.6A CN112416819A (zh) | 2020-11-05 | 2020-11-05 | 基于主机内存缓冲器的固态驱动器的实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416819A true CN112416819A (zh) | 2021-02-26 |
Family
ID=74827662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011225421.6A Pending CN112416819A (zh) | 2020-11-05 | 2020-11-05 | 基于主机内存缓冲器的固态驱动器的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416819A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468079A (zh) * | 2021-09-03 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 内存访问方法及装置 |
CN113590506A (zh) * | 2021-08-02 | 2021-11-02 | 联芸科技(杭州)有限公司 | Hmb的表项管理方法及固态硬盘的控制系统 |
CN113760796A (zh) * | 2021-09-01 | 2021-12-07 | 山东华芯半导体有限公司 | 一种基于hbm缓存的ssd固态盘 |
WO2024022205A1 (en) * | 2022-07-29 | 2024-02-01 | Beijing Tenafe Electronic Technology Co., Ltd. | Processor-dependent address translation for host memory buffer |
US11922034B2 (en) | 2021-09-02 | 2024-03-05 | Samsung Electronics Co., Ltd. | Dual mode storage device |
-
2020
- 2020-11-05 CN CN202011225421.6A patent/CN112416819A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590506A (zh) * | 2021-08-02 | 2021-11-02 | 联芸科技(杭州)有限公司 | Hmb的表项管理方法及固态硬盘的控制系统 |
CN113760796A (zh) * | 2021-09-01 | 2021-12-07 | 山东华芯半导体有限公司 | 一种基于hbm缓存的ssd固态盘 |
CN113760796B (zh) * | 2021-09-01 | 2023-12-22 | 山东华芯半导体有限公司 | 一种基于hbm缓存的ssd固态盘 |
US11922034B2 (en) | 2021-09-02 | 2024-03-05 | Samsung Electronics Co., Ltd. | Dual mode storage device |
CN113468079A (zh) * | 2021-09-03 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 内存访问方法及装置 |
WO2024022205A1 (en) * | 2022-07-29 | 2024-02-01 | Beijing Tenafe Electronic Technology Co., Ltd. | Processor-dependent address translation for host memory buffer |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416819A (zh) | 基于主机内存缓冲器的固态驱动器的实现方法及装置 | |
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
US20190073132A1 (en) | Method and system for active persistent storage via a memory bus | |
US9135190B1 (en) | Multi-profile memory controller for computing devices | |
WO2016082196A1 (zh) | 文件访问方法、装置及存储设备 | |
CN113868155B (zh) | 一种内存空间扩展方法、装置及电子设备和存储介质 | |
US11474951B2 (en) | Memory management unit, address translation method, and processor | |
US8984225B2 (en) | Method to improve the performance of a read ahead cache process in a storage array | |
CN111061655B (zh) | 存储设备的地址转换方法与设备 | |
US9372741B2 (en) | Data storage device and operating method thereof | |
US11132291B2 (en) | System and method of FPGA-executed flash translation layer in multiple solid state drives | |
WO2013101158A1 (en) | Metadata management and support for phase change memory with switch (pcms) | |
US8918576B2 (en) | Selectively placing data in thermally constrained memory systems to dynamically adapt to changing environmental conditions | |
US11449270B2 (en) | Address translation method and system for KV storage device | |
CN116431530B (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
CN115495389A (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US10684953B2 (en) | Data storage apparatus capable of varying map cache buffer size | |
KR20180013693A (ko) | 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법 | |
CN109213425B (zh) | 利用分布式缓存在固态存储设备中处理原子命令 | |
US10891239B2 (en) | Method and system for operating NAND flash physical space to extend memory capacity | |
CN110968527A (zh) | Ftl提供的缓存 | |
CN110928682B (zh) | 外部设备访问计算机内存的方法 | |
US11036629B2 (en) | Controller, memory system and operating method thereof | |
US20190155735A1 (en) | Data Software System Assist | |
CN114968849B (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 |