一种SSD中在线监测数据存储时间的方法技术

技术编号:23671808 阅读:53 留言:0更新日期:2020-04-04 17:27
本发明专利技术公开一种SSD中在线监测存储时间的方法,本方法考虑温度对NAND Flash数据保存的影响,在SSD使用过程中,不断扫描温度变化,将温度影响转化成实际的时间参数,从而更准确的计算数据在SSD中的存储时间,有效的降低温度变化产生的负面效果。本方法通过系统自带的定时器和系统时钟统计数据在SSD中的存储时间,无需增加额外的硬件装置或者浪费软件周期,在统计数据存储时间的同时,对长时间保存的数据进行搬移,减少数据在nand flash中发生位翻转从而导致读取时发生错误的可能,能有效提高数据的稳定性。

A method of online monitoring data storage time in SSD

【技术实现步骤摘要】
一种SSD中在线监测数据存储时间的方法
本专利技术涉及一种SSD中在线监测数据存储时间的方法,属于SSD测试

技术介绍
SSD应用越来越广泛,大有取代HDD的趋势。目前SSD大多使用NANDFlash作为存储介质,但是NANDFlash的不稳定性会直接导致SSD中保存数据丢失。数据在NANDFlash中保存越久越容易发生位翻转,读取时就越容易发生错误,从而导致数据丢失,这种情况随着NANDFlash工艺发展变得越来越糟糕。所以在SSD中记录数据在NANDFlash中的保存时间就变得非常有必要。另外,在SSD使用过程中,温度并不是恒定的,读写操作都会导致SSD温度上升。不幸的是NANDFlash的数据保存能力受温度影响较大,如何在温度变化过程中准确获取数据保存的时间非常重要。
技术实现思路
本专利技术要解决的技术问题是提供一种SSD中在线监测数据存储时间的方法,记录数据保存时间,对长时间保存的数据搬移出去,并且考虑温度带来的影响,从而提升数据的稳定性。为了解决所述技术问题,本专利技术采用的技术方案是:一种SSD中在线监测数据存储时间的方法,包括以下步骤:S01)、当SSD某个block的第一个page被写入数据时,把当前系统时钟写入到DDR中该block对应的写入时间位置;S02)、设定定时器1的触发间隔Tx,定时器1用于按照设定的触发间隔从block0至blockn依次检查block对应数据结构的写入状态,n为SSD中block的个数;S03)、定时器1被触发后,检查当前block的写入状态,如果是closeblock,则执行步骤S04,如果不是,则执行步骤S06:S04)、计算数据存储时间,数据储存时间等于系统时钟当前的计数值减去写入时间,判断数据存储时间是否大于阈值,如果大于则执行步骤S05,如果小于阈值则执行步骤S06;S05)、对保存的数据进行搬移,然后执行步骤S06;S06)、判断是否是最后一个block,如果是则从block0开始重新检测,如果否,则等待定时器1的下次触发,检测下一个block对应数据结构的写入状态,重复步骤S03至S06。进一步的,本方法计算数据存储时间时,考虑温度的影响,加入温度因素后计算数据存储时间的步骤为:S41)、设定定时器2的触发间隔Ty,定时器2用于按照设定的触发间隔获取SSD上温度传感器检测的温度值;S42)、定时器2被触发后,检测温度传感器,获取当前温度;S43)、计算新的系统时钟计数,Ticknew=Tickcurrent+Ty*AF,其中,Ticknew为考虑温度因素的系统时钟计数,Tickcurrent为当前系统时钟计数,Ty为定时器2的触发间隔,AF为当前温度相对于40℃的温度加速系数;S44)、将当前系统时钟计数更新为步骤S43计算得到的数值;S45)、等待定时器2的下次触发,重复步骤步骤S42至S45。进一步的,AF通过下面公式计算得到:其中,exp表示以自然常数e为底的指数函数,Ea为1.0~1.1eV,kB为玻尔兹曼常数,Tnow为当前开尔文温度,T40℃为40℃对应的开尔文温度。进一步的,SSD的温度范围为40℃~70℃。本专利技术的有益效果:本专利考虑温度对NANDFlash数据保存的影响,在SSD使用过程中,不断扫描温度变化,将温度影响转化成实际的时间参数,从而更准确的计算数据在SSD中的存储时间,有效的降低温度变化产生的负面效果。本方法通过系统自带的定时器和系统时钟统计数据在SSD中的存储时间,无需增加额外的硬件装置或者浪费软件周期,在统计数据存储时间的同时,对长时间保存的数据进行搬移,减少数据在nandflash中发生位翻转从而导致读取时发生错误的可能,能有效提高数据的稳定性。附图说明图1为定时器1触发后的流程图;图2为定时器2触发后的流程图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步的说明。实施例1SSD中每个block的信息都会被保存下来,一般保存在DDR中,我们称之为blockinformation数据结构(BlockInfo),其中会记录block的写入状态(BlockStatus)、写入时间(WriteTime)、读取次数(ReadCounts)等信息。在SSD中,都会存在系统时钟计数(Tick),并且会有多个软/硬件定时器(Timer)。本实施例所述方法是在SSD中利用系统时钟计数实现对NANDFlash中保存数据时间的记录,记录时间以block为单位,当某个block的第一个page被写入数据时,把当前系统时钟计数Tick写入到DDR中该block对应的WriteTime位置。SSD固件上电启动时启动定时器1,定时器1作用是定时从block0开始依次检查block对应BlockInfo的BlockStatus,设定时间间隔为Tx分钟,即每Tx分钟触发一次。定时器触发后,如果读取到的BlockStatus为closeblock(本方法针对closeblock设计,openblock不在本方案讨论范围内),则马上计算WriteTime和当前系统时钟计数Tickcurrent的差值(Tickcurrent-WriteTime),如果差值大于阈值,则通知固件进行数据搬移处理。因为NANDFlash保存数据受温度影响,所以上述过程需要加入温度(Temp)因素。SSD上都会有温度传感器可以实时获取当前温度状态,当SSD固件上电时启动定时器2,定时器2作用是定时获取温度传感器的数据,设定时间间隔为Ty分钟,即每隔Ty分钟触发一次。定时器触发后,从温度传感器获取当前温度值,然后根据当前温度计算实际时间间隔,公式为:Ticknew=Tickcurrent+Ty*AF;其中,Ticknew为考虑温度因素的系统时钟计数,Tickcurrent为当前系统时钟计数,Ty:定时器2的触发间隔,AF:当前温度AF为当前温度相对于40℃的温度加速系数,通过下列公式计算得到:其中,exp表示以自然常数e为底的指数函数,Ea为1.0~1.1eV,kB为玻尔兹曼常数,Tnow为当前开尔文温度,T40℃为40℃对应的开尔文温度。本实施例中,设定SSD的温度范围为40℃~70℃。计算完成之后将Tick更新为Ticknew,这样就保证了,计算WriteTime和Tick差值时把温度因素也加入其中,即计算数据存储时间时考虑了温度因素。如图1所示,定时器1被触发后执行检测的步骤为:步骤一:检测当前block的BlockStatus,如果是closeblock则执行步骤二,如果不是则针对下一个block设置定时器。步骤二:计算数据存储时间,即Tick(current)和WriteTime的本文档来自技高网...

【技术保护点】
1.一种SSD中在线监测数据存储时间的方法,其特征在于:包括以下步骤:/nS01)、当SSD某个block的第一个page被写入数据时,把当前系统时钟写入到DDR中该block对应的写入时间位置;/nS02)、设定定时器1的触发间隔T

【技术特征摘要】
1.一种SSD中在线监测数据存储时间的方法,其特征在于:包括以下步骤:
S01)、当SSD某个block的第一个page被写入数据时,把当前系统时钟写入到DDR中该block对应的写入时间位置;
S02)、设定定时器1的触发间隔Tx,定时器1用于按照设定的触发间隔从block0至blockn依次检查block对应数据结构的写入状态,n为SSD中block的个数;
S03)、定时器1被触发后,检查当前block的写入状态,如果是closeblock,则执行步骤S04,如果不是,则执行步骤S06:
S04)、计算数据存储时间,数据储存时间等于系统时钟当前的计数值减去写入时间,判断数据存储时间是否大于阈值,如果大于则执行步骤S05,如果小于阈值则执行步骤S06;
S05)、对保存的数据进行搬移,然后执行步骤S06;
S06)、判断是否是最后一个block,如果是则从block0开始重新检测,如果否,则等待定时器1的下次触发,检测下一个block对应数据结构的写入状态,重复步骤S03至S06。


2.根据权利要求1所述的SSD中在线监测数据存储时间的方法,其特征在于:计算数据存储时间时,考虑温度的影响,加入温度因素后...

【专利技术属性】
技术研发人员:刘凯曹成吴斌
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1