CN112817880A - 一种固态硬盘及其磨损平衡方法和终端设备 - Google Patents
一种固态硬盘及其磨损平衡方法和终端设备 Download PDFInfo
- Publication number
- CN112817880A CN112817880A CN202110284171.1A CN202110284171A CN112817880A CN 112817880 A CN112817880 A CN 112817880A CN 202110284171 A CN202110284171 A CN 202110284171A CN 112817880 A CN112817880 A CN 112817880A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- logical page
- type
- flash memory
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明适用于存储技术领域,提供了一种固态硬盘及其磨损平衡方法和终端设备,方法包括:接收数据的写入指令;计算数据对应的逻辑页的热度值;将计算出的热度值与预设的热度阈值进行比较;若逻辑页的热度值大于或者等于热度阈值,则将数据存储到第一类型的闪存块;若逻辑页的热度值小于热度阈值,则将数据存储到第二类型的闪存块;更新逻辑页的热度值,记录更新时间。本技术方案中,通过公式计算出待写入数据对应的逻辑页的热度值,能够很好的反应出当前逻辑页被操作的频繁程度,再通过将热数据定向写到年轻的闪存块上,将冷数据写到年老的闪存块上,使得闪存块做到磨损均衡,提高了SSD的使用寿命。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种固态硬盘及其磨损平衡方法和终端设备。
背景技术
固态硬盘(Solid State Disk或Solid State Drive,简称SSD)是用固态电子存储芯片阵列制成的存储硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)两部分组成。固态硬盘在接口的规范和定义、功能及使用方法以及产品外形和尺寸上与普通硬盘完全一致,现被广泛应用于军事、车载、工控、网络监控、电力、医疗、航空、导航设备等领域。
SSD的存储单元分为三类,单层单元(Single-Level Cell,简称SLC)、多层单元(Multi-Level Cell,简称MLC)和三层单元(Trinary-Level Cell,简称TLC)。其中,SLC即1bit/cell,原理是在1个储存单元(cell)中存放1位元(bit)的资料,约10万次擦写寿命。MLC即2bit/cell,原理是在1个储存单元(cell)中存放2位元(bit)的资料,约1000--3000次擦写寿命。TLC 即3bit/cell,原理是在1个储存单元(cell)中存放3位元(bit)的资料,约1000次擦写寿命。
也就是说,无论是那种类型的SSD,其存储单元都是有擦写寿命的限制的。而SSD在实际使用过程中,在进行读写数据时,会集中读写SSD其中一部分闪存,这部分的闪存寿命就会损耗得特别快,出现坏块。如果SSD出现坏块,那么该SSD的寿命就会减少,甚至直接报废。
这种磨损不平衡的情况,可能会导致一块100G容量的SSD,只因有少量的坏块(例如数M的坏块),而整块报废。为了弥补SSD闪存的寿命缺陷,最大程度延续SSD的寿命,业界为SSD引入了磨损平衡(Wear Leveling)算法,通过WL算法尽可能的让所有闪存磨损度尽保持一致。
一种现有的磨损平衡算法,其原理是在写入新数据的时候,自动往比较新的闪存块中写,而不往老的闪存中写。另一种现有的磨损平衡方法,SSD会在监测到某些闪存块比较老时,会自动进行数据分配,让比较老的闪存块承担不需要写数据的储存任务,同时让较新的闪存块腾出空间,平常的数据读写就在比较新的闪存块中进行,如此来平衡各个闪存块的寿命损耗。
由此可见,在现有的磨损平衡算法中,都是将数据尽可能的往年轻的闪存块中写,未能区分不同的数据来提供相适应的存储策略,磨损平衡效果欠佳。
发明内容
有鉴于此,本发明实施例提供了固态硬盘及其磨损平衡方法和终端设备,解决了SSD现有的磨损平衡算法,未能区分不同的数据来提供相适应的存储策略,磨损平衡效果欠佳的问题。
本发明实施例的第一方面提供了一种固态硬盘的磨损平衡方法,所述方法包括以下步骤:
接收数据的写入指令;
根据以下公式计算所述数据对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,W为所述逻辑页的权重值,Hk为所述逻辑页第k次更新的热度值,Tdiff为所述逻辑页更新的时间间隔,Hmax为最大热度值,tk为所述逻辑页第k次更新的时间,tk+1为所述逻辑页第k+1次更新的时间,p为预设的修正因子;
将所述逻辑页的热度值Hk+1与预设的热度阈值进行比较;
若所述逻辑页的热度值Hk+1大于或者等于所述热度阈值,则将所述数据存储到第一类型的闪存块;
若所述逻辑页的热度值Hk+1小于所述热度阈值,则将所述数据存储到第二类型的闪存块,所述第一类型的闪存块的擦写次数少于所述第二类型的闪存块的擦写次数;
更新所述逻辑页的热度值,记录所述逻辑页的热度值的更新时间。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如固态硬盘的磨损平衡方法的步骤。
本发明实施例的第三方面提供了一种固态硬盘,所述固态硬盘存储有计算机程序,所述计算机程序被处理器执行时实现如固态硬盘的磨损平衡方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:
本技术方案中,通过公式计算出待写入数据对应的逻辑页的热度值,能够很好的反应出当前逻辑页被操作的频繁程度,即能够很好的分类出待写入数据为冷数据还是热数据,再通过将热数据定向写到年轻的闪存块上,将冷数据写到年老的闪存块上,使得闪存块做到磨损均衡,提高了SSD的使用寿命。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的固态硬盘的磨损平衡方法的第一实施例的流程图;
图2是本发明的固态硬盘的磨损平衡方法的第二实施例的流程图;
图3是本发明的固态硬盘的磨损平衡方法的第三实施例的流程图;
图4是本发明的固态硬盘的磨损平衡方法的第四实施例的流程图;
图5是本发明的固态硬盘的磨损平衡方法的第五实施例的流程图;
图6是本发明的终端设备的第一实施例的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,对本领域的一些技术术语进行说明。
1、磨损平衡
所谓磨损平衡,就是让SSD中的每个闪存块都能保持磨损(擦除)的均衡。
2、冷数据
所谓冷数据是指用户不经常更新的数据,比如一些只读文件数据,操作系统数据。冷数据由于不经常更新,它写在一个或者多个闪存块上后,基本保持不动,这些闪存块的擦写次数就不会增加,相对别的闪存块来说,由于经常拿来写入用户数据,擦写次数一直在增长,这样导致闪存块的擦写不均衡,出现坏块,整个SSD固态硬盘就可能会坏掉。
3、热数据
所谓热数据是指用户频繁更新的数据,会在SSD内部产生很多垃圾数据,新的数据写入会导致老数据失效。
4、年老的闪存块
所谓年老的闪存块是指擦写次数比较多的闪存块。
5、年轻的闪存块
所谓年轻的闪存块是指写次数比较少的闪存块。
6、闪存块的擦写次数
闪存芯片内部要有至少一个闪存块(Block)作为交换块使用。这是因为闪存的写操作比较特殊,必须是先擦除,然后才能写入数据,而擦除的最小单位是一个块,但写数据的最小单位却是一个页(Page)。
首先,SSD通过FTL算法记录每次闪存块擦写的次数,FTL算法还设定了一个擦写次数阈值,擦写次数阈值根据不同闪存芯片的擦写寿命来设定,比如MLC的擦写寿命为3000次,则擦写次数阈值可以设定为2000次或者根据FTL算法来优化该阈值,通过将记录的闪存块的擦写次数与擦写次数阈值比较,来判断闪存块属于擦写次数较多的闪存块还是擦写次数较少的闪存块。具体的,当记录的闪存块的擦写次数大于或者等于擦写次数阈值时,该闪存块为擦写次数较多的闪存块,即年老的闪存块,当记录的闪存块的擦写次数小于擦写次数阈值时,该闪存块是擦写次数少的闪存块,即年轻的闪存块。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
图1为本发明的固态硬盘的磨损平衡方法的第一实施例的流程图,如图1所示,磨损平衡方法包括以下步骤:
S11:接收数据的写入指令。
S12:计算所述数据所对应的逻辑页的热度值。
在本实施例的步骤S12中,根据以下公式计算所述数据所对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,Hk为逻辑页第k次更新的热度值。tk为逻辑页第k次更新的时间,tk+1为逻辑页第k+1次更新的时间,Tdiff为逻辑页更新的时间间隔。
p为预设的修正因子,用于补偿系统误差,根据系统环境的情况而预先测定。含有系统误差的测量结果,乘以修正因数P后就可以补偿或减少误差的影响。比方由于等臂天平的不等臂误差,不等臂天平的臂比误差,线性标尺分度时的倍数误差,以及测量电桥臂的不等称误差所带来的测量结果中的系统误差,均可以通过乘一个修正因数得以补偿。但是,由于系统误差并不能完全获知,因而这种补偿是不完全的,也即修正因数本身仍含有不确定度。
Hmax为最大热度值,根据实际情况预先设定,例如可以设置为10。
W为逻辑页的权重值,取值在0到1之间。根据热度值的公式可以看出,当逻辑页的权重值W为0时,当前逻辑页的热度值就为当前逻辑页更新的时间间隔,随着W的不断增大,更新的时间间隔Tdiff对热度值的影响不断降低。在本实施例中,为了平衡两个参数对热度值的影响,在W为非零时,一律将W取值为0.5。
当逻辑页的更新时间间隔Tdiff比较大时,就说明已经很长时间没有对它进行操作了,反之则表示经常对它进行操作。结合热度值以及更新的时间间隔Tdiff的公式可以看出,整个热度值的区间为0~Hmax。
S13:将计算出的逻辑页的热度值Hk+1与预设的热度阈值Th进行比较。
在本实施例中,预先设定了热度阈值Th,热度阈值Th的具体取值可以根据实际需要来设定,通过设置不同的热度阈值Th,可以改变将当前逻辑页判断为操作频繁或者不频繁的尺度。
S14:若逻辑页的热度值Hk+1大于或者等于热度阈值Th,则将数据存储到第一类型的闪存块。
在本实施例的步骤S14中,当步骤S13的比较结果为接收到的数据所对应的逻辑页的热度值大于或者等于热度阈值Th时,表示该逻辑页操作频繁,对应的有效页为热页,即相应的数据为热数据,此时将数据写入到第一类型的闪存块,第一类型的闪存块可以是年轻的闪存块。
S15:若逻辑页的热度值Hk+1小于热度阈值Th,则将数据存储到第二类型的闪存块,第一类型的闪存块的擦写次数少于第二类型的闪存块的擦写次数。
在本实施例的步骤S14中,当步骤S13的比较结果为接收到的数据所对应的逻辑页的热度值小于热度阈值Th时,表示该逻辑页操作较少,对应的有效页为冷页,即相应的数据为冷数据,此时将数据写入到第二类型的闪存块,第二类型的闪存块可以是年老的闪存块。
S16:更新逻辑页的热度值,记录逻辑页的热度值的更新时间。
在本实施例的步骤S16中,在完成了冷热数据的分离之后,使用计算出的逻辑页的热度值对该逻辑页的热度值进行更新,并记录该逻辑页的更新时间,用于未来的计算。
在本发明的磨损平衡方法的第一实施例中,通过公式计算出待写入数据对应的逻辑页的热度值,能够很好的反应出当前逻辑页被操作的频繁程度,即能够很好的分类出待写入数据为冷数据还是热数据,再通过将热数据定向写到年轻的闪存块上,将冷数据写到年老的闪存块上,实现了冷热数据的分离,使得闪存块做到磨损均衡,提高了SSD的使用寿命。
在本发明的磨损平衡方法的第二实施例中,如图2所示,可以在计算出当前逻辑页的热度值之后,就更新逻辑页的热度值以及记录逻辑页的更新时间。
图3为本发明的固态硬盘的磨损平衡方法的第三实施例的流程图,如图3所示,磨损平衡方法包括以下步骤:
S31:接收数据的写入指令。
S32:计算所述数据所对应的逻辑页的热度值。
在本实施例的步骤S12中,根据以下公式计算所述数据所对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,Hk为逻辑页第k次更新的热度值。tk为逻辑页第k次更新的时间,tk+1为逻辑页第k+1次更新的时间,Tdiff为逻辑页更新的时间间隔。
p为预设的修正因子,用于补偿系统误差,根据系统环境的情况而预先测定。含有系统误差的测量结果,乘以修正因数P后就可以补偿或减少误差的影响。比方由于等臂天平的不等臂误差,不等臂天平的臂比误差,线性标尺分度时的倍数误差,以及测量电桥臂的不等称误差所带来的测量结果中的系统误差,均可以通过乘一个修正因数得以补偿。但是,由于系统误差并不能完全获知,因而这种补偿是不完全的,也即修正因数本身仍含有不确定度。
Hmax为最大热度值,根据实际情况预先设定,例如可以设置为10。
W为逻辑页的权重值,取值在0到1之间。根据热度值的公式可以看出,当逻辑页的权重值W为0时,当前逻辑页的热度值就为当前逻辑页更新的时间间隔,随着W的不断增大,更新的时间间隔Tdiff对热度值的影响不断降低。在本实施例中,为了平衡两个参数对热度值的影响,在W为非零时,一律将W取值为0.5。
当逻辑页的更新时间间隔Tdiff比较大时,就说明已经很长时间没有对它进行操作了,反之则表示经常对它进行操作。结合热度值以及更新的时间间隔Tdiff的公式可以看出,整个热度值的区间为0~Hmax。
S33:将计算出的逻辑页的热度值Hk+1与预设的热度阈值Th进行比较。
在本实施例中,预先设定了热度阈值Th,热度阈值Th的具体取值可以根据实际需要来设定,通过设置不同的热度阈值Th,可以改变将当前逻辑页判断为操作频繁或者不频繁的尺度。
S34:若逻辑页的热度值Hk+1大于或者等于热度阈值Th,则将数据存储到第一类型的闪存块。
在本实施例的步骤S34中,当步骤S33的比较结果为接收到的数据所对应的逻辑页的热度值大于或者等于热度阈值Th时,表示该逻辑页操作频繁,对应的有效页为热页,即相应的数据为热数据,此时将数据写入到第一类型的闪存块,第一类型的闪存块可以是年轻的闪存块。
S35:若逻辑页的热度值Hk+1小于热度阈值,则判断数据的类型是否为预设类型。
在本实施例的步骤S35中,当步骤S33的比较结果为接收到的数据所对应的逻辑页的热度值小于热度阈值Th时,进一步地判断待写入数据的类型是否为预设类型。其中,预设类型为根据用户偏好确定的类型,具体的,可以是根据用户的历史操作数据确定的用户偏好类型,还可以是用户设定的偏好类型。在其他实施例中,预设类型还可以是特定的格式类型等。
S36:若数据的类型为预设类型,则将数据存储到第三类型的闪存块,第三类型的闪存块的擦写次数小于第二类型的闪存块的擦写次数且大于第一类型的闪存块的擦写次数。
在本实施例的步骤S36中,当步骤S35的判断结果为代写入数据为预设类型时,将该数据写入到擦写次数小于第二类型的闪存块又大于第一类型的闪存块的第三闪存块中。即将特定类型的冷数据写入到年老的闪存块中较为年轻的闪存块,实现了对冷数据的精细化以及个性化管理。
S37:若数据的类型不属于预设类型,则将数据存储到第二类型的闪存块。
在本实施例的步骤S37中,当步骤S35的比较结果为代写入数据并非预设类型时,将数据写入到第二类型的闪存块,也就是年老的闪存块中作为年老的一些闪存块中。
S38:更新逻辑页的热度值,记录逻辑页的热度值的更新时间。
在本实施例的步骤S38中,在完成了冷热数据的分离之后,使用计算出的逻辑页的热度值对该逻辑页的热度值进行更新,并记录该逻辑页的更新时间,用于未来的计算。
图4为本发明的固态硬盘的磨损平衡方法的第四实施例的流程图,如图4所示,磨损平衡方法包括以下步骤:
S41:接收数据的写入指令;
S42:判断本次数据写入是否为初次的数据写入;
S43:若为初次的数据写入,则为所述数据对应的逻辑页设置初始热度值,并记录设置初始热度值的时间;
S44:若非初次的数据写入,则根据以下公式计算所述数据对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
S45:将计算出的逻辑页的热度值Hk+1与预设的热度阈值Th进行比较;
S46:若计算出的逻辑页的热度值Hk+1大于或者等于热度阈值Th,则将所述数据存储到第一类型的闪存块;
S47:若计算出的逻辑页的热度值Hk+1小于热度阈值Th,则将所述数据存储到第二类型的闪存块,其中,第一类型的闪存块的擦写次数少于第二类型的闪存块的擦写次数;
S48:更新所述逻辑页的热度值,记录所述逻辑页的热度值更新时间。
在本实施例中,步骤S41、S44-S48与本发明的磨损平衡方法的第一实施例的步骤S11-S16对应相同,在此不再赘述。
在本实施例的步骤S42中,响应接收到的写入指令,判断本次数据写入操作是否为初次的数据写入操作。
在本实施例的步骤S43中,若步骤S42的判断结果为本次为初次的数据写入,即SSD为新盘,由于没有历史数据参与计算,因此需要为当前逻辑页设置初始热度值,并相应地计算设置初始热度值的时间,该时间即为当前逻辑页的热度值的更新时间,用于参与未来的计算。优选地,初始热度值可以设置为最大热度值Hmax的一半。
在本实施例的步骤S44中,若步骤S42的判断结果为本次不是初次的数据写入,则根据上述公式计算出当前逻辑页的热度值Hk+1。
图5为本发明的固态硬盘的磨损平衡方法的第五实施例的流程图,如图5所示,在本实施例中,磨损平衡方法包括:
S51:接收数据的写入指令;
S52:根据以下公式计算所述数据对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,W为所述逻辑页的权重值,Hk为所述逻辑页第k次更新的热度值,Tdiff为所述逻辑页更新的时间间隔,Hmax为最大热度值,tk为所述逻辑页第k次更新的时间,tk+1为所述逻辑页第k+1次更新的时间,p为预设的修正因子;
S53:将所述逻辑页的热度值Hk+1与预设的热度阈值Th进行比较;
S54:若所述逻辑页的热度值Hk+1大于或者等于热度阈值Th,则将所述数据存储到第一类型的闪存块;
S55:若所述逻辑页的热度值Hk+1小于热度阈值Th,则将所述数据存储到第二类型的闪存块,第一类型的闪存块的擦写次数少于第二类型的闪存块的擦写次数;
S56:更新所述逻辑页的热度值,记录所述逻辑页的热度值的更新时间;
S57:接收对热度阈值Th的更改请求;
S58:响应更改请求,对热度阈值Th进行更改。
在本实施例中,步骤S51-S56与本发明的磨损平衡方法第一实施例的步骤S11-S16对应相同,在此不再赘述。
在本实施例的步骤S57-S58中,在接收到热度阈值Th的更改请求时,响应更改请求,从更改请求中获取新的热度阈值,将当前的热度阈值更新为新的热度阈值。通过改变热度阈值Th的取值,从而改变将当前逻辑页判断为操作频繁或者不频繁的尺度,进而满足实际应用的需求。
在本发明的固态硬盘的磨损平衡方法的第六实施例中,磨损平衡方法包括以下步骤:
S61:接收数据的写入指令;
S62:判断本次数据写入是否为初次的数据写入;
S63:若为初次的数据写入,则为所述数据对应的逻辑页设置初始热度值,并记录设置初始热度值的时间;
S64:若非初次的数据写入,则根据以下公式计算所述数据对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,W为所述逻辑页的权重值,Hk为所述逻辑页第k次更新的热度值,Tdiff为所述逻辑页更新的时间间隔,Hmax为最大热度值,tk为所述逻辑页第k次更新的时间,tk+1为所述逻辑页第k+1次更新的时间,p为预设的修正因子;
S65:将计算出的逻辑页的热度值Hk+1与预设的热度阈值Th进行比较;
S66:若逻辑页的热度值Hk+1大于或者等于热度阈值Th,则将数据存储到第一类型的闪存块。
在本实施例的步骤S34中,当步骤S33的比较结果为接收到的数据所对应的逻辑页的热度值大于或者等于热度阈值Th时,表示该逻辑页操作频繁,对应的有效页为热页,即相应的数据为热数据,此时将数据写入到第一类型的闪存块,第一类型的闪存块可以是年轻的闪存块。
S57:若逻辑页的热度值Hk+1小于热度阈值,则判断数据的类型是否为预设类型;
S68:若数据的类型为预设类型,则将数据存储到第三类型的闪存块,第三类型的闪存块的擦写次数小于第二类型的闪存块的擦写次数且大于第一类型的闪存块的擦写次数;
S69:若数据的类型不属于预设类型,则将数据存储到第二类型的闪存块;
S70:更新逻辑页的热度值,记录逻辑页的热度值的更新时间;
S71:接收对热度阈值Th的更改请求;
S72:响应更改请求,对热度阈值Th进行更改。
本实施例中的上述步骤,与本发明的磨损平衡方法的第一至第五实施例中相应的步骤对应相同,在此不再赘述。在其他实施例中,可以在计算出逻辑页的热度值之后,就对该逻辑页的热度值进行更新,并记录更新时间,无需完成冷热数据的分离。
本发明还提供了一种终端设备,如图6所示,终端设备100包括:处理器101、存储器102以及存储在存储器102中并可在处理器101上运行的计算机程序103。处理器101执行计算机程序103时实现上述SSD的磨损平衡方法的各实施例中的步骤。
示例性的,计算机程序103可以被分割成一个或多个单元/模块,所述一个或者多个单元/模块/子模块被存储在存储器102中,并由处理器101执行,以完成本发明。
终端设备100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备100可包括,但不仅限于,处理器101、存储器102。本领域技术人员可以理解,图6仅仅是终端设备100的示例,并不构成对终端设备100的限定,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备100还可以包括输入输出设备、网络接入设备、总线等。
处理器101可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以是终端100的内部存储单元,例如终端100的硬盘或内存。存储器102也可以是终端100的外部存储设备,例如终端100上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器102还可以既包括终端100的内部存储单元,也包括外部存储设备。存储器102用于存储计算机程序103以及终端100所需的其他程序和数据。存储器102还可以用于暂时地存储已经输出或者将要输出的数据。
本发明还提供了一种固态硬盘SSD,固态硬盘SSD存储有计算机程序,计算机程序被处理器执行时实现如SSD的磨损平衡方法任一实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固态硬盘的磨损平衡方法,其特征在于,包括以下步骤:
接收数据的写入指令;
根据以下公式计算所述数据对应的逻辑页的热度值Hk+1:
H
k+1
=W*H
k
+(1-W)*T
diff
其中,W为所述逻辑页的权重值,Hk为所述逻辑页第k次更新的热度值,Tdiff为所述逻辑页更新的时间间隔,Hmax为最大热度值,tk为所述逻辑页第k次更新的时间,tk+1为所述逻辑页第k+1次更新的时间,p为预设的修正因子;
将所述逻辑页的热度值Hk+1与预设的热度阈值进行比较;
若所述逻辑页的热度值Hk+1大于或者等于所述热度阈值,则将所述数据存储到第一类型的闪存块;
若所述逻辑页的热度值Hk+1小于所述热度阈值,则将所述数据存储到第二类型的闪存块,所述第一类型的闪存块的擦写次数少于所述第二类型的闪存块的擦写次数;
更新所述逻辑页的热度值,记录所述逻辑页的热度值的更新时间。
2.根据权利要求1所述的方法,其特征在于,所述若所述逻辑页的热度值Hk+1小于所述热度阈值,则将所述数据存储到第二类型的闪存块,包括:
若所述逻辑页的热度值Hk+1小于所述热度阈值,则判断所述数据的类型是否为预设类型;
若所述数据的类型为所述预设类型,则将所述数据存储到第三类型的闪存块,所述第三类型的闪存块的擦写次数小于所述第二类型的闪存块的擦写次数且大于所述第一类型的闪存块的擦写次数;
若所述数据的类型不属于所述预设类型,则将所述数据存储到第二类型的闪存块。
3.根据权利要求2所述的方法,其特征在于,所述预设类型包括根据用户偏好确定的类型。
4.根据权利要求1所述的方法,其特征在于,在接收数据的写入指令之后,计算数据对应的逻辑页的热度值Hk+1之前,所述方法还包括:
判断本次数据写入是否为初次的数据写入;
若非初次的数据写入,则计算所述数据对应的逻辑页的热度值Hk+1;
若为初次的数据写入,则为所述数据对应的逻辑页设置初始热度值,并记录设置初始热度值的时间。
5.根据权利要求4所述的方法,其特征在于,所述初始热度值为最大热度值Hmax的一半。
6.根据权利要求1所述的方法,其特征在于,若所述逻辑页的权重值非零,则取值0.5。
7.根据权利要求1所述的方法,其特征在于,所述修正因子P用于补偿系统误差。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收对所述热度阈值的更改请求;
响应所述更改请求,对所述热度阈值进行更改。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述方法的步骤。
10.一种固态硬盘,所述固态硬盘存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284171.1A CN112817880A (zh) | 2021-03-17 | 2021-03-17 | 一种固态硬盘及其磨损平衡方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284171.1A CN112817880A (zh) | 2021-03-17 | 2021-03-17 | 一种固态硬盘及其磨损平衡方法和终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817880A true CN112817880A (zh) | 2021-05-18 |
Family
ID=75863323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110284171.1A Pending CN112817880A (zh) | 2021-03-17 | 2021-03-17 | 一种固态硬盘及其磨损平衡方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817880A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157486A (zh) * | 2021-05-26 | 2021-07-23 | 中国科学院微电子研究所 | 一种存储器的纠错方法及装置 |
CN115793987A (zh) * | 2023-01-09 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种磨损均衡的方法、装置、电子设备和存储介质 |
CN115934007A (zh) * | 2023-03-15 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 分布式存储系统的数据存储方法、系统、设备及存储介质 |
CN116661683A (zh) * | 2023-05-10 | 2023-08-29 | 珠海妙存科技有限公司 | 一种闪存的磨损平衡管理方法、系统、设备及介质 |
CN117687570A (zh) * | 2023-11-17 | 2024-03-12 | 鸿秦(北京)科技有限公司 | 一种固态硬盘中读写服务自适应的方法 |
CN117873406A (zh) * | 2024-03-11 | 2024-04-12 | 武汉麓谷科技有限公司 | 一种控制zns固态硬盘的磨损均衡的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
US20140013032A1 (en) * | 2012-07-03 | 2014-01-09 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for controlling writing data in storage unit based on nand flash memory |
CN106406753A (zh) * | 2016-08-30 | 2017-02-15 | 深圳芯邦科技股份有限公司 | 一种数据存储方法及数据存储装置 |
-
2021
- 2021-03-17 CN CN202110284171.1A patent/CN112817880A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140013032A1 (en) * | 2012-07-03 | 2014-01-09 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for controlling writing data in storage unit based on nand flash memory |
CN102880556A (zh) * | 2012-09-12 | 2013-01-16 | 浙江大学 | 一种实现Nand Flash磨损均衡的方法及其系统 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
CN106406753A (zh) * | 2016-08-30 | 2017-02-15 | 深圳芯邦科技股份有限公司 | 一种数据存储方法及数据存储装置 |
Non-Patent Citations (1)
Title |
---|
王晋阳等: "基于逻辑页冷热分离的NAND闪存磨损均衡算法", 《计算机应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157486A (zh) * | 2021-05-26 | 2021-07-23 | 中国科学院微电子研究所 | 一种存储器的纠错方法及装置 |
CN115793987A (zh) * | 2023-01-09 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种磨损均衡的方法、装置、电子设备和存储介质 |
CN115934007A (zh) * | 2023-03-15 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 分布式存储系统的数据存储方法、系统、设备及存储介质 |
CN116661683A (zh) * | 2023-05-10 | 2023-08-29 | 珠海妙存科技有限公司 | 一种闪存的磨损平衡管理方法、系统、设备及介质 |
CN116661683B (zh) * | 2023-05-10 | 2024-02-23 | 珠海妙存科技有限公司 | 一种闪存的磨损平衡管理方法、系统、设备及介质 |
CN117687570A (zh) * | 2023-11-17 | 2024-03-12 | 鸿秦(北京)科技有限公司 | 一种固态硬盘中读写服务自适应的方法 |
CN117873406A (zh) * | 2024-03-11 | 2024-04-12 | 武汉麓谷科技有限公司 | 一种控制zns固态硬盘的磨损均衡的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817880A (zh) | 一种固态硬盘及其磨损平衡方法和终端设备 | |
KR101173721B1 (ko) | 멀티레벨 데이터 저장 셀용 관리 동작 | |
US10698762B2 (en) | Data reading method and storage controller | |
US8503257B2 (en) | Read disturb scorecard | |
US8732552B2 (en) | Block management method, memory controller and memory storage device thereof | |
US11693582B2 (en) | Automatic read calibration operations | |
CN105718385B (zh) | 数据存储装置及其操作方法与数据处理系统 | |
US10628082B2 (en) | Data reading method and storage controller | |
US20200201569A1 (en) | Data reading method, storage controller and storage device | |
KR20110128436A (ko) | 비휘발성 메모리 장치의 리드 레벨 추정 방법 및 이를 수행하는 메모리 컨트롤러, 및 기록매체 | |
CN114936169A (zh) | 存储器的磨损均衡方法和装置、存储器和电子设备 | |
US20210255950A1 (en) | Data arrangement method, memory storage device and memory control circuit unit | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
CN117672283A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |
|
RJ01 | Rejection of invention patent application after publication |