一种计算机硬盘动态电源管理方法与流程

文档序号:16464831发布日期:2019-01-02 22:44阅读:488来源:国知局
一种计算机硬盘动态电源管理方法与流程

本发明涉及计算机硬盘管理方法领域,具体为一种计算机硬盘动态电源管理方法。



背景技术:

计算机硬盘是计算机的最主要的存储设备。硬盘(港台称之为硬碟,英文名:harddiskdrive简称hdd全名温彻斯特式硬盘)由一个或者多个铝制或者玻璃制的碟片组成。这些碟片外覆盖有铁磁性材料。

绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。早期的硬盘存储媒介是可替换的,不过今日典型的硬盘是固定的存储媒介,被封在硬盘里(除了一个过滤孔,用来平衡空气压力)。随着发展,可移动硬盘也出现了,而且越来越普及,种类也越来越多.大多数微机上安装的硬盘,由于都采用温切斯特技术而被称之为“温切斯特硬盘”,或简称“温盘”。

硬盘运行时需要电源供电,因此硬盘的电源需要控制装置控制电源是否给硬盘供电,因此硬盘的扫描与否、工作顺畅与否与电源都息息相关。而目前还没有完整的管理计算机硬盘电源的方法,计算机硬盘一直被电源供电会比较消耗电量,且电源长久开启会降低电源的使用寿命。



技术实现要素:

为了克服现有技术方案的不足,本发明提供一种计算机硬盘动态电源管理方法,硬盘状态转换接口和硬盘i/o信息接口,采用策略优化算法实现硬盘的动态电源管理,节省了电源的电量,提高了电源的使用寿命温度检测单元和电源控制器的配合避免了硬盘的烧毁或读取文件的卡顿,通过检测硬盘的温度反馈给控制器进而控制给硬盘供电的输出电源,从而降低了硬盘的发热量,延长了硬盘使用寿命,能有效的解决背景技术提出的问题。

本发明解决其技术问题所采用的技术方案是:

一种计算机硬盘动态电源管理方法,包括如下步骤:

s100、设置转换硬盘状态的接口,设计硬盘驱动程序的通信方式;

s200、设置硬盘i/o信息采集端口;

s300、读取硬盘的工作状态和负载状态;

s400、设计dpm算法,根据硬盘的当前状态,采用算法让设备转入适当的能耗和工作状态;

s500、设置温度检测单元,根据检测温度控制硬盘的电源供电状态。

进一步地,所述硬盘具有活路、空闲、待机和睡眠四种状态,且四种状态下的硬盘消耗电能不同,硬盘的工作状态按能耗从大到小的排列为:活路>空闲>待机>睡眠。

进一步地,通过硬盘驱动程序来实现对硬盘状态的转换方法如下:

linux内核使用系统调用ioctl函数对硬盘进行操作,ioctl函数将映射到另一个相关函数中,该函数根据命令类型调用相应的函数,从而实现硬盘状态的转换。

进一步地,所述硬盘采用控制装置控制其自身工作状态,硬盘的控制器包括命令寄存器和诊断寄存器。

进一步地,所述i/o信息采集端口是通过调用内涵函数来实现,计算出硬盘上的寄存器相对应的i/o端口地址。

进一步地,在i/o以特定顺序执行前,在操作之间设置四个内存屏障,以保护硬盘,四个内存屏障分别为:禁止对屏障前后的编译优化、保证读操作顺序执行、保证写操作顺序执行和保证读写操作顺序执行。

进一步地,所述i/o端口可由linux内核访问,访问硬盘上的i/o端口,可实现对硬盘状态的直接转换。

进一步地,所述dpm算法采用事件驱动与定时驱动相结合的方法,用变量x表示是否决策,当硬盘转入低能耗状态且没有请求到来时,视为无事件发生,当硬盘有新请求到来时,视为有事件发生。

进一步地,所述温度检测单元贴着硬盘表面且温度检测单元即时检测硬盘的温度,温度检测单元检测到温度后,通过信号处理器将信号处理后发送到电源控制器上,电源控制器根据接收的指令控制电源对硬盘的输出功率。

进一步地,温度检测单元检测到硬盘的温度超过正常温度时,电源控制器控制电源降低对硬盘的输出功率,硬盘温度超过70℃时,电源控制器控制电源停止对硬盘输出电能。

与现有技术相比,本发明的有益效果是:

(1)本发明设计了硬盘状态转换接口和硬盘i/o信息接口,提供了采集和转换态的方法,多样性提高了硬盘转换状态的效率,且采用策略优化算法实现硬盘的动态电源管理,避免了计算机不读取硬盘信息时硬盘耗费的不必要电能,节省了电源的电量,提高了电源的使用寿命。

(2)本发明的硬盘温度超过正常温度50℃时,电源控制器及时发出指令,警告用户并适当降低电源对硬盘的输出,以达到适当降温的目的,在硬盘温度超过70℃的危险温度时,电源控制器立即停止对硬盘供电,从而避免硬盘烧毁或读取文件的卡顿,通过检测硬盘的温度反馈给控制器进而控制给硬盘供电的输出电源,从而降低了硬盘的发热量,延长了硬盘使用寿命。

附图说明

图1为本发明的硬盘动态电源管理方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供了一种计算机硬盘动态电源管理方法,包括如下步骤:

s100、设置转换硬盘状态的接口,设计硬盘驱动程序的通信方式。所述硬盘具有活路、空闲、待机和睡眠四种状态,且四种状态下的硬盘消耗电能不同,硬盘的工作状态按能耗从大到小的排列为:活路>空闲>待机>睡眠。

硬盘的活路状态即硬盘中的文件正在读取、翻译,文件正在被电脑打开或运行的状态,此时硬盘耗能较大,且越大的文件一般耗能越多。硬盘的空闲状态即电脑打开了键盘,或打开了文件之后一段时间后,硬盘耗费一定的电量保持程序的存在,但硬盘中的文件处在非运行状态。待机即电源为硬盘供电,为硬盘中文件的打开做准备,此时耗电较小。而睡眠状态的硬盘内只有极少的微弱电流,因此此时耗电量最小。

通过硬盘驱动程序来实现对硬盘状态的转换方法如下:

linux内核使用系统调用ioctl函数对硬盘进行操作,ioctl函数将映射到另一个相关函数中,该函数根据命令类型调用相应的函数,从而实现硬盘状态的转换。所述硬盘采用控制装置控制其自身工作状态,硬盘的控制器包括命令寄存器和诊断寄存器。诊断寄存器能即时诊断硬盘的状态,命令寄存器根据检测诊断寄存器检测到的硬盘状态发出正确的执行命令,从而使电源输出一定的电流给硬盘,避免了电源电量的浪费。

s200、设置硬盘i/o信息采集端口,所述i/o信息采集端口是通过调用内涵函数来实现,计算出硬盘上的寄存器相对应的i/o端口地址。

在i/o以特定顺序执行前,在操作之间设置四个内存屏障,以保护硬盘,四个内存屏障分别为:禁止对屏障前后的编译优化、保证读操作顺序执行、保证写操作顺序执行和保证读写操作顺序执行。

所述i/o端口可由linux内核访问,访问硬盘上的i/o端口,可实现对硬盘状态的直接转换。

s300、读取硬盘的工作状态和负载状态,i/o请求的发出决定着硬盘的负载,先采集读写i/o的请求轨迹,然后在启动dpm模块,初始化拥有16个缓冲区的缓冲区组,每个缓冲区大小为128kb,当要处理读写i/o请求时,采集请求信息写入缓冲区。在dpm模块退出时,利用内核函数将缓冲区信息吸入硬盘。

s400、设计dpm算法,根据硬盘的当前状态,采用算法让设备转入适当的能耗和工作状态;

所述dpm算法采用事件驱动与定时驱动相结合的方法,用变量x表示是否决策,当硬盘转入低能耗状态且没有请求到来时,视为无事件发生,当硬盘有新请求到来时,视为有事件发生。无事件发生时,电源输出小,能耗小,新请求到达硬盘时,电源给硬盘的供电提高,从而保证硬盘的正常工作状态。

控制电源的输出,使电源的输出与硬盘的工作状态一一对应,且在硬盘长时间不工作时,电源自动关闭,节省电能。

s500、设置温度检测单元,根据检测温度控制硬盘的电源供电状态。所述温度检测单元贴着硬盘表面且温度检测单元即时检测硬盘的温度,温度检测单元检测到温度后,通过信号处理器将信号处理后发送到电源控制器上,电源控制器根据接收的指令控制电源对硬盘的输出功率。

温度检测单元检测到硬盘的温度超过正常温度时,电源控制器控制电源降低对硬盘的输出功率,硬盘温度超过70℃时,电源控制器控制电源停止对硬盘输出电能。

一般情况下,由于硬盘温度超过70℃时,不仅会影响硬盘内文件运行速度,且长久下来容易烧坏硬盘,影响电脑的读取、翻译速度,因此必须需要紧急救援方法避免硬盘烧毁。

温度检测单元和温度控制器的配合即可很好的根据硬盘的温度来调配电源的输出,在硬盘温度超过正常温度时,由于硬盘的正常温度为30-50℃,因此硬盘温度超过50℃时,电源控制器及时发出指令,警告用户并适当降低电源对硬盘的输出,以达到适当降温的目的。在硬盘温度超过70℃的危险温度时,电源控制器立即停止对硬盘供电,从而避免硬盘烧毁或读取文件的卡顿。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1