CN118093451A - 固态驱动器的负载均衡方法及装置 - Google Patents
固态驱动器的负载均衡方法及装置 Download PDFInfo
- Publication number
- CN118093451A CN118093451A CN202410150267.2A CN202410150267A CN118093451A CN 118093451 A CN118093451 A CN 118093451A CN 202410150267 A CN202410150267 A CN 202410150267A CN 118093451 A CN118093451 A CN 118093451A
- Authority
- CN
- China
- Prior art keywords
- storage area
- identification
- data
- target storage
- written
- 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
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本申请实施例提供一种固态驱动器的负载均衡方法及装置,该方法通过在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,之后将待写入数据写入至第一目标存储区域。该技术方案中,固态驱动器可以确定出任一个已擦写次数最小的区域代替主机驱动单元确定出的待写入的存储区域,避免主机驱动单元需要接收固态驱动器中所有存储区域的已擦写次数来确定出较为合适的写入对应的存储区域的步骤,从而减轻了主机驱动单元的负担,利用映射表的方式,可以使得主机驱动单元根据该映射表找到实际存储相应数据的存储区域,实现准确的读写操作。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种固态驱动器的负载均衡方法及装置。
背景技术
固态驱动器(Solid-State Drive,SSD)内部的与非门(英文:NAND)是按照存储区域(英文:Zone)进行管理的,每个NAND上的各个存储区域均是独立的空间,主机驱动单元(英文:Host)在准备存储数据前,会下发存储命令并携带数据存储至相应的存储区域。
在上述的实现中,固态驱动器在每次上电时,都需要向主机驱动单元上报各个存储区域的剩余擦写次数(Program/Erase,PE),然后在数据写入时,根据上报的信息选择剩余擦写次数较大的区域,进而进行在该区域的写入操作,然而,上述方式存在增加主机驱动单元负担的情况。
发明内容
本申请的多个方面提供一种固态驱动器的负载均衡方法及装置,用以解决现有技术中在写入数据时主机驱动单元负载压力过大的问题。
第一方面,本申请实施例提供一种固态驱动器的负载均衡方法,包括:
在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,所述数据写入命令中携带有所述主机驱动单元确定出的待写入的存储区域的标识和待写入数据,所述映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在所述固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
将所述待写入数据写入至所述第一目标存储区域。
在一种可能的实施方式中,在所述根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识车辆之前,所述方法还包括:
接收所述主机驱动单元下发的存储区域打开命令,所述存储区域打开命令中携带有待写入的存储区域的标识;
根据所述存储区域打开命令,在所述固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为所述第一目标存储区域;
将所述待写入的存储区域的标识与所述第一目标存储区域的标识记载至所述映射关系中。
在一种可能的实施方式中,所述方法还包括:
获取所述固态驱动器中有效的已擦写次数最小的第二目标存储区域;
在所述固态驱动器所有存储区域的平均已擦写次数与所述第二目标存储区域的已擦写次数之差大于预设次数阈值时,将所述第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将所述第二目标存储区域标记为空闲状态。
在一种可能的实施方式中,所述方法还包括:
在所述映射关系中,将第二目标存储区域的标识更新为第三目标存储区域的标识。
在一种可能的实施方式中,所述方法还包括:
在接收到主机驱动单元下发的数据擦除命令时,根据所述映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识;
将所述第四目标存储区域中的数据进行擦除,并将所述第四目标存储区域标记为空闲状态。
在一种可能的实施方式中,所述方法还包括:
在所述映射关系删除所述待擦除的存储区域的标识与所述第四目标存储区域的标识的对应关系。
在一种可能的实施方式中,所述方法还包括:
在接收到主机驱动单元下发的数据读取命令时,在所述映射关系中确定出待读取的存储区域的标识对应的第五目标存储区域的标识,所述数据读取命令中携带有所述待读取的存储区域的标识;
在所述第五目标存储区域中读取数据,并发送给所述主机驱动单元。
第二方面,本申请实施例提供一种固态驱动器的负载均衡装置,包括:
确定模块,用于在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,所述数据写入命令中携带有所述主机驱动单元确定出的待写入的存储区域的标识和待写入数据,所述映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在所述固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
处理模块,用于将所述待写入数据写入至所述第一目标存储区域。
在一种可能的实施方式中,在所述在映射关系中确定出待写入的存储区域的标识对应的第一目标区域的标识之前,所述确定模块,还用于:
接收所述主机驱动单元下发的存储区域打开命令,所述存储区域打开命令中携带有待写入的存储区域的标识;
根据所述存储区域打开命令,在所述固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为所述第一目标存储区域;
将所述待写入的存储区域的标识与所述第一目标存储区域的标识记载至所述映射关系中。
在一种可能的实施方式中,所述确定模块,还用于:
获取所述固态驱动器中有效的已擦写次数最小的第二目标存储区域;
在所述固态驱动器所有存储区域的平均已擦写次数与所述第二目标存储区域的已擦写次数之差大于预设次数阈值时,将所述第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将所述第二目标存储区域标记为空闲状态。
在一种可能的实施方式中,所述确定模块,还用于:
在所述映射关系中,将第二目标存储区域的标识更新为第三目标存储区域的标识。
在一种可能的实施方式中,所述确定模块,还用于:
在接收到主机驱动单元下发的数据擦除命令时,根据所述映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识;
将所述第四目标存储区域中的数据进行擦除,并将所述第四目标存储区域标记为空闲状态。
在一种可能的实施方式中,所述确定模块,还用于:
在所述映射关系删除所述待擦除的存储区域的标识与所述第四目标存储区域的标识的对应关系。
在一种可能的实施方式中,所述确定模块,还用于:在接收到主机驱动单元下发的数据读取命令时,在所述映射关系中确定出待读取的存储区域的标识对应的第五目标存储区域的标识,所述数据读取命令中携带有所述待读取的存储区域的标识;
在所述第五目标存储区域中读取数据,并发送给所述主机驱动单元。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面涉及的各种可能的实施方式中的方法。
本申请实施例提供的固态驱动器的负载均衡方法及装置,该方法通过在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,数据写入命令中携带有主机驱动单元确定出的待写入的存储区域的标识和待写入数据,映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域,之后将待写入数据写入至第一目标存储区域。该技术方案中,固态驱动器可以确定出任一个已擦写次数最小的区域代替主机驱动单元确定出的待写入的存储区域,避免主机驱动单元需要接收固态驱动器中所有存储区域的已擦写次数来确定出较为合适的写入对应的存储区域的步骤,从而减轻了主机驱动单元的负担,利用映射表的方式,可以使得主机驱动单元根据该映射表找到实际存储相应数据的存储区域,实现准确的读写操作。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术提供的主机驱动单元与固态驱动器的交互示意图一;
图2为现有技术提供的主机驱动单元与固态驱动器的交互示意图二;
图3为本申请是实施例提供的主机驱动单元与固态驱动器的交互示意图一;
图4为本申请实施例提供的主机驱动单元与固态驱动器的交互示意图二;
图5为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图一;
图6为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图二;
图7为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图三;
图8为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图四;
图9为本申请示例性实施例提供的固态驱动器的负载均衡装置的结构示意图;
图10为本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本申请实施例所涉及的场景进行介绍:
固态驱动器(Solid-State Drive,SSD)内部的与非门(英文:NAND)是按照存储区域(英文:Zone)进行管理的,每个NAND上的各个存储区域均是独立的空间,主机驱动单元(英文:Host)在准备存储数据前,会下发存储命令并携带数据存储至相应的存储区域。
可选的,SSD可以是分区命名空间(Zoned Namespace,ZNS)固态驱动器。
例如,图1为现有技术提供的主机驱动单元与固态驱动器的交互示意图一,如图1所示,该交互示意图包括:主机驱动单元、固态驱动器;
相应的,固态驱动器包括:SSD控制器、多个NAND,每个NAND包含多个存储区域(例如,NAND 0中包含有存储区域0,存储区域1,存储区域2,存储区域3,…存储区域100)。
再如,SSD控制器将数据1转入至NAND 0中的存储区域0中;将数据2转入至NAND 0中的存储区域2中。
该图1中一种实现原理为:SSD会将内部的NAND按Zone管理,每个Zone都是独立的空间。Host在准备存储数据前,它会下发一条打开存储区域(英文:open zone)的命令并携带数据需要写入的存储区域的标识(英文:ZoneID)通知SSD open对应的Zone。SSD在收到open zone的命令后会将这个Zone标记为正在使用,然后Host才能将数据传输给SSD并指定将数据存到对应的Zone上。当数据无效后,Host就会下发释放区域(英文:reset zone)的命令,SSD在收到reset zone命令后,将Zone对应的NAND颗粒擦除,每擦除一次就会将PE计数加1,并将对应Zone标记为空闲供下次open使用。
由于每个NAND的擦除次数(Program/Erase,PE)是有限制的,当一个NAND的擦除次数达到厂家规定的次数后,这个NAND就不能再使用了。这样就会导致SSD可存储数据的空间减少,整盘最终会提前报废。
因此理想的状态是所有NAND的擦除次数同时达到NAND最大可擦写的次数,这样SSD的利用率是最大的。这也是所有SSD使用者都在想尽办法将NAND的磨损做到较优。
当前SSD是Host决定将数据保存到哪个Zone上,因此需要Host维护一张每个Zone的已PE值,每次找已PE最小的Zone进行数据写入。
在上述的实现中,固态驱动器在每次上电时,都需要向主机驱动单元上报各个存储区域的已擦写次数(Program/Erase,PE),然后在数据写入时,根据上报的信息选择已擦写次数较小的区域,进而进行在该区域的写入操作。
由于需要SSD将所有Zone的PE值上报给Host,Host需要每次寻找最小PE的Zone进行数据写入,这样就会造成Host的负担。尤其是一台服务器上安装很多块SSD时,Host维护和查找最小PE的负担会更明显。
图2为现有技术提供的主机驱动单元与固态驱动器的交互示意图二,如图2所示,该交互示意图包括:主机驱动单元、固态驱动器;
其中,以固态驱动器中包括:SSD控制器、存储区域111、以及存储区域30为例进行说明。
除了上述图1中通过Host下发open指令来选择最小PE的Zone外,如果某个Zone上存的数据长时间有效,Host一直不发释放(英文:reset)Zone命令,这样也会导致该Zone的PE值比其他Zone小,极端情况是其他Zone的NAND都达到了最大可擦写次数的限制,该Zone的已PE值还是1,Host为了解决这个问题,当有效Zone的最小PE和全盘平均PE达到一定差值时,Host会主动把最小PE Zone的数据读出来,重新写回到SSD内部空闲的最小PE的Zone中。
例如,存储区域111上的数据一直没有被释放,但存储区域111上已擦写次数为1,此时可以将存储区域111上的数据写入空闲的已擦写次数较小的存储区域上,例如存储区域30。
即,可以将存储区域111的数据搬移到存储区域30上,释放存储区域111,用于新数据的写入。
然而,上述现有的负载均衡方式存在以下问题:主机驱动单元的负担过大,影响系统性能;存在长时间有效的已擦写次数较低的存储区域被长期占用,不被擦写使用,之后主机驱动单元在解决该问题时,仍存在一定的负担。
针对上述现有技术中存在的问题,发明人在对负载均衡进行研究的过程中发现,如果可以在SSD内部设置自动读取出已擦写次数最小的存储区域,在得到主机驱动单元的写入指令之后,将数据实际写入至该已擦写次数最小的存储区域,便可以代替主机驱动单元需要读取SSD中所有存储区域状态以及已擦写次数的情况,此时,添加映射关系相关的表格用来维护主机驱动单元写指令指示的存储区域的标识与实际写数据的存储区域的标识,便可以在后续擦除、读取、迁移中正确找到实际的存储区域,不影响正常的读写操作,且减轻了主机驱动单元分配存储区域时的负担。
也即,图3为本申请是实施例提供的主机驱动单元与固态驱动器的交互示意图一,如图3所示,该交互示意图包括:主机驱动单元、固态驱动器;
其中,固态驱动器包括:SSD控制器、映射表、搜索引擎、多个NAND,每个NAND包含多个存储区域。
即,相比于现有技术中图1所示,本申请实施例的图3中增加了映射表和搜索引擎,具体的,映射表的作用是记载主机下发的Zone和SSD内部实际确定出的Zone的一个映射关系;搜索引擎的作用是当主机下发要open某个Zone的时候,搜索引擎会从SSD内部空闲的Zone中找到一个已PE最小的Zone,并填入到Zone映射表中与主机下发的Zone对应。
在一种可能的实现中,搜索引擎的功能由SSD控制器实现,也可以是独立的处理单元;映射表可由SSD控制器维护,也可以是独立的存储单元。
例如,在这里,可以将主机下发的Zone记为Host Zone,搜索引擎确定出的Zone记为盘内Zone,映射表可以记载(例如,Host Zone 111-盘内Zone21、Host Zone 311-盘内Zone11、Host Zone 511-盘内Zone01)。
进一步地,图4为本申请实施例提供的主机驱动单元与固态驱动器的交互示意图二,如图4所示,该交互示意图包括:主机驱动单元、固态驱动器;
其中,以固态驱动器中包括:SSD控制器、映射表、存储区域21、以及存储区域51为例进行说明。
在一种实现中,映射表中记载有Host Zone 111-盘内Zone21,此时,SSD内部可以自动检查全盘平均PE与有效Zone的最小PE值和之差是否超预设次数阈值,在超过时,就SSD内部进行数据的搬移(例如,搬至盘内Zone51),修改映射表为最新的Host Zone 111-盘内Zone51,不再需要Host读回去,再写来回。
以下通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,以下几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
图5为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图一。请参见图5,该固态驱动器的负载均衡方法可以包括:
步骤51、在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识;
其中,数据写入命令中携带有主机驱动单元确定出的待写入的存储区域的标识和待写入数据,映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
在本步骤中,主机驱动单元在下发数据写入命令之后,固态驱动器接收到该数据写入命令,之后对该数据写入命令进行解析,得到主机驱动单元需要写入存储区域的待写入数据、以及主机驱动单元自行确定的待写入的存储区域的标识。
进而,固态驱动器基于该待写入的存储区域的标识在映射关系中确定出该待写入的存储区域的标识对应的第一目标存储区域的标识。
可选的,在收到数据写入命令之前,固态驱动器预先确定有与待写入的存储区域的标识相对应的第一目标存储区域的标识,即以第一目标存储区域替代待写入的存储区域作为写入待写入数据的存储区域。
在一种可能的实现中,固态驱动器在各个NAND的各个存储区域中查找处于空闲状态的已擦写次数最小的存储区域,将已擦写次数最小的存储区域中的任一个作为该第一目标存储区域。
步骤52、将待写入数据写入至第一目标存储区域。
在本步骤中,在上述确定出待写入的存储区域的标识对应的第一目标存储区域之后,将从数据写入命令解析出来的待写入数据写入至第一目标存储区域中。
本申请实施例提供的固态驱动器的负载均衡方法,通过在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,数据写入命令中携带有主机驱动单元确定出的待写入的存储区域的标识和待写入数据,映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域,之后将待写入数据写入至第一目标存储区域。该技术方案中,固态驱动器可以确定出任一个已擦写次数最小的区域代替主机驱动单元确定出的待写入的存储区域,避免主机驱动单元需要接收固态驱动器中所有存储区域的已擦写次数来确定出较为合适的写入对应的存储区域的步骤,从而减轻了主机驱动单元的负担,利用映射表的方式,可以使得主机驱动单元根据该映射表找到实际存储相应数据的存储区域,实现准确的读写操作。
在上述实施例的基础上,图6为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图二。请参见图6,该固态驱动器的负载均衡方法在上述步骤41之前还可以包括:
步骤61、接收主机驱动单元下发的存储区域打开命令;
其中,存储区域打开命令中携带有待写入的存储区域的标识;
在本步骤中,主机驱动单元向固态驱动器下发存储区域打开命令(即open zone),该存储区域打开命令中携带Zone ID(为了便于区分,可以记为Host Zone ID),即待写入的存储区域的标识。
步骤62、根据存储区域打开命令,在固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为第一目标存储区域;
在本步骤中,基于存储区域打开命令中的待写入的存储区域的标识,在固态驱动器的多个存储区域中查找确定出已擦写次数最小的存储区域;
为了便于区分,固态驱动器中的存储区域可以记为盘内Zone ID。
进一步地,若存在多个已擦写次数最小的存储区域,则任选一个作为第一目标存储区域;若只存在一个已擦写次数最小的存储区域,则将该一个作为第一目标存储区域。
步骤63、将待写入的存储区域的标识与第一目标存储区域的标识记载至映射关系中。
在本步骤中,将主机驱动单元下发的存储区域打开命令中的待写入的存储区域的标识与第一目标存储区域的标识作为对应关系,记载至映射关系中,以便后续收到主机驱动单元下发的数据写入命令时,便于在映射关系中查找。
进一步地,在上述实施例,基于映射关系,还可以有以下操作:
在接收到主机驱动单元下发的数据读取命令时,在映射关系中确定出待读取的存储区域的标识对应的第五目标存储区域的标识,数据读取命令中携带有待读取的存储区域的标识;在第五目标存储区域中读取数据,并发送给主机驱动单元。
例如,在基于主机驱动单元下发有数据写入命令之后,携带有主机驱动单元认为的待写入数据的存储区域的标识,而实际存储待写入数据的存储区域可能与主机驱动单元认为的待写入数据的存储区域不同,但是映射关系中记录了这一对应关系,此时,在后续接收到主机驱动单元下发的数据读取命令时,可以从映射关系中根据主机驱动单元认为的待写入数据的存储区域的标识,查找到实际存储相应数据的存储区域(即第五目标存储区域),之后从第五目标存储区域中读取相应的数据返回给主机驱动单元。
本申请实施例提供的固态驱动器的负载均衡方法,通过接收主机驱动单元下发的存储区域打开命令,存储区域打开命令中携带有待写入的存储区域的标识,之后根据存储区域打开命令,在固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为第一目标存储区域,并将待写入的存储区域的标识与第一目标存储区域的标识记载至映射关系中。该技术方案中,通过在多个存储区域中确定出的任一个已擦写次数最小的存储区域,与存储区域打开命令中携带有待写入的存储区域相互对应,为后续接到正式写入数据命令,进行数据写入提供了实现基础。
在上述实施例的基础上,图7为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图三。请参见图7,该固态驱动器的负载均衡方法还可以包括:
步骤71、获取固态驱动器中有效的已擦写次数最小的第二目标存储区域;
在本步骤中,由于SSD内部可能存在某个Zone上存的数据长时间有效,Host一直不发释放Zone命令,会导致该Zone的PE值比其他Zone小,极端情况是其他Zone的NAND都达到了最大可擦写次数的限制,该Zone的已PE值还是1,为了解决这一问题,可以获取固态驱动器中有效的已擦写次数最小的第二目标存储区域。
可选的,有效的已擦写次数最小的第二目标存储区域可以是该存储区域被写入了数据但已擦写次数在所有被写入了数据的存储区域中最小。
步骤72、在固态驱动器所有存储区域的平均已擦写次数与第二目标存储区域的已擦写次数之差大于预设次数阈值时,将第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将第二目标存储区域标记为空闲状态。
在本步骤中,当有效的Zone的最小已擦写次数和全盘各个Zone平均已擦写次数达到一定差值时,固态驱动器会将该最小已擦写次数的Zone(即,第二目标存储区域)的数据读出来,将该数据搬迁至到SSD内部空闲的最小已擦写次数的Zone中,即搬迁至第三目标存储区域。
进一步地,恢复第二目标存储区域为空闲状态。
可选的,还可以有:在映射关系中,将第二目标存储区域的标识更新为第三目标存储区域的标识。
例如,在映射关系中,原存在的映射关系为Host Zone 111-盘内Zone 51(第二目标存储区域的标识),此时更新为Host Zone 111-盘内Zone 61(第三目标存储区域的标识)。
本申请实施例提供的固态驱动器的负载均衡方法,通过获取述固态驱动器中有效的已擦写次数最小的第二目标存储区域,并在固态驱动器所有存储区域的平均已擦写次数与第二目标存储区域的已擦写次数之差大于预设次数阈值时,将第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将第二目标存储区域标记为空闲状态。该技术方案中通过SSD内部对有效的已擦写次数最小的存储区域进行判断,之后符合判断规则迁移至空闲的已擦写次数最小的存储区域,能够避免有效的已擦写次数的存储区域的长时间占用,造成浪费,且避免了主机驱动单元对该事件的操作造成的资源负担。
在上述实施例的基础上,图8为本申请实施例提供的固态驱动器的负载均衡方法的流程示意图四。请参见图8,该固态驱动器的负载均衡方法还可以包括:
步骤81、在接收到主机驱动单元下发的数据擦除命令时,根据映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识;
在本步骤中,主机驱动单元需要对数据进行擦除时,会下发数据擦除命令给固态驱动器,该固态驱动器解析该数据擦除命令得到待擦除的存储区域的标识。
进一步地,基于该待擦除的存储区域的标识,在映射关系中找到与待擦除的存储区域的标识对应的存储区域的标识,即第四目标存储区域的标识。
步骤82、将第四目标存储区域中的数据进行擦除,并将第四目标存储区域标记为空闲状态。
在本步骤中,固态驱动器在上述确定出的第四目标存储区域的标识所对应的第四目标存储区域中将待擦除的相关数据擦除,之后将该第四目标存储区域的状态修改为空闲状态,此时还可以对该第四目标存储区域的已擦写次数加1。
可选的,还可以有:在映射关系删除待擦除的存储区域的标识与第四目标存储区域的标识的对应关系。
由于第四目标存储区域中的数据被清除、且处于空闲状态,此时,可以将映射关系中记载的待擦除的存储区域的标识与第四目标存储区域的标识的对应关系删除,以便于后续该第四目标存储区域为其他写操作服务,避免不必要的资源占用。
本申请实施例提供的固态驱动器的负载均衡方法,通过在接收到主机驱动单元下发的数据擦除命令时,根据映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识,之后将第四目标存储区域中的数据进行擦除,并将第四目标存储区域标记为空闲状态。该技术方案中,实现了主机驱动单元对数据的正确擦除。
图9为本申请示例性实施例提供的固态驱动器的负载均衡装置的结构示意图,请参见图9,该装置包括:
确定模块91,用于在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,数据写入命令中携带有主机驱动单元确定出的待写入的存储区域的标识和待写入数据,映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
处理模块92,用于将待写入数据写入至第一目标存储区域。
在一种可能的实施方式中,在根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识之前,确定模块91,还用于:
接收主机驱动单元下发的存储区域打开命令,存储区域打开命令中携带有待写入的存储区域的标识;
根据存储区域打开命令,在固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为第一目标存储区域;
将待写入的存储区域的标识与第一目标存储区域的标识记载至映射关系中。
在一种可能的实施方式中,确定模块91,还用于:
获取固态驱动器中有效的已擦写次数最小的第二目标存储区域;
在固态驱动器所有存储区域的平均已擦写次数与第二目标存储区域的已擦写次数之差大于预设次数阈值时,将第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将第二目标存储区域标记为空闲状态。
在一种可能的实施方式中,确定模块91,还用于:
在映射关系中,将第二目标存储区域的标识更新为第三目标存储区域的标识。
在一种可能的实施方式中,确定模块91,还用于:
在接收到主机驱动单元下发的数据擦除命令时,根据映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识;
将第四目标存储区域中的数据进行擦除,并将第四目标存储区域标记为空闲状态。
在一种可能的实施方式中,确定模块91,还用于:
在映射关系删除待擦除的存储区域的标识与第四目标存储区域的标识的对应关系。
在一种可能的实施方式中,确定模块91,还用于:
在接收到主机驱动单元下发的数据读取命令时,在映射关系中确定出待读取的存储区域的标识对应的第五目标存储区域的标识,数据读取命令中携带有待读取的存储区域的标识;
在第五目标存储区域中读取数据,并发送给主机驱动单元。
本申请实施例提供的固态驱动器的负载均衡可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图10为本申请提供的电子设备的结构示意图。如图10所示,本实施例的电子设备可以是上述的SSD,可以包括:
处理器101、存储器102及存储在所述存储器102上并可在处理器101上运行的计算机程序指令,所述处理器101执行所述计算机程序指令时实现前述任一实施例提供的方法。
可选的,该电子设备的上述各个器件之间可以通过系统总线连接。
存储器102可以是单独的存储单元,也可以是集成在处理器101中的存储单元。处理器101的数量为一个或者多个。
应理解,处理器101可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器101、数字信号处理器101(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器101可以是微处理器101或者该处理器101也可以是任何常规的处理器101等。结合本公开所公开的方法的步骤可以直接体现为硬件处理器101执行完成,或者用处理器101中的硬件及软件模块组合执行完成。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器102可能包括随机存取存储器102(random access memory,RAM),也可能还包括非易失性存储器102(non-volatile memory,NVM),例如至少一个磁盘存储器102。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器102中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器102(存储介质)包括:只读存储器102(read-only memory,ROM)、RAM、快闪存储器102、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本实施例提供的电子设备用于执行上述任一实施例中的方法,其实现原理和技术效果可以参见前述各实施例,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种固态驱动器的负载均衡方法,其特征在于,包括:
在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,所述数据写入命令中携带有所述主机驱动单元确定出的待写入的存储区域的标识和待写入数据,所述映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在所述固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
将所述待写入数据写入至所述第一目标存储区域。
2.根据权利要求1所述的方法,其特征在于,在所述根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识车辆之前,所述方法还包括:
接收所述主机驱动单元下发的存储区域打开命令,所述存储区域打开命令中携带有待写入的存储区域的标识;
根据所述存储区域打开命令,在所述固态驱动器的多个存储区域中确定出任一个已擦写次数最小的存储区域作为所述第一目标存储区域;
将所述待写入的存储区域的标识与所述第一目标存储区域的标识记载至所述映射关系中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取所述固态驱动器中有效的已擦写次数最小的第二目标存储区域;
在所述固态驱动器所有存储区域的平均已擦写次数与所述第二目标存储区域的已擦写次数之差大于预设次数阈值时,将所述第二目标存储区域中的数据搬迁至空闲的已擦写次数最小的第三目标存储区域,并将所述第二目标存储区域标记为空闲状态。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述映射关系中,将所述第二目标存储区域的标识更新为所述第三目标存储区域的标识。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在接收到主机驱动单元下发的数据擦除命令时,根据所述映射关系,确定出待擦除的存储区域的标识对应的第四目标存储区域的标识;
将所述第四目标存储区域中的数据进行擦除,并将所述第四目标存储区域标记为空闲状态。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述映射关系删除所述待擦除的存储区域的标识与所述第四目标存储区域的标识的对应关系。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在接收到主机驱动单元下发的数据读取命令时,在所述映射关系中确定出待读取的存储区域的标识对应的第五目标存储区域的标识,所述数据读取命令中携带有所述待读取的存储区域的标识;
在所述第五目标存储区域中读取数据,并发送给所述主机驱动单元。
8.一种固态驱动器的负载均衡装置,其特征在于,包括:
确定模块,用于在接收到主机驱动单元下发的数据写入命令时,根据预先获取的映射关系确定出待写入的存储区域的标识对应的第一目标存储区域的标识,所述数据写入命令中携带有所述主机驱动单元确定出的待写入的存储区域的标识和待写入数据,所述映射关系中包括每个存储区域的标识对应的替代存储区域的标识,每个存储区域对应的替代存储区域为在所述固态驱动器的多个存储区域中确定出的任一个已擦写次数最小的存储区域;
处理模块,用于将所述待写入数据写入至所述第一目标存储区域。
9.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410150267.2A CN118093451A (zh) | 2024-02-01 | 2024-02-01 | 固态驱动器的负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410150267.2A CN118093451A (zh) | 2024-02-01 | 2024-02-01 | 固态驱动器的负载均衡方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093451A true CN118093451A (zh) | 2024-05-28 |
Family
ID=91149876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410150267.2A Pending CN118093451A (zh) | 2024-02-01 | 2024-02-01 | 固态驱动器的负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093451A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119065616A (zh) * | 2024-11-07 | 2024-12-03 | 山东云海国创云计算装备产业创新中心有限公司 | 存储器中的数据处理方法和装置、存储介质及电子设备 |
-
2024
- 2024-02-01 CN CN202410150267.2A patent/CN118093451A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN119065616A (zh) * | 2024-11-07 | 2024-12-03 | 山东云海国创云计算装备产业创新中心有限公司 | 存储器中的数据处理方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6839823B1 (en) | Increased reliability of data stored on flash memory in applications sensitive to power-loss | |
US7774390B2 (en) | Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same | |
US8806113B2 (en) | Method for efficient storage of metadata in flash memory | |
CN110175001B (zh) | 一种nor-flash数据存储方法、计算机设备及存储介质 | |
CN109496300B (zh) | 一种存储介质垃圾回收方法、存储介质和程序产品 | |
US8949515B2 (en) | Storage device and memory controller | |
CN108733306B (zh) | 一种文件合并方法及装置 | |
CN110764704B (zh) | 一种环境变量写入方法、存储介质及电子装置 | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN118093451A (zh) | 固态驱动器的负载均衡方法及装置 | |
CN116431059A (zh) | 存储器装置的存取控制方法、存储器装置以及控制器 | |
US20100180072A1 (en) | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program | |
CN116466879A (zh) | 一种cxl内存模组、内存数据的置换方法及计算机系统 | |
CN114238162B (zh) | 垃圾回收方法、装置、可读存储介质及电子设备 | |
US8068363B2 (en) | Flash memory apparatus and read operation control method therefor | |
CN114005476A (zh) | 闪存器、闪存擦写计数方法、电子设备及计算机存储介质 | |
CN116185563B (zh) | 一种基于车规级微控制器数据闪存的软件模拟算法 | |
CN117421258A (zh) | Ssd数据存储的优化方法、装置、计算机设备及介质 | |
KR101083683B1 (ko) | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 | |
CN112612753B (zh) | 一种动态管理Java Card存储空间的系统和方法 | |
CN115373607A (zh) | 数据存储方法及装置 | |
CN108614664A (zh) | 基于NANDflash的读错误处理方法和装置 | |
JP2010256944A (ja) | Nand型フラッシュメモリ保守装置及びnand型フラッシュメモリ保守プログラム及びnand型フラッシュメモリ保守方法 | |
CN113760195B (zh) | 一种基于嵌入式的fatfs文件系统 | |
CN112988037A (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 |