高可靠性存储驱动器以及数据写入方法

文档序号:6580580阅读:366来源:国知局
专利名称:高可靠性存储驱动器以及数据写入方法
技术领域
本发明涉及诸如计算机的磁盘驱动器的存储驱动器,更准确地说,涉及即使在长的运行时间内也具有增强的润滑可靠性的存储驱动器及其数据写入方法。
为了提高最新的存储介质(例如,磁盘驱动器)的记录密度,磁头和磁盘之间的间隙(一般称为浮动高度)越短越好。如果浮动高度做得低,保持磁盘驱动器的润滑可靠性就成为重要的问题。
降低磁盘驱动器的润滑可靠性的主要原因是存储驱动器中磁头与磁盘之间的直接接触或经过沾染物或类似物质的非直接接触所造成的对磁头或磁盘的损坏。由于降低了浮动高度,在磁头飞行在磁盘上的时间变长时,损坏磁头或磁盘的可能性变大。
为了提高润滑可靠性,使用加载/卸载(下文中以L/UL的形式描述)机构。该机构在磁盘驱动器不访问磁盘进行读/写或类似操作时,通过将磁头缩回到磁盘表面以外(在磁盘的外周边以外)的区域来缩短磁头的飞行时间。在例如1999年3月IEEE Transactions on Magnetics,Vol.35,No.2,857至862页T.R.Albrecht et.al.的文献《磁盘驱动器的加载/卸载技术》和其它文献中详述了L/UL机械机构。日本专利JP-A-9-17099(IBM)也公开了响应多种指令而改变卸载时间的技术。
已经知道可以减少对磁盘的访问次数的读高速缓冲存储器功能。借助读高速缓存操作,将磁盘上具有高访问出现频率的数据临时存储在易失性存储器中,并且当上级设备(主机)发出读相同数据的读指令时,直接从易失性存储器中读出所述数据而不必访问磁盘。
与读高速缓冲存储器功能相似的功能是用以写入数据的写高速缓冲存储器功能。借助写高速缓存操作,把为响应主机发出的写指令而将被写的数据临时存储在易失性存储器中。在将数据写入到易失性存储器(高速缓冲存储器)后磁盘驱动器通知主机写入完成,并在后面的时间将数据写入低速磁盘。用这种方法提高了处理速度。更准确地说,借助写高速缓存操作,把响应从主机在时间上连续发出的多种写指令而将被写的数据临时存储在缓冲器中,并且在收到全部写指令后,将缓冲器中的所有数据顺序地写入磁盘。
在日本专利JP-A-7-44982中公开了同时采用缓冲存储器和非易失性存储器两者的写高速缓存操作技术。然而,该技术只适合于在电源故障时备份数据。
为了缩短磁头的飞行时间,希望L/UL机构在读/写操作后立即卸载磁头。
然而,L/UL机构在关于润滑可靠性方面有一些问题在加载或卸载磁头时磁头和磁盘之间的接触;当加载或卸载磁头时,当磁头悬挂的部分(称为接头)滑动在称为斜面的倾斜的表面时产生的磨损微粒;和类似的问题。在配备有L/IL机构的磁盘驱动器中,为了缩短磁头的飞行时间,希望在一个读/写操作后立即卸载磁头。然而,如果读/写操作的时间间隔短,加载卸载操作的次数会急剧增加而导致降低润滑可靠性。
为避免配备有L/UL机构的磁盘驱动器的加载/卸载操作次数的这种突然增加,一般磁头连续采用飞行状态并且在读/写操作后的一段预定时间内进入飞行状态、然后进入卸载状态。因此难以大大地缩短磁头的飞行时间。
借助于写高速缓存操作,当时间上连续发出写指令时,从一个写指令的执行的完成到执行下一个写指令的时间一般为毫秒数量级。在这一短时间内,不能进行卸载操作。因此,磁头连续地在磁盘上飞行直到完成所有的写指令。因此不能期望减少加载/卸载操作次数以及缩短飞行时间。
如果按照某种显著的时间间隔在时间上不连续地发出写指令,则尽管有某种时间差异,仍在每次发出写指令时将临时存储在缓冲器中的数据写在磁盘上。因此不能减少与写指令的数量相应的访问次数。在这种情况下,同样不能期望减少加载/卸载操作的次数和缩短飞行时间。
日本专利JP-A-7-44982描述的发明没有提供减少与写指令相应的访问次数,并且在润滑可靠性方面不是有效的。
如果磁盘驱动器配备有L/UL机构,可以降低电源消耗。然而,如果增加加载/卸载操作的数量,则降低电源消耗的效果变小。因此,如果这样的磁盘驱动器应用在笔记本式个人计算机(note PC)中,为了延长电池的寿命,减少加载/卸载操作的数量是必要的。
本发明通过减少响应由主机按照某种时间间隔在时间上不连续发出的写指令而访问磁盘的次数、从而缩短磁头飞行时间并减少加载/卸载操作的次数,提供了即使在长的运行时间内在润滑可靠性方面也极好的磁盘驱动器和写入控制方法。
按照本发明的一个方面,诸如磁盘驱动器的存储驱动器包括存储介质;磁头,用以从所述存储介质读出数据和向所述介质写入数据;存储器,用以临时存储对应于主机向存储驱动器发出的多个写指令的数据直到满足预定条件;以及控制器,用以在满足所述预定条件中的任何一个时作出响应而确定将存储在所述存储器中的数据传送到所述存储介质的时间,其中当接收到来自主机写指令时,将对应于所述写指令的数据临时存储在所述存储器中并检查磁头是否飞行在所述介质上,如果磁头飞行在所述介质上,则将对应于所述写指令的数据写入所述存储介质。
存储驱动器最好具有在不对存储介质进行写/读操作时从存储介质表面缩回磁头的加载/卸载功能。
许多最新的软件具有按照预定的时间间隔保存文件并通过按照预定的时间间隔从服务器或类似设备读出最后的数据来更新存储介质上的数据的功能。许多主计算机按照预定的时间间隔向存储驱动器发出写指令。因此,为了提高即使在长的运行时间内的存储驱动器的润滑可靠性,减少响应主机按照某种时间间隔在时间上不连续地发出的写指令而对存储介质的实际访问次数、从而缩短磁头的飞行时间是重要的。通过减少对存储介质的访问次数,可以减少配备有L/UL机构的存储驱动器的加载/卸载操作的次数,这非常有助于对润滑可靠性的改善。
按照本发明的另一方面,提供了一种用于磁盘的存储控制方法,所述磁盘包括磁盘介质;磁头,用以从所述磁盘介质读出数据和向所述磁盘介质写入数据;存储器,用以临时存储对应于输入的写指令的数据;以及控制器,用以控制所述磁头和所述存储器从/向所述磁盘介质读/写数据,所述存储控制方法包括以下步骤在所述控制器接收输入的写指令;响应每个接收到的输入的写指令,决定是将数据写入临时存储器或者写入磁盘介质;以及如果控制器决定将数据写入临时存储器,则使磁头保持在卸载状态。
从以下对本发明的实施例连同附图进行的描述中,将明白本发明的其它目的、特征和优点。


图1是显示本发明的磁盘驱动器的概要结构的示意图。
图2A和2B是图解说明传统的驱动器与按照本发明的实施例的驱动器在响应来自主机的写指令上的差别的示意图。
图3显示L/UL操作次数和磁头飞行时间的测量结果。
图4A和4B是图解说明现有技术的驱动器与按照本发明的实施例的驱动器在响应来自主机的读/写指令上的差别的示意图。
图5A是说明在收到写指令时磁盘驱动器的操作的流程图。
图5B是说明在收到读指令时磁盘驱动器的操作的流程图。
图5C是说明在收到结束指令时磁盘驱动器的操作的流程图。
图5D是说明磁盘驱动器在驱动器开始操作时的操作的流程图。
将参照附图详细描述本发明的各个实施例。
通过将磁盘驱动器作为例子来描述实施本发明的存储驱动器的结构。图1中示出磁盘驱动器10的概要结构。磁盘驱动器10包括存储介质1,2.5英寸型磁盘;用以从磁盘1读出数据和向磁盘1写入数据的磁头2;用以经过磁头2针对磁盘进行数据读/写的R/W(读/写)电路4;以及用以通过将从主机11接收的命令转发给R/W电路而控制针对磁盘1的读/写操作的控制器3。磁盘驱动器10还包括磁盘1的旋转机构,磁盘的运动(包括L/UL操作)机构,以及其它机构(均未示出)。
在磁头2飞行在磁盘1上、它们之间有转动磁盘1时产生的气流形成的小间隙的条件下,磁盘驱动器10执行数据读/写。为提高磁盘驱动器10的记录密度,磁头2和磁盘1之间的间隙(一般称为浮动高度)越短越好。因此将磁盘驱动器10的浮动高度设置为50毫微米或更低的非常低的值。
尽管图1中未示出,磁盘驱动器10包括,例如,两个磁盘和四个磁头,提供大约6.5GB(千兆字节)的记录容量。
磁盘驱动器10配备有加载/卸载(下文中以L/UL描述)机构,该机构用以当磁头2不为了读/写或类似的操作而访问磁盘1时,将磁头2从磁盘1的区域缩回。磁头2在磁盘1上飞行的状态称为加载状态,而磁头2处在磁盘1的外周边以外的区域的状态称为卸载状态。可根据需要来设置读/写操作后卸载磁头1所需要的时间(卸载转换时间)。然而,如果这一时间太短,就会增加L/UL操作的次数,相反如果这一时间太长,就会延长磁头2在磁盘1上飞行的时间。考虑到这一平衡,在没有对磁盘的访问后卸载磁头的时间最好设置为5到10秒。在本实施例中,如果在6秒的时段内没有对磁盘1的访问,则开始卸载操作。
控制器3控制这种L/UL操作,并且控制器3还控制卸载转换时间或诸如此类。或者在磁头1的操作终止时,或者在不从主机或诸如此类访问缓冲存储器6(稍后描述)时测量卸载转换时间。
磁盘驱动器10具有作为缓冲存储器6的、用来作读高速缓冲存储器或写高速缓冲存储器的512kB(千字节)的易失性存储器。该缓冲存储器6具有临时存储被频繁地读出的数据的读高速缓冲存储器功能。缓冲存储器6还具有在将响应来自主机11的写指令的数据写入非易失性存储器5之前、临时存储所述数据的写高速缓冲存储器功能,并且一度存入缓冲存储器6中的数据被重新存入所述非易失性存储器中。如以后将描述的,也可以不配备该缓中存储器6。
将磁盘驱动器10连接到主机11(上一级的设备如计算机),并由主机11发出的指令的控制。本实施例的磁盘驱动器10具有256kB的写指令临时存储非易失性存储器(以下简称为非易失性存储器)5,作为临时存储对应于来自主机11的写指令的数据的装置。利用所述临时存储非易失性存储器,即使在由于电源故障或类似原因而使电源被意外地断开时,也可以防止没有被写入磁盘1的数据的丢失。
在如上构成的磁盘驱动器10中,当控制器3从主机11接收写指令时,控制器3首先完成将对应于写指令的数据写入缓冲存储器6的操作。当确定数据被写入缓冲存储器6后,控制器3向主机11报告写指令的完成。其后,控制器3完成将存储在缓冲存储器6中的数据写入非易失性存储器5的操作。同样地,当主机11发出第二个和后来的写指令时,将对应的数据存储在非易失性存储器5中。
在上述重复的操作中,当满足至少一个预定的条件时,控制器3将所有存储在非易失性存储器5中的数据以成批的方式写入磁盘1。控制器3随后擦除存储在非易失性存储器5中的数据中已被写入磁盘1的非易失性存储器5中的数据。
参照图2B,如果没有使用缓冲存储器6并且当控制器3接收到从主机11发出的写指令时,则将数据写入非易失性存储器5。在写入数据后,控制器3向主机11报告写指令的完成。同样地,当主机11发出第二个和后来的写指令时,将对应的数据存储在非易失性存储器5中。
当将非易失性存储器5中的数据写入磁盘1时,将磁头2加载到磁盘1上以便写入数据。将数据写入磁盘1后,擦除临时存储在非易失性存储器中的数据以便为下一个写指令做准备。在一系列的这些操作中,假设控制器3在接收第n个(n是正整数)写指令时确定将非易失性存储器中的数据写入磁盘1,则磁头2对于从主机11发出的n个(n是正整数)写指令的飞行时间是从加载开始到卸载操作结束的时间。在该时间中,只进行一次L/UL操作。从飞行时间和减少L/UL操作次数的立场来说,希望增加n值,以便一次将尽可能多的对应于各写指令的数据写入磁盘1。
在磁盘驱动器10的实际操作中,从主机向磁盘驱动器发出的不仅有写指令,而且还发出读指令并且在执行该读指令时可以进行L/UL操作。由于发出指令的时间间隔的变化非常大,如果发出的写指令的时间间隔短的话,则即使假设只发出写指令,在一些情况下仍不进行L/UL操作直到发出下一个写指令。为了减少与从主机11发出的写指令的数量相应的L/UL操作的次数,判断将所有存储在非易失性存储器5中的数据顺序地写入磁盘的时间变得重要。
为缩短飞行时间并减少L/UL操作的次数,尽可能多地将对应于写指令的数据存储在非易失性存储器5中并以成批的方式写入磁盘1。将数据写入磁盘1的一个最好的时间是非易失性存储器5的剩余容量变得不足以临时存储对应于下一个写指令的数据的时间。
如果响应从主机11向磁盘驱动器10发出的读指令或类似指令而不是写指令、而将磁头2加载到磁盘1上,那么将数据写入磁盘1变得可能。在这种情况下,即使将数据写入磁盘1,也不会增加L/UL操作的总次数。此外,由于在数据写入完成后删除所有临时存储在非易失性存储器5中的数据,可以延期在下一批数据写入时的磁头的加载操作。
如果在磁头2处于加载状态的同时从主机11发出写指令,则控制器3可以直接将数据写入磁盘1而不用将其存储在缓冲存储器6或非易失性存储器5中。在这种情况下,同样不会增加L/UL操作的总次数。此外,由于不是将数据一度写入缓冲存储器6或非易失性存储器5中,而是直接写入磁盘1中,不会有害地影响顺序写入性能。
如上所述,即使增加了非易失性存储器5的容量,也未必能减少L-UL操作的次数。因此,要根据诸如必要的可靠性等级、使用条件、以及磁盘驱动器10的成本等各种各样的因素来确定非易失性存储器5的容量。
当磁盘驱动器10收到包含向等待状态或休眠状态的转换的中止指令时,希望将存储器6或5中的数据写入磁盘1,以便防止在中止过程后或在长时间的电源故障状态后的起动过程中罕见的数据丢失的可能性。
尽管期望接收到中止指令时将数据写入磁盘1,但是,如果由于电源故障或类似的原因使电源被意外地关掉,就没有将数据写入磁盘1。在这种情况下,在磁盘驱动器10下一次起动后,检查没有写入磁盘1的数据是否还存储在非易失性存储器5中。如果还存储着所述数据,则将所述数据写入磁盘1。
总之,对于磁盘驱动器10的实际的商业产品,如果满足下面四种条件的任何一种,则控制器11通过控制R/W电路4和凭借动臂机构/伺服机构(未示出)的磁头的L/UL操作,将由于从诸如上级设备的主机11发出的写指令而从缓中存储器6临时存入非易失性存储器5中的数据写入磁盘1。
(1)当非易失性存储器5的剩余写容量变得不足以存储数据时或当所述剩余写容量与总容量的比率达到预定的值(如,80%)或更低时。
(2)当磁头2响应从主机11向磁盘驱动器10发出的除写指令的指令以外而加载到磁盘1上并且向磁盘1写入数据成为可能时(当磁头2飞行在磁盘1上时)。
(3)当磁盘驱动器10从主机11接收到包含等待指令和休眠指令的中止指令时。
(4)在磁盘驱动器10起动工作时如果非易失性存储器5中保留有数据。
如果从主机11发出用以写入大于非易失性存储器5的剩余写容量的数据的写指令,则直接经过控制器3或缓冲存储器6将数据记录入磁盘1。利用这种加载操作,也将非易失性存储器5中的数据写入磁盘1,以便减少加载/卸载操作的总次数。
在磁盘驱动器10连接到主机11的情况下,处于卸载状态的磁头2不访问磁盘1以写入数据。仅仅按照足以执行L/UL操作的时间间隔(如,一分钟)从主机11发出一些单步写指令(如,用于一个扇区的写指令),除非非易失性存储器5的剩余写容量不足以存储数据或剩余写容量对总容量的比率采取预定的值或更小。因此,在按照预定的时间间隔内从主机发出写指令的大多数情况下,控制器11不执行磁头2的加载操作并将其保持在卸载状态。
尽管缩短飞行时间和减少L/UL操作次数的效果随从主机11发出指令的方案而变化,但是通过临时存储对应于在时间上不连续发出的写指令的数据以及通过以成批的方式在时间上连续地将数据写入磁盘1,可以保持而不会失去所述效果。可以明白,可以或者通过硬件或者通过软件来实现控制器11对R/W电路操作和L/UL操作的控制功能。
图2A和2B图解说明在实施例磁盘驱动器10与传统的磁盘驱动器之间加载/卸载操作次数的比较的例子,它们响应从主机11按照预定的时间间隔不连续发出的写指令。传统的磁盘驱动器未配备非易失性存储器5。在该对比例中,为简化描述,没有提供用以临时存储对应于写指令的数据的缓冲存储器和使用所述缓冲存储器的写高速缓存功能。
图2A和2B中示出的写指令时间间隔假设了借助主机软件的自动文件保存操作,所述主机软件提供足以进行L/UL操作的时间间隔(如,大约几十秒到几分钟)。按照这样的时间间隔,即使在执行一条写指令之后将磁头2加载,在接收到下一条写指令前也要执行卸载操作。
参考图2A,它说明在接收到从主机发出的第一条写指令201时传统的磁盘驱动器的响应,控制器向磁盘发出写指令202。如果磁头处于卸载状态,则响应写指令202而加载磁头2。在将磁头加载到磁盘上以后,在磁盘中开始数据的写入操作203。图2A中的方形符号表示磁盘中数据的写入操作203。当控制器在磁盘中的写入操作203完成后确认写入结束204时,它向主机返回写指令201的结束报告205以终止一系列的操作。由于距下一条写指令到来的时间足够地长,所以卸载磁头并且进入卸载状态。当从主机发出下一条写指令211时,重复上述的操作。例如,与本实施例的情况相似,从磁头结束对磁盘的访问时到卸载操作开始时的时间为6秒。
每当从主机按照预定的时间间隔内发出相同的写指令时,执行加载操作、写入数据,并且此后在一段预定的等待时间后卸载磁头。
在一系列这些操作中,磁头对于n个写指令的飞行时间为T×n,其中T是从加载开始到卸载结束的时间(T随写数据的数量而变化)。相应的L/UL操作的次数为n。这一L/UL次数对于配备有写高速缓存功能的磁盘驱动器也是相同的,尽管对主机的结束报告的时间和将数据写入磁盘的时间不同。
在实施例磁盘驱动器10中,在接收到从主机发出的第一个写指令251时,控制器3向非易失性存储器5发出写指令252以便执行把数据写入非易失性存储器5中的数据写入操作254。在控制器3确认非易失性存储器5中数据的写入结束255后,控制器3发出写指令251的结束报告256。当从主机发出下一个写指令261时,以与上述相同的方式将数据记录入非易失性存储器中(264)。
在重复以上操作时,如果满足上述四种条件中的任何一种,即,当接收到图2B中所示的第n个写指令271时,控制器3向非易失性存储器5发出批写入指令273以便将存储在非易失性存储器5中的数据写入磁盘1。
响应所述批写入指令273,将磁头2加载到磁盘1上。在磁头2加载到磁盘1上之后,以成批的方式开始关于存储在非易失性存储器5中的数据的写入操作274。在批写入操作274后,控制器3接收写入结束275,向主机11发出结束报告276,并且擦除存储在非易失性存储器5中的数据。响应写指令272而将被写入磁盘1中的数据数量与对应于一条写指令的数据数量不同。因此,写入操作274需要的时间变得比传统情况下需要的时间长。因此,写入结束275和结束报告276比传统的情况下的更加推迟。然而,如果提供使用缓冲存储器5的写高速缓存功能并且返回写入结束275和结束报告276,则可将结束报告276的推延设置为与传统情况下相似的等级。因此,从提高磁盘驱动器10的处理速度的观点出发,最好是既提供非易失性存储器5又提供缓冲存储器6。
在向非易失性存储器5发出写指令272后,控制器3可以发出对于磁盘1的写指令273,并且其后将存储在非易失性存储器5中的数据与对应于写指令272的数据一起以成批的方式写入磁盘1。为了清楚地表明这一点,图中以从非易失性存储器5中伸出的形式画出写指令273。然而,如果控制器3在发出写指令272前收到已满足所述四个条件中的任一个条件的信息,那么控制器3不发出写指令272而是发出写指令273,以便将存储在非易失性存储器5中的数据写入磁盘1并且将对应于从主机11发出的写指令271的数据写入磁盘1而不必将其存储在非易失性存储器5中。
本实施例的磁盘驱动器10以上述方式将数据写入磁盘1。因此,相对于按照预定的时间间隔从主机11在时间上不连续发出的写指令,可以将磁头1的L/UL操作次数减少到原来的1/n并且缩短磁头1的飞行时间。因此可以有效地防止在相反的情况下可能由磁头长期间飞行或L/UL操作造成的润滑可靠性的降低。由于不执行不必要的L/UL操作,可以减少磁盘驱动器的电源消耗。
在图2A和2B中,为描述简便起见,按照预定的时间间隔发出一些单步写指令。即使在预定的时间间隔发出一些多个时间连续写指令组,操作也与以上描述的那些大致相同。即,假设写指令的数量对应于多个时间连续写指令组的组数量,磁盘驱动器的响应也与以上描述的大致相同。
在本发明中,主机11发出指令的时间间隔是重要的因素。如果控制器3从主机11接收指令、而在第一条指令被完全处理前发出了下一条指令,那么就出现接收和执行下一条指令的等待状态。在本实施例中,这样的指令称为时间连续指令。另一方面,如果控制器3从主机11接收指令并且在足以处理第一条指令的时间过去之后才发出下一条指令,那么这样的指令称为时间不连续指令。
在传统的情况下,当指令是时间不连续的、但是某些指令的时间间隔小于卸载转换时间时,从主机11发出的时间不连续指令的L/UL操作的次数可能小于n。
在本实施例中,当发出对于临时存储在非易失性存储器5中的数据的读指令时,可以直接从非易失性存储器5中读出数据。在这种情况下,非易失性存储器提供伪读高速缓存功能,使得可以提高处理速度。非易失性存储器5只在数据被写入磁盘1前存储数据而且非易失性存储器的读速度通常比一般作为读高速缓存的易失性存储器的慢。因此,最好使用易失性存储器的缓冲存储器6并提供用以临时存储从磁盘1读出的数据的读高速缓存功能。
如前所描述的,借助读高速缓存操作,将磁盘1中具有高访问频率的数据临时存储在缓冲存储器6中,并且当发出对相同数据的读指令时,直接从缓冲存储器6中读出数据而不必访问磁盘1。由于可以提高处理速度并且降低对磁盘1的访问频率,通过将读高速缓存操作与本实施例的方法相结合,可以进一步缩短飞行时间并且进一步减少L/UL操作的次数。
下面将参考图5A到5C中示出的流程图描述具有读/写高速缓存的本实施例的磁盘驱动器的一般操作。
图5A是说明当接收到写指令时磁盘驱动器的操作的流程图,图5B是说明当接收到读指令时磁盘驱动器的操作的流程图,图5C是说明当接收到结束指令时磁盘驱动器的操作的流程图,以及图5D是说明当驱动器开始操作时磁盘驱动器的操作的流程图。
如图5A所示,当在步骤S1从主机11接收到写指令时,在步骤S2将数据写入写高速缓存。在将数据写入写高速缓存后,在步骤S3向主机11返回写入结束报告。在步骤S4检查磁头2是否处于加载状态。如果在加载状态,则流程跳到步骤S7,相反如果不是,流程前进到步骤S5。
在步骤S5检查非易失性存储器5是否有足够的空闲空间。如果有足够的空闲空间,则流程前进到步骤S12,相反如果没有足够的空区域,则流程前进到步骤S6。
在步骤S12,将数据写入非易失性存储器5以便此后在步骤S11终止写操作。
在步骤S6,加载磁头2。然后将数据写入磁盘1。然后在步骤S8检查非易失性存储器5中是否有数据。如果有数据,则流程前进到步骤S9,相反如果没有数据,则流程前进到步骤S11以便终止写操作。
在步骤S9将非易失性存储器5中的所有数据一次顺序地写入磁盘1。在步骤S10,清除非易失性存储器5中的数据以便此后在步骤S11终止写操作。
如图5B所示,当在步骤S20从主机11接收到读指令时,在步骤S21检查数据是否在读高速缓存中。如果在读高速缓存中,则流程前进到步骤S31,相反如果不在,流程前进到步骤S22。
在步骤S31从读高速缓存中读出数据,并且在步骤S32将数据返回主机11以便此后在步骤S30终止读操作。
在步骤S22检查磁头是否加载。如果加载了,则流程跳到步骤S24,相反如果未加载,则流程前进到步骤S23。
在步骤S23,加载磁头2。在步骤S24从磁盘1读出数据。在步骤S25,将数据写入读高速缓存。此后,在步骤S26将数据返回主机11。然后在步骤S27检查非易失性存储器5是否有数据。如果它有数据,则流程前进到步骤S28,相反如果没有数据,则流程跳到步骤S30以便终止读操作。
在步骤S28将所有非易失性存储器5中的数据一次顺序地写入磁盘1。在步骤S29,清除非易失性存储器5中的数据以便此后在步骤S30终止读操作。
如图5C所示,当在步骤S40从主机11接收到结束指令时,在步骤S41检查非易失性存储器5中是否有数据。如果它有数据,则流程前进到步骤S42,相反如果它没有数据,则流程跳到步骤S46,在那里继续正常的结束处理。
在步骤S42,检查磁头是否处于加载状态。如果处于加载状态,则流程跳到步骤S44,相反如果不处于加载状态,则流程前进到步骤S43。
在步骤S43,加载磁头。在步骤S44将非易失性存储器5中的数据以成批的方式写入磁盘1。在步骤S45清除非易失性存储器5中的数据以便在步骤S46继续正常的结束处理。
如图5D所示,当在步骤S50起动磁盘驱动器10时,在步骤S51检查非易失性存储器5中是否有数据。如果它有数据,则流程前进到步骤S52,相反如果它没有数据,则流程跳到步骤S56,在那里继续正常的起动操作。
在步骤S52,检查磁头是否处于加载状态。如果处在加载状态,则流程跳到步骤S54,相反如果不处在加载状态,则流程前进到步骤S53。
在步骤S53,加载磁头。在步骤S54将非易失性存储器5中的所有数据一次顺序地写入磁盘1。在步骤S55清除非易失性存储器5中的数据以便在步骤S56继续正常的起动操作。
将本实施例的以及所述对比例的磁盘驱动器装入笔记本式个人计算机中,并且通过使用市场上可以买得到的电池基准测试程序工具(battery benchmark tool)测量磁盘驱动器对于来自主机的指令的响应,主机是笔记本式个人计算机的CPU(中央处理单元)。即使将磁盘驱动器外接在笔记本式个人计算机上也会得到同样的结果。
电池基准测试程序工具产生预定模式的写和读指令并且将它们提供给磁盘驱动器。通过借助电流探测器监视磁盘驱动器消耗的电流,测量磁盘驱动器的响应。当进行加载和卸载操作时,对于每个操作流程都有表示其特征的电流模式,所以可以通过监视电流正确地测量L/UL操作的执行。基于这种测量,得到L/UL操作的次数并且以从加载操作到卸载操作的各自的时间之和的形式计算磁头飞行在磁盘上的飞行时间。
本实施例和对比例的磁盘驱动器两者都使用相同的笔记本式个人计算机。一小时内在相同的条件下进行每项测试。图3中示出测量的结果。
本实施例的磁盘驱动器的L/UL操作的次数比对比例降低了约62%,而且磁头的飞行时间比对比例缩短了约41%。电池基准测试程序工具发出写指令和读指令的组合来模拟磁盘驱动器的实际使用状态。因此,磁盘驱动器的响应与在图2A和2B中说明的只发出写指令时的情况相比变得较为复杂。
通过监视总线来检查从主机向实施例磁盘驱动器发出的指令,并且检查就在执行加载操作之前的指令的内容。确认所有就在加载操作之前的指令都是读指令,以及不执行响应写指令的加载操作。这是因为由于使用的测试条件是发出写和读指令的组合,所以频繁地满足将非易失性存储器中的数据以成批的方式写入磁盘的四个条件中的条件(2)。
图4A和4B中示意地示出在这些测试条件下磁盘驱动器的响应。在图4A和4B中,为了描述的简便,没有使用读高速缓存和写高速缓存。在图4A和4B中,用字母W代表发出的写指令,用字母R代表发出的读指令,以及用符号UL代表执行的磁头卸载操作。磁盘线上的粗线表明磁头飞行的时间,而非易失性存储器上的粗线代表将写指令的数据临时存储在非易失性存储器中的时间。
在传统的磁盘驱动器中,每次发出写指令或读指令时都发生磁盘访问。如果在发出指令时磁头不处于加载状态,则执行加载操作。其后如果在预定的时间内没有发出指令,则执行卸载操作。在实施例的磁盘驱动器中,当接收到写指令时,将数据存储在非易失性存储器中。因此,当响应读指令而加载磁头并且完成对读指令的处理时,由于满足判断条件(2),所以将临时存储在非易失性存储器中的数据以成批的方式写入磁盘。如从本实施例(图4B)与对比例(图4A)的比较中所看到的,可以明白缩短了磁头飞行时间并且减少了L/UL操作的次数。
在发出模拟磁盘驱动器的使用状态的写和读指令组合的情况下,如上所述,缩短飞行时间和减少L/UL操作的次数的效果仍然是显著的。在磁盘驱动器的实际使用状态下同样证实了所述效果。
通过准备十个实施例的磁盘驱动器和十个对比例的磁盘驱动器进行长达5000小时的可靠性过载测试(acceleration test),验证了本发明的效果。使用的测试条件是环境温度为70℃的高温恶劣条件,并且发出类似于电池基准测试软件工具的那些指令的指令来监视发生错误所需的时间。在这种测试中,为了缩短测定时间,使用从电池基准测试软件工具的指令发出模式中除去长时间不发出指令的空闲时间间隔而得到的指令发出模式。借助该指令发出模式,每单位时间的L/UL操作次数和磁头飞行时间约为图3中所示的那些的两倍。
十个对比例磁盘驱动器中的两个在接近4000小时时由于产生错误而停止。拆开并检查停止的磁盘驱动器。发现所述错误是由附着在磁头元件附近的污点产生的。分析污点的成分,检测出磁盘驱动器中有机化合物的污染成分以及被认为是L/UL机构的斜面的磨损微粒的成分。对比例在4000小时时,L/UL操作次数约为720×103而磁头飞行时间约为3000小时。其余的八个磁盘驱动器没有产生错误,但拆开这些驱动器证实磁头上附着了污点,尽管污点的数量不如产生错误的磁盘驱动器的那么多。对比例在5000小时时,L/UL操作次数约为900×103而磁头飞行时间约为3700小时。
即使在5000小时十个实施例例子的磁盘驱动器中也没有一个产生错误。拆开这些磁盘驱动器。尽管磁头在某种程度上附着有污点,但与没有产生错误的对比例的磁盘驱动器相比,污点的数量是小的。本实施例在5000小时时,L/UL操作次数约为340×103而磁头飞行时间约为2200小时。
如上所述,通过减少L/UL操作次数以及缩短磁头飞行时间,得到了在长运行时间内在润滑可靠性上极好的磁盘驱动器。
在以上的描述中,利用了装配有L/UL机构的磁盘驱动器10作为例子。本发明适用于接触起停(CSS)型磁盘驱动器。许多CCS型的磁盘驱动器提供在长时间不发出指令时进入等待状态的功能。在这种情况下,当在磁头进入等待状态后从主机发出写指令时,需要主轴再次起动来使磁头飞行并将数据写入磁盘。按照本发明,由于将数据写入非易失性存储器,所以不需要再次起动主轴。因此,缩短了飞行时间并且减少了L/UL操作次数,从而明显地提高润滑可靠性并且降低电源消耗。
就CCS型而论,在所述四个条件中,可省略条件(2)的“当把磁头2加载到磁盘1上时”部分,并且条件(2)被简单地替换为“当磁头2飞行在磁盘1上并且将数据写入磁盘变得可能时”。
此外,本发明不仅对磁盘有效,而且对其它有必要提高润滑可靠性或减少电源消耗的存储驱动器,如光盘、磁光盘以及磁带也有效。本发明对使用不需要提高润滑可靠性但需要减少电源消耗的存储介质的驱动器也有效。
非易失性存储器5的功能可以加在缓冲存储器6的功能中。在这种情况下,如果在将数据写入磁盘1之前发生磁盘驱动器10的电源故障,则丢失数据。然而,如果配备有可向缓冲存储器供电直到将数据写入磁盘1的后备电源,则可以保留所述数据。通过提供具有非易失性存储器5的功能的易失性存储器的缓冲存储器6,可以缩短将数据以成批的方式写入磁盘所需的时间。可将以字节为单位的数据写入易失性存储器中。因此,可以有效地使用存储器容量,并且与具有相同存储容量的非易失性存储器相比,可以增加临时存储数据的数量。
除了将非易失性存储器5装配在磁盘驱动器10中,还可以将其设置在主机11与磁盘驱动器10之间或在主机11中。更准确地说,如果主机是个人计算机(PC),将对应于写指令的数据存储在个人电脑的高速缓存中并且将所述数据写入磁盘驱动器10以便减少L/UL操作次数。
本发明适用于广阔的范围内的各种各样的用途。本发明总起来说,在接收到从主机发出的写指令时,将数据临时存储在存储器中,并不总是顺序地继之以将数据从临时存储器写入诸如磁盘的存储介质中,而是将所有对应于多条写指令的、存储在临时存储器中的数据稍后顺序地一次写入存储介质。
权利要求
1.一种存储驱动器,它包括存储介质;用以从所述存储介质读出数据和向所述存储介质写入数据的头;用以存储对应于从主机向所述存储驱动器发出的多个写指令的数据、直到满足预定条件的存储器;以及响应对所述预定条件的满足,用以将所述存储器中的所有数据顺序地写入所述存储介质的控制器。
2.权利要求1的存储驱动器,其特征在于所述预定条件是当发出对所述存储介质的读指令时。
3.权利要求1的存储驱动器,其特征在于所述预定条件是当所述头飞行在所述存储介质上时。
4.权利要求1的存储驱动器,其特征在于所述预定条件是当所述存储驱动器从主机接收到停止指令时。
5.权利要求1的存储驱动器,其特征在于所述预定条件是当所述存储器的剩余的容量不足以存储输入的写数据时。
6.权利要求1的存储驱动器,其特征在于还包括用以加载和卸载与所述存储介质有关的所述头的加载/卸载机构,以及所述预定条件是当所述头处于加载状态时。
7.一种存储驱动器,它包括用以从主机接收写指令的控制器;用以存储对应于所述写指令的数据的存储器;以及用以将存储在所述存储器中的数据写入存储介质的写单元,其中所述控制器控制所述写单元,使得单位时间内所述写单元写入所述存储介质的写入操作的次数小于单位时间内所述控制器从主机接收的写指令的数量。
8.一种数据写入方法,它包括以下步骤接收从主机发出的写指令;当接收到写指令时,判断用以向存储介质中写入数据的头是否飞行在所述存储介质上;以及如果所述头飞行在所述存储介质上,则将对应于写指令的数据写入所述存储介质,相反如果所述头没有飞行在所述存储介质上,则将对应于写指令的数据临时存储在存储器中。
9.一种数据写入方法,它包括以下步骤接收从主机发出的写指令;将对应于所述写指令的数据临时存储在临时存储器中;判断用以向存储介质中写入数据的头是否飞行在所述存储介质上;以及如果所述头飞行在所述存储介质上,则将所述临时存储器中对应于所述写指令的数据写入所述存储介质。
10.一种磁盘驱动器,它包括作为存储介质的磁盘;用以将对应于从主机提供的写指令的数据写入所述磁盘的磁头;用以从所述主机接收写指令的控制器;用以存储数据的易失性存储器;以及用以存储存储在所述易失性存储器中的数据的非易失性存储器,其中,所述控制器控制在所述磁盘上处于飞行状态的所述磁头,以便以成批的方式将存储在所述非易失性存储器中的许多数据写入所述磁盘。
11.一种用于磁盘驱动器的存储控制方法,所述磁盘驱动器包括磁盘介质;用以从所述磁盘介质读出数据以及向所述磁盘介质写入数据的头;用以临时存储对应于输入的写指令的数据的存储器;以及用以控制所述头和所述存储器以便从/向所述磁盘介质读出/写入数据的控制器,所述方法包括以下步骤在所述控制器中接收输入的写指令;以及控制所述头的加载和卸载,以便将对应于按照预定时间间隔发出的输入的写指令的数据以这样的方式一次写入所述磁盘介质在单位时间内头访问所述磁盘介质的次数可以小于单位时间内输入所述控制器中的写指令的数量。
12.一种用于磁盘的存储控制方法,所述磁盘包括磁盘介质;用以从所述磁盘介质读出数据以及向所述磁盘介质写入数据的头;用以临时存储对应于输入的写指令的数据的存储器;以及用以控制所述头和所述存储器从/向所述磁盘介质读出/写入数据的控制器,所述方法包括以下步骤在所述控制器接收输入的写指令;响应每个接收到的输入的写指令,根据预定的条件确定是将所述数据写入所述临时存储器还是写入所述磁盘介质;以及与代表将数据写入所述临时存储器的决定相应地将所述头保持在卸载状态。
13.权利要求12的方法,其特征在于所述预定条件是当所述存储器的数据剩余容量不足以存储输入的写数据时。
14.权利要求12的方法,其特征在于所述预定条件是当接收到与所述写指令不同的指令时。
15.权利要求14的方法,其特征在于所述预定条件是当与写指令不同的指令是读指令或停止指令时。
16.权利要求12的方法,其特征在于所述预定条件是当在所述磁盘驱动器开始操作时所述存储器中有数据时。
17.权利要求12的方法,其特征在于当满足所述预定条件时,将所述存储器中的对应于多个写指令的所有数据一次顺序地写入所述磁盘介质。
全文摘要
能够缩短磁头飞行在磁盘上的飞行时间并且减少加载/卸载操作次数的磁盘驱动器。所述磁盘驱动器包括用以临时存储对应于从主机提供的写指令的数据的非易失性存储器。将对应于多个写指令的数据存储在非易失性存储器中。暂停头的加载直到满足预定的条件。当满足预定的条件时,将所有存储在非易失性存储器中的数据顺序地一次写入所述磁盘。从而有可能缩短磁头飞行在磁盘上的飞行时间并且减少加载/卸载操作次数。
文档编号G06F12/08GK1311509SQ0012249
公开日2001年9月5日 申请日期2000年7月31日 优先权日2000年3月3日
发明者田中秀明, 山下忠晴 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1