硬盘驱动器以及命令执行方法

文档序号:6614984阅读:120来源:国知局
专利名称:硬盘驱动器以及命令执行方法
技术领域
本发明涉及到用于执行主机所发送的读或写命令的磁盘驱动器,以 及一种命令执行方法。
背景技术
在相当于硬盘装置的磁盘装置中,在读写磁盘时,磁盘磁头搜寻目 标磁道,在目标地址处,磁盘位置在磁盘磁头下移动,同时进行磁盘磁 头定位控制,在转动延迟中等待磁盘转动。当磁盘磁头被定位于目标地 址上时开始在磁盘上读写数据。如果发生了一个错误,通过暂停读写、 等待磁盘转动一次并再次进行读写来进行重试。由于重试是连续进行的 直到解决了错误为止,所以,在开始执行下一个命令之前,会产生磁盘 至少转动一圈的转动延迟。
在磁盘上进行写入比进行读取需要更严格的定位控制,由此,错误更容易发生。由于每次发生写错误(其中在磁盘上写入失败)时会产生磁盘转动一圈或多圈的转动延迟,所以,通过减少写错误的次数可以缩 短命令执行时间。
一些磁盘装置具有命令队列,用来保存多个命令。在这种磁盘装置 中,从主机设备接收到的命令可以存储在所述命令队列中,并从所述命 令队列中所存储的等待执行的命令中选择下 一个要执行的命令并执行 之。使用命令队列的话,允许进行重新排序,即可以改变要执行命令的 顺序,使之与命令的发布顺序不同。通过考虑命令请求地址在磁盘上的 位置而进行重新排序可以缩短执行命令所需时间。例如,考虑这样一种情形,其中命令按命令1、 2和3的顺序发布,如图14所示。在这种情 形中,通过按图14A所示的命令1、 3和2的顺序重新排序并执行(磁盘访问)这些命令,而不是按图14B所示的发布顺序来执行这些命令,可 以更有效地进行数据的读和写。在图14A和14B中,指示出了磁盘上由 命令l、 2和3所读或写的区域。
STF (Shortest Time First,最短时间优先)算法是重新排序算法中 的一种算法,用于选择具有最短访问时间的命令并以重复的方式来进行 这样的选择。例如,假设正在执行命令l (显示了磁盘上要由命令l进行 读或写的区域),如图15所示。在STF算法中,命令3被选择为下一次 要执行的命令。命令2在搜寻期间经磁盘的转动通过了磁盘磁头位置, 导致了磁盘转动一圈的额外转动延迟(在搜寻结束后,等待读或写数据 被定位),从而没有被选择。在执行命令3结束之后,命令4在搜寻中正 赶趟,由此,命令3之后要被执行的命令就是能被最快地访问的命令4。
当搜寻速度(磁盘磁头移动速度)增加时,磁道之间的移动时间就 被缩短了。当如图16B所示搜寻速度没有增加时,命令2不能被选择为 命令l之后的下一个命令,于是执行了命令3。当搜寻速度增加时,命令 1、 2和3可以在同一时间段内执行(图16A),由此可以执行更多的命令。 以这种方式,如果搜寻速度增加了,可以根据STF算法进行更有效的重 新排序。
然而,当搜寻速度增加时,在目标磁道上定位磁盘磁头位置时有更 大的振动传给了磁盘磁头。因为这个振动比较大,所以定位控制更困难, 更容易导致读/写错误。因此,如果搜寻速度增加了,可以进行更有效的 重新排序,但写错误发生率会更高,而且转动延迟时间会增加,由此, 输入输出不一定会改善。
在JP-A 6-282384 (Kokai)中,不能写在磁盘上的数据被存储在闪 存中,闪存可以作为磁盘上有缺陷扇区的替代区域,以提高磁盘的可靠 性。采用这种方法,可以预期,对于具有较小数据大小的随机写命令(写 目的地地址是随机的的写命令),输入输出可以改善,但考虑被改善的输 入输出,对于顺序写命令(写目的地地址是连续的的写命令)或者对于 具有较大数据大小的写命令,没有处理过程可执行。另外,由于没有处
理过程用于将闪存中所存储的数据重写到磁盘上,所以,当闪存没有可 用的存储空间时,将写错误的发生所导致的写入失败数据写入到闪存中 的过程就不能执行。
在JP-A 2000-293963 (Kokai)中,写入磁盘失败的数据被存储在磁 盘上的某个特殊区域内。采用这种方法,输入输出不一定改善,因为, 在所述特殊区域内存储数据时由于搜寻会产生转动延迟时间。
在JP-A 2001-100935 (Kokai)中,在磁盘上读写失败的数据被再次 存储在磁盘命令队列中进行重新排序。采用这种方法,引起写错误的数 据的磁盘写入是必不可少的,由此,写错误的代价不一定减小。例如, 在写入失败后,写入失败的数据被重新存储在磁盘命令队列中,重新排 序的结果是,同样的命令被选择,如图17所示。在这种情形中,操作与 等待磁盘转动一圏后进行重写的操作相同,这是没有重新排序的处理过 程,由此,即使执行了将数据重新存储在磁盘命令队列中并进行重新排 序的过程,输入输出也没有改善。
在JP-A2001-236744 (Kokai)中,当在磁盘上读写数据失败了 ,需 要进行重试的时候,在这期间搜寻可执行的命令。采用这种方法,像JP-A 2001-100935 (Kokai) —样,导致写错误的数据的磁盘写入是必不可少 的,由此,写错误的代价不一定减小。

发明内容
根据本发明的一个方面,提供一种硬盘驱动器,包括
圆盘状存储介质,配置为能够用来读写数据;
搜寻控制器,配置为基于所请求执行的读命令或写命令来控制磁盘 磁头进行快速搜寻(所述磁盘磁头的高速搜寻)和慢速搜寻(所述磁盘 磁头的低速搜寻)从而对所述数据进行读写;
非挥发性存储器,配置为能够用来读写所述数据;
访问控制器,配置为基于所请求执行的所述读命令或写命令在所述 非挥发性存储器中对所述数据进行读写;
命令接收器,配置为从主机接收用于读写所述数据的所述写命令或
读命令;
判定单元,配置为判定所述搜寻控制器和所述访问控制器中的哪一 个执行所述命令接收器所接收到的命令;
第 一命令存储区,用来存储判定为由所述搜寻控制器来执行的写命 令和读命令;
第二命令存储区,用来存储判定为由所述访问控制器来执行的写命
令和读命令;
第 一选择单元,用来从所述第二命令存储区中选择命令并请求所述
访问控制器执行所选择的命令;
使用情形探测单元,用来探测所述非挥发性存储器的使用情形;
第二选择单元,用来
当所述使用情形为"低"时,从所述第一命令存储区中所存储 的写命令和读命令中选择能使所述磁盘磁头最快地定位在写或读
的开始位置处的命令,假设所ii^盘磁头对所述写命令进行快速搜 寻而对所述读命令进行慢速搜寻,以及
如果所选择的命令是所述写命令则通过指定所述快速搜寻来请 求所述搜寻控制器执行所选择的命令,而如果所选择的命令是所述 读命令则通过指定所述慢速搜寻来请求所述搜寻控制器执行所选 择的命令;
写错误处理单元,用来在所述第二选择单元所请求的所述写命令的 执行期间探测写错误,并在所述第二命令存储区中存储用于对写入失败 的数据进行写入的写命令;以及
第三选择单元,用来
当所述非挥发性存储器的使用情形为"高"时,从所述第一命令
存储区中所存储的写命令和读命令中选择能使所述磁盘磁头最快地
定位在写或读的开始位置处的命令,假设所述磁盘磁头进行慢速搜
寻,以及
通过指定所述慢速搜寻来请求所述搜寻控制器执行所选择的命令。
根据本发明的另一方面,提供一种含有能够用来读写数据的圆盘状 存储介质和能够用来读写数据的非挥发性存储器的硬盘驱动器中所使用
的命令执行方法,该方法包括
从主机接收用于读或写所述数据的写命令或读命令;
判定所述圆盘状存储介质和所述非挥发性存储器中的哪一个用来执 行所述写命令或所述读命令;
当判定为所述圆盘状存储介质时在第 一命令存储区中存储所述写命 令或所述读命令,当判定为所述非挥发性存储器时则在第二命令存储区 中存储所述写命令或所述读命令;
探测所述非挥发性存储器的使用情形;
当所述使用情形为"低"时,从所述第一命令存储区中所存储的写 命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头对所述写命令进行快速搜寻而对所述读命 令进行慢速搜寻;
当所选择的命令是所述写命令时,通过所述快速搜寻来执行所选择 的命令,而当所选择的命令是所述读命令时则通过所述慢速搜寻来执行所选择的命令;
当在所述写命令的执行期间探测到写错误时,在所述第二命令存储 区中存储用于对写入失败的数据进行写入的写命令;
当所述非挥发性存储器的使用情形为"高,,时,从所述第一命令存 储区中所存储的写命令和读命令中选择能使所述磁盘磁头最快地定位在 写或读的开始位置处的命令,假设所述磁盘磁头进行慢速搜寻;以及
通过所述慢速搜寻来执行所选择的命令。


图1是一个方框图,显示了本发明的一个实施例所述的硬盘驱动器
(HDD)的配置;
图2是一个方框图,显示了图1所示的HDD的详细配置;
图3是一个流程图,用于说明接收了写命令时要执行的处理过程;
图4是一个流程图,用来说明图3中的S12的细节;
图5是一个流程图,用来说明接收了读命令时要执行的处理过程;
图6是一个流程图,用来说明开始访问磁盘6时要执行的处理过程;
图7说明了磁头和请求数据之间所形成的夹角;
图8显示了最短访问时间和搜寻时间;
图9说明了快速重新排序;
图10是一个流程图,显示了写错误处理过程的流程;
图ll说明了对写失败的数据的探测的例子;
图12说明了对写失败的数据的探测的例子;
图13是一个流程图,显示了读错误处理过程的流程;
图14说明了重新排序的效果;
图15说明了 STF (最短时间优先)算法;
图16说明了正常搜寻和快速搜寻;
图17说明了写错误的代价;以及
图18显示了单一命令队列。
具体实施例方式
图1是一个方框图,显示了本发明的一个实施例所述的石更盘驱动器 (HDD)的配置。HDD 2含有磁盘6和非挥发性存储器8作为存储器件。 主机1发布读/写命令到HDD 2中的流程控制单元3。当在磁盘6上执行 读/写命令时,流程控制单元3将接收到的读/写命令发布到磁盘接口 5, 而当在非挥发性存储器8上执4讀/写命令时,则将接收到的读/写命令发 布到非挥发性存储器接口 7。图1中的宽箭头表示总线。如果从主机l中 发布的命令是读命令,那么该读命令所要求的数据就M盘6或非挥发 性存储器8读入到闪存4中,并从闪存4转移到主机1中。另一方面,如果从主机1发布的命令是写命令,那么该写命令所要求的数据被存储在闪存4中,并被写在磁盘6或非挥发性存储器8中。
图2是一个方框图,显示了图1所示的HDD的详细配置。
从主机1发布的命令由流程控制单元3中的主机接口 (命令接收器、 判定单元(decision unit)) 9接收。如果所接收的命令是写命令,那么, 执行图3中的流程图所示的处理过程。
首先,主机接口 9在闪存4中存储所接收到的写命令(Sll)。主机 接口 9根据主机1的指定、磁盘6的状态以及非挥发性存储器8的状态 决定将写命令所要求的写请求数据(写数据)写入磁盘6和非挥发性存 储器8中的哪个存储器件中(S12)。
所述主机l的指定是指,指定主机1要写入的存储器件。在这种情 形中,写数据被写入所指定的存储器件中。磁盘6的状态包括磁盘6的 转动情况和访问磁盘6的命令数(磁盘命令队列10中的命令数)。当磁 盘6没转动时,需要时间使磁盘6转动。如果对磁盘6的访问比较集中, 那么写完写数据就耗费时间。在这种情形中,不优选写入磁盘6。另外, 非挥发性存储器8的状态包括非挥发性存储器8的剩余存储量以及等待 访问非挥发性存储器8的命令数(非挥发性存储器命令队列11中的命令 数)。所述剩余存储量是减去了存储在非挥发性存储器命令队列11中的 所有写命令所请求数据的大小之和后,非挥发性存储器8上的当前可用的存储量。就是说,非挥发性存储器8的剩余存储量就是在执行了存储 在非挥发性存储器命令队列11中的所有的写命令之后在非挥发性存储器 8上可用的存储量。如果非挥发性存储器8的剩余存储量不足的话,那么 非挥发性存储器8就不是可写的。另外,如果有大量的访问命令的话, 那么写入非挥发性存储器8就耗费时间。在这种情形中,不优选写入非 挥发性存储器8。
考虑到磁盘6的状态和非挥发性存储器8的状态,通过计算写入存 储器件的效率可以决定用于写入的存储器件。如果写入磁盘6中的话, 主机接口 9所接收到的写命令就被存储在磁盘命令队列(第一命令存储
区)10中,如果写入非挥发性存储器8中的话,则存储在非挥发性存储 器8命令队列(笫二命令存储区)11中(S13和S14 )。在图3的例子中, 用于写入的存储器件为磁盘6或非挥发性存储器8中的任何一个,但也 可以在磁盘6和非挥发性存储器8这两者中写入。在这种情形中,通过 将所接收的写数据分开,可将不同的数据写入各存储器件中,或者可以 将相同的数据写入这两个存储器件中。在作出这个决定时,可以使用非 挥发性存储器的快速使用决定功能12,如后面所描述的。另外,磁盘命 令队列10和非挥发性存储器命令队列11可以结合成单一的命令队列。 图18显示了单一命令队列的一个例子。通过在所述单一命令队列中加入 用于识别写目的地是非挥发性存储器8还是磁盘6的写目的地信息,磁 盘访问选择功能14和非挥发性存储器访问选择功能16 (下文描述)可以 从所述单一命令队列中识别由其自身执行的命令。就是说,所述第一命 令存储区和第二命令存储区可以在物理上集成在一起或分开,本发明可 以包括这些情形中的任何一种情形。
图4是一个示范性流程图,用来说明图3中的S12的细节。在S51 中,检查写数据的写目的地是否被指定为非挥发性存储器8。如果写目的 地被指定为非挥发性存储器8 (S51中的"是,,),那么就决定非挥发性存 储器8作为用于写入的存储器件(S52)。如果写目的地没有被指定为非 挥发性存储器8 (S51中的"否"),那么在S53中检查磁盘6是否在转动 (转动磁盘6的马达是开的还是关的(开/关))。如果磁盘6在转动(S53 中的"开"),这就意味着在磁盘6上写入写数据。在S54中,检查用于 磁盘6的命令数(磁盘命令队列10中的命令数)。如果该命令数大于等 于某个指定值,那么检查非挥发性存储器8可否作为用于写入的存储器 件(S55)。另外,在S53中,如果磁盘6没有在转动(S53中的"关"), 那么也检查非挥发性存储器8 ( S55 )。在S55中,检查非挥发性存储器8 的剩余存储量,以决定是否将写数据写入非挥发性存储器8中。如果剩 余存储量大于等于某个指定值,那么就决定使用非挥发性存储器8作为 用于写入的存储器件(S52),而如果剩余存储量小于该指定值,那么就决定使用磁盘6作为用于写入的存储器件(S56 )。在S54中,如果所述 命令数小于所述指定值,那么也决定使用磁盘6作为用于写入的存储器 件(S56 )。
另一方面,例如,如果主机接口 9所接收到的命令是图2中的读命 令,那么就执行图5中的流程图所示的处理过程。首先,检查请求被读 取的数据(读数据)被存储在磁盘6和非挥发性存储器8中的哪一个中 (S21)。如果数据存储在磁盘6中,那么用于读取所需求数据的读命令 就存储在磁盘命令队列10中,如果数据存储在非挥发性存储器8中,那 么所述读命令就存储在非挥发性存储器命令队列11中,或者如果数据被 分开存储在磁盘6和非挥发性存储器8两者之中,则所述读命令就存储 在两个命令队列中(S22)。在执行步骤S21之前,判断所述读数据是否 存在于闪存4中,如果该读数据存在,那么可以将数据转移到主机l中, 而不执行步骤S21-S22。
在开始访问磁盘6时,使用磁盘访问选择功能14和非挥发性存储器 快速使用决定功能12来执行按照图6中的流程图的处理过程。首先,使 用非挥发性存储器快速使用决定功能(使用情形探测单元)12检查非挥 发性存储器8是否能被快速访问(非挥发性存储器8的使用情形是"高" 还是"低")(S31 )。在非挥发性存储器快速使用决定功能12中,作为判 断非挥发性存储器8是否可被快速访问的参考,有两种方法用来估计,(1) 非挥发性存储器8的剩余存储量和(2 )对非挥发性存储器8的访问时间。
(1) 如上所述,所迷非挥发性存储器8的剩佘存储量是减去了存储 在非挥发性存储器命令队列11中的所有写命令的请求数据的大小之和 后,非挥发性存储器8上的当前可用的存储量。如果剩余存储量大于等 于某个指定值,那么就判断为非挥发性存储器是可快速访问的。就是说, 判断为非挥发性存储器8的使用情形为"低"。
(2) 另一方面,可以基于非挥发性存储器命令队列11中所存储的 命令的类型(读还是写)及其数据大小来估计对非挥发性存储器8的访 问时间。例如,假设从非挥发性存储器8中读取每个扇区所需时间为"a",写所需要的时间为"b",非挥发性存储器命令队列11中所存储的读命令 的所要读取的总扇区数为"A",写命令所要写的总扇区数为"B",那么, 执行非挥发性存储器命令队列11中所存储的所有命令所需时间就可以估 计为aA+bB。如果所述估计值小于等于某个特定值,那么就判断为非挥 发性存储器8是可快速访问的。就是说,判断为非挥发性存储器8的使 用情形为"低"。
如上所述,在步骤S31中,通过估计非挥发性存储器8的剩余存储 量或者对非挥发性存储器8的总访问时间,可以判断非挥发性存储器8 是否是可快速访问的。
如果非挥发性存储器8是可快速访问的(S31中的"是"),那么没有 写到磁盘6上的数据就可以马上写入非挥发性存储器8中,即使发生了 写错误也是如此,籍此,磁盘6转动一圏的转动延迟的代价(通常发生 在出现写餘淡的时候)就可以减小。因此,假设进行高速搜寻(快搜寻), 其中写错误的发生率很高但允许进行有效的重新排序,则使用磁盘访问 选择功能(第二选择单元和第三选择单元)14进行重新排序(S32)。另 一方面,如果非挥发性存储器8不是可快速访问的(S31中的"否"),假 设进行常速搜寻(正常搜寻),那么使用磁盘访问选择功能14来进行重 新排序(S36)。正常搜寻是以低速进行磁盘磁头搜寻的慢搜寻的例子。
在常速状态下进行重新排序时(S36),从磁盘命令队列10中所积累 的命令中搜寻可以最快地访问的命令(能够使磁头最快地定位在访问开 始的位置上的命令)。在这种情形中,使用磁头位置、磁盘6上写请求或 读请求数据(请求数据)的首位置(访问开始位置)、以及进行正常搜寻 所花的搜寻时间(从正常搜寻的搜寻时间信息13 (1)中获得),来对每 个命令计算命令的访问时间。在下文中,介绍一个计算访问时间的具体例子。除了时间外,可以计算磁盘6上的角度。
首先,对于存储在磁盘命令队列10中的命令"j"(假设在磁道"j" 上),从磁头位置和请求数据的首位置来计算磁头位置(假设在磁道"i" 上)到磁盘6的中心与请求数据首位置到磁盘6的中心之间所形成的夹
角"θ"、以及磁道到磁道的距离"D",如图7所示。由于磁盘6的角速 度(rotation angle) "ω"是常数,所以,可以从所计算出的角度得到从 磁头位置开始访问所述请求数据所需的最短访问时间(角度xω-Tj),如 图8所示。另一方面,从搜寻时间信息13 (1)中可以得到M道"i" 到磁道"j"(磁道间磁道的距离为"D")进行搜寻所需的时间"Sij",如 图8所示。搜寻信息(搜寻时间信息13 (1)和13 (2))的例子包括变 量"i"和"j"的函数以及通过"i"和"j"可进行检索的表。如果搜寻 时间"Sij,,比最短访问时间"Tj"大(Tj〈Sij),那么在搜寻时间内磁头 就通过了请求数据,从而在最短访问时间"Tj"内不能访问该请求数据。 在这种情形中,通过连续地将磁盘6转动一圈的转动延迟时间加到所述 最短访问时间上(因为在一些情形中,可能发生两圏或多圈转动延迟), 4吏访问时间变成大于所述搜寻时间的最小值。就是说,假设在搜寻期间 磁头移动经过命令"j"的次数为"x",那么访问时间就等Tj+ (磁盘 6转动一圏的转动延迟)xx。以上述方式可以估计开始执行命令"j"的 时间,籍此,可以搜索到能最快执行的命令。考虑到重新排序的计算时 间和定位控制所需的时间(读和写可能具有不同的值),Tj>Sij+a("a" 为所考虑的时间量)则为关于不加入磁盘6的转动延迟时搜寻是否及时 的条件表达式。
另一方面,在采用快速搜寻进行重新排序的情形中(S32),类似正 常搜寻的情况,M盘命令队列10中所积累的命令中搜寻能够最快地访 问的命令。此时,对于写命令,通过从快速搜寻的搜寻时间信息13 (2) 中获得快速搜寻所消耗的搜寻时间来计算访问时间。对于读命令,从正 常搜寻的搜寻时间信息13 (1)中获得正常搜寻所消耗搜寻时间。所以, 在采用快速搜寻进行的重新排序中,需要两种搜寻时间信息,即正常搜 寻的搜寻时间信息13 (1)和快速搜寻的搜寻时间信息13 (2)。
快速搜寻只用于写命令的原因是,写命令可以将数据写在磁盘6和 非挥发性存储器8中的任何一个中。当发生写错误时,写命令可以写入 非挥发性存储器8中,而不是写入磁盘6中,籍此可以减小转动延迟的
代价。另一方面,在读命令的情形中,主机所请求的数据并不总是存储在磁盘6和非挥发性存储器8中。所以,当发生了读错误时,数据并不 是必须从非挥发性存储器8中读出。
考虑一种情形,其中,磁头位于磁道"i"上,读命令所请求读出的 读数据位于磁道'T,上,写命令所请求写入的写数据位于磁道"k"上, 而所述读数据更靠近所池磁头,如图9所示。在这种情形中,由于对于 读命令不使用快速搜寻,所以,对于要定位在读数据上的磁头,会有一个转动一圏的额外的转动延迟。另一方面,对于写数据进行快速搜寻, 因为该磁头能在移动通过所述数据前完成移动,所以没有转动延迟。因 此,在图9的情形中,当进行快速重新排序时,选择写命令。
如果在S32中使用快速搜寻进行的重新排序所选择的命令为写命令 (S33中的"否"),那么,检查该写命令的执^f亍开始时间(访问开始时间) 是否等于以正常搜寻来访问该写命令时的执行开始时间(S34)。就是说,检查采用快速搜寻时对该写命令的访问时间是否等于采用正常搜寻时对 该写命令的访问时间。这是因为,对于使用快速搜寻进行的重新排序所 选择的命令不一定进行快速搜寻。如果采用正常搜寻没有改变访问时间(S34中的"是"),就使用正常搜寻进行访问,而不是采用写4^发生率 很高的快速搜寻。
如果决定进行正常搜寻(S31中的"否",S33中的"是"或者S34 中的"是"),搜寻控制器17通过参考正常搜寻的搜寻概况信息15 (1) 来进行磁头搜寻(S37)。另一方面,如果决定进行快速搜寻(S34中的
"否"),搜寻控制器17通过参考快速搜寻的搜寻概况信息15 (2)来进 行磁头搜寻(S35 )。由于搜寻控制器17进行至少两种搜寻(正常搜寻和 快速搜寻),所以需要两种搜寻概况信息,即正常搜寻的搜寻概况信息15(1)和快速搜寻的搜寻概况信息15 (2 )。在S35中的快速搜寻和在S37 中的正常搜寻中,可以进行准时(Just-in-time )搜寻控制,以减小搜寻 完成时间的浮动并抑制写错误的发生。准时搜寻控制包括,调整搜寻速 度4吏搜寻完成后的转动延迟时间最小化。众所周知,这种控制可以减小功耗(参考JP-A 2000-40317 (Kokai))。这里,搜寻概况信息简短地描 述如下。磁头搜寻控制通常包括,通过为磁头所处的磁道与目标磁道之 间的磁道到磁道的距离设置目标速度来进行反馈控制。就是说,在搜寻 期间,搜寻控制器17根据磁道到磁道的距离来增加或减小搜寻速度,使 之变成目标速度。当由磁道到磁道的距离获得目标速度时,使用搜寻概 况信息。所述搜寻概况信息可以作为表来保存,该表存储有与磁道到磁 道的距离相关的目标速度、以磁道到磁itif巨离为变量的产生目标速度的 函数、或者该函数的系数信息(例如,参考JP-A9-73618 (Kokai))。
通过S35中的快速搜寻或S37中的正常搜寻,磁头被置于目标磁道 (图8中的磁道"j")上。在等待通过转动延迟使请求数据直接置于磁头 之下后,对数据进行读取或写入(S38 )。在读命令的情形中,读数据被 存储在闪存4中,并开始将数据传送到主机l中。在写命令的情形中, 当写请求数据的写入结束时该命令的执行也就完成了 。
在S38中,如果在写入磁盘6期间磁盘接口 5探测到一个写入终止 的信号(写错误信号)(写错误发生),那么立即停止写过程并执行写错 误处理过程。当写入终止信号产生时,就能看到使写入终止的现象。对 于错误的发生而言,有定位控制错误(其中不能将磁头控制到正确的位 置上)、由探测到冲击或者电源发生中断等外部因素引起的错误、或者由 于磁盘6上的缺陷而产生的错误(其中在磁盘6上不能正常进行读或写)。
图10是一个流程图,显示了写错误处理过程的流程。在S41中,探 测到写入失败的数据。在探测写入失败的数据时,希望根据写请求数据 的大小来执行不同的处理过程。具体说,当写错误发生时,如果写错误 发生位置在写数据的尾部附近,那么从写错误发生位置到写数据尾部的 一段数据被探测为写入失败的数据,如图11所示。另一方面,当写数据 的大小较大时,或者当具有连续地址的若干写请求连续产生时(批量处 理多个具有连续地址的写命令),在磁头4皮定位在写数据的尾部之前将错 误放弃,并重新开始写入,这是因为从写错误发生位置到写数据的尾部 距离很长,如图12所示。磁盘接口 5等待M盘6发送来的写入能够进 行的信号,并在能够进行写入时重新开始写入。此时,从写错误发生的 位置到重新开始写入的位置的一段数据被探测为写入失败的数据。
在S42中,判断错误发生的原因是否是由于磁盘6的缺陷所致。如 果,发生的原因是由于磁盘6的缺陷所致(S42中的"是"),那么执行 重试过程。在重试过程中,数据被再次写入相同的地址,并检查磁盘6 上的这个位置是否是有缺陷的。所以,每次进行重写时,都有磁盘6转 动一圏所产生的转动延迟。如果磁盘6被判断为是有缺陷的,那么磁盘6 上的这个位置就净皮标记为有缺陷扇区,并且将数据存储在另 一个位置处。 所述另 一个位置可以在磁盘6和非挥发性存储器8中的任何一个内。
如果判断出错误发生的原因不是由于磁盘6的缺陷所致(S42中的 "否"),那么,由非挥发性存储器快速使用决定功能12再次检查非挥发 性存储器8是否是可快速访问的(S43)。如果非挥发性存储器8是可快 速访问的(S43中的"是"),那么对S41中探测到的写入失败的数据进行 写入的写命令被存储在非挥发性存储器命令队列11中(S45)。就是说, 磁盘接口 5具有写错误处理单元,用来产生对写入失败的数据进行写入 的写命令,并且,如果磁盘6发生写餘溪,则将所产生的写命令存储在 非挥发性存储器命令队列11中。另一方面,如果在这种情形中非挥发性 存储器8不是可快速访问的(S43中的"否"),那么,对写入失败的数据 进行写入的写命令将被存储在磁盘命令队列10中(S44)。这里,使用有 关非挥发性存储器8是否是可快速访问的判断结果(在图6中的S31所 进行的),可以省略S43中的再检查步骤。就是说,如果在S31中判断出 非挥发性存储器8是可快速访问的,那么,操作过程就直接从S42前进 到S45,否则的话,操作过程就直接从S42前进到S44。
在图6中,在S38中的读取期间如果接收到读取终止(read disabled ) 信号(读错误信号)(读错误发生了 ),那么立即停止读过程,籍此,执 行读错误处理过程。与写错误类似,当产生了读取终止信号时,就能看 到使读取终止的现象,籍此,可以探测到定位控制错误、外部因素错误、 和磁盘缺陷错误。图13显示了读错误处理过程的流程图。探测读取失败的数据(S51),并判断读取错误的原因是否是磁盘的缺陷(S52)。如果 有可能是磁盘6上的缺陷(S52中的"是"),那么执行重试过程(S54 )。 在该重试过程中,再次读取请求数据。如果不能读取请求数据的话,将 读取错误通知主机1。如果判断出读取错误的原因不是磁盘6上的缺陷 (S52中的"否"),那么对读取失败的数据进行读取的读命令就被存储在 磁盘命令队列10中(S53 )。
返回图2,非挥发性存储器访问选择功能(第一选择单元)16从非挥发性存储器命令队列11中所存储的命令中选择要执行的命令,并将所 选择的命令发送到非挥发性存储器接口 (访问控制器)7。非挥发性存储 器接口 7执行所接收到的命令,以在非挥发性存储器8中进行数据的读 取和写入。采用非挥发性存储器访问选择功能16的命令选择方法包括, 按照各命令在非挥发性存储器命令队列11中存储的顺序选择这些命令, 或者按照读取各个命令的顺序选择这些命令(高处理速度)。如果执行读 命令,那么将读数据存储在闪存4中,并开始将该数据发送到主机1中。 如果执行写命令,那么当对写请求数据的写入结束时命令的执行也就完 成了。
为了释放非挥发性存储器8中的空间,可以执行将存储在非挥发性 存储器8中的数据写入磁盘6的处理过程。这个过程希望是在对输入输 出有较小的影响时执行。例如,当磁盘命令队列IO和非挥发性存储器命 令队列11中没有存储命令时,执行这个过程。在这个过程中,从非挥发 性存储器8中将希望写入磁盘6的数据读入闪存4中。此时,可以通过将读命令寄存在非挥发性存储器命令队列11中来读取数据。然后,将闪 存4中的所述读数据写到磁盘6上。此时,可以将写命令存储在磁盘命 令队列10中。
权利要求
1.一种硬盘驱动器,包括圆盘状存储介质,配置为能够用来读和写数据;搜寻控制器,配置为用来基于所请求执行的读命令或写命令来控制磁盘磁头进行高速地搜寻所述磁盘磁头的快速搜寻,和低速地搜寻所述磁盘磁头的慢速搜寻,从而对所述数据进行读或写;非挥发性存储器,配置为能够用来读和写所述数据;访问控制器,配置为基于所请求执行的所述读命令或写命令在所述非挥发性存储器中对所述数据进行读或写;命令接收器,配置为从主机接收用于读写所述数据的所述写命令或读命令;判定单元,配置为用来判定所述搜寻控制器和所述访问控制器中的哪一个执行所述命令接收器所接收到的命令;第一命令存储区,配置为用来存储被判定为由所述搜寻控制器来执行的写命令和读命令;第二命令存储区,配置为用来存储被判定为由所述访问控制器来执行的写命令和读命令;第一选择单元,配置为用来从所述第二命令存储区中选择命令并请求所述访问控制器执行所选择的命令;使用情形探测单元,配置来探测所述非挥发性存储器的使用情形;第二选择单元,配置为用来当所述使用情形为“低”时,从所述第一命令存储区中所存储的写命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头对所述写命令进行快速搜寻而对所述读命令进行慢速搜寻,以及如果所选择的命令是所述写命令,则通过指定所述快速搜寻来请求所述搜寻控制器执行所选择的命令,而如果所选择的命令是所述读命令,则通过指定所述慢速搜寻来请求所述搜寻控制器执行所选择的命令;写错误处理单元,配置为在所述第二选择单元所请求的所述写命令的执行期间探测写错误,并在所述第二命令存储区中存储用于对写入失败的数据进行写入的写命令;以及第三选择单元,配置为用来当所述非挥发性存储器的使用情形为“高”时,从所述第一命令存储区中所存储的写命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头进行慢速搜寻,以及通过指定所述慢速搜寻来请求所述搜寻控制器执行所选择的命令。
2. 根据权利要求l所述的驱动器,其中,当所述写错误处理单元探测到写错误时,所述使用情形探测单元探 测所述非挥发性存储器的使用情形;以及当所述非挥发性存储器的使用情形为"低,,时,所述写错误处理单 元在所述第二命令存储区中存储用于对所述写入失败数据进行写入的写 命令,并且当所述非挥发性存储器的使用情形为"高"时,在所述第一 命令存储区中存储用于对写入失败数据进行写入的写命令。
3. 根据权利要求l所述的驱动器,其中,所述使用情形探测单元探测剩余存储量作为所述非挥发性存储器的 使用情形,所述剩余存储量是减去了所述第二命令存储区中的各个写命 令所请求写入的数据总量后的所述非挥发性存储器上的可用存储量,以 及当所述剩余存储量大于等于第 一 阈值时,所述第二选择单元4故出所 述使用情形为"低"的判断。
4. 根据权利要求2所述的驱动器,其中,所述使用情形探测单元探测剩余存储量作为所述非挥发性存储器的 使用情形,所述剩余存储量是减去了所述第二命令存储区中的各个写命 令所请求写入的数据总量后的所述非挥发性存储器上的可用存储量,以 及当所述剩余存储量大于等于第一阈值时,所述写错误处理单元做出 所述使用情形为"低"的判断。
5. 根据权利要求l所述的驱动器,其中,所述使用情形探测单元计算执行所述第二命令存储区中的写命令和 读命令所需的总时间作为所述非挥发性存储器的使用情形,以及当所述总时间小于等于第二阈值时,所述第二选择单元做出所述使 用情形为"低"的判断。
6. 根据权利要求2所述的驱动器,其中,所述使用情形探测单元计算执行所述第二命令存储区中的写命令和 读命令所需的总时间作为所述非挥发性存储器的使用情形,以及当所述总时间小于等于第二阈值时,所述写错误处理单元做出所述使用情形为"低"的判断。
7. 根据权利要求l所述的驱动器,其中,如果所选择的命令为所述 写命令的话,所述第二选择单元对所选择的命令比较所述磁盘磁头进行入的开始时间,并当这些开始时间彼此相等时为所述搜寻控制器指定所 述慢速搜寻。
8. 根据权利要求l所述的驱动器,其中,所述写错误处理单元探测 所述写命令所请求写入的数据中接在发生错误的位置之后的数据作为所 述写入失败数据。
9. 根据权利要求l所述的驱动器,其中,如果所述写错误发生在所述写命令的执行期间的话,所述搜寻控制 器一直等待直到该写错误被放弃,并且如果该错误,M弃了则重新开始 写入,以及所述写错误处理单元探测所述写命令所请求写入的数据中从错误发 生的位置到写入重新开始的位置之间的数据作为所述写入失败数据。
10. 根据权利要求1所述的驱动器,其中,所述判定单元使用下列内容中的至少一项内容来决定所述搜寻控制器和所述访问控制器中的哪一个执行所述命令接收器所接收到的命令驱动和转动所述圆盘状存储 介质的磁盘马达的开/关状态、所述第一命令存储区中的命令数、和剩余 存储量,即减去了所述第二命令存储区中的写命令所请求写入的数据总 量后的所述非挥发性存储器上的可用存储量。
11.硬盘驱动器中所使用的命令执行方法,该硬盘驱动器含有能够 用来读写数据的圆盘状存储介质和能够用来读写数据的非挥发性存储器 的,该方法包括从主机接收用于读或写数据的写命令和读命令;判定所述圆盘状存储介质和所述非挥发性存储器中的哪一个来执行 所述写命令或所述读命令;当判定为所述圆盘状存储介质时在第 一命令存储区中存储所述写命 令或所述读命令,当判定为所述非挥发性存储器时则在第二命令存储区 中存储所述写命令或所述读命令;探测所述非挥发性存储器的使用情形;当所述使用情形为"低"时,从所述第一命令存储区中所存储的写 命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头对所述写命令进行快速搜寻而对所述读命 令进行慢速搜寻;当所选择的命令是所述写命令时,通过所述快速搜寻来执行所选择 的命令,而当所选择的命令是所述读命令时则通过所述慢速搜寻来执行 所选择的命令;当在所述写命令的执行期间探测到写错误时,在所述第二命令存储区中存储用于对写入失败的数据进行写入的写命令;当所述非挥发性存储器的使用情形为"高"时,从所述第一命令存储区中所存储的写命令和读命令中选择能使所述磁盘磁头最快地定位在 写或读的开始位置处的命令,假设所述磁盘磁头进行慢速搜寻;以及 通过所述慢速搜寻来执行所选择的命令。
全文摘要
提供一种命令执行方法,该方法包括,探测非挥发性存储器的使用情形;当所述使用情形为“低”时,从若干写命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头对所述写命令进行快速搜寻而对所述读命令进行慢速搜寻;当所述非挥发性存储器的使用情形为“高”时,从若干写命令和读命令中选择能使所述磁盘磁头最快地定位在写或读的开始位置处的命令,假设所述磁盘磁头进行慢速搜寻。
文档编号G06F3/06GK101206554SQ200710198870
公开日2008年6月25日 申请日期2007年12月14日 优先权日2006年12月15日
发明者中村博昭, 丸地康平, 吉田充伸, 秋叶敏克, 高仓晋司 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1