CN102279809A - 一种在固态硬盘中重定向写入及垃圾回收的方法 - Google Patents

一种在固态硬盘中重定向写入及垃圾回收的方法 Download PDF

Info

Publication number
CN102279809A
CN102279809A CN2011102287549A CN201110228754A CN102279809A CN 102279809 A CN102279809 A CN 102279809A CN 2011102287549 A CN2011102287549 A CN 2011102287549A CN 201110228754 A CN201110228754 A CN 201110228754A CN 102279809 A CN102279809 A CN 102279809A
Authority
CN
China
Prior art keywords
solid state
write
block
state hard
hard disc
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
Application number
CN2011102287549A
Other languages
English (en)
Inventor
郏惠忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2011102287549A priority Critical patent/CN102279809A/zh
Publication of CN102279809A publication Critical patent/CN102279809A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及计算机技术领域,为一种在固态硬盘中重定向写入及垃圾回收的方法,包括:计算得到优化触发点,并执行优化程序;将输入的数据存入缓存,对写入数据进行预处理与写入优化,执行写入;关键有效数据页记录从固态硬盘闪存芯片读取到缓冲区;重定向块地址表设置为空;计算重写率,如果超过阈值,就在该块上写入;将该块擦除,将缓存中的数据再次写入该块;重新计算该块的使用率,重新插入到使用率表中新的位置;在接到文件系统发出的特殊清楚指令后,将文件系统垃圾所在的块找出来,进行擦除;将擦除好的块地址放入重定向块地址表中。本发明对固态硬盘的数据写入进行优化,降低了重复写的过程,延长了整个固态硬盘的寿命。

Description

一种在固态硬盘中重定向写入及垃圾回收的方法
技术领域
本发明涉及计算机技术领域,尤其涉及基于固态硬盘的数据写入的方法。
背景技术
在传统的基于磁介质的的机械硬盘中,读写的机械操作速度成为了系统IOPS(Input/Output Operations Per Second,即每秒进行读写I/O操作的次数)的重大瓶颈。于是利用Flash(闪存)和DRAM的固态硬盘技术应运而生。固态硬盘具有速度快、能耗低、抗震动等优点。
传统磁盘的磁头可以针对每一个Byte(字节)的磁介质进行加磁或者消磁操作,所以传统磁盘的操作粒度是一个Byte。
Flash有着特殊的性质,如果要向某个Block(块)写入数据,必须先擦除(Erase)整个Block(块)为全1,然后才能向Block中写入新数据。即使仅仅为了修改一个页(page)或者一个字节(Byte)的信息也需要进行同样的操作。
为了使得改动后的Block中其他的数据不变,需要先将Block中的数据存入缓存中,然后根据需要改动缓存中的相应数据。然后将该Block进行Erase,然后再将缓存中的数据写入Block,完成整个数据的修改工作。
这种额外的Erase(擦除)操作大大增加了覆盖写的开销。
Flash的基础原理是采用浮动门场效应电路实现对电子的捕获,从而产生的充放电状态的不同来表示信息。随着FG(浮动门)充放电次数的增多(SLC,即Single Layer Cell单层单元为100,000次,MLC即Multi-Level Cell多层单元为10,000次),二氧化硅绝缘层的绝缘能力将遭到损耗,最后逐渐失去绝缘性,无法保证FG中保有足够的电荷。此时,这个Cell(单元)就被宣判为损坏。
当一个Page中的Cell损坏数量超过ECC码(纠错码)可以检验和纠错的范围,该Page就视为坏页。
因此,业界迫切需要一种在flash固态硬盘中增加page和cell使用寿命的方法。
发明内容
本发明就是为了解决上述问题,克服现有技术中cell和page易损坏的缺陷,提供一种在固态硬盘中重定向写入及垃圾回收的方法。本发明的技术方案如下:
一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,包括如下步骤:
601:在没有文件系统的存入指令时,根据主机时钟频率算法进行计算得到优化触发点,并执行优化程序;
602:在有文件系统的存入指令时,先将输入的数据存入缓存,然后对写入数据进行预处理与写入优化,再执行写入;
603:文件系统启动后,关键有效数据页记录从固态硬盘闪存芯片读取到缓冲区;
604:当固态硬盘中已经没有可用的自由空间时,重定向块地址表设置为空;
605:计算重写率,如果超过重写率的阈值,就在该块上进行写入;
606:将该块进行擦除,然后,再将缓存中的数据再次写入该块;
607:重新计算本块的使用率,并重新插入到使用率表中新的位置;
608:在接到文件系统发出的特殊清楚指令后,扫描整个固态硬盘,将那些文件系统垃圾所在的块找出来,进行擦除;
609:将擦除好的块地址放入重定向块地址表中,作为自由空间待用。
上述一种在固态硬盘中重定向写入及垃圾回收的方法,其中,还包含:重复执行该步骤601至609。
上述一种在固态硬盘中重定向写入及垃圾回收的方法,其中,所述重复执行是利用计算机的时钟周期作为触发的条件自动执行。
上述一种在固态硬盘中重定向写入及垃圾回收的方法,其中,所述重复执行是采用工具软件,用手动的方式执行。
上述一种在固态硬盘中重定向写入及垃圾回收的方法,其中,所述步骤606还包含将最佳可用块地址压栈。
本发明的有益效果是:对固态硬盘的数据写入进行优化,降低了重复写的过程,延长了整个固态硬盘的寿命。
附图说明
下面结合附图和具体实施方式来详细说明本发明:
图1是固态硬盘中Page,Block和Flash的逻辑关系示意图;
图2是固态硬盘的结构和控制器及缓存的示意图;
图3是固态硬盘中Flash的Cell的结构示意图;
图4是本发明缓存中的重定向表的数据结构示意图;
图5是数据存储时重定向获取当前可用LBA的逻辑图;
图6是本发明在固态硬盘中重定向写入及垃圾回收的方法流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
图1表示了固态硬盘Page,Block和Flash固态硬盘的逻辑关系示意图。在flash(闪存)固态硬盘初始化过程中,会按照硬盘的大小、按照比例划分出一块系统空间,用于存放重定向块地址表,其他空间作为数据区。
数据区由好多个块(block)101构成,每个块由多个页(page)102构成,不同大小的块(Block)拥有不同数量的Page。例如,一个Block可以由128个Page组成。每个Page有4314个比特的单元(CELL),其中4096个比特的cell为数据区103,218比特的cell为ECC码区104。
上述大小都会作为参数在本发明计算重定向块地址表的时候予以计算。
图2示意性的显示了固态硬盘的结构。固态硬盘(SSD,solid state disk)200是用固态电子存储芯片阵列制成的硬盘,由系统区201和数据区202两部分组成。本发明的数据区202为一至多个flash芯片,负责存储数据。系统区201负责读取、写入数据。控制单元201包含:中央处理器(CPU)203、与CPU203相连的控制器204、与控制器204缓冲区(Buffer)205,与Buffer205相连的IF206和MF207。
在固态硬盘控制器204中具有逻辑模块,保证硬盘中的系统区201和数据区202之间不会互相干扰和覆盖。
缓冲区(Buffer)205与固态硬盘控制器204相连。
中央处理器(CPU)203与控制器204相连。
缓冲区(Buffer)205是在固态硬盘的初始化过程中,留出的一部分空间,作为系统自留的缓冲数据区。该块区域在客户界面无法看到,可以在硬盘出现存满等临界点时,为系统的数据腾挪提供空间。该空间一般为系统硬盘容量的10%~20%。
系统区201中的数据只有固态硬盘控制器204能读取和写入,系统软件和应用软件都无法直接读写。
在本发明地其中一个实施例中,在固态硬盘的驱动程序中开放应用程序接口API来对系统数据进行操作。
本发明在固态硬盘控制器204中固化本发明的算法程序,执行本发明在固态硬盘中重定向写入及垃圾回收的方法。
图3是固态硬盘中Flash的Cell的结构示意图。页101和页103为未选中的页,其电压为5伏特(V)。页102为选中的页,其电压值为0伏特。在未选中的页101和103中,cell的状态为受压状态。
图4是本发明缓存中的重定向表的数据结构示意图;重定向表的数据结构为:no.,逻辑块地址LBA,FLASH地址和bolck地址。
图5是本发明数据存储时重定向获取当前可用LBA的逻辑图。在文件系统501(datablock)需要存储数据时,由自由空间寻找(Free Space Seeking)的算法逻辑502取得当前可用的LBA(Logic Block Address),并返回给固态硬盘控制器204执行。首个可用逻辑块地址503(First Available LBA)作为普通写入模块的写入块的参数。
图6为本发明在固态硬盘中重定向写入及垃圾回收的方法流程图。
601:在没有文件系统的存入指令时,根据主机时钟频率算法,控制器204中的本发明方法进行计算,得出优化触发点,并执行优化程序。使得固态硬盘具有更多的自由空间(FreeSpace)的Page可用。
602:在文件系统向SSD发送存入指令的时候,固态硬盘控制器先将输入存入缓存,然后对写入数据进行预处理与写入优化,再执行写入。
603:文件系统启动后,关键有效数据Page记录从固态硬盘flash芯片202读取到缓冲区205。
604:当固态硬盘中已经没有可用的自由空间(Free Space)时,重定向块地址表将为空。系统在此时会对硬盘进行一次扫描,计算出每个Block的使用率,并进行排序,并将排序结果放入数据块使用率表。
605:根据当前写入的数据同现有Block中未使用Page的数据进行运算,得出一个重写率。也就是在一次重写后,是否能够尽可能的写满整个Block。如果超过重写率的阈值,就在该Block上进行写入。重写过程是先将该Block中的所有数据都读入缓存,然后在缓存中进行写操作。
606:在写入执行完后,将该Block进行擦除Erase。然后,再将缓存中的数据再次写入该Block中。
607:在完成重写后,重新计算本Block的使用率,并重新插入到使用率表中新的位置。为了便于确定使用率的大小,本发明的方法在步骤606还包含了一个最佳可用的块地址栈。每次将最佳可用块地址压栈。在使用的时候,退栈就可以获得。
608:在接到文件系统发出的特殊清楚指令后,本发明的方法还扫描整个固态硬盘。将那些文件系统垃圾所在的Block找出来,并先行进行擦除(Erase)。
609:在擦除后,将清楚好的块地址放入重定向块地址表中,作为Free Space待用。
重复步骤601至609。利用计算机的时钟周期作为触发的条件,在一定周期后就自动执行一次。在适当的时候也可以采用工具软件,用手动的方式来进行清理。
通过对本发明的描述可见,本发明对固态硬盘的数据写入进行优化,降低了重复写的过程,延长了整个固态硬盘的寿命。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

Claims (5)

1.一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,包括如下步骤:
601:在没有文件系统的存入指令时,根据主机时钟频率算法进行计算得到优化触发点,并执行优化程序;
602:在有文件系统的存入指令时,先将输入的数据存入缓存,然后对写入数据进行预处理与写入优化,再执行写入;
603:文件系统启动后,关键有效数据页记录从固态硬盘闪存芯片读取到缓冲区;
604:当固态硬盘中已经没有可用的自由空间时,重定向块地址表设置为空;
605:计算重写率,如果超过重写率的阈值,就在该块上进行写入;
606:将该块进行擦除,然后,再将缓存中的数据再次写入该块;
607:重新计算本块的使用率,并重新插入到使用率表中新的位置;
608:在接到文件系统发出的特殊清楚指令后,扫描整个固态硬盘,将那些文件系统垃圾所在的块找出来,进行擦除;
609:将擦除好的块地址放入重定向块地址表中,作为自由空间待用。
2.根据权利要求1所述的一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,还包含:重复执行该步骤601至609。
3.根据权利要求2所述的一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,所述重复执行是利用计算机的时钟周期作为触发的条件自动执行。
4.根据权利要求2所述的一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,所述重复执行是采用工具软件,用手动的方式执行。
5.根据权利要求1所述的一种在固态硬盘中重定向写入及垃圾回收的方法,其特征在于,所述步骤606还包含将最佳可用块地址压栈。
CN2011102287549A 2011-08-10 2011-08-10 一种在固态硬盘中重定向写入及垃圾回收的方法 Pending CN102279809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102287549A CN102279809A (zh) 2011-08-10 2011-08-10 一种在固态硬盘中重定向写入及垃圾回收的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102287549A CN102279809A (zh) 2011-08-10 2011-08-10 一种在固态硬盘中重定向写入及垃圾回收的方法

Publications (1)

Publication Number Publication Date
CN102279809A true CN102279809A (zh) 2011-12-14

Family

ID=45105268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102287549A Pending CN102279809A (zh) 2011-08-10 2011-08-10 一种在固态硬盘中重定向写入及垃圾回收的方法

Country Status (1)

Country Link
CN (1) CN102279809A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591686A (zh) * 2011-12-30 2012-07-18 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法及固态硬盘
CN102646069A (zh) * 2012-02-23 2012-08-22 华中科技大学 一种延长固态盘使用寿命的方法
CN102981979A (zh) * 2012-11-15 2013-03-20 上海爱数软件有限公司 一种提高存储系统数据访问速度的方法
CN103365788A (zh) * 2013-08-06 2013-10-23 山东大学 实时闪存转换层使用的自适应局部垃圾回收方法
CN105701021A (zh) * 2014-12-10 2016-06-22 慧荣科技股份有限公司 数据储存装置及其数据写入方法
WO2017143972A1 (zh) * 2016-02-25 2017-08-31 中兴通讯股份有限公司 数据处理方法及装置
CN107301132A (zh) * 2017-06-09 2017-10-27 华中科技大学 一种闪存垃圾回收优化方法
CN113220212A (zh) * 2020-02-04 2021-08-06 阿里巴巴集团控股有限公司 存储节点的调度方法、装置、存储节点、设备及可读介质
CN115202590A (zh) * 2022-09-15 2022-10-18 中电云数智科技有限公司 一种对固态硬盘ssd重定向数据的处理方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591686A (zh) * 2011-12-30 2012-07-18 记忆科技(深圳)有限公司 基于固态硬盘的系统启动方法及固态硬盘
CN102646069A (zh) * 2012-02-23 2012-08-22 华中科技大学 一种延长固态盘使用寿命的方法
CN102646069B (zh) * 2012-02-23 2014-12-10 华中科技大学 一种延长固态盘使用寿命的方法
CN102981979B (zh) * 2012-11-15 2015-12-23 上海爱数软件有限公司 一种提高存储系统数据访问速度的方法
CN102981979A (zh) * 2012-11-15 2013-03-20 上海爱数软件有限公司 一种提高存储系统数据访问速度的方法
CN103365788B (zh) * 2013-08-06 2016-01-13 山东大学 实时闪存转换层使用的自适应局部垃圾回收方法
CN103365788A (zh) * 2013-08-06 2013-10-23 山东大学 实时闪存转换层使用的自适应局部垃圾回收方法
CN105701021A (zh) * 2014-12-10 2016-06-22 慧荣科技股份有限公司 数据储存装置及其数据写入方法
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
WO2017143972A1 (zh) * 2016-02-25 2017-08-31 中兴通讯股份有限公司 数据处理方法及装置
CN107301132A (zh) * 2017-06-09 2017-10-27 华中科技大学 一种闪存垃圾回收优化方法
CN113220212A (zh) * 2020-02-04 2021-08-06 阿里巴巴集团控股有限公司 存储节点的调度方法、装置、存储节点、设备及可读介质
CN115202590A (zh) * 2022-09-15 2022-10-18 中电云数智科技有限公司 一种对固态硬盘ssd重定向数据的处理方法及装置
CN115202590B (zh) * 2022-09-15 2022-12-16 中电云数智科技有限公司 一种对固态硬盘ssd重定向数据的处理方法及装置

Similar Documents

Publication Publication Date Title
CN102279809A (zh) 一种在固态硬盘中重定向写入及垃圾回收的方法
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
US20180260317A1 (en) Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same
US9158671B2 (en) Nonvolatile memory system with migration manager
US8819334B2 (en) Solid state drive data storage system and method
CN101382918B (zh) 一种基于数据交换区的NAND Flash闪存优化管理方法
US20120179859A1 (en) Nonvolatile memory apparatus performing ftl function and method for controlling the same
CN103577338A (zh) 一种回收垃圾数据的方法及存储设备
CN111158579B (zh) 固态硬盘及其数据存取的方法
CN104424103A (zh) 固态储存装置中高速缓存的管理方法
US20110219172A1 (en) Non-volatile memory access method and system, and non-volatile memory controller
US11775389B2 (en) Deferred error-correction parity calculations
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN102981969A (zh) 重复数据删除的方法及其固态硬盘
US10712970B2 (en) Flash memory controller and associated accessing method and electronic device
US20110093649A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
CN110895449A (zh) 用于在存储器系统中管理有效数据的装置和方法
CN105224238A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
JP2024503956A (ja) メモリデバイスのデフラグメンテーションのためのシステムおよび方法
CN100456263C (zh) 在税控收款机中使用闪存时处理坏块的方法
CN115543180A (zh) 一种固态硬盘的管理方法、装置及固态硬盘
US20120198125A1 (en) Methods and systems for performing efficient page reads in a non-volatile memory
CN103714008A (zh) 数据存储方法、存储器控制器与存储器存储装置
CN112860193A (zh) 整理指令处理方法、存储器控制电路单元与存储装置
CN103186470B (zh) 存储器储存装置及其存储器控制器与数据写入方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111214