盘驱动系统
图1的框图显示本发明的盘驱动器所用电源管理中的不同元件。盘驱动器40一般是包含在例如计算机41那样的膝上计算机外壳内的硬盘驱动器。盘驱动器40包括一个或更多个盘,例如接至轴马达32并由它转动的盘34。数据头33连至传动器31,后者一般由转动式音圈马达(VCM)30所带动。轴马达32由轴驱动器1和轴控制电子线络5驱动。伺服控制电子线路6用于将头33定位于盘33的不同数据道上并连至VCM驱动电路2,后者向VCM 30供给电流。图1中还显示供传动器31用的碰撞挡块37及装载/卸载(L/UL)滑道38。如盘驱动器40是接触起/停(CSS)类型,其中当轴马达不转时头33停靠在盘34上,则VCM 30的电流将传动器移至碰撞挡块处,以便头33可在靠近盘内往(ID)的非数据停靠区内停靠。如盘驱动器是L/UL类型,则当轴马达停转时传动器31如此移动以使支撑头33的悬架骑上滑道38并将头33卸载而不与盘接触。CSS盘驱动器所用ID停靠区和L/UL盘所用滑道经常称为头停靠处。
数据头33读和写盘34上的用户数据,它一般是薄膜感应式(TFI)读/写头或带有磁阻(MR)读头的TFI写头。数据头33连至预放大器和写驱动电路3,数据记录通道4,和盘控制器电子线路7。数据记录通道4可为任何类型,如峰值检测器或部分应答最大似然(PRML),并包括诸如检测数据、编码和解码的功能。盘控制器7与微处理器9一起对读写数据进行处理,协调与计算机41的通信,管理缓冲存储器10,并指挥伺服控制电子线路6和轴控制电子线路5。
盘驱动器40还包括微处理器9和相关的存储器8,缓冲存储器10,接口模块11,及电源控制模块12。存储器8用于存放微处理器9所用码和数据。缓冲存储器10用于存放自计算机41传送至盘驱动器40的数据,并一般配置为高速缓存。接口模块11对来自计算机接口控制器13通过接口的信息的传送加以控制。集成驱动电子线路(IDE)接口和小计算机系统接口(SCSI)是最常用的接口类型。
图1中所示盘驱动器40的所有部件的操作都需要电源。电源控制模块12对盘驱动器40的电源管理进行控制,后者通过总线71自电源20接受功率。图1中未显示任何部件的电源连线,但每个部件都是或直接从总线71或通过其它部件接受功率。电源控制模块12可作为逻辑电路包含在控制器7内,及/或以微码形式存于存储器8内供微处理器9执行。自电源20至每个耗能部件的电源线可直接由模块12或微处理器9的输出量控制,或者也可向部件发出命令以便将它们断电、通电及/或在另一情况下改变其功率状态。
图1中显示了盘驱动器40的各部件之间的示意性连接,也可用其它安排得到同样功能。例如,存储器8可包含在微处理器9内,或与缓冲存储器10合并。此外,一般在盘驱动器内有不止一个微处理器,其中一个微处理器主要用于接口和驱动管理功能,而另一个用于伺服功能。在此种情况下,伺服控制电子线路6可包括一个单独的伺服微处理器。
计算机41包括接口控制器13,处理器14,存储器15,显示器16,键盘17,及/或其它输入装置,外设18,电源20,和控制电子线路19。接口控制器13处理与盘驱动器40的通信。电源20是供计算机41和盘驱动器40用的电源。在便携式应用场合中这一般是可充电电池,当然它也可为任何其它类型的电源,例如A/C电源。电源20通过总线70向计算机41中各部件供电及通过总线71向盘驱动器40供电。电源20也与控制电子线路19通信。例如,便携式计算机内的电池包含内部控制电子线路,后者监视电池状态,例如放电状态。盘驱动器电源管理
盘驱动器40并不按恒定值消耗能量。搜索(即向VCM送电流以便将头33移过盘34的数据道)所消耗的能量大于道跟随(即向VCM送间断的电流脉冲以便将头33保持在单一数据道上)所消耗的能量。此外,在写操作时由于向TFI头的线圈送入写电流,所以要消耗更多能量。这些盘驱动器存取导致两种工作功模:搜/读/写功模和空转功模。搜/读/写功模一般是一种估计,因它以对用户工作负载的假设为依据。空转功模是正常道跟随操作,这时不写或读数据,也不进行搜索。工作态一词系指盘驱动器的搜/读/写和空转功模两者。
两种普通节能模式称为闲置和备用。在闲置模内,传动器31停靠着(即移至碰撞挡块30处或卸载至滑道37上),同时伺服控制电子线路6和包括预放大器3和通道4在内的读/写电子线路都断电。因此闲置模实际上减少或停止送至VCM驱动电路2,伺服控制电子线路6,预放大器3和通道4的功率。在闲置节能模中,由于伺服和读/写操作都不进行,所以也可减少送至盘控制器7和微处理器9的功率。在备用模中,传动器31移至其停靠处同时轴马达32断电。备用节能模除和闲置模一样节省功率外,还额外地减少轴控制电子线路5和轴驱动电路1中的功率。在某些实施例中,缓存10也可在闲置和备用模中的一个或两个模式中断电。还可有更多的节能模式。例如,静寂模包括备用模的节能特征,同时几乎所有剩下的电子线路都断电,只留下一部分接口控制器11和其它需用以响应来自计算机接口控制器13的静寂恢复命令的线路通着电。
表1显示一个典型的2.5英寸盘驱动器处在两个工作模和两个节能模中时的功率值。自此表可清楚看出闲置和备用这两个节能模实际上能减少能耗。
表 1
2.5英寸盘驱动器的功率值
模 式 | 功率(W) |
恢复时间(秒)(TRec) |
恢复功率(W)(PRec) |
搜/读/写(工作) | 2.30 | | |
空转(工作) | 1.35 | | |
闲置(节能) | 0.80 | 0.04 | 2.30 |
备用(节能) | 0.26 | 1.37 | 3.00 |
表1也列举了两种节能模式的恢复时间(TRec)。这是盘驱动器从节能模式返回至工作态所需时间。还列举了平均恢复功率(PRec)。无能量损失时间(TBE)可从此信息中算出来。这是驱动器应停留在具体节能模式内的时间,以便自此模式恢复期间内所消耗的额外能量与在此模式内减少的能耗相平衡。假定正常工作模式是空转及恢复时间(TRec)只用于节能模式,则TBE可如下估算:
TBE=PRec(TRec/PIdle) (1)
表2列举了表1的例子中的无能量损失时间(TBE)
表2
本发明中实际用户工作负载用于确定哪一种节能模式最合适及何时进入该模式。因进入节能模式是由用户工作负载的需求所决定,而不是预先由用户选择一个固定时间。盘驱动器存取频率
为使能耗优化,重要的是知道对盘驱动器的存取类型和每一种类型的特性。对于给定的节能模式,一个存取定义为需要从节能模式恢复的一次操作。例如,如节能模式为闲置,其中盘34转动着但伺服控制电子线路6断电和VCM驱动电路2断电,但包含盘高速缓存的缓存10在工作,则需要移动传动器31以便读或写数据的一次盘驱动器存取被算作一次存取。命中高速缓存不算此节能模式的存取,一些其它接口命令如向计算机41查询状态也不算存取,由于它们不需要与盘34之间读或写数据。为简化设计,在计算存取数量时不需考虑命中高速缓存的影响。在这种情况下,任何通过接口接收的读或写命令都算作一次存取,即使全部数据都位于高速缓存内也是如此。这种假定可能会减少节约能量的量,但仍具有好的性能价格比,因为设计电源管理技术的复杂程度减少了。
最近的存取模型影响进入具体节能模式的决定,如进入备用模(将盘34停转)的决定。存取模型包含有关用于驱动它的软件过程的信息。存取模型的特征可用频率也即出现盘驱动器存取的速率表达,且可由存取历史确定频率分布。有可能确定什么时候观察到的存取频率不属于由最近存取历史得出的频率分布。这种确定是统计学地如下做出的:估计低存取频率不属于最近存取模型一部分的概率,进而标明存取模型及对它负责的相关的软件过程已经停止。在这种确定中有很多因素。本发明中可根据盘驱动器的性能动态地调整这些因素以提供适应性电源管理。
此外,可能从存取频率中检测到周期性存取,并在预料到周期性存取的起始和结尾时退出和进入节能模式。周期性存取的例子是字处理文件的定期存盘,例如,软件用户让字处理软件每隔5分钟自动将文件存盘。在周期性存取开始前一瞬间退出节能模式的能力使用户觉察不到响应延迟,因而改善性能。在周期性存取结束后立即进入节能模式的能力可用较短延迟进入节能模式,因而增加了节能量。
在最佳实施例中,假设盘存取模型分为两大类:均匀存取模型和不规则存取模型,定义为均匀存取模型的模型中存取频率的组合在统计学上有好的定义。例如,可以计算存取频率的平均值和标准偏差。如标准偏差为平均值的分数,则存取频率可以认为有好的定义。否则,存取模型被认为是不规则的,即不是很好地为平均值的标准偏差定义的。在均匀的情况下,如所观察的存取频率降低至小于平均值减去标准偏差的某些倍数,则认为存取模型已经结束。这等效于选择一个概率,即所观察的存取频率属于所观察的存取模型概率。也可将最小的观察的存取频率的一个分数用作存取模型结束的估价。所用的原理是使用最近存取频率表征存取模型,并从此中确定一个频率阈值。接着假设当存取频率越过此频率阈值时,存取模型非常可能已停止。存取密度的测量
存取频率用下法测量:选择一个时间窗口,计算该窗口内出现的存取次数,并将该数转换为频率。每个节能模式可选用不同时间窗口。时间窗口内出现的存取次数称为存取密度。
图2的流程图细化了存取密度的测量操作。在步403处检查计时器以判定窗口时间是否已消逝。该计时器可在硬件或软件中。如窗口尚未结束,则在步401处检查是否出现存取。如已出现存取,则在步402处将密度计数器增量。图2显示当所有时间窗口是最短窗口的倍数时所具有的性能。这种情况下,在步402处所有节能模式的密度都增量。密度计数器的复位并未显式地表示,它们是在当前窗口的密度值传送至其它存储器例如环形缓存之后及在将下一个窗口的存取累计之前复位的。当节能模式的时间窗口为最短时间窗口的倍数时,只在较长窗口结束时才将密度计数器复位。图2阐述轮询循环设计的性能。可以容易地由图2导出一个等效的基于中断的设计。
图2中所示过程是电源模块12(图1)功能的一部分并可在硬件和/或软件中实现。图3显示用于实现图2过程的合适的硬件配置。计时器201,计数器202和环形缓存203被认为控制器7的一部分。环形缓存203可由微处理器9访问。用于完成图2的过程的步骤(同样是图4-6的过程)的一套程序指令以微码形式存放于存储器8中,后者也可由微处理器9访问。密度计数器202从盘控制器7接收存取信号220。例如,当控制器7对通过接口11和接口控制器13的读请求作出响应时,或同时当控制器7向通道4传送读命令时,控制器7可产生信号220。每当有盘驱动器存取时即有一个存取信号220送至计数器202。计数器202将存取220计数。计数器201连续工作及在每个时间窗口的结尾输出信号221。计数器中的密度值作为信号222被输出,后者送至密度存储缓存203,此处所显示的是环形缓存。来自计时器201的窗口结尾信号221使环形缓存203将密度值222写至下一个存储器地址并将缓存写指针往前指。信号221接着将计数器202复位。微处理器9从环形缓冲203中读取密度值。微处理器9送出清零信号223和读取信号225以读取缓存203并接收代表密度值的输出信号224。微处理器9在执行存放于存储器8中的微码时使用密度值生成命令并将它发送给盘驱动器部件以便改变它们的功态,也即或进入或退出恰当的节能模式。
一般情况下,为给定节能模式选择的时间窗口应对该模式是合适的,并对盘驱动器将遇到的存取频率的范围有良好的响应。对应于合适频率值的周期接近于节能模式等待期和无能量损失时间。因此接近于无能量损失时间的时间窗口是合适的。还可通过测试盘驱动器性能或通过仿真进一步优化时间窗口值。在选择时间窗口时可考虑其它因素,如性能指标。对于表1中的盘驱动器例子,时间窗口的良好选用值对闲置模是400ms,对备用模式是1.6s。存取密度转换为存取频率
如上所描述那样获得的存取密度值是在特定的时间窗口内出现的存取次数。因此密度值可通过定标转换为频率值。由于密度为0并不等效于频率为0,因此可扩展频率的动态范围。当密度为0时,可由连续的密度为0的次数算出频率。一种此类转换式子为:freq=density*scale :density>0 (2)freq=scale/(number_zero_density+1) :density<=0(3)其中number_zero_density是连续的密度为0的时间窗口的数量。scale是用于将density转换为freq(频率)的换算系数。当存取频率下降低于1/time_windoW时,式2-3提供好的存取频率近似值。为便于处理,很自然地使用由换算系数定义的整数频率单位。也即,密度为1对应于频率为scale。选择换算系数时要便于计算并提供频率的所需动态范围。一般取scale为256这个数对16位处理是合适的,因为当密度为非零时乘法简化为位移操作,因而简化了换算操作。
下面图3是使用式2-3和400ms的时间窗口,即用于闲置模的时间窗口,所得密度转换为频率的例子。第一行列举每个时间窗口的起始时间。第二行列举每个窗口的存取密度值例子。第三行列举根据第二行中存取密度导出的存取频率。例如,在时间0.4s至0.8s之间出现了19次存取,在换算系数为256时这对应于频率为4864。在1.2s至2.0s之间没有存取,这给出2个零密度值。这些密度值转换为单频率值256/3=85。
表3
密度时间窗口举例
时间… 0 0.4 0.8 1.2 1.6 2.0 2.4 … |
密度… 1 19 20 0 0 25 21 … |
频率… 256 4864 5120 85 6400 5376 … |
希望将能量管理的计算减至最小以便在盘驱动器存取期间减少延迟。密度方法的优点是在发生盘驱动器存取时要求很少计算。当盘驱动器存取频繁时希望跳过密度测量或密度至频率的转换。这加快了响应时间,而这些期间的存取密度可设为一个代表频繁存取的固定值。当盘驱动器不太忙碌时即可更新这些期间的存取密度或频率值。例如,对于忙碌期间可指定密度为256,这在换算系数为256时对应于频率为65,536。
由于从密度中得到存取的准确时刻,上述密度至频率的转换提供了对存取频率的估值。然而,如果窗口的时间选得恰当,则在所关心的频率范围内该估值具有足够精度。还可应用其它用于测量或估算存取频率的技术,例如富里哀变换技术。频率阈值
在当前存取频率下降低于由存取历史确定的频率阈值时,微处理器9决定应进入节能模式。图4的流程图将进入节能模式的操作细化。在此流程图中,不同节能模式按递增的节能量从1排号到maxmode。tf〔mode〕一项系指该具体模式所用频率阈值。lf〔mode〕一项系指具体节能模式所用低频标志。该标志有助于控制频率阈值的计算。在步301处,lastmode设为1,这意味着所有节能模式都需检验。所有模式的频率阈值都清零(tf〔mode〕=0)及所有低频标志都清零(lf〔mode〕=0)。
接着在步302处,该过程等待最短窗口时间消逝,其细节在图2中显示并描述。此外,在图4中假设使用着不止一个窗口时间(例如每个节能模式各有一个独特的时间窗口),长的窗口时间为最短窗口时间的整倍数。一旦窗口时间消逝及测量了存取密度,即到达步303。在步303处,待测试的节能模式设为maxmode,即节能量最大的模式。在步304处,该过程测试以便判定当前时间是否为正被测试的模式所用窗口时间。如不是,则进入步308。
在步308处,如当前模式是lastmode,则进入步302并为下一个时间窗口测量密度。在此处早已确定,这不是检查任何正在工作的节能模式的时候。在步308处,如当前模式不是lastmode,则进入步309并选择下一个较低模式(mode-1)(按节能量递减的顺序)。再次进入步304。注意到当lastmode=1时步304的测试总是真,因为这是退出步302时的相同条件。如步304处的测试为真,则有一个供mode用的新密度值,并进入步305。在步305处,使用式2-3中的转换式将步302中测量的存取密度转换为频率freq。
在步306处,在步305中计算出的存取频率与此模式的频率阈值tf〔mode〕进行比较。如存取频率大于频率阈值,则进入步307。在步307处,获得当前模式的频率阈值tf〔mode〕。决定于不同条件,频率阈值可能变也可能不变(将结合图5描述频率阈值的调整细节)。接着进入步308,流程按上面描述那样进行。在步306处,如存取频率小于或等于频率阈值,则进入步310并进入此节能模式。这意味着微处理器9将发信号至有关的盘驱动器部件以便减小功率。如当前模式为maxmode,由于已再无进一步的节能模式可用,步311即中断流程而进入步313。如仍有节能模式可用,则进入步312。在步312处,lastmode更新为mode+1,这反映出已不再考虑等于或小于已进入的模式的所有模式。再次进入步302。
步304处对节能模式的测试是按从最大节能量至最小节能量的顺序进行的,以便最大限度地节能。其结果是在步310处盘驱动器进入最有利的节能模式。因此可能跳过中间节能模式。例如,使用本发明后处于空转模内的盘驱动器可进入备用模而不必先进入闲置模。如进入了最大模式以外的特定节能模,则盘驱动器将在此模式内运行,直至适合于进入更大模式或直至退出该模式。
图5的流程图显示用于计算和调整节能模式的频率阈值的最佳实施例的细节。最近的存取频率存放于可由微处理器9访问的环形缓存中(未示出)。每个节能模式可有不同缓存。环形缓存是一组寄存器(或一组存储器地址),每个频率测量值可装入其中。环形缓存所能保存的频率值数量等于该组中寄存器(或存储器地址)的数量。一旦这个数量的频率值装入后,再装入更多的频率值将会丢失最旧的值。其效果是提供最近存取历史的活动画面。
在步501处,进行测试以判定此节能模式的环形缓存中是否有足够的数值可供计算频率阈值用。频率值的最小数量一般是2。更多数量保证更大的统计学精度,但这些值必须在计算频率阈值前收集到。如环形缓存中的数值的量不够,则进入步503。步503检测当前频率freq是否大于scale/2,其中scale已在式2-3中定义。如此检测结果为真,则进入步504并将当前频率值推入环形缓存。如结果为假,则环形缓存中最近的频率值应该修改,因为具有零密度的连续时间窗口数量仍在增加,这在步509完成。注意到这不是推入操作,因此它不改变环形缓存中数值的计数。从步504和509两者都可进入步510,并将过程返回步501。
在步501处,如环形缓存中数值的量足够,则进入步502。在步502处,当前存取频率freq与使用的频率阈值freq_act进行比较。此值用于加快处理并提供安全阈值,。freq_act的典型初始值为scale/2。如步502的测试结果为真,则盘驱动器的存取频率大于使用的阈值,因此不必进一步计算频率阈值。进入步505并将低频标志lf〔mode〕清零。再进入步503及过程如上所描述地前进。
如步502的测试为假,则存取频率低于使用的阈值,则要求进一步处理。在步505处测试低频标志lf〔mode〕。如它已设置。则再进入步503并保持当前低频阈值。其假设是一旦设置了低频标志,即测试存取模型是否终结。因此,当前频率不认为是此模型的一部分,因此不应该用它改变频率阈值。然而,由于当存取频率增加至超出使用的阈值freq_act时可能会清除低频标志,因此该频率仍放入环形缓存。在这种情况下,认为存取模型已经终结的假设就不正确。因此测试期间出现的频率现考虑为存取模型的一部分。如在步506处发现低频标志已清除,则进入步507,因为需计算一个新的频率阈值。这个计算在步507处进行。在步508处,设置低频模式标志并重新进入步503 。
图5中所示过程使用最新的存取的历史以便为每个节能模式计算频率阈值。只当存取频率低于使用中的阈值时才完成计算。这样做的优点是只当盘驱动器不工作时才完成频率阈值的计算,因而减少对性能的不良影响。
在步507处,在与节能模式相关的环形缓存内根据存取历史为该模式计算频率阈值。可在环形缓存内计算平均值和标准偏差,然而它们都要求复杂计算。但对于均匀存取模型讲,可用下式从环形缓存中的最大和最小频率maxf和minf近似地计算出平均频率meanf:
meanf=(maxf+minf)/2 (4)对均匀存取模型讲这是一个好的估值,因为假设其分布有良好特性。标准偏差sdevf可从频率范围中估算如下:
sdevf=(maxf-minf)/4 (5)因此不必真正地去计算平均值和标准偏差,及希望用较简单的式4和5代替真正的计算。对于不规则存取模型,最小频率的分数就已够用。下面式6-8显示步507中所用计算式。
t1[mode]=(maxf+minf)/2-g1[mode]*(maxf-minf) (6)
t2[mode]=minf/g2[mode] (7)
tf[mode]=max(t1,t2) (8)
t1〔mode〕值对应于均匀存取模型,而t2〔mode〕值对应于不规则存取模型。这两个值中的较大者用作给定模式的频率阈值。
有两个放大系数:g1〔mode〕和g2〔mode〕,分别用于均匀的和不规则的存取模型。每个模式的放大系数可以不同。对于表1的盘驱动器讲,g1=1和g2=4的值对闲置模和备用模两者都适用。从式6-7可看出,增加放大系数值的效果是减小频率阈值及减少放大系数值的效果是增加频率阈值。因此,可通过这些放大系数的选择和调整来调整节能模式的进入特性。用户可通过合适的系统或应用软件选择和调整放大系数。
每个节能模式可使用单独的环形缓存,同时可单独地选择各缓存的大小。增加缓存的大小将增加收集存取历史所取时间,而减少缓存的大小将减少该时间。能影响缓存大小的选择的因素还有准备限制历史长度以改善对最近事件的响应性能的愿望和准备限制所需存储器的数量的愿望。对于表1的盘驱动器,取缓存大小为16对两个模式都是合适的。可能有用于保持存取历史的更完善的方法。例如,环形缓存中的频率能有与缓存中时间长度相关的加权系数。可用存取频率直方图替代环形缓存并带有去除最旧数据的功能,例如重新规格化。然而环形缓存具有设计简便的优点。
环形缓存也可以如图3中所示配量为保存密度而不是频率。这种情况下,在计算频率阈值期间密度转换为频率。图6中显示使用密度缓存计算频率阈值的过程。该流程与图5中流程很相近,只有几个例外。步601对应于步501。有一个额外步603,其中使用式2-3将density转换为freq。步604、605和606分别对应于步502、505和506。有一个额外步607,其中使用式2-3将环形缓存中的每个密度值转换为频率值。注意到,由于连续的密度为0只转换为一个频率值,所以结果的频率值的数量可能比环形缓存中密度值的数量少。步608和609分别对应于步507和508。最后,步602将当前密度值推入所选节能模式所用的环形缓存。
这两个环形缓存配置都适合于计算频率阈值。频率缓存的优点是当存在低频率时历史的时间长度会增加。密度缓存的优点是具有固定历史长度并在盘存取活动期间计算开销减小,因为它将密度对频率的转换推迟,直至越过使用的频率阈值。
如上所述,一旦进入节能模式后,退出该模式的情况或是进入另一节能模式,或是回到驱动器的工作态。当所估算的存取频率不断下降并越过其它模式的频率阈值时会发生前一种情况。当出现盘驱动器存取时或当检测到周期性存取模型因而导致由驱动器启动进入工作态时,会发生后一种情况。当盘驱动器返回至工作态时,可能希望将环形缓存清零,因为假设正测量新的存取模型。这进一步约束了环形缓存上旧模型的影响。在有些配置中可能希望保留环形缓存的数据,或者只改变旧模型中数据的加权系数。
可使用其它因素调整放大系数,因而影响频率阈值的计算确定。例如,进入一个其中头无法立即读或写数据的节能模(例如备用模,其中盘将停转)的打算可用当前高速缓存命中率加权。高的高速缓存命中率可用于将放大系数减小因而将频率阈值向上调整。即使在越过频率阈值后立即出现存取,也很可能命中高速缓存。因此仍然减少了使用额外能量的概率。相似地,低的高速缓存命中率导致所希望的低频率阈值,因为随后与盘进行读或写存取的概率增加了。在这些情况下,可能希望有一个附加的节能模式用于控制送至高速缓存的电源(图1中的缓存10)。这允许高速缓存即使在备用模中也能工作。此模式所用放大系数同样地受到高速缓存命中率的影响。当高速缓存命中率高时,可能为了好的性能希望减小频率阈值,以便捕获更多高速缓存命中次数。也可能考虑高速缓存存取的特点,例如分别对待读和写,或使用存取的位域性。所有这些可用于调整放大系数及因而调整频率阈值。节能模式进入特性的可调整性
在上述设计中有不少可调整的参数。这些包括放大系数g1和g2,时间窗口尺寸,环形缓存的大小,密度至频率的换算系数scale,及使用的频率阈值。然而在最佳实施例中最适于调整节能模式进入特性的参数是式6和7中的放大系数。这些可调整参数可在制造盘驱动器时固定好,或者它们可由用户调整以适应特定用途,或者根据电源管理过去性能代价动态地调整。用户可调整性
如上所述,可以使用自计算机41通过接口控制器13(图1)送来的命令直接设置放大系数。然而,最好不让计算机41了解能量管理的内部细节。因此使用一个单独的称为性能系数pf的参数。它由来自计算机41的命令所控制而独立于盘驱动器中实现的具体能量管理设计。
盘驱动器中带有节能模式的能量管理一般涉及存取性能与节能之间的折衷。这是上面所讨论的节能模式的恢复等待时间的直接结果。非常希望有单个的加权性能系数用于反映能量与性能之间求得折衷的重要性。在一个极端,该系数应有助于得到最大节能量而不管性能如何。在另一极端,该系数应有助于改善性能而不管节能情况。这与常规盘驱动器电源管理技术完全不同,在常规技术中电源管理命令用于调整进入节能模式的固定时间。这些命令并不直接涉及性能或节能。此外,即使在同一固定时间设置下,不同驱动器也会产生不同的节能与性能间的相互影响,然而能量与性能系数的比例系数可以固定,以使所有驱动器类似的操作。在最佳实施例中,性能系数接口命令如下面表4中那样定义。
表4
性能系数命令
性能系数pf值 |
结 果 |
0…254 大节能量与最好性能间的线性比例系数 |
255 能量管理不工作 |
0的值对应于最大节能量及255的值对应于最好性能(无能量管理功能)。此由用户选择的性能系数命令也可使用在普通盘驱动器接口上可用的标准固定时间命令,如SCSI或IDE,来进行仿真。在IDE情况下,备用模时间值的范围为0(无节能模式)至255,其中大多数值的实际时间=5s*value,其时间范围从5秒至大约20分钟。在将此命令转换为性能系数时,0应是最好性能,及表4中的线性比例系数的范围应为1至255而不是0至254。
在最佳实施例中,来自性能系数命令的输入量可通过调整放大系数g1和g2转换为能量管理系统的特性。其结果是放大系数在两个代表能量极端和性能极端的限值之间变化。例如,对于式6的均匀存取类,g1对应于一个标准偏差sdev的估值的乘子。这对实际限值建议的范围为:0.5<g1<5。类似地,由于g2是最小频率minf的分数,对它同样也有限值:1<g2<10。从统计学来看,g1的低限值对应于下列事实的大约20%概率:频率阈值实际上是正态分布数据的分布的一部分。过低的低限值会导致不恰当地进入节能模式的高概率,并可能实际上增加能耗。g1的高限值对应于大约10-6概率,这大概比足够值还大些。g2限值的特性也类似,但它们在统计学上尚未很好定义。为更好地选择限值,希望考虑性能和能量特性的经验数据。此外,可能不需要达到表4的精度,因为很多设置值在实际中只是临界地可区分。下面式9和10显示于具有表1功率值的盘驱动器的表4的命令的性能系数pf转换式。
g1=(12+pf/4)/16 (9)
g2=(24+pf/2)/16 (10)此处限值大约为0.75<g1<4.75及1.5<g2<9.5。式9和10设计得容易用整数算术操作实现,因为除法可由移位操作代替。希望作为计算式6和7的最后一步按16这一系数进行换算。
其它参数,例如时间窗口尺寸,也可用性能系数进行调整。一般较大值能改善性能,但其代价是要多消耗能量。此外,可选择可用的节能模式的子集。例如,有一些节能模式可比其它模式对性能有较大影响,因此当性能指标成为重要因素时最好不用它们。上面描述的性能系数pf的优点是允许盘驱动器设计者决定调整哪一个参数以满足性能指标,而不需最终用户或系统组合者了解具体实施细节。根据性能代价的动态可调整性
是根据盘驱动器的存取频率而进入节能模式的。使用式6和7可获得满意的电源管理特性,其中在选择新值之前参数是固定的。一组所选参数(例如放大系数)的适合性可能决定于实际存取模型。如存取模型的变化影响节能模式进入特性,则必须选择新参数。然而,可根据存取模型的变化动态地调整参数。这可由适应性系统完成,它对如何满足性能指标进行测量,并动态地将放大系数作相应调整。
为达到动态适应性,要求测量实际特性,以便与所需特性相比较。当偏离性能指标的幅值和方向两者都能测量时,将能获得最佳性能。这些测量值可视为代价,并用于调整放大系数。为进行电源管理,可方便地定义两类代价:能量/响应代价(erp)和丢失机会代价(mop)。当盘驱动器使用过多能量或影响性能时,就出现前者。这意味着频率阈值tf设得太高。当盘驱动器应进入节能模式而未进入时就出现后者。这意味着频率阈值设得太低。由于这两类代价对频率阈值的决定具有相反效果,所以它们可用于平衡系统特性。
由于代价用于调整频率阈值式子中的参数,所以它们可用任何方便的单位计算。用时间单位计算代价的优点是计算简单。用频率单位计算代价的优点是具有来自按需求进行计算的可用的一些输入值。
图7的曲线用于阐述进入和退出节能模式的时序。在横轴上绘制时间,在纵轴上(任意单位)是功率。横轴上的每条短标线代表节能模式的一个时间窗口。标出了三个功率水平:搜/读/写功率P0,空转功率P1和模式功率P2,为清楚起见,盘驱动器存取都在功率水平P0上以短间隔表示。盘驱动器在功率水平P1上空转状态中开始工作。时间T0是存取出现时的时间窗口起始点。在稍后时间T1进入节能模式并一直持续至时间T2,这时出现下一个盘存取,于是盘回至工作态。另一个盘存取在T4起始的时间窗口内出现。在T5时进入节能模式并于T6时退出,这时又出现另一个盘存取。
节能模式的持续时间对性能代价是重要的。图8显示出在图3中早先描述和阐述过的硬件配置中加了一个计数器204。计数器204将进入模式点226与示如存取220的退出模式点之间的时间窗口221的数量进行计数。输出量227是模式持续时间,以时间窗口为单位。在退出模式后可用此输出量。此值可直接用作时间单位,也可用式2和3转换为频率单位。能量/响应代价
对于能量/响应代价erp,能量影响和响应时间影响两者都要测量。能量代价ep是当不恰当地进入节能模式时消耗掉多少额外能量的度量。响应时间代价rp是当不恰当地进入节能模式时对实际数据吞吐量有多大影响的度量。在例子图7中显示了两个进入模式的例子,一个是T1至T2和一个是T5至T6。在T5进入的模式可能会出现能量/响应代价,而在T1时进入的模式不会出现。这由图7中ERP标号所标明。
在节能模式中,对于能量代价有一个无能量损失时间TBE,其中在模式期间内节约的能量与恢复能量相平衡。以图7的第一个进入模式为参考,T0为上一个其存取密度>0的时间窗口,T1为本模式的进入时间,及T2为本模式的退出时间。T2-T1值是来自硬件中计数器204的模式持续时间。如T2-T1<TBE,则出现能量代价ep。能量代价ep作为T2-T1和TBE的函数计算出来。在最佳实施例中,如(T2-T1<TBE)则ep=16-16*(T2-T1)/TBE;否则 ep=0 (11)在式11中,能量代价ep的计算结果范围为线性地从当节能模式的持续时间基本上为零(进入模式后紧接着出现存取)时的16的值变至当超过无能量损失时间时的零值。也可有其它提供代价的不同加权系数的能量代价式子。然而,式11比较简单,并提供能量影响的好的估算。实际工作中式11中的参数值不必精确,同时计算可用整数算术操作完成。在整数算术操作中有16级代价水平,其精度是足够的。
可根据由恢复引起的附加等待时间rl计算节能模式的响应时间影响。这是对吞吐量(盘驱动器性能的度量)的影响的估算。因此吞吐量影响的上限可从性能系数导出。节能模式的吞吐量影响可测量为rl/(T2-T0)。因此有一个依赖于吞吐量上限tub的响应限值时间trl,其中trl=rl/tub。任何时候只要T2-T0<trl,即出现响应代价。T2-T0值可从频率阈值和模式持续时间T2-T1计算得到,由于
tf=scale/(T1-T0+1) (12)因此
T2-T0=T2-T1-1+scale/tf (13)响应代价rp作为T2-T0和trl的函数进行计算。在最佳实施例中,如(T2-T0<trl)则rp=16-16*(T2-T0)/trl;否则 rp=0; (14)
在式14中,响应代价rp的计算结果的范围为线性地从当节能模式的持续时间基本上为零时的16的值变至当超出响应限值时间时的零值。也可用提供了代价的不同加权系数的其它响应代价式子。然而式14相当简单,并能提供对吞吐量影响的好的估算。实际工作中式14中的参数值可用整数算术操作完成。在整数算术操作中有16级代价水平,从而提供足够精度。
能量代价ep与响应代价rp组合起来产生能量/响应代价erp。在最佳实施例中,两个代价中只有较大者用作能量/响应代价。这简化了计算,因只需计算带有较大时间限值
mtl=max(TBE,trl) (15)的代价。然而可能希望使用能量和响应两个代价来计算能量/响应代价,例如使用加权平均值。
能量和响应代价也可用频率单位进行计算。这种情况下,时间值TBE和trl根据式2和3换算为相应的频率值。得到无能量损失频率fbe和响应限值频率frl。使用式2和3将模式持续时间转换为频率值fmd。代价式子为如(fmd>feb)则ep=16-16*feb/fmd;否则 ep=0; (16)及如(1/fmd-1/tf>1/frl)则
rp=16-16*frl*tf*fmd/(tf-fmd);否则 rp=0; (17)此外,在最佳实施例中只使用两个代价中的较大者,因此只需计算具有较低频率限值mfl的代价mfl=min(fbe,frl) (18)当退出节能模式回到工作态时,计算能量和响应代价。如进入更深模式则不出现代价,因将会有与该模式相关的恢复代价。丢失机会代价
对于丢失机会代价mop,节能模式的使用与不出现能量和响应代价的理想特性相比较。当未使用节能模式时(类型1),或当进入模式的频率阈值太低时(类型2),将出现丢失机会。只当有可能利用时间间隔进入模式而不致引起能量或响应代价才考虑为两种类型的机会。图7中T3至T4间隔是类型1机会的例子(标为MOP1),而T0至T1及T4至T5的间隔是类型2机会的例子。T0至T1间隔可能导致类型2代价(标为MOP2),而T4至T5间隔不会。如能量/响应代价一样,丢失机会代价可用任何方便的单位计算,其中频率和时间最为方便。
丢失机会代价可用时间单位计算。对于节能模式,当错过一个间隔时即出现丢失机会。以图7为参考,T0,T1和T2值如在前段中定义那样。对于类型1机会,有关时间是T3和T4,其中T3是最近一个其存取密度大于零的时间窗口,及T4是当间隔内不进入任何节能模式时下一个盘存取的时间。T4-T3值代表间隔长度,可用下式从存取频率中算出:T4-T3=scale/freq-1 (19)其中freq是所测量的存取频率。当然,只需考虑大于无能量损失时间和响应限值的间隔。类型1丢失机会代价式子是mop1=(T4-T3)/mtl (20)如机会(T4-T3)用整数算术操作得出代价,则式20可能会得到为0的代价。代价的幅值决定于机会究竟比无能量损失时间和响应限值中较大的值大出多少。因此较大机会较大代价,而较小机会引起较小代价。
对于其中进入节能模式的类型2机会,T1-T0的值可利用下式从频率阈值算出:T1-T0=scale/tf-1 (21)只当可能有不带能量或响应代价的节能模式及只当频率阈值允许在进入模式之前消耗不希望有的能量时,才使用类型2代价。这通过式22完成:mop2=(T1-T0)/mtl (22)与类型1的情况相同,如机会引起能量或响应代价,则不会出现丢失机会代价。在类型1的情况下,这是绝对的限制。在类型2的情况下,这是近似值,因为是否引起能量代价或响应代价决定于类型2机会和模式持续进间这两项。然而,式22的优点是很容易实施。
丢失机会代价也可用频率单位计算。对于类型1机会,当所测量的频率freq降低小于频率代价低限值mfl时出现代价。在此情况下mop1=mfl/freq (23)是一个好的代价式子。对于类型2代价,其式为mop2=mfl/tf (24)使用频率单位计算代价的优点是当前频率freq和频率阈值tf都现成可用。然而,时间单位的优点是易于在硬件中用计数器实现,或当能量和响应代价使用时间单位时比较方便(满足一致性)。
显然,也可用其它代价式子。以上描述假设如发生能量或响应代价则不采用丢失机会代价。在有些情况下,也可能希望在这些例子中出现丢失机会代价。此时代价可能会有一个决定于能量或响应代价的幅值的附加加权系数。
当存在多个节能模式时,最好为每个模式确定一个代价值。当不同模式具有不同时间窗口时更希望如此,因为它们将对存取频谱的不同部分作出响应。对于给定的模式,在确定代价时可能会使用其它模式的进入特性,但这并不是必要的。例如,可在所有间隔内对所有模式检查代价,或也可只对最佳模式检查代价。此外,对每个节能模式保持多个代价是有利的。例如,式6-8代表均匀和不规则存取模型的情况。为这两类模型都保持一组代价的做法允许在这两种情况下具有独立的动态适应性。在完成此做法时要注意在给定间隔内哪一类模型正在工作,并为该具体类模型计算代价。代价历史
代价的时间历史用于在式6和7的频率阈值计算中调整参数,最好是调整放大系数g1和g2。在最佳实施例中,当个别代价出现时,它们都被加到相应的累计代价值上:cerp是累计的能量/响应代价及cmop是累计的丢失机会代价。当这些数值中的一个越过预定的起动水平时,频率阈值计算中的被选参数即相应地改变,同时减小累计值。当进入节能模式而未引起代价时,相应的累计代价值即减少一定量。这样做的效果是减弱过去时间上的代价,以使旧代价的影响比新代价小。此过程在图9中得到阐述。横轴标为模式间隔,其中每一个短标线对应于一个模式进入点(或一个机会)。纵轴是累计代价幅值cerp。在间隔0处出现一个代价,因而增加了累计代价值。在间隔1处无代价出现,因此累计代价值下降。此特征继续下去,当出现新代价时增大累计代价,而当不出现代价时累计代价按固定速率下降。在间隔7处新代价与累计代价之和已足以越过所示代价起动水平。在这点上改变式6和7中的放大系数并将累计代价值减至零。将累计代价清零的做法以下列假设为依据:参数的调整改变了特性,因此需要进行新的测量。其效果示于间隔8以后的时间间隔内,其中代价少了,而且代价值也比以前时间间隔内的代价值小。
在最佳实施例中,当出现能量/响应代价(ep和rp中的较大者)时,此代价值加到累计代价cerp上。
cerp=cerp+max(ep,rp) (25)该累计代价接着与预定起动水平erpt相比较,并改变频率阈值计算中的放大系数g1和g2。在最佳实施例中对均匀存取和不规则存取的代价分别追踪并将恰当的放大系数g1或g2增量。用于erpt的最佳值是16。如上所描述,放大系数有实际限值,这些限值用于限制放大系数的高限。
如无代价,则在每一次退出模式时将累计代价cerp减少一个预定量(cerd),直至减到低限为零。
cerp=cerp-cerd (26)其中cerd用作累计代价的衰减率。一般用于cerd的合适的值是2。更大的值将以更大速率减弱代价的效果,及较小的值将以较小速率去这样做。
丢失机会累计代价cmop以类似于能量/响应累计代价的方式进行计算。可以分别处理类型1和类型2代价(单独的累计代价),也可将同一累计代价用于它们,这样可简单些。当出现丢失机会代价时,合适的值(mop1或mop2)加到累计代价cmop上。在最佳实施例中,当累计代价超过起动水平mopt时,g1或g2中恰当的放大系数即被减量。用于mopt的最佳值是16。如上所描述,放大系数有实际限值,这些可用于限制放大系数的低限。如无代价,则cmop减少一个预定量cmod,直至减到低限为零。用于cmod的合适值仍然是2 。
当退出模式时计算能量/响应代价erp和类型2丢失机会代价mop2。此过程细节示于图10中。步350可由图4的步313进入,这时已进入最深模式。步352由图2的步401进入,这时出现一个存取同时驱动器处于节能模式中。当从步350进入时,步351等待存取。在步352处,用上面描述的方式获取模式持续时间。在步353处如上描述地计算能量代价ep和响应代价rp。步354检查是否有一个代价。如无代价,则进入步356。如有代价,则进入步355。在步355处将代价加到累计代价cerp上。在步358处将累计代价与代价起动水平erpt测试比较。如未超过起动水平,则进入步367,将控制返回至图4的步300。如超过起动水平,则在步359处修改恰当的放大系数。在步360处将累计代价设为零,并进入步367。在步356处由于没有代价,因此将累计代价值减小。在步357处使用式24计算类型2丢失机会代价。步361检查是否出现代价。如无代价,则在步362处将累计代价减小并进入步367。如有代价,则步363将代价加到累计代价上。步364检查累计代价是否超过起动水平。如未超过,则进入步367。如已超过,则在步365处修改恰当的放大系数并在步366处将累计代价设为零,同时进入367。
当存取频率下降低于频率代价限值时,计算类型1丢失机会代价mop1,参照图7,比较和计算是步307的一部分。图11显示其细节。从图4的步307进入图11的步325。在步326处,如式23中所示地计算代价值mop1。步327检测是否有代价。如无代价,则由步328回至步307。如出现代价,则步329将此代价加到累计代价cmop上。在步330处将累计代价与丢失机会起动水平mopt相比较。如未超过起动水平,则进入步328。如超过起动水平,则进入步311,将恰当的放大系数修改。在步332处将累计代价清零,并进入步328。
还可能在调整放大系数时不必显式地使用丢失机会代价。这种情况下可代之以能量/响应代价的出现频率。这种做法的假设是当出现几次能量/响应代价后出现最佳特性。出现率太低意味着系统并不节约足够能量。因此,如出现率降低小于一定水平,则可如出现丢失机会代价一样地修改放大系数。
当然,可以设计出其它方法将代价信息反馈入频率阈值计算中去,但所描述的实施例的优点是设计非常简单,而且对系统的实际特性能很好响应。其它设计包括保持代价统计学特性,例如直方图,并提供代价的时间加权,例如通过重新规格化。此外,可能希望调整其它参数,诸如代价起动水平,代价衰减率,代价幅值换算系数(如式14中所示)及放大系数的限值。这可或者通过来自计算机41的命令进行调整,或当越过累计代价起动水平时动态地进行调整。也希望如上所描述地根据性能/能量指标命令调整这些不同的参数。
可能还希望盘驱动器通知计算机它如何能很好地满足特定的能量/性能指标。例如,这类信息可在状态命令中传送。这将允许计算机修改能量/性能指标,或通知用户尚未满足指标。周期性存取
在周期性存取的情况下还可能改善能量的节约情况而不会影响性能。周期性存取十分普遍。例如,大多数文字处理应用程序具有“自动存储”特征,可以每隔由用户规定的固定间隔将当前文件存到盘驱动器上,例如每隔10分钟。如能检测到这类存取模型,则可更快进入节能模式,并在所预料的存取出现之前退出该模式。这样做的效果可不使用户觉察到节能模式恢复时间,并能比实际情况更早地进入模式,从而节约更多能量。存取频率法本身很自然地具有检测周期性存取的能力。在此情况下,很低存取频率(vlf)特性是有用的。可在考虑到目标频率范围的情况下从存取密度中测量vef工作特性。这将是比模式恢复时间更长的时间范围。为检测自动存储工作特性,其尺寸为几秒或更长的时间窗口是合适的。历史缓存保存vlf工作特性,例如最近3次出现的vlf。如在历史缓存中检测到模型。则进入周期性模式。一个非常简单的模型是最近3个vlf值互相之间处于公差范围内,如5%范围内。一旦进入周期性模式,则将放大系数减小以便更快地进入节能模式,因为假设没有性能代价。先前的值都保存下来,因为当退出周期性模式时它们需加以恢复。当所测量的vlf值处于所期望的vlf值的一定公差范围内时,盘驱动器回至工作态。此公差系根据vlf值的统计学可靠度而定,并包括节能模式恢复时间,以保证当出现vlf存取时盘驱动器已准备好。当此模型没有再现时即退出周期性模式。退出周期性模式的简单检测机理是:或早或晚不出现位于所预期的vlf值的一定公差范围内的存取。
放大系数和其它可调整参数可保存在非易失性存储器内,以便在盘驱动器断电时仍能保留其特性。这可通过下法完成:或使用类似闪烁RAM的半导体存储器,或将这些值写到盘上。例如,后一种方法可在进入节能模式之前完成。
本发明的最佳实施例已详细地阐述过,很清楚,可在不背离下面权利要求书中所描述的本发明的实质和范围的情况下对本发明进行修改和改进。