CN117033268A - 一种ssd控制器、数据处理方法、设备及存储介质 - Google Patents
一种ssd控制器、数据处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117033268A CN117033268A CN202311302376.3A CN202311302376A CN117033268A CN 117033268 A CN117033268 A CN 117033268A CN 202311302376 A CN202311302376 A CN 202311302376A CN 117033268 A CN117033268 A CN 117033268A
- Authority
- CN
- China
- Prior art keywords
- data
- search
- flash memory
- data blocks
- data block
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 230000015654 memory Effects 0.000 claims abstract description 162
- 238000011084 recovery Methods 0.000 claims abstract description 69
- 238000004064 recycling Methods 0.000 claims abstract description 42
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 230000014759 maintenance of location Effects 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 claims description 8
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/0629—Configuration or reconfiguration of 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
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)
- Software Systems (AREA)
- Memory System (AREA)
Abstract
本申请涉及存储技术领域,公开了一种SSD控制器、数据处理方法、设备及存储介质。该装置包括:控制模块,用于当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;当判定对闪存进行搜索时,生成搜索指令并下发到搜索模块;待回收的数据块为数据保存时间大于或等于回收阈值的数据块;搜索模块,用于响应于接收到的搜索指令,对闪存内所有数据块进行搜索。本申请基于该装置进行SSD闪存的搜索,能够减少CPU时钟周期的占用,提升SSD的运行性能。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种SSD控制器、数据处理方法、设备及存储介质。
背景技术
随着互联网技术的发展,大数据应用对存储系统的性能和可靠性提出了更高的挑战。由于SSD(Solid State Drive,固态硬盘)具有高可靠性、优秀的性能及低能耗等特点,在当下成为存储领域的发展热点。
SSD通常使用NAND闪存来实现,典型的NAND闪存在其浮栅极中保持电荷。闪存中存储的电荷量不同,用于切换NAND闪存的阈值电压也会发生变化。不同的阈值电压对应不同的电荷水平,即表示存储数据位的不同值。当闪存模块被编程或擦除时,电荷被注入浮栅极或从浮栅极排出,通过围绕浮栅极的介电绝缘体形成临时隧道。随着电介质经历大量的写入或擦除操作时,电介质出现磨损导致浮栅极保持电荷的能力减弱。电介质的磨损会导致写入、擦除错误,并且,由于数据保持的错误率升高导致对存储数据的读取失败。
写入、擦除错误可以在写入操作或擦除操作期间检测到,通常可以通过屏蔽有缺陷的模块来立即修复。然而,存储数据的读取失败更难处理,因为这种问题通常在一定的数据保持期之后才会出现。随着时间的推移,从浮栅极跑出来的电子达到一定数量时,会导致存储模块的比特发生翻转出错,当出错的比特数超出ECC(Error Correction Code,纠错码)的纠错能力时,该部分数据就会丢失。为了解决数据读取失败的问题,相关技术中,SSD厂商通常在固件中加入数据巡检算法,对SSD进行全盘扫描,当发现某个闪存页中翻转的比特数量超过阈值,就将数据重写到新的位置,以此避免数据存放太久导致比特翻转数量超过ECC的纠错能力。但是,这种方式会占用大量的CPU时钟周期,降低SSD的运行性能。
发明内容
有鉴于此,本申请旨在提出一种SSD控制器、数据处理方法、设备及存储介质,以提升SSD的运行性能。
为达到上述目的,本申请的技术方案如下:
本申请实施例第一方面提供一种SSD控制器,包括:
控制模块,用于当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;当判定对闪存进行搜索时,生成搜索指令并下发到搜索模块;待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
搜索模块,用于响应于接收到的搜索指令,对闪存内所有数据块进行搜索。
可选地,控制模块,用于判断强制回收池中待回收的数据块的数量是否小于第一阈值;当强制回收池中待回收的数据块的数量小于第一阈值时,判定对闪存进行搜索。
可选地,控制模块在生成搜索指令之前,获取搜索模块的状态,当搜索模块为空闲状态时,生成搜索指令。
可选地,搜索指令是基于搜索条件生成的,搜索条件包括:获取时间戳最小的数据块;时间戳表示数据块首次被写入数据的时刻。
可选地,SSD控制器,还包括:
回收模块,用于根据闪存的全局数据保持时间及搜索结果中任一数据块的时间戳,判断是否对数据块进行垃圾回收操作;对判定为需要垃圾回收的数据块进行垃圾回收操作。
可选地,回收模块,用于执行以下步骤:
根据闪存的全局数据保持时间及数据块的时间戳,计算数据块的数据保持时间;
将数据块的数据保持时间与回收阈值进行比较,当数据保持时间大于或等于回收阈值时,判定对数据块进行垃圾回收操作;
当判定对数据块进行垃圾回收操作时,将数据块放入强制回收池。
可选地,回收模块,还用于:
当判定对数据块进行垃圾回收操作时,判断数据块是否为在用状态;若数据块为在用状态,修改数据块的状态为强制回收状态。
可选地,控制模块,还用于当强制回收池中待回收的数据块的数量大于或等于第一阈值时,停止向搜索模块发送搜索指令;
当搜索模块空闲的时间达到间歇时间阈值时,重新向搜索模块发送搜索指令。
可选地,搜索条件还包括搜索结果中数据块的数量;
控制模块,还用于根据搜索结果判断是否执行集中垃圾回收操作。
可选地,控制模块,用于当搜索结果中所有数据块的数据保持时间均大于或等于回收阈值时,判定执行集中垃圾回收操作。
可选地,控制模块,还用于当判定执行集中垃圾回收操作时,生成搜索指令并发送给搜索模块。
可选地,SSD控制器,还包括:
更新模块,用于按照第一时间间隔,更新闪存的全局数据保持时间。
可选地,更新模块,具体用于根据当前的温度值计算温度加速系数,基于温度加速系数和上电时间确定全局数据保持时间。
可选地,更新模块,还用于当闪存被写入数据时,若当前被写入数据的数据块为空数据块,则将当前的全局数据保持时间作为数据块的时间戳。
可选地,SSD控制器,还包括:
加载模块,用于当SSD上电时,将闪存内所有数据块的信息存储到缓存中;信息包括所有数据块的时间戳;
保存模块,用于接收到下电请求时,从缓存中获取所有数据块更新后的时间戳并存储到闪存中;更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
根据本申请实施例的第二方面,提供一种数据处理方法,应用于SSD,该方法包括:
当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
当判定对闪存进行搜索时,生成搜索指令并启动搜索模块对闪存内所有数据块进行搜索。
可选地,搜索指令是基于搜索条件生成的,搜索条件包括:获取时间戳最小的数据块;时间戳表示数据块首次被写入数据的时刻。
可选地,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索,包括:
判断强制回收池中待回收的数据块的数量是否小于第一阈值;当强制回收池中待回收的数据块的数量小于第一阈值时,判定对闪存进行搜索;当强制回收池中待回收的数据块的数量大于或等于第一阈值时,判定为停止搜索;
当停止搜索的时长达到间歇时间阈值时,再次对闪存进行搜索。
可选地,数据处理方法还包括:
获取闪存当前的全局数据保持时间;
根据全局数据保持时间及搜索结果中任一数据块的时间戳计算数据块的数据保持时间;
将数据块的数据保持时间与回收阈值进行比较;当数据块的数据保持时间大于或等于回收阈值时,判定对数据块进行垃圾回收操作;
当判定对数据块进行垃圾回收操作时,将数据块放入强制回收池。
可选地,数据处理方法还包括:
当判定对数据块进行垃圾回收操作时,判断数据块是否为在用状态;若数据块为在用状态,修改数据块的状态为强制回收状态。
可选地,搜索条件还包括搜索结果中保留的数据块的数量;
当搜索结果中所有数据块的数据保持时间均大于或等于回收阈值时,判定执行集中垃圾回收操作,获取闪存内数据保持时间大于或等于回收阈值的所有数据块。
可选地,在根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索之前,还包括:
当SSD上电时,将闪存内所有数据块的信息存储到缓存中;信息包括所有数据块的时间戳;
按照第一时间间隔,更新闪存的全局数据保持时间。
可选地,数据处理方法还包括:
当接收到下电请求时,从缓存中获取所有数据块更新后的时间戳并存储到闪存中;更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
根据本申请实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如本申请实施例第二方面的方法中的步骤。
根据本申请实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如本申请实施例第二方面的方法中的步骤。
本申请提供的SSD控制器在SSD上电时,通过控制模块根据强制回收池中待回收的数据块的数量判断是否对SSD的闪存进行搜索,当判定需要对闪存进行搜索时,生成搜索指令并发送给搜索模块。搜索模块相应于接收到的搜索指令,对闪存内所有数据块进行搜索。本申请中采用了硬件模块搜索策略,通过控制模块限制搜索指令的生成频率,从而减少CPU时钟周期的占用,提升SSD的运行性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的SSD控制器的结构示意图;
图2是本申请一实施例提出的数据处理方法的流程图;
图3是本申请一实施例提出的SSD控制器的结构示意图;
图4是本申请一实施例提出的搜索SSD闪存执行垃圾回收的流程图;
图5是本申请一实施例提出的基于SSD闪存的搜索控制算法的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本申请的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
SSD包含多个用于存储数据的NAND闪存芯片或存储器。每个NAND芯片或存储器包含一个或多个LUN,每个LUN包含一个或多个平面。平面被划分为块,块被划分为页。页由多个单元格组成,每个单元格保存一个或多个数据位。数据在页级被写入,但在块级被擦除。
下面将参考附图并结合实施例来详细说明本申请。
图1是本申请一实施例提出的SSD控制器100的结构示意图。如图1所示,装置包括:
控制模块101,用于当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;当判定对闪存进行搜索时,生成搜索指令并下发到搜索模块;待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
搜索模块102,用于响应于接收到的搜索指令,对闪存内所有数据块进行搜索。
本实施例中,强制回收池用于存放需要被执行垃圾回收(Force GarbageCollection,Force GC)处理的待回收队列,放入强制回收池的待回收数据块不可被读或写,待回收队列中的数据块被依次进行数据擦除后,转化为空白数据块重新用于写入数据。
控制模块101读取强制回收池中待回收的数据块的数量,并根据待回收的数据块的数量判断是否要对闪存进行搜索。当判定需要对闪存进行搜索时,生成搜索指令并发送给搜索模块102。搜索模块102为SSD控制器的硬件搜索引擎SE。当接收到搜索指令时,硬件搜索引擎SE首先进行寄存器的硬件配置,然后启动对闪存的全盘硬件搜索。值得注意的是,强制回收池中的数据块不会被搜索到。
本实施例中,通过控制模块101读取强制回收池中待回收的数据块的数量限制生成搜索指令的频率,即限制针对闪存的全盘搜索的频率,当强制回收池中待回收数据块的数量满足条件时对闪存进行全盘搜索,能够有效减少对CPU时钟周期的占用,提升SSD的性能。
作为本申请的一种实施方式,控制模块,用于判断强制回收池中待回收的数据块的数量是否小于第一阈值;当强制回收池中待回收的数据块的数量小于第一阈值时,判定对闪存进行搜索。
在本实施例中,受限于强制回收池的容量和对该强制回收池中待回收的数据块进行垃圾回收处理的速度,只有当强制回收池中未处理的数据块的数量比较少的情况下,才对闪存进行搜索,以查找是否有数据块需要放入强制回收池。在强制回收池中待回收的数据块的数量比较充足的情况下,将停止搜索和添加待回收数据块,以保证设备的运行性能。
本实施例中设置了第一阈值作为判断是否搜索闪存的判断条件,控制模块101确定强制回收池中待回收的数据块的数量是否小于第一阈值,当待回收的数据块的数量小于第一阈值时,才判定需要对闪存进行搜索。在实际应用中,第一阈值可根据处理数据块垃圾回收的繁忙程度对第一阈值进行相应的设置。例如,将第一阈值设置为15,当强制回收池中待回收的数据块的数量小于15个时,判定对闪存进行搜索。
作为本申请的一种实施方式,控制模块在生成搜索指令之前,获取搜索模块的状态,当搜索模块为空闲状态时,生成搜索指令。
在一种实施例中,控制模块101生成搜索指令之前,还要读取搜索模块102当前的状态,如果搜索模块102当前处于繁忙(busy)状态,说明搜索模块102正在对闪存进行搜索,在这种情况下,控制模块101不生成搜索指令。通过读取搜索模块102的状态,避免重复发送搜索指令,占用搜索资源。
作为本申请的一种实施方式,搜索指令是基于搜索条件生成的,搜索条件包括:获取时间戳最小的数据块;时间戳表示数据块首次被写入数据的时刻。
固态硬盘中数据块的时间戳(timestamp)记录了数据块首次被写入数据的时刻,通过读取数据块的时间戳,能够获取该数据块中的数据从首次被写入时到当前时刻的保持时间,即数据保持时间。
本实施例中,闪存内所有数据块的时间戳存储在sblk info表中,对于没有写入数据的空数据块,其时间戳的值默认为0。控制模块101根据搜索条件生成搜索指令并发送给搜索模块102,硬件搜索引擎SE按照搜索指令中的搜索条件进行寄存器的硬件配置,启动对闪存中时间戳最小的数据块的搜索,获取闪存中写入数据的时间最早的数据块。通过获取时间戳最小的数据块,减少硬件搜索引擎SE的调用,由于搜索条件中优先获取时间戳最小的数据块,即获取写入数据最早的数据块,若该数据块无需进行垃圾回收操作,则闪存中其他的数据块都无需进行垃圾回收操作,因此当时间戳最小的数据块无需进行垃圾回收操作时,无需再次调用搜索模块102对闪存进行搜索。
作为本申请的一种实施方式,SSD控制器,还包括:
回收模块,用于根据闪存的全局数据保持时间及搜索结果中任一数据块的时间戳,判断是否对数据块进行垃圾回收操作;对判定为需要垃圾回收的数据块进行垃圾回收操作。
全局数据保持时间是针对NAND闪存的数据保持时间,从闪存首次被写入数据开始记录,在SSD下电时进行保存,并在SSD再次上电后继续记录。
在一种实施例中,SSD控制器包括回收模块,对搜索模块102的搜索结果中需要进行垃圾回收的数据块进行垃圾回收处理。图3是本申请一实施例提出的SSD控制器的结构示意图。如图3所示,该装置为SSD控制器300,包括:控制模块101、搜索模块102、回收模块103、更新模块104、加载模块105、保存模块106、前端控制器107及闪存控制模块108。SSD控制器上带有SSD接口和闪存接口,通过SSD接口与主机进行数据交互,通过闪存接口与NAND闪存进行数据交互。例如,主机通过SSD接口向SSD下发写入指令,SSD控制器300根据主机下发的写入指令,将数据通过闪存接口写到闪存中。
本实施例中,搜索模块102根据控制模块101发送的搜索指令,对闪存进行搜索,获取到闪存内时间戳最小的数据块。回收模块103获取当前的全局数据保持时间,并根据全局数据保持时间和该数据块的时间戳,判断是否对该数据块进行垃圾回收操作。
作为本申请的一种实施方式,SSD控制器还包括:
更新模块,用于按照第一时间间隔,更新闪存的全局数据保持时间。
作为本申请的一种实施方式,更新模块,具体用于根据当前的温度值计算温度加速系数,基于温度加速系数和上电时间确定全局数据保持时间。
本实施例中,更新模块104按照10秒为间隔时间,对闪存的全局数据保持时间进行更新。全局数据保持时间受时间和闪存颗粒的工作温度影响,通过以下表达式进行计算:全局数据保持时间=自然时间×温度加速系数。
其中,温度加速系数TAF的计算可通过以下表达式:
。
上述表达式中,Lnormal为正常应力下寿命,Lstress为高温下寿命,Tnormal为室温绝对温度,Tstress为高温绝对温度,e为自然常数,Ea为失效反应的活化能(单位eV),k为boltzmann常数(8.6171*10-5eV/K),上述温度参数及寿命参数与行业标准一致,在实际应用中可通过查表获取具体值。
作为本申请的一种实施方式,更新模块,还用于当闪存被写入数据时,若当前被写入数据的数据块为空数据块,则将当前的全局数据保持时间作为数据块的时间戳。
本实施例中,当主机向SSD发送写入指令时,若当前被写入数据的数据块为空数据块,则更新模块104将该数据块的时间戳更新为当前的全局数据保持时间。
作为本申请的一种实施方式,回收模块,用于执行以下步骤:
根据闪存的全局数据保持时间及数据块的时间戳,计算数据块的数据保持时间;
将数据块的数据保持时间与回收阈值进行比较,当数据保持时间大于或等于回收阈值时,判定对数据块进行垃圾回收操作;
当判定对数据块进行垃圾回收操作时,将数据块放入强制回收池。
当NAND闪存中的数据达到一定的数据保持时间后,翻转的比特数量会超过ECC的纠错能力,导致数据丢失,因此,设定当数据保持时间达到一定的时长时,将该数据块中的数据重新写到新的位置,以避免数据丢失,即存在一个回收阈值,当数据块的数据保持时间达到回收阈值时,就对该数据块进行垃圾回收处理,将其中的数据写入新的位置。回收阈值受闪存颗粒的工作温度影响,实际应用时可参考行业标准。例如,在40摄氏度下全局数据保持时间不可超过90天,可将回收阈值设置为81天。
本实施例中,当获取闪存的全局数据保持时间该时间戳最小的数据块的时间戳后,根据以下表达式计算该数据块的数据保持时间:
数据块的数据保持时间=当前的全局数据保持时间-数据块的时间戳。
回收模块103通过将该数据块的数据保持时间与回收阈值进行比较,确定该数据块是否需要被垃圾回收。具体地,当该数据块的数据保持时间达到回收阈值(例如,40摄氏度下回收阈值为81天)时,回收模块103判定该数据块需要进行垃圾回收,并将该数据块放入强制回收池中,等待被执行数据擦除。
本实施例中,通过将数据块的数据保持时间和回收阈值进行比较,判定该数据块是否需要进行垃圾回收操作,以此避免出现数据丢失。
作为本申请的一种实施方式,回收模块还用于:
当判定对数据块进行垃圾回收操作时,判断数据块是否为在用状态;若数据块为在用状态,修改数据块的状态为强制回收状态。
在一种实施例中,还需要读取判定为需要进行垃圾回收的数据块的状态。搜索模块102获取的搜索结果中可能存在已经被放入强制回收池的数据块,因此,在将数据块放入强制回收池之前,需要读取该数据块的状态是否为在用(即used)。若该数据块为在用,就将该数据块的状态改为强制回收(即force gc),并将该数据块挂到强制回收池中待处理的回收队列;若读取到该数据块的状态已经是强制回收状态,表明该数据块已经被其他模块进行处理并且放入强制回收池,因此不再对该数据块进行操作,避免对需要进行垃圾回收的数据块重复处理,占用回收模块103的资源产生无效数据。
作为本申请的一种实施方式,控制模块,还用于当强制回收池中待回收的数据块的数量大于或等于第一阈值时,停止向搜索模块发送搜索指令;
当搜索模块空闲的时间达到间歇时间阈值时,重新向搜索模块发送搜索指令。
本实施例中,当强制回收池中待处理的数据块的数量达到第一阈值(例如,15个)时,表明此时强制回收池中的数据块数量比较充足,此时为了保证设备的性能,控制模块101暂停生成搜索指令,并在搜索模块102停止搜索操作的时长达到间歇时间阈值时,再次向搜索模块102发送搜索指令,硬件搜索引擎SE重新启动对闪存进行全盘搜索,获取其中时间戳最小的数据块。本实施例中,将间歇时间阈值设置为150秒,在实际应用中,可根据回收模块103处理强制回收池中待回收数据块的速率,适应性调整间歇时间阈值。
本实施例中,通过判断强制回收池中当前的待回收的数据块的数量是否达到第一阈值,进而判定是否继续对闪存进行搜索,即强制回收池中待回收数据块的数量较为充足的情况下,暂停添加新的待回收数据块,保证回收模块103的运行性能,同时避免占用过多的CPU资源。
作为本申请的一种实施方式,搜索条件还包括搜索结果中数据块的数量;
控制模块,还用于根据搜索结果判断是否执行集中垃圾回收操作。
在一种实施例中,闪存中可能存在大量需要进行垃圾回收的数据块,在这种情况下,发生数据丢失的概率变高,为了避免对需要进行垃圾回收的数据块处理不及时导致发生数据丢失的情况,因此需要进行集中垃圾回收操作。
本实施例中,在搜索条件中添加搜索结果需要获得的数据块的数量。例如,设置搜索结果保留的数据块数量为4,即对闪存进行最小时间戳的搜索,留下4个时间戳最小的数据块。控制模块101向搜索模块102发送该搜索指令,搜索模块102根据该搜索条件配置寄存器并启动搜索,最终获得闪存内时间戳最小的4个数据块,然后根据获得的搜索结果判断是否执行集中垃圾回收操作。
作为本申请的一种实施方式,控制模块,用于当搜索结果中所有数据块的数据保持时间均大于或等于回收阈值时,判定执行集中垃圾回收操作。
在上述实施例中,搜索模块102获得搜索结果以后,回收模块103对搜索结果中所有数据块的数据保持时间进行计算,并将每个数据块的数据保持时间与回收阈值进行比较,判断是否需要进行垃圾回收操作。当搜索结果中所有数据块都满足垃圾回收条件(即数据保持时间达到回收阈值)时,表明闪存中可能存在大量需要进行垃圾回收处理的数据块,此时控制模块101判定执行集中垃圾回收操作。
本实施例中,根据搜索结果中所有数据块是否均需要进行垃圾回收操作,进而判定是否需要进行集中垃圾回收,其中搜索结果中数据块的数量可根据实际应用中回收模块的处理性能进行设置,以适应不同处理性能的硬件模块,达到最优的运行性能。
作为本申请的一种实施方式,控制模块,还用于当判定执行集中垃圾回收操作时,生成搜索指令并发送给搜索模块。
在上述实施例中,当控制模块101判定进行集中垃圾回收时,无需考虑当前强制回收池中待回收数据块的数量,直接生成搜索指令,发送给搜索模块102执行对闪存的搜索,获取当前闪存内所有需要进行垃圾回收操作的数据块。值得注意的是,此处生成的搜索指令的条件,与用于判定是否进行集中垃圾回收操作时用于获取搜索结果的条件一致。
例如,在判定是否进行集中垃圾回收时,设置搜索结果的数据块数量为4,当搜索结果中4个数据块均满足回收条件时,判定进行集中垃圾回收操作,此时按照该搜索条件继续搜索闪存中需要进行垃圾回收的数据块,将搜索到的需要进行垃圾回收的数据块直接添加到强制回收池中,排在待回收队列的末尾,直到某一次搜索结果的4个数据块中存在不需要进行垃圾回收的数据块(即存在数据保持时间未达到回收阈值的数据块)时,停止集中垃圾回收操作。
当停止集中垃圾回收操作后,恢复“当强制回收池中数据块的数量达到第一阈值时,需间隔时间达到间歇时间阈值再进行搜索”的搜索命令生成条件。例如,停止集中垃圾回收操作后,当强制回收池中待回收数据块的数量达到15个时,控制模块101需间隔150秒再向搜索模块102发送搜索命令。
作为本申请的一种实施方式,SSD控制器还包括:
加载模块,用于当SSD上电时,将闪存内所有数据块的信息存储到缓存中;信息包括所有数据块的时间戳;
保存模块,用于接收到下电请求时,从缓存中获取所有数据块更新后的时间戳并存储到闪存中;更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
本实施例中,如图3所示,SSD控制器300还包括加载模块105和保存模块106。为了加快搜索模块102的搜索效率,将时间戳预先存储到缓存中,搜索模块102通过读取缓存中数据块的时间戳进行搜索,从而提高搜索效率。本实施例中,加载模块105在SSD上电时,从闪存中获取所有数据块的时间戳,并存储到缓存,方便搜索模块102对闪存进行搜索时,能够快速读取时间戳信息。由于缓存中的数据在SSD下电之后不会被保存,因此,设置保存模块106用于当接到主机发送的下电请求时,将缓存内当前的时间戳存储到闪存中,以便SSD在下一次上电时,数据块的时间戳信息不会丢失。
在SSD运行时,闪存中数据块的时间戳可能发生变化,大致分为两种情况:
第一种情况是,主机向SSD发送写入指令时,如果被写入数据的数据块是空的数据块(当前时间戳为默认值0),则对该数据块写入数据时,写入指令会将闪存当前的全局数据保持时间作为该数据块的时间戳;
第二种情况是,数据块被执行垃圾回收操作时,当数据块的数据保持时间达到回收阈值时,为了确保该数据块中的数据不会丢失,需要对该数据块进行垃圾回收,即将该数据块中的存储的数据写入别的数据块中,然后将该数据块放入强制回收池进行数据擦除。数据擦除操作会擦除该数据块中所有数据,并将擦除数据后的空的数据块的时间戳变为默认值0。
本实施例中,设置了加载模块105及保存模块106,通过两个模块实现闪存和缓存之间数据的传输,在SSD上电的过程中将数据块的时间戳存储到缓存中,从而提高搜索模块102读取时间戳的效率,进而提高搜索的效率,进一步提高SSD的运行性能。
在一种实施例中,在SSD上电时,加载模块105还将闪存的全局数据保持时间存储到缓存中方便读取,在SSD下电之前,保存模块106将当前的全局数据保持时间从缓存写入到闪存中,方便SSD在下一次上电时继承上一次下电的全局数据保持时间。通过加载模块105和保存模块106提高全局数据保持时间的读取速率,进而提高回收模块103的运行性能。
需要说明的是,由于SSD控制器需要与主机、闪存进行数据和指令的交互,因此SSD控制器还包括前端控制器和闪存控制模块。如图3所示,本实施例中,前端控制器107用于接收主机下发的第一写入指令、上电请求及下电请求;闪存控制模块108用于与闪存进行数据交互。
图4是本申请一实施例提出的搜索SSD闪存执行垃圾回收的流程图。如图4所示,本申请中通过SSD控制器进行搜索和垃圾回收的过程如下:
S41:加载模块加载数据块时间戳到缓存。当SSD上电时,运行加载模块105获取各个数据块(super block,slbk)在上次下电时保存的时间戳,并导入到缓存中。SSD在运行过程中,主机的host写指令或者回收模块103的GC写指令会修改数据块的时间戳的值。将上一次下电时保存的数据块的时间戳从闪存写入到缓存中,以备后续SE搜索。本实施例中,将时间戳为硬件搜索引擎SE的搜索字段,在启动硬件搜索引擎SE之前,根据搜索字段进行相应的硬件寄存器配置。
S42:更新全局数据保持时间。更新模块104在运行过程中,按照间隔时间对全局数据保持时间进行更新。具体地,RETENTION(数据保持时间)的标准为40摄氏度90天,本实施例中设置回收阈值为81天,即RETENTION达到81天时触发垃圾回收操作,确保RETENTION时长不超过90天。全局的RETENTION时间由更新模块104每10秒获取一次闪存颗粒的温度值,并基于温度值进行计算得到。
数据块的RETENTION=全局RETENTION时间-数据块写入时的全局RETENTION。
其中,数据块的时间戳Timestamp(即该数据块首次被写入时的全局RETENTION时间)记录在闪存内的sblk info表中。本实施例中,为加速对数据块的时间戳的访问,将sblkinfo表中的时间戳存放到缓存中位于write back属性内存区域的影子表中,并将全局数据保存时间存到powerinfo表中,当SSD上电时,通过加载模块105继承SSD上以次下电时保存的值。值得注意的是,在更新模块104对全局数据保持时间进行更新时,直接对缓存中的全局数据保持时间进行更新,当SSD下电时,保存模块106再将缓存中更新后的全局数据保持时间写入闪存中进行保存。
S43:判断是否启动搜索。控制模块101按照相应的垃圾回收策略,生成收缩指令启动硬件搜索引擎SE对闪存进行搜索,并根据搜索结果执行具体的垃圾回收操作。
图5是本申请一实施例提出的基于SSD闪存的搜索控制算法的示意图。如图5所示,GC核CPU执行检查timestamp的控制算法中,首先对force gc池里待回收的sblk数量进行检测。为了不过多的占用硬件搜索引擎SE的搜索资源,当force gc(强制回收)池里待回收的sblk超过15个,且硬件搜索引擎SE的空闲时间大于设定的间歇时间阈值(即150秒)后,重新启动硬件搜索引擎SE,对闪存进行搜索。
当满足启动条件时,进行获取最小timestamp值的搜索操作,硬件搜索引擎SE一次搜索出4个timestamp最小(即首次写入数据的时间最早)的4个sblk。本实施例中,通过循环判断的方式判断搜索结果中各sblk的RETENTION是否满足回收阈值。如果数据块的数据保持时间满足回收的阈值条件,再判断sblk是否为在用状态(即used状态),以此判断是否该模块已经被其他模块进行处理并且已经放入force gc池里。如果slbk的类型为used,则启动回收模块103,对该slbk进行相应的垃圾回收处理,包括:修改slbk的类型为force gc,并将该数据块挂到待处理的回收队列的末尾。
同时,判断当前搜索结果中的所有数据块是否都需要进行垃圾回收操作,以此确定是否进入集中的垃圾回收处理(即GC风暴)。若搜索出的4个sblk都满足时间上的回收阈值时,认为此时SSD的闪存中存在有大量需要垃圾回收处理的sblk,此时需要执行集中的垃圾回收操作,以防止出现数据丢失的情况。在执行集中的垃圾回收操作时,需要屏蔽掉“force gc池超过15个需要间歇150秒的条件”,即刻启动硬件搜索引擎SE进行搜索以应对GC风暴问题。
S44:搜索模块进行时间戳最小值的搜索。通过搜索模块102执行时间戳最小值的搜索。本实施例中,采用硬件搜索引擎SE执行搜索命令。FTL Table存放于DRAM中,硬件搜索引擎SE的CPU通过配置SE寄存器发起检索命令,该命令转化为axi bus时序格式向总线发起读数据传输,最终到达数据比较模块。其中,读数据为指定个数、指定字段的结构体数据。在数据比较模块中将读入的数据进行迭代比较,得出最终的搜索结果及搜索结果中每个数据块的相对地址,并将该信息存入寄存器等待CPU读取。
S45:执行垃圾回收操作。将满足要求的数据块进行垃圾回收,即将该数据块的类型改为force gc,并将其挂到强制回收池的待处理的回收队列,回收模块103会按照先进先出的顺序对回收队列中的数据块进行垃圾回收,执行数据擦除等相关操作。
S46:保存全局数据保持时间到闪存。当SSD收到下电请求时,通过保存模块106将缓存中保存的全局数据保持时间写入SSD的闪存中,以便SSD在下次上电时继承数据保持的值。
本实施例中提供的垃圾回收策略,按照搜索条件控制硬件搜索引擎SE进行数据块的搜索,根据搜索结果中数据块的数据保持时间是否达到回收阈值,判断搜索出的数据块是否满足垃圾回收要求,以决定是否对其进行垃圾回收操作。在进行垃圾回收操作的基础上,根据搜索结果中需要执行垃圾回收操作的数据块的数量,判断是否进行短时间内集中的垃圾回收(GC风暴),从而及时根据闪存中待回收的数据块的数量改变垃圾回收策略,避免出现数据丢失的问题。
本实施例中,SSD控制器300不仅能够保证数据块中的数据在达到不可纠错(超出ECC的纠错能力)而发生数据丢失前,被正确地垃圾回收和重新写入,并且,由于采用了限制条件的搜索策略控制硬件搜索引擎SE的运行,因此相比与相关技术中占用大量CPU时钟周期的软件巡检方式,本实施例的方案能够在实现数据保持保护、提高闪存寿命的同时,提高闪存的稳态性能。
基于同一发明构思,本申请一实施例提供一种应用于SSD的数据处理方法。参考图2,图2是本申请一实施例提出的数据处理方法的流程图。如图2所示,该方法包括:
S21:当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
S22:当判定对闪存进行搜索时,生成搜索指令并启动搜索模块对闪存内所有数据块进行搜索。
作为本申请的一种实施方式,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索,包括:
判断强制回收池中待回收的数据块的数量是否小于第一阈值;当强制回收池中待回收的数据块的数量小于第一阈值时,判定对闪存进行搜索;
当停止搜索的时长达到间歇时间阈值时,再次对闪存进行搜索。
作为本申请的一种实施方式,判断是否对SSD的闪存进行搜索,还包括:
获取搜索模块的状态,当搜索模块为空闲状态时,判定对闪存进行搜索。
作为本申请的一种实施方式,搜索指令是基于搜索条件生成的,搜索条件包括:获取时间戳最小的数据块;时间戳表示数据块首次被写入数据的时刻。
作为本申请的一种实施方式,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索,包括:
判断强制回收池中待回收的数据块的数量是否小于第一阈值;当强制回收池中待回收的数据块的数量小于第一阈值时,判定对闪存进行搜索;当强制回收池中待回收的数据块的数量大于或等于第一阈值时,判定为停止搜索。
作为本申请的一种实施方式,数据处理方法还包括:
获取闪存当前的全局数据保持时间;
根据全局数据保持时间及搜索结果中任一数据块的时间戳计算数据块的数据保持时间;
将数据块的数据保持时间与回收阈值进行比较;当数据块的数据保持时间大于或等于回收阈值时,判定对数据块进行垃圾回收操作;
当判定对数据块进行垃圾回收操作时,将数据块放入强制回收池。
作为本申请的一种实施方式,数据处理方法还包括:
当判定对数据块进行垃圾回收操作时,判断数据块是否为在用状态;若数据块为在用状态,修改数据块的状态为强制回收状态。
作为本申请的一种实施方式,搜索条件还包括搜索结果中保留的数据块的数量;
当搜索结果中所有数据块的数据保持时间均大于或等于回收阈值时,判定执行集中垃圾回收操作,获取闪存内数据保持时间大于或等于回收阈值的所有数据块。
作为本申请的一种实施方式,在根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索之前,还包括:
当SSD上电时,将闪存内所有数据块的信息存储到缓存中;信息包括所有数据块的时间戳;
按照第一时间间隔,更新闪存的全局数据保持时间。
作为本申请的一种实施方式,数据处理方法还包括:
当接收到下电请求时,从缓存中获取所有数据块更新后的时间戳并存储到闪存中;更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
基于同一发明构思,本申请一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例的数据处理方法中的步骤。
基于同一发明构思,本申请一实施例提供一种电子设备。该电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行时实现本申请上述任一实施例的数据处理方法中的步骤。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和部件并不一定是本申请所必须的。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的SSD控制器、数据处理方法、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (25)
1.一种SSD控制器,其特征在于,包括:
控制模块,用于当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;当判定对所述闪存进行搜索时,生成搜索指令并下发到搜索模块;所述待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
搜索模块,用于响应于接收到的所述搜索指令,对所述闪存内所有数据块进行搜索。
2.根据权利要求1所述的SSD控制器,其特征在于,所述控制模块,用于判断所述强制回收池中待回收的数据块的数量是否小于第一阈值;当所述强制回收池中待回收的数据块的数量小于所述第一阈值时,判定对所述闪存进行搜索。
3.根据权利要求1所述的SSD控制器,其特征在于,所述控制模块在生成所述搜索指令之前,获取所述搜索模块的状态,当所述搜索模块为空闲状态时,生成所述搜索指令。
4.根据权利要求1所述的SSD控制器,其特征在于,所述搜索指令是基于搜索条件生成的,所述搜索条件包括:获取时间戳最小的数据块;所述时间戳表示所述数据块首次被写入数据的时刻。
5.根据权利要求4所述的SSD控制器,其特征在于,还包括:
回收模块,用于根据所述闪存的全局数据保持时间及搜索结果中任一数据块的时间戳,判断是否对所述数据块进行垃圾回收操作;对判定为需要垃圾回收的数据块进行垃圾回收操作。
6.根据权利要求5所述的SSD控制器,其特征在于,所述回收模块,用于执行以下步骤:
根据所述闪存的全局数据保持时间及所述数据块的时间戳,计算所述数据块的数据保持时间;
将所述数据块的数据保持时间与所述回收阈值进行比较,当所述数据保持时间大于或等于所述回收阈值时,判定对所述数据块进行垃圾回收操作;
当判定对所述数据块进行垃圾回收操作时,将所述数据块放入所述强制回收池。
7.根据权利要求5所述的SSD控制器,其特征在于,所述回收模块,还用于:
当判定对所述数据块进行垃圾回收操作时,判断所述数据块是否为在用状态;若所述数据块为在用状态,修改所述数据块的状态为强制回收状态。
8.根据权利要求2所述的SSD控制器,其特征在于,所述控制模块,还用于当所述强制回收池中待回收的数据块的数量大于或等于所述第一阈值时,停止向所述搜索模块发送搜索指令;
当所述搜索模块空闲的时间达到间歇时间阈值时,重新向所述搜索模块发送搜索指令。
9.根据权利要求4所述的SSD控制器,其特征在于,所述搜索条件还包括搜索结果中数据块的数量;
所述控制模块,还用于根据所述搜索结果判断是否执行集中垃圾回收操作。
10.根据权利要求9所述的SSD控制器,其特征在于,所述控制模块,用于当所述搜索结果中所有数据块的数据保持时间均大于或等于所述回收阈值时,判定执行集中垃圾回收操作。
11.根据权利要求10所述的SSD控制器,其特征在于,所述控制模块,还用于当判定执行集中垃圾回收操作时,生成搜索指令并发送给所述搜索模块。
12.根据权利要求1所述的SSD控制器,其特征在于,还包括:
更新模块,用于按照第一时间间隔,更新所述闪存的全局数据保持时间。
13.根据权利要求12所述的SSD控制器,其特征在于,所述更新模块,具体用于根据当前的温度值计算温度加速系数,基于所述温度加速系数和上电时间确定所述全局数据保持时间。
14.根据权利要求12所述的SSD控制器,其特征在于,所述更新模块,还用于当所述闪存被写入数据时,若当前被写入数据的数据块为空数据块,则将当前的全局数据保持时间作为所述数据块的时间戳。
15.根据权利要求14所述的SSD控制器,其特征在于,还包括:
加载模块,用于当所述SSD上电时,将所述闪存内所有数据块的信息存储到缓存中;所述信息包括所有数据块的时间戳;
保存模块,用于接收到下电请求时,从所述缓存中获取所有数据块更新后的时间戳并存储到所述闪存中;所述更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
16.一种数据处理方法,其特征在于,应用于SSD,包括:
当SSD上电时,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索;所述待回收的数据块为数据保存时间大于或等于回收阈值的数据块;
当判定对所述闪存进行搜索时,生成搜索指令并启动搜索模块对所述闪存内所有数据块进行搜索。
17.根据权利要求16所述的数据处理方法,其特征在于,所述搜索指令是基于搜索条件生成的,所述搜索条件包括:获取时间戳最小的数据块;所述时间戳表示所述数据块首次被写入数据的时刻。
18.根据权利要求16所述的数据处理方法,其特征在于,根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索,包括:
判断所述强制回收池中待回收的数据块的数量是否小于第一阈值;当所述强制回收池中待回收的数据块的数量小于所述第一阈值时,判定对所述闪存进行搜索;当所述强制回收池中待回收的数据块的数量大于或等于所述第一阈值时,判定为停止搜索;
当所述停止搜索的时长达到间歇时间阈值时,再次对所述闪存进行搜索。
19.根据权利要求16所述的数据处理方法,其特征在于,还包括:
获取所述闪存当前的全局数据保持时间;
根据所述全局数据保持时间及搜索结果中任一数据块的时间戳计算所述数据块的数据保持时间;
将所述数据块的数据保持时间与所述回收阈值进行比较;当所述数据块的数据保持时间大于或等于所述回收阈值时,判定对所述数据块进行垃圾回收操作;
当判定对所述数据块进行垃圾回收操作时,将所述数据块放入所述强制回收池。
20.根据权利要求19所述的数据处理方法,其特征在于,还包括:
当判定对所述数据块进行垃圾回收操作时,判断所述数据块是否为在用状态;若所述数据块为在用状态,修改所述数据块的状态为强制回收状态。
21.根据权利要求17所述的数据处理方法,其特征在于,所述搜索条件还包括搜索结果中保留的数据块的数量;
当所述搜索结果中所有数据块的数据保持时间均大于或等于所述回收阈值时,判定执行集中垃圾回收操作,获取所述闪存内数据保持时间大于或等于所述回收阈值的所有数据块。
22.根据权利要求16所述的数据处理方法,其特征在于,在根据强制回收池中待回收的数据块的数量,判断是否对SSD的闪存进行搜索之前,还包括:
当所述SSD上电时,将所述闪存内所有数据块的信息存储到缓存中;所述信息包括所有数据块的时间戳;
按照第一时间间隔,更新所述闪存的全局数据保持时间。
23.根据权利要求19所述的数据处理方法,其特征在于,还包括:
当接收到下电请求时,从缓存中获取所有数据块更新后的时间戳并存储到所述闪存中;所述更新后的时间戳为根据主机发送的写入指令对空的数据块进行写入时标记的时间戳,或对待回收的数据块执行垃圾回收操作后标记的时间戳。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求16-23任一所述的方法中的步骤。
25.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求16-23任一所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311302376.3A CN117033268B (zh) | 2023-10-09 | 2023-10-09 | 一种ssd控制器、数据处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311302376.3A CN117033268B (zh) | 2023-10-09 | 2023-10-09 | 一种ssd控制器、数据处理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033268A true CN117033268A (zh) | 2023-11-10 |
CN117033268B CN117033268B (zh) | 2024-02-09 |
Family
ID=88623114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311302376.3A Active CN117033268B (zh) | 2023-10-09 | 2023-10-09 | 一种ssd控制器、数据处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033268B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117666972A (zh) * | 2024-02-01 | 2024-03-08 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301132A (zh) * | 2017-06-09 | 2017-10-27 | 华中科技大学 | 一种闪存垃圾回收优化方法 |
CN115269451A (zh) * | 2022-09-28 | 2022-11-01 | 珠海妙存科技有限公司 | 闪存垃圾回收方法、装置及可读存储介质 |
CN115599706A (zh) * | 2022-12-13 | 2023-01-13 | 合肥康芯威存储技术有限公司(Cn) | 一种数据存储设备的垃圾回收处理方法及数据存储设备 |
-
2023
- 2023-10-09 CN CN202311302376.3A patent/CN117033268B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301132A (zh) * | 2017-06-09 | 2017-10-27 | 华中科技大学 | 一种闪存垃圾回收优化方法 |
CN115269451A (zh) * | 2022-09-28 | 2022-11-01 | 珠海妙存科技有限公司 | 闪存垃圾回收方法、装置及可读存储介质 |
CN115599706A (zh) * | 2022-12-13 | 2023-01-13 | 合肥康芯威存储技术有限公司(Cn) | 一种数据存储设备的垃圾回收处理方法及数据存储设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117666972A (zh) * | 2024-02-01 | 2024-03-08 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
CN117666972B (zh) * | 2024-02-01 | 2024-05-14 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117033268B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572489B (zh) | 磨损均衡方法及装置 | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US6493730B1 (en) | Efficient object faulting with generational garbage collection | |
CN117033268B (zh) | 一种ssd控制器、数据处理方法、设备及存储介质 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN115495025B (zh) | 一种管理异常存储块的方法和装置 | |
CN113885692B (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
JP2008299848A (ja) | 不揮発性メモリのデータ処理装置及びその処理方法 | |
WO2015035343A1 (en) | Electronic device data distribution | |
CN111737165B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN114237984A (zh) | 异常掉电下Trim数据的恢复方法、系统及固态硬盘 | |
TW202006535A (zh) | 韌體更新方法 | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109690465B (zh) | 一种存储设备管理方法及用户终端 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN116578246B (zh) | 一种存储设备及其控制方法 | |
CN114063901A (zh) | Plp备份失败之后的ssd支持只读模式 | |
CN113918094B (zh) | 一种ssd写带宽控制方法 | |
CN106021124B (zh) | 一种数据的存储方法及存储系统 | |
CN112799601B (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
CN112394883B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
US20130326123A1 (en) | Memory management device and method, and program |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |