具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本发明实施例的计算机存储设备控制方法包括以下步骤:获取计算机存储设备中每个存储颗粒的历史访问信息(步骤S101);根据所述的历史访问信息预测所述存储颗粒未来时间段的访问概率(步骤S102);根据所述预测的访问概率对所述的存储颗粒进行行为模式切换(步骤S103)。
下面结合图2A、图2B和图3对本发明实施例进行具体说明如下:
如图2A所示,本发明实施例的计算机存储设备可为固态硬盘,该固态硬盘包括:控制器201、接口芯片202和存储颗粒组203,存储颗粒组203包括至少一个存储颗粒,如图2A所示,可以由存储颗粒01至存储颗粒20等二十个存储颗粒组成。其中,存储颗粒可以是FLASH颗粒或DRAM颗粒。
如图2B所示,接口芯片负责SATA与ATA的转换,实现主机与控制器间的通讯。控制器由FPGA来实现,负责主机命令的解析,FLASH芯片的读写控制与管理。采用FPGA作为控制器,可以方便的时间主机命令解析、FLASH管理控制、模式调度管理等本文提到的功能。
在大多数常规的应用场景中,主机对固态硬盘的数据请求地址是连续的。例如,文件下载、文件编辑、视频播放等应用中,在较长一段时间内,主机对固态硬盘的地址请求是连续的且在一定范围内的;对应到固态硬盘内部,则是对某些存储颗粒内部存储单元的连续访问;同时也意味着某些存储颗粒在较长时间内是不会被主机访问的。
通过控制器201对存储颗粒的工作状态进行统计,并预测其后续行为,以进行存储颗粒的行为模式调度调节。控制器201具有存储颗粒状态统计、行为预测与存储颗粒行为模式切换三种主要功能。现以存储颗粒组203中存储颗粒01至存储颗粒04为例说明存储颗粒的控制方法。
获取存储颗粒01至存储颗粒04在统计时间60秒内的访问信息,从所述存储颗粒的历史访问信息中获取所述存储颗粒在统计时间内的被访问次数,根据所述的被访问次数和统计时间获取所述存储颗粒的历史访问频率(如表1所示)。
表1
存储颗粒 | 读次数 | 写次数 | 访问频率(次/每秒) |
01 | 0 | 0 | 0 |
02 | 10 | 50 | 1 |
03 | 25 | 5 | 0.5 |
04 | 3 | 3 | 0.1 |
存储颗粒的被访问次数=读次数+写次数;访问频率=被访问次数/统计时间。所以从表1可知60秒内:
存储颗粒01的被访问次数=0+0=0,访问频率=0/60=0次/每秒;
存储颗粒02的被访问次数=10+50=60,访问频率=60/60=1次/每秒;
存储颗粒03的被访问次数=25+5=30,访问频率=30/60=0.5次/每秒;
存储颗粒04的被访问次数=3+3=6,访问频率=6/60=0.1次/每秒。
根据表1的获取访问频率的方法,获取存储颗粒01至存储颗粒04在统计时间5×60秒内的访问信息,根据该访问信息获取存储颗粒01至存储颗粒04在5个60秒内被访问的访问频率(如表2所示)。
表2
存储颗粒 | 0-60秒访问频率 | 60-120秒访问频率 | 120-180秒访问频率 | 180-240秒访问频率 | 240-300秒访问频率 |
01 | 0 | 0 | 0 | 0 | 0 |
02 | 0 | 0.2 | 0.4 | 0.6 | 0.8 |
03 | 0.8 | 0.6 | 0.4 | 0.2 | 0 |
04 | 0.8 | 0.2 | 0 | 0.4 | 0.2 |
如表2所示,将300秒时间分割为5断,分别统计每个时间段内存储颗粒的访问频率;由此得出了随时间变化的,存储颗粒被访问的频率的变化数据如下:
存储颗粒01,随着时间变化,其访问频率一直无变化;
存储颗粒02,随着时间变化,其访问频率一直在增加;
存储颗粒03,随着时间变化,其访问频率在降低;
存储颗粒04,随着时间变化,其访问频率较为波动,变化无规律。
对于统计时间内,访问频率有规律的存储颗粒,根据其规律预测未来时间段的访问概率。对于统计时间内,访问频率没有规律的存储颗粒,统计时间段内的平均访问频率,预测未来时间段的访问概率。
以表2的数据为例说明访问频率与访问概率的对应关系,设定3个访问概率值,即:1,0.5,0。其中,访问概率值1对应工作模式,访问概率值0.5对应待机模式,访问概率值0对应休眠模式。如表2所示,如果:
访问频率≥0.5,则:访问概率=1;
0.5>访问频率≥0.2,则:访问概率=0.5;
0.2>访问频率≥0,则:访问概率=0。
由于,存储颗粒01的访问频率始终为0,所以预测的访问概率为0,因此将存储颗粒01的工作模式设置在休眠模式。
存储颗粒02的访问规律为单调递增,且最近60秒内的访问频率为0.8,所以预测的访问概率为1,将其切换至工作模式。
存储颗粒03的访问规律为单调递减,且最近60秒内的访问频率为0,所以预测的访问概率为0,将其切换至休眠模式。
存储颗粒04的访问无规律,且平均访问频率为0.32,所以预测的访问概率为0.5,将其切换至待机模式。
如图3所示,对于热存储颗粒(如,存储颗粒02),可以将其长期保持在包括读/写的工作模式(CE:Chip Enable),这样主机再次下发访问请求时,存储颗粒可以实现快速响应;对于冷存储颗粒(如,存储颗粒04),可以将其切换至待机(standby)模式;对于较长时间内未被主机访问的存储颗粒(如,存储颗粒01),对其做包括掉电处理(PowerOff)的休眠模式。在主机的数据请求命中存储颗粒时,控制器201迅速将存储颗粒切换至读/写工作模式或上电,再响应主机命令。对于有规律的存储颗粒访问,在其访问时间间隔片内,可对存储颗粒做standby或下电处理;在下次访问即将到来时,将存储颗粒预先唤醒,切换至读/写工作模式或上电,以实现快速响应。
可见,通过对存储颗粒的命中状态进行统计,可以得到存储颗粒访问命中的频率Nc。当存储颗粒在较长时间内未被访问,控制器201对其做掉电处理。当存储颗粒频繁被主机访问,则将其置到CE状态,意味着此存储颗粒处于工作状态,主机命令下达后该存储颗粒可以立刻响应而无需等待。对于访问较少的存储颗粒,将其置于standby状态,在主机对其有访问操作时,或预测到其即将有访问命中时,再将其切换至工作模式。
本发明实施例通过存储颗粒状态统计和行为预测,不仅实现了有效节能的目标,同时具有针对不同应用场景自适应的节能策略调度功能。在不同的应用场景中,主机对固态硬盘的数据请求量和时间间隔有较大差异。控制器201通过统计,可以得到适用于当前应用场景的行为预测结果,从而实现应用场景的自适应,使计算机存储设备进行主动的、自适应的电源管理。本发明实施例不仅有效降低了存储设备自身的能源消耗,而且在一定程度上还延长了存储设备的使用寿命。
实施例二
如图4所示,本发明实施例的计算机存储设备控制器包括:
访问信息获取单元301,用于获取计算机存储设备中每个存储颗粒的历史访问信息;访问概率生成单元302,用于根据所述的历史访问信息预测所述存储颗粒未来时间段的访问概率;行为模式切换单元303,用于根据所述预测的访问概率对所述的存储颗粒进行行为模式切换。
下面结合图3和图5对本发明实施例进行具体说明如下:
如图5所示,本发明实施例的计算机存储设备控制器可为固态硬盘的FLASH颗粒控制器,该固态硬盘包括:控制器401、接口芯片402和FLASH芯片组403,FLASH芯片组403可以由FLASH芯片01至FLASH芯片20等二十个FLASH芯片组成。其中,一枚FLASH芯片包含一个或多个层(layer),每个layer一般由8192个块(block)构成,每个block包含若干个扇区(sector);最小的组织管理单位为sector。主机按照逻辑寻址(LBA:Logic BlockAddress)地址对固态硬盘进行数据读写请求时,固态硬盘内部的控制器401将LBA地址分解为FLASH芯片号、layer、block与sector按照一定的转换公式,实现LBA与FLASH芯片物理单元的一一对应。主机对某段LBA地址进行访问时,按照转换公式,将LBA地址换算为对应的FLASH颗粒、layer、block与sector;控制器401访问对应的FLASH芯片,其他FLASH芯片处于空闲状态。
在大多数常规的应用场景中,主机对固态硬盘的数据请求地址是连续的。例如,文件下载、文件编辑、视频播放等应用中,在较长一段时间内,主机对固态硬盘的地址请求是连续的且在一定范围内的;对应到固态硬盘内部,则是对某些FLASH颗粒内部存储单元的连续访问;同时也意味着某些FLASH颗粒在较长时间内是不会被主机访问的。
控制器401具有访问信息获取单元、访问概率生成单元与行为模式切换单元。
访问信息获取单元统计一段时间内,每枚FLASH芯片被访问的次数与访问时间及访问的读/写工作状态。按照近期被访问的频繁程度,将所有FLASH芯片划分为冷芯片与热芯片。热芯片有较高的访问频率,冷芯片则是相对访问较少,或一段时间内未被访问的芯片。
访问概率生成单元进行FLASH芯片的行为预测,根据FLASH芯片状态统计结果,预测未来一段时间内,FLASH芯片被访问的概率。对于热芯片,其未来一段时间内被再次访问的概率较高,冷芯片则概率较低。同时,对于较有规律的访问,例如按照固定时间间隔对FLASH芯片进行访问,预测其被主机命中的概率和时间。
行为模式切换单元进行FLASH芯片行为模式调度,是根据行为预测结果,根据FLASH芯片未来的行为,对其进行行为模式切换。对于热芯片,可以将其长期保持在读写状态,这样主机再次下发访问请求时,FLASH芯片可以实现快速响应;对于冷芯片,可以将其切换至standby模式;对于较长时间内未被主机访问的芯片,对其做掉电处理。在主机的数据请求命中FLASH芯片时,模式调度子模块迅速将芯片切换至工作模式或上电,再响应主机命令。对于某些有规律的芯片访问,在其访问时间间隔片内,可对芯片做standby或下电处理;在下次访问即将到来时,将芯片预先唤醒,切换至工作模式或上电,以实现快速响应。
如图3所示,对于热芯片,可以将其长期保持在包括读/写的工作模式(CE:Chip Enable),这样主机再次下发访问请求时,FLASH芯片可以实现快速响应;对于冷芯片,可以将其切换至待机(standby)模式;对于较长时间内未被主机访问的FLASH芯片,对其做包括掉电处理(PowerOff)的休眠模式。在主机的数据请求命中FLASH芯片时,控制器401迅速将FLASH芯片切换至读/写工作模式或上电,再响应主机命令。对于有规律的FLASH芯片访问,在其访问时间间隔片内,可对FLASH芯片做standby或下电处理;在下次访问即将到来时,将FLASH芯片预先唤醒,切换至读/写工作模式或上电,以实现快速响应。
可见,通过对FLASH芯片的命中状态进行统计,可以得到FLASH芯片访问命中的频率Nc。当FLASH芯片在较长时间内未被访问,控制器401对其做掉电处理。当FLASH芯片频繁被主机访问,则将其置到CE状态,意味着此FLASH芯片处于工作状态,主机命令下达后该FLASH芯片可以立刻响应而无需等待。对于访问较少的FLASH芯片,将其置于standby状态,在主机对其有访问操作时,或预测到其即将有访问命中时,再将其切换至工作模式。
本发明实施例通过FLASH芯片状态统计和行为预测,不仅实现了有效节能的目标,同时具有针对不同应用场景自适应的节能策略调度功能。在不同的应用场景中,主机对固态硬盘的数据请求量和时间间隔有较大差异。控制器201通过统计,可以得到适用于当前应用场景的行为预测结果,从而实现应用场景的自适应,使计算机存储设备进行主动的、自适应的电源管理。本发明实施例不仅有效降低了存储设备自身的能源消耗,而且在一定程度上还延长了存储设备的使用寿命。
实施例三
如图6所示,本发明实施例的存储设备包括:控制器501和固态硬盘存储颗粒的组502;其中,控制器501用于获取每个所述固态硬盘存储颗粒502的访问信息,根据所述的访问信息获取所述存储颗粒的访问概率,并根据所述的访问概率控制所述的存储颗粒进行行为模式切换。
下面结合图3和图7对本发明实施例进行具体说明如下:
如图7所示,本发明实施例的计算机存储设备可为固态硬盘,该固态硬盘包括:控制器601、接口芯片602和FLASH颗粒组603,FLASH颗粒组603可以由FLASH颗粒01至FLASH颗粒20等二十个FLASH颗粒组成。
通过控制器601对FLASH颗粒的工作状态进行统计,并预测其后续行为,以进行FLASH颗粒的行为模式调度调节。控制器601具有存储颗粒状态统计、行为预测与FLASH颗粒行为模式切换三种主要功能。其中:
FLASH颗粒状态统计包括:统计一段时间内,FLASH颗粒01至FLASH颗粒20中每枚FLASH颗粒被访问的次数与访问时间,或被访问的次数和访问时间和访问的读/写状态,并获取FLASH颗粒01至FLASH颗粒20中每个FLASH颗粒的历史访问频率。按照FLASH颗粒01至FLASH颗粒20的历史访问频率,将FLASH颗粒01至FLASH颗粒20划分为热FLASH颗粒与FLASH颗粒。热FLASH颗粒有较高的访问频率,冷FLASH颗粒则是相对访问较少,或一段时间内未被访问的FLASH颗粒。
FLASH颗粒的行为预测包括:根据上述的FLASH颗粒01至FLASH颗粒20的历史访问频率,预测未来一段时间内,FLASH颗粒的访问概率。对于热FLASH颗粒,其未来一段时间内被再次访问的概率较高,对于冷FLASH颗粒则其未来一段时间内被再次访问的概率较低。同时,对于有规律的访问,例如按照固定时间间隔对FLASH颗粒进行访问,则可预测该种FLASH颗粒被访问的概率和时间。
行为模式切换包括,是根据上述的行为预测结果,即:未来一段时间内FLASH颗粒被再次访问的概率,对FLASH颗粒进行行为模式的切换。
如图3所示,对于热FLASH颗粒,可以将其长期保持在包括读/写的工作模式(CE:Chip Enable),这样主机再次下发访问请求时,FLASH颗粒可以实现快速响应;对于冷FLASH颗粒,可以将其切换至待机(standby)模式;对于较长时间内未被主机访问的FLASH颗粒,对其做包括掉电处理(PowerOff)的休眠模式。在主机的数据请求命中存储颗粒时,控制器601迅速将FLASH颗粒切换至读/写工作模式或上电,再响应主机命令。对于有规律的FLASH颗粒访问,在其访问时间间隔片内,可对FLASH颗粒做standby或下电处理;在下次访问即将到来时,将FLASH颗粒预先唤醒,切换至读/写工作模式或上电,以实现快速响应。
可见,通过对FLASH颗粒的命中状态进行统计,可以得到FLASH颗粒访问命中的频率Nc。当FLASH颗粒在较长时间内未被访问,控制器601对其做掉电处理。当FLASH颗粒频繁被主机访问,则将其置到CE状态,意味着此FLASH颗粒处于工作状态,主机命令下达后该FLASH颗粒可以立刻响应而无需等待。对于访问较少的FLASH颗粒,将其置于standby状态,在主机对其有访问操作时,或预测到其即将有访问命中时,再将其切换至工作模式。
本发明实施例通过FLASH颗粒状态统计和行为预测,不仅实现了有效节能的目标,同时具有针对不同应用场景自适应的节能策略调度功能。在不同的应用场景中,主机对固态硬盘的数据请求量和时间间隔有较大差异。控制器601通过统计,可以得到适用于当前应用场景的行为预测结果,从而实现应用场景的自适应,使计算机存储设备进行主动的、自适应的电源管理。本发明实施例不仅有效降低了存储设备自身的能源消耗,而且在一定程度上还延长了存储设备的使用寿命。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。