在等待时段期间记录多个码字集的制作方法

文档序号:6768392阅读:226来源:国知局
专利名称:在等待时段期间记录多个码字集的制作方法
技术领域
本发明总地来说涉及在磁带介质上记录数据,具体地涉及改善在数据回读期间恢复码字对的概率。
背景技术
在传统的向磁带介质记录数据的过程中,写到磁带的最小单位是数据集(Data kt)。数据集包括两种类型的数据用户数据和关于数据集的管理信息,后者位于数据集信息表(DSIT)中。所有数据都由纠错码(ECC)保护以最小化由于错误或缺陷导致的数据丢失。数据集包括若干子数据集,每个子数据集包含按行设置的数据。子数据集行可以包含用户数据或者包含DSIT。如图1所示,每行由两个交错字节序列构成。为每行的偶数字节和奇数字节分别计算第一级别的ECC (ClECC)。所得到的ClECC偶数和奇数奇偶校验字节也以交错方式被附加到相应的行。ECC保护的行是码字对(Codeword Pair, CWP)。偶数字节形成偶数Cl码字,奇数字节形成奇数Cl码字。为每列计算第二级别的ECC(C2ECC),所得到的C2ECC奇偶校验字节被附加到相应列。ECC保护的列是C2码字。当子数据集受到Cl和C2ECC这样的保护时,是写到磁带的最小ECC保护的单位。 每个子数据集相对于ECC是独立的;也就是说,一个子数据集中的错误仅影响该子数据集。 任何ECC算法的功能取决于奇偶校验字节的数量并以其校正能力来表示。对于为Cl码字计算的给定数量的ClECC奇偶校验字节,可以校正该码字中最多Kl个错误。此外,对于为 C2码字计算的给定数量的C2ECC奇偶校验字节,可以校正该C2码字中最多K2个错误。应当理解,同一子数据集中的多个错误可能压倒(Overwhelm)Cl或C2校正功能的能力达到这样的程度,即,当读取数据时发生错误。错误可能由非常小的事件引起,例如小的粒子或小的介质缺陷。错误也可能由更大事件引起,例如划痕、跟踪误差或机械原因。为了减小单个大的错误影响单个子数据集中多个码字的可能性,某些写入方法将每个子数据集的码字沿着并穿过磁带表面放置得尽可能远。因此单个错误必须影响来自同一子数据集的多个码字才能使ECC校正能力被压倒。对于多磁道记录格式,来自同一子数据集的码字的空间分隔减小了风险,并且以下述方式实现。对于被同时记录的一组磁道中的每个磁道,通过组合来自一个子数据集的码字对和来自一个不同的子数据集的码字对形成码字四联组(Codeword Quad,CQ)。所得到的CQ被写到多个记录的磁道之一上。以类似方式,通过组合码字对,为所有剩余的磁道形成CQ,所有的码字对来自不同的子数据集。同时被写入的CQ群组称为CQ集(CQ set)。例如,在16磁道记录格式中,一个CQ集中有16个CQ,包括32个码字对。如果在数据集中有64个子数据集,那么在需要记录来自给定子数据集的第二码字对之前可以记录两个CQ集。图2显示了记录在磁带上的数据集的一部分。阴影单元表示从同一子数据集取得的8个码字对的行号。箭头200表示码字对沿着磁道的纵向分隔,箭头202表示跨磁道的横向分隔。应理解,大的缺陷必须横跨多个阴影单元,才能压倒任一子数据集中的ECC。

发明内容
本发明提供一种向磁带写数据的方法。该方法包括从主机接收数据、建立子数据集、计算Cl和C2ECC、形成码字四联组(CQ)集、向磁带写开始数据集分隔符(Data Set Separator, DSS)、向磁带写CQ集的多个邻接实例、以及写结束DSS。本发明还包括可编程的控制器可用的计算机可读介质的计算机程序产品,具有嵌入其中的计算机可读程序码, 用于向磁带写数据。计算机程序产品包括使控制器执行上述步骤的计算机可读程序码。本发明还提供一种用于向磁带写数据的磁带驱动器。该磁带驱动器包括接口,通过该接口与主机交换数据和指令;写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送该磁带经过该读取头和写入头。该磁带驱动器还包括控制器,用于控制该接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机。该控制器用来根据从主机接收的数据建立子数据集;计算Cl和C2ECC ;形成CQ集;生成要由写入头记录到磁带上的开始DSS;指示(direct)写入头将该CQ集的多个邻接实例记录到磁带上;以及生成要由写入头记录到磁带上的结束DSS。本发明还提供一种用来向磁带写数据的记录系统逻辑。该记录系统逻辑包括接口,通过该接口与主机交换数据和指令;写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送该磁带经过该读取头和写入头。该记录系统逻辑还包括控制器,用于控制该接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机,该控制器包括用于根据从主机接收的数据建立子数据集的逻辑;用于为子数据集计算Cl和C2ECC的逻辑;用于形成CQ集的逻辑;用于生成要记录到磁带上的开始DSS 的逻辑;用于将该CQ集的多个邻接实例记录到磁带上的逻辑;以及用于在该磁带上记录结束DSS的逻辑。从第一方面来看,本发明提供一种向磁带写数据的方法,包括从主机接收数据; 建立子数据集;计算Cl和C2ECC;形成码字四联组(CQ)集;向磁带写开始数据集分隔符 (DSS);向磁带写CQ集的多个邻接实例;以及写结束DSS。优选地,本发明提供一种方法,其中写该CQ集的多个邻接实例的步骤包括写该 CQ集的第一实例;确定该CQ集的第一实例是否已经被读取验证;如果该CQ集的第一实例未被读取验证,则写该CQ集的另一实例;以及返回到确定步骤;如果该CQ集的第一实例已经被读取验证,则查明在该CQ集的第一实例中是否检测到错误;如果检测到错误,则 重写该CQ集;以及返回到确定步骤;如果未检测到错误,则写结束DSS。优选地,本发明提供一种方法,还包括跨该磁带的多个磁道横向地分隔该CQ集的实例。优选地,本发明提供一种方法,其中写该CQ集的多个邻接实例的步骤包括写该 CQ集的第一实例;向主机发送“记录完成”信号;确定是否从主机接收到新数据;如果未从主机接收到新数据,则写该CQ集的另一实例;以及返回到确定步骤;如果从主机接收到新数据,则写结束DSS。优选地,本发明提供一种方法,还包括轮转(rotate)跨该磁带的多个磁道横向分隔该CQ集的实例。
优选地,本发明提供一种方法,其中写该CQ集的多个邻接实例的步骤包括确定该CQ集的第一实例是否已经被读取验证;如果该CQ集的第一实例未被读取验证,则写该 CQ集的另一实例;以及返回到确定步骤;如果该CQ集的第一实例已经被读取验证,则查明该CQ集的第一实例中是否检测到错误;如果检测到错误,则重写该CQ集;以及返回到第一确定步骤;如果未检测到错误,则向主机发送“记录完成”信号;确定是否从主机接收到新数据;如果未从主机接收到新数据,则写该CQ集的另一实例,以及返回到第二确定步骤;如果从主机接收到新数据,则写结束DSS。优选地,本发明提供一种方法,还包括轮转跨该磁带的多个磁道横向分隔该CQ集的实例。从另一方面看,本发明提供一种用于向磁带写数据的磁带驱动器,包括接口,通过该接口与主机交换数据和指令;写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送该磁带经过该读取头和写入头;以及控制器, 用于控制该接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机,该控制器用来根据从主机接收的数据建立子数据集;计算Cl和C2ECC ;形成码字四联组(CQ)集;生成要由写入头记录到磁带上的开始数据集分隔符(DSS);指示写入头记录该CQ集的多个邻接实例到该磁带上;以及生成要由写入头记录到磁带上的结束DSS。优选地,本发明提供一种磁带驱动器,其中当控制器指示写入头向磁带记录CQ集的多个邻接实例时,还用来执行指示写入头记录该CQ集的第一实例;确定该CQ集的第一实例是否已经被读取验证;如果该CQ集的第一实例未被读取验证,则指示写入头记录该 CQ集的另一实例;以及返回到确定步骤;如果该CQ集的第一实例已经被读取验证,则查明在该CQ集的第一实例中是否检测到错误;如果检测到错误,则指示写入头重新记录该 CQ集;以及返回到确定步骤;如果没有检测到错误,则指示写入头记录结束DSS。优选地,本发明提供一种磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。优选地,本发明提供一种磁带驱动器,其中当该控制器指示写入头记录该CQ集的多个邻接实例时,该控制器还用来指示写入头记录该CQ集的第一实例;发送“记录完成” 信号到主机;确定是否从主机接收到新数据;如果未从主机接收到新数据,则指示写入头记录该CQ集的另一实例;以及返回到确定步骤;如果从主机接收到新数据,则指示写入头记录结束DSS。优选地,本发明提供一种磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。优选地,本发明提供一种磁带驱动器,其中当该控制器指示写入头记录该CQ集的多个邻接实例时,该控制器还用来确定该CQ集的第一实例是否已经被读取验证;如果该 CQ集的第一实例未被读取验证,则指示写入头记录该CQ集的另一实例,以及返回到确定步骤;如果该CQ集的第一实例已经被读取验证,则查明该CQ集的第一实例中是否检测到错误;如果检测到错误,则指示写入头重新记录该CQ集;以及返回到第一确定步骤;如果未检测到错误,则发送“记录完成”信号到主机;确定是否从主机接收到新数据;如果未从主机接收到新数据,则指示写入头记录该CQ集的另一实例;以及返回到该第二确定步骤;如果从主机接收到新数据,则指示写入头记录结束DSS。优选地,本发明提供一种磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。从另一方面看,本发明提供一种用于向磁带记录数据的记录系统逻辑,包括接口,通过该接口与主机交换数据和指令;写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送该磁带经过该读取头和写入头;以及控制器,用于控制该接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机,该控制器包括用于根据从主机接收的数据建立子数据集的逻辑;用于为子数据集计算Cl和 C2ECC的逻辑;用于形成码字四联组(CQ)集的逻辑;用于生成要记录到磁带上的开始数据集分隔符(DSS)的逻辑;用于记录该CQ集的多个邻接实例到该磁带上的逻辑;以及用于在该磁带上记录结束DSS的逻辑。优选地,本发明提供一种记录系统逻辑,其中用于记录该CQ集的多个邻接实例到该磁带的逻辑包括用于记录该CQ集的第一实例的逻辑;用于确定该CQ集的第一实例是否已经被读取验证的逻辑;如果该CQ集的第一实例未被读取验证,则用于记录该CQ集的另一实例的逻辑;以及用于返回到确定步骤的逻辑;如果该CQ集的第一实例已经被读取验证,则用于查明该CQ集的第一实例中是否检测到错误的逻辑;如果检测到错误,则用于重新记录该CQ集的逻辑,以及用于返回到确定步骤的逻辑;如果未检测到错误,则用于记录结束DSS的逻辑。优选地,本发明提供一种记录系统逻辑,还包括用于跨该磁带的多个磁道横向地分隔该CQ集的实例的逻辑。优选地,本发明提供一种记录系统逻辑,其中用于记录该CQ集的多个邻接实例的逻辑包括用于记录该CQ集的第一实例的逻辑;用于发送“记录完成”信号到主机的逻辑; 用于确定是否从主机接收到新数据的逻辑;如果未从主机接收到新数据,则用于记录该 CQ集的另一实例的逻辑;以及用于返回到确定步骤的逻辑;如果从主机接收到新数据,则用于记录结束DSS的逻辑。优选地,本发明提供一种记录系统逻辑,还包括用于跨该磁带的多个磁道横向地分隔该CQ集的实例的逻辑。优选地,本发明提供一种记录系统逻辑,其中记录该CQ集的多个邻接实例的逻辑包括用于确定该CQ集的第一实例是否已经被读取验证的逻辑;如果该CQ集的第一实例未被读取验证,则用于记录该CQ集的另一实例;以及用于返回到确定步骤的逻辑;如果该 CQ集的第一实例已经被读取验证,则用于查明该CQ集的第一实例中是否检测到错误的逻辑;如果检测到错误,则用于重新记录该CQ集的逻辑;以及用于返回到第一确定步骤的逻辑;如果未检测到错误,则用于发送“记录完成”信号到主机的逻辑;用于确定是否从主机接收到新数据的逻辑;如果未从主机接收到新数据,则用于记录该CQ集的另一实例的逻辑;以及用于返回到该第二确定步骤的逻辑;如果从主机接收到新数据,则用于记录结束 DSS的逻辑。优选地,本发明提供一种记录系统逻辑,还包括轮转跨该磁带的多个磁道横向分隔该CQ集的实例的逻辑。
从另一方面看,本发明提供一种可编程控制器使用的计算机可读介质的计算机程序产品,该计算机程序产品具有嵌入其中的计算机可读程序代码,用来向磁带写数据,该计算机程序产品包括使控制器从主机接收数据的计算机可读程序代码;使控制器建立子数据集的计算机可读程序代码;使控制器计算Cl和C2ECC的计算机可读程序代码;使控制器形成码字四联组(CQ)集的计算机可读程序代码;使控制器向磁带写开始数据集分隔符 (DSS)的计算机可读程序代码;使控制器向磁带写该CQ集的多个邻接的实例的计算机可读程序代码;以及使控制器写结束DSS的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,其中使控制器写CQ集的多个邻接实例的计算机可读程序代码包括使控制器写该CQ集的第一实例的计算机可读程序代码;使控制器确定该CQ集的第一实例是否已经被读取验证的计算机可读程序代码;如果该CQ集的第一实例未被读取验证,则使控制器写该CQ集的另一实例的计算机可读程序代码;以及使控制器返回到确定步骤的计算机可读程序代码;如果该CQ集的第一实例已经被读取验证, 则使控制器查明在该CQ集的第一实例中是否检测到错误的计算机可读程序代码;如果检测到错误,则使控制器重写该CQ集的计算机可读程序代码;以及使控制器返回到确定步骤的计算机可读程序代码;如果未检测到错误,则使控制器写结束DSS的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,还包括使控制器跨该磁带的多个磁道横向地分隔该CQ集的实例的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,其中使控制器写CQ集的多个邻接实例的计算机可读程序代码包括使控制器写该CQ集的第一实例的计算机可读程序代码;使控制器向主机发送“记录完成”信号的计算机可读程序代码;使控制器确定是否从主机接收到新数据的计算机可读程序代码;如果未从主机接收到新数据,则使控制器写该CQ集的另一实例的计算机可读程序代码;以及使控制器返回到确定步骤的计算机可读程序代码;如果从主机接收到新数据,则使控制器写结束DSS的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,还包括使控制器跨该磁带的多个磁道横向地分隔该CQ集的实例的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,其中使控制器写CQ集的多个邻接实例的计算机可读程序代码包括使控制器确定该CQ集的第一实例是否已经被读取验证的计算机可读程序代码;如果该CQ集的第一实例未被读取验证,则使控制器写该CQ集的另一实例的计算机可读程序代码;以及使控制器返回到确定步骤的计算机可读程序代码;如果该CQ集的第一实例已经被读取验证,则使控制器查明该CQ集的第一实例中是否检测到错误的计算机可读程序代码;如果检测到错误,则使控制器重写该CQ集的计算机可读程序代码;以及使控制器返回到确定步骤的计算机可读程序代码;如果未检测到错误,则使控制器向主机发送“记录完成”信号的计算机可读程序代码;使控制器确定是否从主机接收到新数据的计算机可读程序代码;如果未从主机接收到新数据,则使控制器写该CQ集的另一实例的计算机可读程序代码,以及使控制器返回到第二确定步骤的计算机可读程序代码;如果从主机接收到新数据,则使控制器写结束DSS的计算机可读程序代码。优选地,本发明提供一种计算机程序产品,还包括使控制器跨该磁带的多个磁道横向地分隔该CQ集的实例的计算机可读程序代码。


现在将仅以举例的方式,参考

本发明的实施例,附图中图1显示了 ECC编码的子数据集;图2显示了记录在16磁道的磁带上的一部分数据集的码字的空间分隔的例子;图3是可以用于实施本发明的磁带驱动器的方块图;图4显示了在16磁道的磁带记录格式中,将来自一个子数据集的全部码字对分配到两个CQ集中的一种方法;图5显示了记录到16磁道的磁带上的4个记录,每个记录小于或等于一个子数据集的数据内容并且需要2个CQ集;图6显示了记录在16磁道的磁带上的8个CQ集,每个对是一个子数据集,其中每个记录的尺寸超过一个子数据集的数据内容的尺寸;图7显示了 2个CQ集和开始及结束DSS模式的短记录的现有技术记录格式的理想化例子;图8显示了短记录的现有技术的记录格式的更实际的例子,其中显示了记录结束 DSS之前的等待时间;图9是本发明方法的一个实施例的流程图;图10是本发明的一个优选实施例的流程图,其中在系统中的写-读取验证等待时间期间记录多个CQ集,该等待时间为5 ;图11显示了在原始写入的CQ集之一中检测到错误后写多个CQ集;图12是本发明的方法的一个优选实施例的流程图,其中在写-读取验证等待时间期间写多个CQ集;图13显示了在写-读取验证等待时间期间写多个CQ集,其中在没有错误的情形下不写第三(最后的)CQl ;图14显示了在写-读取验证等待时间期间写多个CQ集,其中在有错误的情形下不写第三(最后的)CQl ;图15显示了现有技术的记录格式,其中在记录完成信号被发送到主机之后直到从主机收到新的数据,写扩展的结束DSS ;图16显示了本发明的一个优选实施例的格式,其中在记录完成信号发送到主机之后直到从主机接收到新数据的等待时间期间记录多个CQ集;图17是本发明的方法的优选实施例的流程图,其中在记录完成-主机响应等待时间期间写多个CQ集;图18显示了本发明优选实施例的格式,其中在写-读取验证等待时间期间和记录完成信号之后的等待时间期间记录多个CQ集;图19是本发明的方法的优选实施例的流程图,其中在写-读取验证等待时间期间和记录完成-主机响应等待时间期间写多个CQ集。
具体实施例方式本说明书中描述的部件可以实施为包括定制VLSI电路或门阵列的硬件电路,诸如逻辑芯片、晶体管或者其它分立部件的非定制的半导体。一个部件也可以在可编程硬件设备中实施,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。多个部件也可以以软件实施供各种类型的处理器执行。例如,可执行代码的一个特定的部件可以包括计算机指令的一个或多个物理或逻辑块,这些指令例如可以组织为一个对象、过程或功能。然而,特定部件的可执行文件不必物理地位于一处,而是可以包括存储在不同位置的分散的指令,当逻辑地组合到一起时,构成该部件并实现该部件的所述目的。此外,在一个或多个实施例中,所描述的本发明的特征、结构或特点可以任何合适的方式组合。在后面的说明中,提供了大量具体的细节,例如编程、软件组件、用户选择、网络事务、硬件组件、硬件电路、硬件芯片等的示例,以便提供对本发明实施例的全面的理解。 但是本领域技术人员可以认识到,本发明可以在缺少一个或多个具体细节的情况下实施, 或者以其它方法、组件、材料等实施。在其他情况下,公知的组件结构、材料或者操作这里没有详细显示或说明以避免模糊本发明的各方面。这里描述的示意性流程图是逻辑流程图。因此,显示的顺序和标记的步骤仅表明所表示的方法的一个实施例。可以构想与所显示的方法中的一个或多个步骤或若干部分的功能、逻辑或效果等同的其他步骤或方法。此外,使用的格式和符号用来解释该方法的逻辑步骤而不能理解为限定该方法的范围。实际上,箭头或其他连接符仅用于表明该方法的逻辑流程。再有,一特定方法发生的顺序可以严格遵守流程图中显示的相应步骤的顺序,也可以不严格遵守这样的顺序。图3是可以在其中实施本发明的磁带驱动器300的方块图。驱动器300包括接口 302,通过此接口,可以在驱动器300与一个或多个主机10之间交换数据、命令和其他的通信。驱动器300还包括控制器320、读取和写入通道304和306、读取和写入头308和310、 以及至少一个纵向地传送磁带20 (经常装在可移动的盒外壳内)经过读取和写入头308和 310的驱动器电机312,如箭头314所表示的那样。控制器320包括记录系统逻辑322,后者可被编程来执行本发明的步骤或指示执行本发明的步骤。要记录在磁带20上的数据从主机10传送到驱动器300的接口 302。控制器320 指示要发送到写入通道306的数据进行格式化和编码。写入通道然后发送处理过的数据到写入头310,以记录在磁带20的一个或多个磁道上。控制器320还针对磁带20经过读取和写入头308和310的速度和方向来控制驱动器电机312。通常,刚写入的数据由读取头308 读取以验证它是否被精确记录。仍然在控制器320的控制之下,由读取头308从磁带20读取的数据在经接口 302传送到主机10之前由读取通道304解码并进行错误检查。可以理解以上只是磁带驱动器300的操作的简要说明。为了清楚起见,许多详细步骤被省略,并且许多部件未在图3中显示。一种写入方法试图通过以小于数据集的单位写短的用户记录来改善性能。记录被累积到子数据集中,不等到数据集中的所有子数据集都被填充。通过将同一子数据集的所有64个码字对放入邻接的若干CQ集中来执行累积。在16磁道格式中,一个子数据集需要 2个CQ集。以此方式,可以写小得多的对象(子数据集),在某些情况下这可以导致显著的性能改善。但是,该方法损害了纠错码(ECC)的能力,因为该方法将子数据集的所有码字对放置为物理上相互接近,由此使得单个子数据集中的多个码字对更易于发生单个错误事件,例如误跟踪或者大的介质缺陷。因为码字对相互靠近地放置在一起并且可能只有成功记录的码字对的一个验证过的集合,当数据被读取时,可能没有足够数量的有效码字对来成功地重建所记录的数据。图4显示了对于每个子数据集具有64个码字对的16磁道记录格式,将来自一个子数据集的所有码字对(行)分配到两个CQ集中的一种方法。CQ集0和1代表一个数据记录。如先前说明的,码字对之间的纵向和横向分隔是传统写入过程中减小发生错误可能性的关键因素。来自同一 CQ集中同一子数据集的码字对的交替写入显著地减小了传统格式化所提供的码字对之间的纵向和横向分隔。当记录尺寸小于或等于一个子数据集的数据内容时发生最坏情况的数据完整性的损害。在此情况下,记录被放置在一个子数据集中, 该子数据集作为2个相邻CQ集被记录在磁带上。图5显示了 4个记录,每个记录小于或等于一个子数据集的数据内容。每个记录需要2个CQ集。每对CQ集之间(因此每个记录之间)的未指明的分隔由省略符表示。对于错误性能来说,码字到CQjn CQ到磁道的相对分配是不重要的,因为任何码字对中的错误同等地造成整个子数据集可能发生ECC失效。一个或多个CQ集中所有磁道共有的错误将立即压倒ECC。一个CQ集中的多个磁道共有的错误,或者较少磁道但是两个CQ 集共有的错误在前述记录方案中比传统方案将显著地更可能压倒该ECC,传统方案中,码字对广泛地纵向分布并横穿到磁带。当记录尺寸超过一个子数据集的数据内容尺寸时,可以构建额外的子数据集。图 6显示了一个例子,其中记录尺寸至少是1加上3个子数据集的数据内容,并且小于或等于 4个子数据集的数据内容。此例中,8个CQ集被写入,每对是一个子数据集。每对CQ集之间(因此每个记录之间)的未指明的分隔由省略符表示。要写到磁带的数据被格式化以便于读取。如之前说明的,数据内容被放到子数据集中,然后该子数据集的码字对被分配到CQ集。当写到磁带时,一个群组(例如记录或者数据集)内的CQ集被一特殊的容易识别的模式(称为数据集分隔符DSS模式)界定。图7 显示了此格式写短记录700的理想化例子。每个CQ集704A,704B中由一个小的矩形表示出一个码字四联组702A,702B,开始和结束DSS706A,706B包括着(bracket)记录700。使用写-读取验证等待时间但是,在实践中不使用图7中的格式化的理想例子。现代的数据存储设备在写数据之后很快验证该数据。如果检测到错误,则数据被重写。在磁带上,读取头元件通常以一定距离跟着写入头元件。因此,所写入的CQ集在经过读取头元件下面之前可能需要一些时间。这就在写入和验证所写数据的能力之间引入一最小时间。还可以对此时间增加磁带驱动器执行错误检测需要的处理时间。如果数据需要被重写,可能需要额外的时间来准备重写操作。对应于沿着磁带的CQ集被首次写入的点和检测到错误之后可能对其进行重写的位置之间的距离的总时间称为等待时间(latency)。等待时间通常以CQ集度量。例如,如果等待时间是4,并且发现写入的CQ集N有错误,则可将其重写为CQ集N+4。图8显示了当在CQ集0和1中写单个子数据集时的等待时间的例子。因为直到沿着磁带的距离等于 5个CQ集时CQ集0和1才能被读取验证,因此即使数据内容更小,也必须分配至少这个数目的CQ集以便写该子数据集。如果未检测到错误,则如图8所示,以DSS模式终止此写操作。
如果磁带上的最后写入的CQ集与在出现错误的情况下可能重写CQ集的位置之间的区域没有被写入数据,先前写入的数据可能与当前的过程发生干扰,因此这不是好的做法。如果该区域被DSS或者写空闲(writing amble)(非数据)帧填充,那么先前写入的数据将被消除,但是写入数据的恢复不被增强。相反,本发明通过反复地写入该CQ集来填充该区域。先前写入的数据被消除,并且记录该CQ集的额外的实例,由此增加了读取时将成功恢复子数据集中每个码字对的至少一个实例的概率。图9的流程图显示了本发明的方法。由驱动器300从主机10接收数据(步骤 900)。在记录系统逻辑322的指示下,建立子数据集(步骤902),计算Cl和C2ECC符号并附加到子数据集(步骤904)。然后形成码字四联组(步骤906),写入头306将开始DSS记录到磁带20上(步骤908)。不是向磁带20记录CQ集0和1的单个实例并使得等待时间被浪费,而是将CQ集的多个实例记录到磁带20上(步骤910),由此增加了恢复每个码字对的至少一个实例的概率。接下来,将结束DSS记录到磁带20上(步骤912)。图10显示了图9的方法的一个变型。子数据集被写到系统中,等待时间为5。CQ 集0和11000A,1010A是子数据集的第一实例并跟在开始DSS 1020后面。由于等待时间, 直到CQO或CQl的第三实例才能对CQO进行读取验证。根据本发明的这个方面,CQ集对被反复地写入直到第一 CQO和CQl能被读取验证;即,直到等待时间5已经结束。在所显示的系统中,写入了 CQO和CQl的2个额外对1000B,IOlOB0如果CQO和CQl的第一实例 1000A, 1010A没有错误,那么没有此子数据集的额外CQ集被写入,并且写操作以结束DSS模式1020B终止。因此,一共写入子数据集的3个实例,只有第一实例被读取验证。这样,重复CQ集的好处在于任何一个码字对的至少3个实例存在,每个实例纵向至少被分隔一个CQ 集的长度,由此增加了恢复每个码字对的至少一个实例的概率。图10也显示了本发明的另一方面。CQ内的阴影条1002A,1002B,1002C和1012A, 1012B, 1012C显示了特定的码字四联组如何随CQ集的每个实例跨磁道横向“转动”,以防范失效磁道错误。相比之下,传统LTO格式中的码字四联组仅当由于错误而被重写时才被转动。如果如图11所示的那样,在第一次尝试读取验证之后,在第一 CQ01000A或者在第一 CQl 1010A中检测到错误,那么两者都被重写1000D和1010D,并且其后再跟随若干CQ 集重复1000E,1000F和1010E,1010F (如所示例子中的2个),以允许该重写的对的读取验证。因此该子数据集的一共6个实例被写入,其中只有第一和第四个被读取验证,第一验证有一个或多个错误。一旦读取验证操作成功,则写入结束DSS1020B。图12是本发明此方面的流程图。开始DSS被记录到磁带20上(步骤1200),然后CQ集的第一实例被记录(步骤120 。确定CQ集是否已经被读取以便进行验证(步骤 1204)。如果没有,则记录CQ集的另一实例(步骤1202),重复此过程直到CQ集的第一实例被读取验证。如果检测到错误(步骤1206),则CQ集被重新记录(步骤1208),此过程返回以记录CQ集的额外实例(步骤120 直到重新记录的CQ集被读取验证(步骤1204)。如果再次检测到错误(步骤1206),重复此过程。当CQ集被读取验证而没有错误,则记录结束 DSS (步骤1210)。因此,在先前浪费掉的等待时段内记录了 CQ集的多个实例。如果等待时间允许在CQO的第三实例之后进行验证和重写,使得第三CQl不需要被重写,则可以实施本发明此方面的一个变型。这个变型针对没有错误发生的情形而被显示在图13中,并且针对有错误发生的情形而被显示在图14中。使用记录完成-主机响应等待时间如图15所示,在现有的写数据的方法中,当驱动器完成记录的写入并且验证了 CQ 集时,发送信号1500A,1500B到主机以获得另一记录。然后驱动器可以停止或者可以继续写多个DSS 1510A,1510B,直到主机以下一个记录响应。这样,CQ集的写入顺序可以描述为(a)主机发送记录到驱动器以便进行记录;(b)写入开始DSS ; (c)后跟基本CQ集;(d) 驱动器继续写未指明序列直到两个CQ集经过读取头下面;(e)当两个CQ集被验证时,开始终止DSS;以及(f)当CQ集确定地记录到磁带时,磁带驱动器发送“记录完成”信号到主机, 表明成功写入,此时驱动器等待主机发送另一记录以便进行记录。此过程沿着磁带无限重
Μ. ο为了通过使用等待时间来重复CQ集以记录每个码字对的尽可能多的实例,根据本发明的另一方面,驱动器300发送“记录完成”信号到主机和主机10以下一记录来响应之间的等待时间被用于记录CQ集的额外的实例,这样也增加了恢复每个码字对的至少一个实例的概率。如图16和图17的流程图所示,开始DSS1600A被记录到磁带20上(步骤 1700),然后CQ集的第一实例1610A被记录(步骤170 。当CQ集1610A已经被验证时,那么控制器320发送“记录完成”信号(或者其他相当的信号)1602到主机10(步骤1704), 表明CQ集1610A已经被写入并被读取验证。确定是否从主机10接收到新的数据(步骤 1706)。如果否,则记录CQ集的另一实例1610B (步骤1708),重复此过程1610C直到从主机 10接收到新的数据,此时记录结束DSS1600B(步骤1710)。图18和19的流程图显示了利用本发明的读取验证等待时间和记录完成-主机等待时间这两个方面来写CQ集。主机发送记录到驱动器以便进行记录,并且写入开始DSS (步骤1900)。然后基本(初始)CQ集被记录(步骤190 。驱动器继续写CQ集的额外实例直到两个初始CQ集经过读取头下面,满足等待时间读取验证要求(步骤1904)。如果检测到错误(步骤1906),则重新记录基本CQ集(步骤1908),重复此过程直到检测不到错误。当所需数量的CQ集确定无误地写到磁带(步骤1906)时(这个数量可以是取决于系统要求的鲁棒性的任意数量),驱动器发送“记录完成”信号到主机(步骤1910),表明成功写入, 并且驱动器等待主机发送另一记录以便写入。不是写入DSS,驱动器继续写入当前记录的 CQ集的多个实例(步骤1914)直到主机以下一记录响应(步骤1912)并且驱动器已经建立新的写操作,或者直到预定数量的CQ集对已经成功地被读取验证。然后驱动器开始终止 DSS(步骤1916)。此过程沿着磁带无限地重复。因此,根据本发明,每个码字对的实例数被增加并且它们的物理分隔在纵向和横向上也优选地加大,由此带来写入短的磁带记录的优点,同时减小发生误跟踪误差和大缺陷的可能性,并且同时减小对数据可靠性的负面影响。本发明利用否则未被使用的等待时间来这样做,因此不带来任何的性能损害。读取可靠性也得到改善,这是因为每个码字对有额外的实例,并且随着每个重写的实例增加了码字对的物理分隔。因此,本发明通过以下方式改善了 ECC的能力(1)使用写入头和读取头之间的等待时间来记录码字对的多个副本而不是只记录每个码字对的一个实例;(2)继续写入码字对的多个副本直到主机实际上用下一记录来响应而不是从主机请求新的记录,然后终止写入过程;C3)每当码字对被写入时,轮转特定码字对被写入其中的磁道。
应注意,虽然在完全功能的数据存储系统的上下文中说明了本发明,但是本领域的技术人员可以理解本发明的方法能够以指令的计算机可读介质的形式发布和多种形式发布,并且本发明的应用不需考虑实际上用于实现发布的特定类型的信号承载介质。计算机可读介质的例子包括可记录型介质,例如软盘、硬盘驱动器、RAM、CR-ROM和传输型介质。对本发明的说明仅是为了示例和说明的目的,不是穷尽的或者限制于所公开形式的本发明。对本领域的技术人员来说显而易见可以做出许多变型和改变。选择和说明的实施例是为了最好地解释本发明的原理、实际应用,并使本领域技术人员能理解本发明,以便构思具有各种变型的多种实施例能够适合特定应用。此外,虽然针对方法和系统做了以上说明,也可以用包含向磁带写数据的指令的计算机程序产品来满足本领域的需求。
权利要求
1.一种向磁带写数据的方法,包括 从主机接收数据;根据所接收的数据建立子数据集; 根据该子数据集计算Cl和C2ECC ; 形成码字四联组(CQ)集; 向磁带写开始数据集分隔符(DSS); 向磁带写该CQ集的多个邻接实例;以及写结束DSS。
2.根据权利要求1的方法,其中写该CQ集的多个邻接实例的步骤包括 写该CQ集的第一实例;确定该CQ集的第一实例是否已经被读取验证;如果该CQ集的第一实例未被读取验证写该CQ集的另一实例;并且返回到确定步骤;以及如果该CQ集的第一实例已经被读取验证查明在该CQ集的第一实例中是否检测到错误;如果检测到错误重写该CQ集;以及返回到确定步骤;以及如果未检测到错误,写结束DSS。
3.根据权利要求2的方法,还包括跨该磁带的多个磁道横向分隔该CQ集的实例。
4.根据权利要求1的方法,其中写该CQ集的多个邻接实例的步骤包括 写该CQ集的第一实例;向该主机发送“记录完成”信号; 确定是否从主机接收到新数据; 如果未从主机接收到新数据 写该CQ集的另一实例;以及返回到确定步骤;并且如果从主机接收到新数据,写结束DSS。
5.根据权利要求4的方法,还包括轮转跨该磁带的多个磁道横向分隔该CQ集的实
6.根据权利要求1的方法,其中写该CQ集的多个邻接实例的步骤包括 确定该CQ集的第一实例是否已经被读取验证;如果该CQ集的第一实例未被读取验证写该CQ集的另一实例;以及返回到确定步骤;并且如果该CQ集的第一实例已经被读取验证查明在该CQ集的第一实例中是否检测到错误;如果检测到错误重写该CQ集;以及返回到第一确定步骤;并且如果未检测到错误 向该主机发送“记录完成”信号; 确定是否从主机接收到新数据; 如果未从主机接收到新数据 写该CQ集的另一实例;以及返回到第二确定步骤;并且如果从主机接收到新数据,写结束DSS。
7.根据权利要求6的方法,还包括轮转跨该磁带的多个磁道横向分隔该CQ集的实例。
8.一种用于向磁带写数据的磁带驱动器,包括 接口,通过该接口与主机交换数据和指令; 写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送该磁带经过该读取头和写入头;以及控制器,被耦合为控制所述接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机,该控制器用来根据从主机接收的数据建立子数据集; 计算Cl和C2ECC ; 形成码字四联组(CQ)集;生成要由写入头记录到磁带上的开始数据集分隔符(DSS); 指示写入头将该CQ集的多个邻接实例记录到磁带上;以及生成要由写入头记录到磁带上的结束DSS。
9.根据权利要求8的磁带驱动器,其中当该控制器指示写入头将该CQ集的多个邻接实例记录到磁带上时,该控制器还用来指示写入头记录该CQ集的第一实例; 确定该CQ集的第一实例是否已经被读取验证; 如果该CQ集的第一实例未被读取验证 指示写入头记录该CQ集的另一实例;以及返回到确定步骤;并且如果该CQ集的第一实例已经被读取验证 查明在该CQ集的第一实例中是否检测到错误; 如果检测到错误指示写入头重新记录该CQ集;以及返回到确定步骤;并且如果未检测到错误,则指示写入头记录结束DSS。
10.根据权利要求9的磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。
11.根据权利要求8的磁带驱动器,其中当控制器指示写入头记录该CQ集的多个邻接实例时,该控制器还用来指示写入头记录该CQ集的第一实例; 发送“记录完成”信号到主机; 确定是否从主机接收到新数据; 如果未从主机接收到新数据 指示写入头记录该CQ集的另一实例;以及返回到确定步骤;并且如果从主机接收到新数据,则指示写入头记录结束DSS。
12.根据权利要求11的磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。
13.根据权利要求8的磁带驱动器,其中当控制器指示写入头记录该CQ集的多个邻接实例时,该控制器还用来确定该CQ集的第一实例是否已经被读取验证; 如果该CQ集的第一实例未被读取验证 指示写入头记录该CQ集的另一实例;以及返回到确定步骤;并且如果该CQ集的第一实例已经被读取验证 查明在该CQ集的第一实例中是否检测到错误; 如果检测到错误指示写入头重新记录该CQ集;以及返回到第一确定步骤;并且如果未检测到错误 发送“记录完成”信号到主机; 确定是否从主机接收到新数据; 如果未从主机接收到新数据 指示写入头记录该CQ集的另一实例;以及返回到第二确定步骤;并且如果从主机接收到新数据,则指示写入头记录结束DSS。
14.根据权利要求13的磁带驱动器,其中控制器还用来跨该磁带的多个磁道横向地分隔该CQ集的实例。
15.一种用来向磁带写数据的记录系统逻辑,包括 接口,通过该接口与主机交换数据和指令; 写入头,用于将数据记录到磁带上;写入通道,用于处理要由写入头记录的数据;读取头,用于从磁带读取数据;读取通道,用于处理由读取头读取的数据;至少一个驱动电机,用于纵向地传送磁带经过读取头和写入头;以及控制器,被耦合为控制所述接口、写入头、写入通道、读取头、读取通道和至少一个驱动电机,该控制器包括用于根据从主机接收的数据建立子数据集的逻辑; 用于为该子数据集计算Cl和C2ECC的逻辑; 用于形成码字四联组(CQ)集的逻辑;用于生成要记录到磁带上的开始数据集分隔符(DSS)的逻辑; 用于将该CQ集的多个邻接实例记录到磁带上的逻辑;以及用于将结束DSS记录到磁带上的逻辑。
16.根据权利要求15的记录系统逻辑,其中用于将该CQ集的多个邻接实例记录到磁带上的逻辑包括用于记录该CQ集的第一实例的逻辑;用于确定该CQ集的第一实例是否已经被读取验证的逻辑;如果该CQ集的第一实例未被读取验证用于记录该CQ集的另一实例的逻辑;以及用于返回到确定步骤的逻辑;以及如果该CQ集的第一实例已经被读取验证用于查明在该CQ集的第一实例中是否检测到错误的逻辑;如果检测到错误用于重新记录该CQ集的逻辑,以及用于返回到确定步骤的逻辑;以及如果未检测到错误,用于记录结束DSS的逻辑。
17.根据权利要求16的记录系统逻辑,还包括用于跨该磁带的多个磁道横向地分隔该 CQ集的实例的逻辑。
18.根据权利要求15的记录系统逻辑,其中用于记录该CQ集的多个邻接实例的逻辑包括用于记录该CQ集的第一实例的逻辑;用于发送“记录完成”信号到主机的逻辑;用于确定是否从主机接收到新数据的逻辑;如果未从主机接收到新数据用于记录该CQ集的另一实例的逻辑;以及用于返回到确定步骤的逻辑;以及如果从主机接收到新数据,用于记录结束DSS的逻辑。
19.根据权利要求18的记录系统逻辑,还包括用于跨该磁带的多个磁道横向地分隔该 CQ集的实例的逻辑。
20.根据权利要求15的记录系统逻辑,其中用于记录该CQ集的多个邻接实例的逻辑包括用于确定该CQ集的第一实例是否已经被读取验证的逻辑; 如果该CQ集的第一实例未被读取验证 用于记录该CQ集的另一实例的逻辑;以及用于返回到确定步骤的逻辑;以及如果该CQ集的第一实例已经被读取验证用于查明在该CQ集的第一实例中是否检测到错误的逻辑;如果检测到错误用于重新记录该CQ集的逻辑;以及用于返回到第一确定步骤的逻辑;以及如果未检测到错误用于发送“记录完成”信号到主机的逻辑;用于确定是否从主机接收到新数据的逻辑;如果未从主机接收到新数据用于记录该CQ集的另一实例的逻辑;以及用于返回到第二确定步骤的逻辑;以及如果从主机接收到新数据,用于记录结束DSS的逻辑。
21.根据权利要求20的记录系统逻辑,还包括用于轮转跨该磁带的多个磁道横向分隔该CQ集的实例的逻辑。
22.—种计算机程序,包括计算机程序代码,当载入到计算机系统中并被执行时,用来执行根据权利要求1-7任一项的方法的所有步骤。
全文摘要
通过从主机接收数据、建立子数据集、计算C1和C2ECC、形成码字四联组集、向磁带写开始数据集分隔符、向磁带写CQ集的多个邻接实例及写结束DSS执行向磁带写数据。增加每个码字对的实例数,由此实现写短磁带记录的优点并且改善读取可靠性,同时减小发生误跟踪误差和大的缺陷的可能性,并且减小对数据可靠性的负面影响。否则未使用的等待时间被利用,因此不发生性能的下降。
文档编号G11B20/12GK102265347SQ200980152279
公开日2011年11月30日 申请日期2009年12月14日 优先权日2009年1月9日
发明者P·塞格, S·R·本特利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1