用于控制硬盘驱动器的装置和方法

文档序号:6412458阅读:163来源:国知局
专利名称:用于控制硬盘驱动器的装置和方法
技术领域
本发明是关于硬盘驱动器,更具体而言,是关于控制没有识别(ID)信息的硬盘上的数据的读/写操作的装置和方法。


图1是典型的硬盘驱动器的方框图,如图1所示,硬盘驱动器包括多个盘110和跨越每一盘表面的磁头112,该磁头112拾取信号,该信号被电连接到磁头112的前级放大器114所放大。然后,被放大的信号施加到读/写电路116。读/写电路116检测和解码由前级放大器114输出的信号的数据脉冲和施加解码的数据脉冲到盘控制器118。同样,读/写电路116编码从盘控制器118输出的数据和施加编码数据到前级放大器114。
盘控制器118包括依照从微控制器122卸载的程序执行工作的定序器。盘控制器118通过读/写电路116和前级放大器114将从主计算机接收的数据写到盘110上,和将从盘110上读出的数据传送到主计算机。同样,盘控制器118在主计算机和微控制器122之间执行接口通讯。
缓存RAM(随机存取存储器)120缓存在主计算机、微控制器122和读/写电路116之间传送的数据。
微控制器122根据从主计算机接收的读/写命令控制盘控制器118和磁道搜索和跟踪操作。ROM(只读存储器)124存储着微控制器122执行的程序和各种参数。
伺服驱动器126依照微控制器122输出的磁头控制数据产生驱动执行机构128的驱动电流。执行机构128依照驱动电流的方向和幅度移动磁头102跨越盘。主轴电机驱动器130根据由微控制器122输出的电机控制数据驱动主轴电机132,使得主轴电机132依照控制数据的值旋转。
盘信号控制器134对由读/写电路116输出的读数据中的伺服信息进行解码以施加解码的信息到微控制器122,和施加对读/写操作必需的各种控制信号到盘控制器118。
图2A示出典型硬盘驱动器的数据格式,图2B是用于检测图2A的伺服区域的位置的由盘控制器产生的伺服脉冲的定时图,和图2C是通过检测图2A数据扇区位置由盘控制器118产生数据扇区脉冲的定时图。
硬盘被分成多个同心的柱面(CYL)。柱面之一被格式化为图2A所示格式。在图2A中,柱面由N个伺服扇区组成,每一个扇区由一伺服区域和M个数据扇区。一单个数据扇区由识别(ID)区域和数据区域组成。
在典型的硬盘驱动器中,ID信息和数据以一致的记录密度被记录以增加存储器容量,且每一个数据区域存储同样大小的数据,即512个字节,而不管它在磁盘上的位置。因此,如果嵌入扇区伺服类型被使用,单个的数据扇区可以分成为两段,这取决于数据扇区在盘上的位置,这称作为分开的数据扇区。
而另一方面,由于数据扇区包括在ID区域内的ID信息和在数据区域的数据,和ID区域即29个字节一样大的每一个数据扇区的区域不能被用户使用作为作为盘的空间。
这样,如果作为实质上不能为存储信息使用的开销的ID信息被删除,有储容量可以增加。如果ID信息被删除,进而,由于在ID区域和数据区域之间的写-读恢复时间的开销,大约8微秒,这作为磁头的特征可以被去掉,盘的容量可以增加6%。
然而,当在盘上不存在ID区域时,搜索目标数据扇区的另外方法是搜索目标数据,微控制器122控制盘控制器118,使得盘控制器118通过对来自盘上索引的伺服扇区数的计数或读出写在伺服区的伺服号确定在盘上的磁头的当前位置、和控制盘控制器118以搜索目标伺服扇区。因此,微控制器122跳过和跳越计数器内预置值一样多的数据扇区,并然后控制盘控制器118去初始化盘的读/写操作。
与此同时,在图1的硬盘驱动内的缓存器RAM 120用来补偿主计算机和硬盘驱动器之间的速度差异。然而,由于主计算机的操作速度和硬盘驱动器之间的操作速度之间的差别使缓存RAM变得满或空时,发生数据不能正常读出或写入到缓存器的错误。
当缓冲错误发生在有ID信息在盘上的硬盘驱动器内时,盘控制器118使用ID信息搜索目标扇区和自动地从错误发生时刻执行盘的读写操作。盘控制器118通过比较写在盘上的ID信息和在目标数据扇区被找到以后连续更新的目标数据扇区的信息来做这些。
同时,在盘上没有ID信息的硬盘驱动器内,当缓存器错误发生时,在目标数据扇区被找到后,目标伺服扇区并不更新,因为没有ID信息,同样跳越计数器并不更新,因为这里并没有数据扇区要跳过。
这样,在没有ID信息的硬盘驱动器内进行盘读/写操作期间发生缓存器错误时,微控制器122停止定序器的操作,识别在缓存器错误发生之前执行的操作,和继续检测缓存器错误的结束。然后,微控制器122重新开始给在错误发生前已经被执行的操作的下一个操作。这是有缺陷的,因为它消耗时间和这可能有大量负载加到微控制器122上。
为了克服上述问题,本发明的目的之一是提供一种装置,用于确定在没有ID信息的硬盘驱动器内发生的缓存器错误的结束,并自动地执行在缓存器错误发生之前执行的盘动作之后的盘读/写动作。
本发明的另一个目的是提供一种方法,通过该方法,确定在没有ID信息的硬盘驱动器内发生的缓存器错误的结束,通过该方法,自动地执行在缓存器错误发生之前执行的盘动作之后的盘读/写动作。
为了达到上述目的之一,本发明提供一种控制硬盘驱动器的装置,用于在搜索目标数据扇区之后执行盘读/写动作。该装置包括第一计数器,用于对伺服扇区计数和输出目标伺服扇区数;第二计数器,用于对伺服扇区计数和输出伺服扇区数;第三计数器,用于对数据扇区计数和当从第一计数器来的目标伺服扇区数等于从第二计数器来的伺服扇区数时,输出要被跳过的数据扇区数;第四计数器,用于对在伺服扇区内的数据扇区进行计数和输出数据扇区数,当数据读/写错误发生时保持数据扇区数,当错误结束时输出要被跳过的数据扇区数到第三计数器;和定序器,用于当要被跳过的数据扇区数被第三计数器计数时,控制盘的读/写动作。
为了完成上述目标之一,这里提供了一控制硬盘驱动器的方法,该方法在搜索目标数据扇区之后执行盘的读/写动作。该方法包括如下步骤(a)只要伺服扇区脉冲被输入就对伺服扇区数进行计数;(b)当目标伺服扇区数和在步骤(a)计算的伺服扇区数相同时,确定是否存在数据读/写错误;(c)当在步骤(b)中不存在错误时,检测伺服扇区和更新目标伺服扇区数,和当在步骤(b)中存在错误时,保持目标伺服扇区数;和(d)当目标伺服扇区在步骤(c)中被检测时,检测数据读/写错误,设置在步骤(c)保持的伺服扇区内的数据扇区数为要被跳过的数据扇区单元数,并从前一个执行的数据扇区的下一个数据扇区起执行盘读/写动作。
通过参照附图详细描述的优选的实施例,本发明的上述目标和优时刻将更为明显图1是通常的硬盘驱动器的方框图;图2A示出了通常硬盘驱动器中的数据格式;图2B是通过检测图2A所示伺服区域位置的由盘控制器产生的伺服脉冲的定时图;图2C是通过检测图2A所示伺服区域位置由盘控制器产生的数据扇区脉冲的定时图;图3的框图示出了根据本发明的执行盘读/写动作并在硬盘驱动器内的微控制器和盘控制器内的装置;图4的定时图示出了图3所示每一部分的操作;和图5的流程图描述了根据本发明的伺服扇区和目标伺服扇区的更新过程;和图6的流程图描述了当当前的伺服扇区数和图5的目标伺服扇区数相同时,盘的读/写动作的过程。
参看图3,图3中具有一个盘。微控制器300提供控制信号到最大伺服寄存器330,伺服控制器305包括目标伺服计数器310,伺服扇区计数器320,最大伺服寄存器330,数据扇区计数器340,第一和第二比较器350和360,缓存器错误区域设置器370,跳越计数器380和定序器390。
另一方面,控制硬盘驱动器整个操作的微控制器300示于图3内。
目标伺服扇区计数器310保持着目标伺服扇区值。伺服扇区计数器320对伺服扇区脉冲计数和保持其结果作为当前伺服扇区值。最大伺服寄存器330设置在盘柱面中的最大伺服扇区数目。数据扇区计数器340对在伺服扇区内的数据扇区数进行计数。第一比较器350比较伺服扇区计数器320的值和最大伺服寄存器330的值。第二比较器360比较伺服扇区计数器320的值和目标伺服扇区计数器310的值。随着缓存器错误、伺服扇区脉冲和数据扇区脉冲的输入,缓存器错误区域设置器370为目标伺服扇区计数器310设置缓存区错误区域。跳越计数器380根据第二比较器的输出和数据扇区脉冲对要被跳过的数据扇区数目进行计数,定序器390根据跳越计数器380的值输出盘读/写控制信号。
如图3所示,微控制器300设置所希望的目标扇区数和输出该数到目标伺服扇区计数器310。同样,微控制器300设置在当前柱面的最大伺服扇区的数,和输出该数到最大伺服寄存器330,使得最大伺服寄存器330存储该数。进而,微控制器300设置当前伺服扇区数以输出该数到伺服扇区计数器320,和为跳越计数器输出要被跳过的数据扇区单元数,这里,每当伺服扇区脉冲被输入,伺服扇区计数器380的值被加1。第一比较器350比较伺服扇区计数器320的值和最大伺服寄存器330的值,并当该两值被确定为相同时,输出复位信号352到伺服扇区计数器320以复位当前扇区数为“0”。
伺服扇区计数器320的值和目标伺服扇区计数器310的值被第二比较器加以比较。当两值被确定为是相同时,第二比较器360输出指示到达目标伺服扇区的预定电平的信号。然后在目标伺服扇区到达以后,跳越计数器380开始对要被跳过的数据扇区脉冲计数。当计数值不是“0”时,每当数据脉冲被输入,跳计数器向下计数一直到“0”。当计数值为0时,定序器390在当前数据扇区执行盘读/写动作。当在动作开始后没有缓存器错误发生时,在将读/写控制信号加到读/写电路116后定序器终止操作(见图1),以便每当数据扇区设置量被输入时执行盘动作。当缓存器错误发生时,由缓存器错误区域设置器370设置的缓存器错误区域中的操作被终止。当终止的定序器390再次被操作时,这里存在着设置目标伺服扇区计数器310和跳越计数器380的值的要求,以复位在终止时刻当前被处理的数据扇区的下一个数据扇区,作为新的目标数据扇区。
在目标伺服扇区到达之前,目标伺服扇区计数器维持着由微控制器300设置的值。在目标伺服扇区到达以后,每当当伺服扇区脉冲被输入,目标伺服扇区计数器310就增加它的计数值“1”,以连续地更新目标伺服扇区的信息。当缓存器错误发生时,依照缓存器错误区域设置器370输出的控制信号,目标伺服扇区计数器的增加的值被维持。为了更新当缓存器错误发生时需要被复位的跳越计数器的值,当目标伺服扇区计数器310和伺服扇区计数器320的值相同时,每当数据扇区脉冲被输入时,数据扇区计数器340使跳越计数器值加“1”。当缓存器错误发生时,数据扇区计数器340维持由缓存器错误区域设置器370设置的缓存器错误区域内的计数值。同样,在缓存器错误终止时刻,数据扇区计数器340的数据扇区值被复位。
当缓存器错误发生时,盘控制器118必须首先找到目标伺服扇区和然后操作跳越计数器380。因此,为设置适当的缓存器出错区域,缓存器出错区域设置器370设置当缓存器错误发生后当数据扇区脉冲被输入的时刻和缓存器错误被终止后当伺服扇区脉冲被输入的时刻之间部分为缓存区出错区域。当在由缓存器出错区域设置器370设置的缓存器出错区域之外时,第二比较器360比较目标伺服扇区计数器310的值和伺服扇区计数器320的值,当两值相同时,操作跳越计数器。在跳越计数器380变为“0”时,定序器390从在缓存器出错发生之前执行的操作之后的操作起,执行读/写动作。为处理分开的数据扇区,在分开数据扇区时刻和分开发生时,微控制器300为每一个伺服扇区发送CDR(恒定密度记录)信息到盘控制器118(见图1)。当由第二比较器360确定目标伺服扇区计数器310的值和伺服扇区计数器320的值是相同时,微控制器300产生中断信号去执行操作,使得在从盘控制器118(见图1)被打开时到目标伺服扇区被搜索时的期间,或在从缓存器错误发生时到目标伺服扇区被搜索时的期间,不必要的装入被去除。
图4的定时图示出了图3所示每一部分的操作。
首先,当目标伺服扇区是值“00”,当最大伺服扇区的值为“72”,当伺服扇区计数器的当前伺服扇区的值是“71”,和当跳越计数器1的计数值为“01”时,通过第1伺服扇区脉冲(1),伺服扇区计数器320的当前值变化为“72”和然后被复位为“00”,这是因为变化的值等于最大伺服扇区的值“72”。
目标伺服扇区计数器340维持着当前设定值直到伺服扇区计数器320的值变得等于设定值。此后,每当伺服扇区脉冲被输入,该值就增加“1”。同样,在盘操作期间当缓存器错误发生时,目标伺服计数器310维持它的当前值直到伺服扇区计数器320的值变得等于当前值,即使缓存器错误已终止。在任何情况下,每当伺服扇区脉冲被输入,伺服区计数器320就增加计数值“1”。在这时,如果伺服扇区计数器320和目标伺服扇区计数器310的值是相同时,跳越计数器1(380)依照数据扇区脉冲操作,使得当第一数据扇区脉冲被输入时计数值从“01”减到“00”和当第二数据扇区脉冲被输入时定序器390被操作(定序器操作部分的时刻410)。
与此同时,当缓存器错误发生时(在实际缓存器错误时刻420),目标伺服扇区被搜索以复位跳越计数器2(380)。然后,当第一数据扇区脉冲被输入时,数据扇区计数器340的值由“00”变到“01”,当第二数据扇区脉冲被输入时,又加1到“02”,然后通过下一个伺服扇区脉冲被初始化为“00”。在盘读/写动作期间当缓存器错误420发生时,当前值“02”被维持。当缓存器错误被结束时,跳越计数器2(380)被重置到扇区计数器340的值“02”。由于盘控制器通过了目标伺服扇区位置,在磁盘动作期间由于缓存器出错它临时停止操作,它等待着盘的旋转。然后,盘控制器比较目标伺服扇区计数器310和伺服扇区计数器320的值,如果两值是相同的,盘控制器操作由第二比较器360复位的跳越计数器380和打开定序器390(定序器操作时刻430)以搜索目标数据扇区。在缓存器真实发生的时间420和缓存器出错区域被设置的时间422之间有一个差。在本发明中,缓存器出错区域设置为从实际缓存器出错发生后的第一个被输入的数据扇区脉冲到实际缓存器出错终止后的被输入的第一数据扇区脉冲。为什么缓存器错误区域按如上设置的理由是,数据读/写必须从缓存器错误发生之后下一个数据扇区内部地停止和从缓存器错误发生的时刻的伺服扇区恢复。
图5的流程图用于描述根据本发明的更新当前伺服扇区值和目标伺服扇区值的方法。
如图5所示,在步骤512,微控制器300设置目标伺服扇区值(数),跳越计数器值,最大伺服扇区值的当前伺服扇区值(数)。在步骤514,微控制器300打开盘控制器118(见图1)和检测伺服扇区脉冲。这里,当在目标数据扇区被搜索之前当缓存器错误发生时,盘控制器118设置内部标志为“1”,以防止由微控制器300重新设置目标数据扇区。在步骤516,当伺服扇区脉冲被检测到时,“1”被加到当前伺服扇区值。在步骤518,当前伺服扇区值和最大伺服扇区值进行比较。当当前伺服扇区的值和最大伺服扇区的值相同时,这意指相应柱面可用的伺服扇区值的上限已经被超过,在步骤520,伺服扇区计数器的值被复位为“0”,这是索引被定位的伺服扇区的值。在步骤522,目标伺服扇区值和当前伺服扇区值加以比较。如果目标伺服扇区和当前伺服扇区的值被确定是相同的,那么在步骤522,目标伺服扇区被搜索。如果不是,步骤514至522被重复,直至两值变为相等。
在目标伺服扇区被搜索后当缓存器错误发生时,盘控制器118本身设置目标伺服扇区而没有微控制器300的卷入。在步骤524,确定是否缓存器的错误已经发生了。当在步骤524检测出缓存器错误,目标伺服扇区数维持它的值,和在步骤514,伺服扇区脉冲被再次检测。当在步骤524没有检测到缓存器错误时,伺服扇区脉冲在步骤526被检测。在步骤528,目标伺服扇区数为下一个目标伺服扇区加“1”,然后程序返回到当前伺服递增步骤516。
图6的流程图描述了当当前伺服扇区数被确定等于图5的步骤522的目标伺服扇区数时执行读/写动作的方法。
在步骤612,目标伺服扇区被检测为图5的步骤522。在步骤614,用于对在伺服扇区内的数据扇区进行计数的数据扇区计数器被初始化为“0”并等待数据扇区脉冲的输入。在步骤616,确定是否发生缓存器错误。当在步骤616中没有检测到缓存器错误时,在步骤622中检测数据扇区脉冲。在步骤624,当数据扇区脉冲被检测到时,数据扇区值加“1”和存储要被跳过的数据扇区数的跳越计数器的值被减“1”。在步骤628,确定是否跳计数器值为“0”,如果不为“0”,程序返回到步616。如果在步骤628跳越计数器的值为“0”,在盘控制器118内的定序器390打开和执行盘读/写动作以在步骤630传送数据扇区的数据。在步骤632,确定是否定序器390完成了数据扇区的传送。如果是,程序终止,否则,程序返回到步骤616。
与此同时,依照内部标识即“0”或“1”程序的执行不同。内部标识指示在步骤616内的缓存器错误是发生在目标数据扇区被搜索之前或之后。依此,在步骤618中确定是否标识是“1”。当标识是“1”即缓存器错误发生在步骤618的目标数据扇区之前,每当检测出数据扇区脉冲时,跳越计数器值减少。当缓存器错误发生在跳越计数器值变为“0”之前时,跳越计数器被复位到微控制器300设置的值。同样,在步骤620,当缓存器错误发生在目标数据扇区被搜索的步骤618之后时,当跳越计数器值变为“0”时,内部标识被置为“0”。然后跳越计数器被复位为数据扇区计数器值,它是在缓存器错误发生时刻的在伺服扇区内的数据扇区数,并且程序从图5B位置重新开始搜索目标扇区的步骤。当盘控制器118开通时标志被设置为“1”,当目标数据扇区到达时被设置为“0”。进而,当缓存器错误发生时,并当标志是“1”时,跳越计数器的值被复位为由微控制器300设置的值,而当标识是“0”时,被设置为数据扇区计数器的值。
依上所述,依照本发明,当在硬盘驱动器内发生缓存器错误时盘控制器被停止。可以识别当缓存器错误发生时盘的读/写动作能执行多远,同样,为了重新开始盘读/写动作,连续检测是否缓存器错误终止。当缓存器错误终止时,一组目标扇区并不装入到微控制器,而是盘控制器本身搜索目标数据和执行数据读/写动作。
权利要求
1.一种在搜索目标数据扇区之后控制执行盘读/写动作的硬盘驱动器的装置,所说的装置包括第一计数器,用于计数伺服扇区数和输出目标伺服扇区数;第二计数器,用于计数伺服扇区数据和输出伺服扇区数;第三计数器,用于计数数据扇区和当所说第一计数器的目标伺服扇区数等于第二计数器的伺服扇区数时输出要被跳过的数据扇区数;第四计数器,用于计数在伺服扇区内的数据扇区和输出数据扇区数,当数据读/写错误发生时维持数据扇区数,当所述错误终止时输出要被跳过的数据扇区数到所说第三计数器;和定序器,用于当要被跳过的数据扇区数被所说第三计数器计数时控制盘的读/写动作。
2.如权利要求1所述的控制硬盘驱动器的装置,其中,当数据读/写错误发生时,所说第一计数器停止计数并保持目标伺服扇区数。
3.如权利要求1所述的控制硬盘驱动器的装置,进一步包括第一存储装置,用于存储盘柱面上的存在的最大伺服扇区数;和第一比较器,用于比较所说第一计数器的伺服扇区数和所说第一存储装置的最大伺服扇区数和当所说第一计数器伺服扇区数等于所说第一存储装置的最大伺服扇区数时初始化所说第二计数器的计数值。
4.如权利要求1所述的控制硬盘驱动器的装置,其中,当数据读和存储错误发生时,所说第四计数器的值被复位为当错误终止时刻的所说第三计数器的值,使得所述目标数据扇区被搜索。
5.一种在搜索目标数据扇区之后控制执行盘读/写动作的硬盘驱动器的方法,所说的方法包括步骤(a)每当伺服扇区脉冲被输入时计算伺服扇区数;(b)当目标伺服扇区数等于在步骤(a)所说步骤中计算的伺服扇区数时确定是否存在数据读/写错误;(c)当在所说的步骤(b)中不存在错误时,检测伺服扇区和更新目标伺服扇区数,当在所说步骤(b)中存在错误时,维持所述目标伺服扇区数;和(d)当目标伺服扇区在所说的步骤(c)中被检测时,检测数据读/写错误,设置在所说步骤(c)中维持的伺服扇区内的数据扇区数为要被跳过的数据扇区单元数,和从先前的一数据扇区的下一个数据扇区起执行盘的读/写动作。
6.如权利要求5所述的控制硬盘驱动器的方法,其中,进一步包括当在所说的步骤(d)不存在错误时检测数据扇区脉冲并更新所述数据扇区数的步骤,设置更新的数据扇区值为要被跳过的数据扇区单元数,和执行盘的读/写动作。
7.如权利要求5所述的控制硬盘驱动器的方法,进一步包括当所述计算的伺服扇区数等于柱面的最大伺服扇区数时复位伺服扇区数的步骤。
8.如权利要求5所述的控制硬盘驱动器的方法,其中,在所述目标伺服扇区数被搜索后在所述伺服扇区内的所述数据扇区数被初始化。
全文摘要
在没有识别信息(ID)的硬盘驱动器上控制盘读/写动作的装置内,不考虑错误的产生,每当伺服区脉冲被输入,伺服扇区数就被计算。然后,当目标伺服扇区数和计算的伺服扇区数相同时,确定是否存在数据读/写错误。当没有错误时,伺服扇区被检测和目标伺服扇区数被更新,否则,目标伺服扇区数被维持。此后,当目标伺服扇区被检测时,数据读/写错误被检测,在伺服扇区内被维持的数据扇区数被设置为要被跳过的数据扇区单元数,并且盘读/写操作从先前执行的一个扇区的下一个数据扇区起开始执行。
文档编号G06F3/06GK1180894SQ9712063
公开日1998年5月6日 申请日期1997年7月27日 优先权日1996年7月27日
发明者朴赞奎, 朴龙雨, 朴正日 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1