检验擦除校正功能的设备和方法

文档序号:6421410阅读:157来源:国知局
专利名称:检验擦除校正功能的设备和方法
技术领域
本发明涉及使用表示错误的位置的指针信息和附加到数据的错误校正代码检验擦除校正功能(即校正在从记录媒体中再现的数据中的错误的功能)的设备和方法。
背景技术
在近年来的磁盘驱动器中,在从盘中读取和解码的数据中的错误通常通过随机校正和擦除校正的组合校正,如在USP 6,119,261(在下文中称为“在先文献”)中所公开的那样。这个文献描述了检测在数据中的错误位置并使用表示该错误位置的信息再执行错误校正的技术,如果随机校正失败的话。指示错误位置的信息是称为擦除指针的指针信息。
使用长指令通过磁盘驱动器可以测试并入在磁盘驱动器中的随机校正功能。长指令主要分为用于指示将数据写到盘的写长指令和指示从盘读数据的读长指令。写长指令用于将由主机指定的数据(一扇区的数据)直接写到盘。在执行写长指令时,抑制产生错误校正代码(ECC)的ECC发生器的操作。ECC数据是用于从数据中检测错误并校正它们的冗余数据。读长指令用于将从盘中读取的数据(一扇区的数据)直接存储到读数据缓冲器而不执行错误校正。在执行读长指令时,抑制校正在读数据中的错误的错误校正电路的操作。
如下文所描述,通过检验随机校正电路是否正确地操作而实现随机校正功能的检查。在主机给磁盘驱动器已经发布了读长指令时,磁盘驱动器执行该指令。结果,包含ECC数据的数据从盘中读取。从该盘中读取的数据由读/写通道解码,然后存储在读数据缓冲器中而不进行误差校正。存储在读数据缓冲器中的数据的一部分被有意地破坏(重写)。部分破坏的数据拷贝到写数据缓冲器中,并写到该盘中。此后,根据正常的读指令执行从该盘中读部分破坏的数据的操作。如果随机的校正电路正确地操作,则必须适当地校正部分破坏的数据。因此,通过校验部分被破坏的数据是否已经正确地校正可以检测是否正确地操作了随机校正电路。
如上文所述,在已有技术中,使用长指令可以检验是否正确地操作了随机校正电路。在另一方面,在没有指针信息的情况下不能检验是否正确地操作了擦除校正电路。在常规的磁盘驱动器中,根据读/写通道输出指针信息。因此,除非从盘中读取满足在读/写通道中的指针产生条件的数据,否则不能检验擦除校正电路的操作。此外,为从读/写通道中输出高度再现性的指针信息,从盘中读取的数据必须包含明显缺陷。甚至存在例如重复数据读以编译指针信息的情况,由此估计校正指针位置。因此,使用随机校正和擦除校正的组合执行错误校正的常规磁盘驱动器没有与使用长指令检验随机校正功能的功能相同类型的检验擦除校正功能的功能(即,擦除校正检验功能)。

发明内容
本发明的一个目的是设定表示错误的位置和擦除校正所需的指针信息,而不管从记录媒体中读取的数据,由此有利于检验擦除校正功能。
根据本发明的一方面,提供一种存储控制器,根据来自主机的读/写指令,该存储控制器控制从记录媒体中读数据或将数据写到记录媒体以及从主机读数据或将数据写到主机的传输。存储控制器包括错误校正代码发生器、擦除指针存储器、错误校正电路、禁止电路和可编程擦除指针发生器。错误校正代码发生器根据要写到记录媒体中的数据产生错误校正代码,该错误校正代码附加到该数据中。擦除指针存储器存储表示存在错误的位置的指针信息,该错误包含在从记录媒体中所读取的数据中。通过使用附加到该数据的错误校正代码和存储在擦除指针存储器中的指针信息,错误校正电路通过擦除校正和随机校正校正从记录媒体中读取的该数据中的错误。在执行来自主机的特殊写指令时,禁止电路禁止错误校正代码发生器将错误校正代码附加到要写到记录媒体中的数据中。可编程擦除指针发生器根据来自主机的擦除指针设定指令在擦除指针存储器中设定指示某一位置作为错误位置的特殊的指针信息,该位置由擦除指针设定指令指定。在擦除指针存储器中设定的特殊指针信息由错误校正电路使用以校正通过执行特殊的写指令要写到记录媒体中和根据来自主机的正常的读指令从其中读取的数据中的错误。


附图1所示为根据本发明的一种实施例的磁盘驱动器的结构的方块图;附图2所示为在附图1中显示的R/W通道12的结构的方块图;附图3所示为在附图1中显示的HDC 13的结构的方块图;附图4所示为用于解释擦除校正结果的特定的实例的视图;附图5所示为说明选择用于检验错误校正功能的数据扇区的过程的流程图;附图6所示为随机校正功能测试的过程的流程图;附图7A和7B所示为擦除校正功能测试的过程的流程图;附图8A所示为在其中重写数据以产生用于擦除校正功能测试的数据的部分;附图8B所示为在其中重写数据以产生用于擦除校正功能测试的数据的部分;和附图8C所示为通过产生擦除校正功能测试的擦除指针EP2所指定的错误位置。
具体实施例方式
参考附图详细地描述本发明的实施例。附图1所示为根据本发明的实施例磁盘驱动器10的结构的方块图。如附图1所示,磁盘驱动器(在下文中称为“HDD”)10主要包括盘盒(在下文中称为“DE”)11、读/写通道(在下文中称为“R/W通道”)12、硬盘控制器(在下文中称为“HDC”)13和CPU 14。DE 11连接到R/W通道12,并执行写信号(记录信号)的接收和读信号(再现信号)的发送。DE 11包括用于记录数据的盘(磁盘媒体)111和头(磁头)112。磁盘111具有两个盘表面,即上面和下面。磁盘111的至少一个磁盘表面形成了用于磁记录数据的记录表面。磁头112对应于磁盘111的记录表面而设置。磁头112将数据写(记录)到磁盘111并从其中读(再现)数据。磁头112是一种由读头和写头(两者都没有示出)形成的复合磁头。读头是例如由磁阻(MR)元件形成的磁阻头(MR头)。写头是由电感型的薄膜元件形成的感应头。DE 11进一步包括旋转磁盘111的主轴马达(在下文中称为“SPM”)113、传动装置114和磁头IC(集成电路)115。传动装置114支撑着磁头112并在磁盘111上径向地移动它。传动装置114包括音圈马达(在下文中称为“VCM”)114a作为它的驱动源。磁头IC 115包括放大从R/W通道12中输送的写信号的写放大器115a和放大通过磁头112所读的读信号的读放大器115b。在附图1中所示的HDD中,为简化描述起见,假设提供单个磁盘111,并且磁头112位于磁盘111的一个侧面上。然而,多个磁盘111可以彼此叠加。此外,磁盘111的每个表面可以是记录表面,而提供相应的磁头112以用于记录表面。
R/W通道12是执行各种信号处理的信号处理装置,比如执行对读信号进行模拟到数字(A/D)转换的处理、对写数据进行编码的处理和对被数字化的读信号进行解码的处理。HDC 13是连接到R/W通道12、CPU 14和主机(主机系统)20的存储控制器。主机20是使用HDD 10的数字装置,比如个人计算机。HDC 13具有用于从主机20接收指令(比如写指令、读指令等)并控制将数据传输到主机20和从其中传输数据的主机接口功能。HDC 13也具有控制通过R/W通道12将数据传输给磁盘111和从磁盘111传输数据的盘控制功能。HDC 13进一步具有产生附加到要写入磁盘111的数据(写数据)的ECC数据和使用附加到其中的ECC数据校正从磁盘111中读的数据中的错误的ECC数据处理功能。通过随机校正和擦除校正的组合执行错误校正。CPU 14是在HDD 10中的主控制器。CPU 14根据存储在只读存储器(ROM,未示)中的控制程序控制DE 11、R/W通道12和HDC 13。CPU 14具体根据来自主机20的指令执行控制以检验HDD 10的擦除校正功能。
附图2所示为R/W通道12的结构。R/W通道12包括模拟前端121、均衡器122、维特比解码器(Viterbi decoder)123和时序恢复控制器124。模拟前端121具有可变增益放大器(VGA)、模拟滤波器和模拟到数字转换器(都没有示出)。通过时序恢复控制器124,模拟到数字转换器的采样时钟与在磁盘111中写的数据的时钟(通道时钟)同步。
R/W通道12进一步包括编码器/解码器(在下文中称为“ENDEC”)125、写合成器126、NRZ时钟发生器127、热粗糙度检测器(在下文中称为“TA检测器”)128和非法编码检测器129。ENDEC 125将通过维特比解码器123解码的数据转换为NRZ(不归零)数据。所得的NRZ数据作为读数据传输给HDC 13。ENDEC 125对从HDC 13传输的写数据(NRZ数据)进行代码转换并将它转换为NRZI(不归零反向)数据。在代码转换中,例如,每32位的数据项(四个字节)转换为34-位数据。写合成器126主要产生形成写时钟所需的基础时钟。写合成器126可以改变基础时钟的频率。NRZ时钟发生器127基于来自写合成器126的基础时钟和均衡器122的输出产生对应于NRZ数据的NRZ时钟。NRZ时钟传输给HDC 13。TA检测器128监测模拟前端121的输出电平以检测热粗糙度(下文称为“TA”)的发生。TA是指由磁头112和磁盘111的表面的碰撞产生的热能引起的现象。在这种现象中,MR头(MR元件)的磁阻改变,由此显著地改变读信号的DC电平。TA检测器128将模拟前端121的输出电平与预设的阈值进行比较。如果模拟前端121的输出电平超出预设的阈值,TA检测器128确定TA已经发生了,仅在TA发生时输出其为“1”的标志(TA标志)F1。非法编码检测器129以预定大小的块为单元(在这种情况下以34位为单元)从维特比解码器123输入到ENDEC 125的二进制序列中检测非法编码二进制序列。非法编码二进制序列是预定的错误并且例如所有的位设定为“1”的特定模式。非法编码检测器129仅在对应于所检测的非法编码二进制序列的周期内输出为“1”的标志(非法编码标志)F2。
R/W通道12进一步包括错误位置检测器12A和擦除指针发生器12B。根据来自TA检测器128的TA标志F1、来自非法编码检测器129的非法编码标志F2和来自HDC 13的擦除指针选择信号EPSS,错误位置检测器12A检测在产生擦除指针所需的读数据中的错误位置。更具体地说,错误位置是指从错误开始位置到错误结束位置的范围的区域。擦除指针选择信号EPSS指定是否应该仅基于标志F1、仅基于标志F2、标志F1和F2的逻辑和或者标志F1和F2的逻辑乘检测错误位置。擦除指针发生器12B产生指示由错误位置检测器12A所检测的错误位置的擦除指针EP1。擦除指针EP1是在一种类型的位图中例如以字节为单元指示在对应于一个扇区的数据中的错误位置的指针信息。在本实施例中,位只为“1”,它们包括在构成擦除指针EP1的位中并对应于包括在由错误位置检测器12A所检测的错误位置(从错误开始位置到错误结束位置的范围的区域)中的字节。DE 11也包括写预补偿器12C。写预补偿器12C校正从ENDEC125中输出的NRZI数据的记录波形时序。在时序校正之后获得的数据作为写数据输出到磁头IC 115的写放大器115a。
附图3所示为HDC 13的结构。HDC 13包括主机接口控制器131、盘接口控制器132和CPU接口133。主机接口控制器131具有上述的主机接口控制功能。盘接口控制器132具有上述的盘接口控制功能。CPU接口133起与CPU 14的接口的作用。在CPU 14通过CPU接口133将某一位(例如“1”)设定在控制寄存器(未示)中时擦除指针选择信号EPSS从HDC 13输送给R/W通道12。
HDC 13也包括错误校正电路134。错误校正电路134使用附加到该数据的ECC数据校正包含在通过错误校正电路134从R/W通道12传输到其中的NRZ数据(读数据)中的错误。错误校正电路134包括随机校正电路134a和擦除校正电路134b。随机校正电路134a仅使用附加该数据的ECC数据校正NRZ数据的错误。擦除校正电路134b使用附加该数据的ECC数据和存储在擦除指针存储器138(将在下文中描述)校正NRZ数据的错误。通过擦除校正电路134b进行的错误校正称为擦除校正。
现在描述使用擦除指针通过错误校正电路134执行的错误校正。ECC数据的错误校正能力与ECC数据的字节的数量(符号的数量)相关。一般地,在使用读所罗门(read Solomon)码作为ECC数据以执行错误校正时,需要两字节(符号)的ECC数据来校正一个字节(符号)的错误。两字节中的一个用于指定错误的位置,另一个用于校正该错误。然而,在事先已知错误位置时,如果将它用作擦除,则可以最大地校正对应于ECC数据的字节的数量(冗余符号的数量)的错误。因此,如果适当地检测数据的错误位置,则使用表示错误位置的位置信息(错误位置信息),即它的擦除指针,可以使用一个字节的ECC数据校正一个字节的错误。换句话说,可以执行擦除校正。现在参考附图4描述擦除校正的一个优点的实例。
附图4所示为“三个交叉(3i)×七个脉冲串(7b)”的实例。“三个交叉(3i)×七个脉冲串(7b)”是指数据的交叉的数量(例如,从第一字节到第512字节的范围内的512个字节所形成的一个扇区的数据)是3,对于每个交叉可以最大地校正七个字节的随机错误。换句话说,“七个脉冲串”是指对于每个交叉使用ECC通过随机校正可以校正的数据的最大的总的脉冲串长度(即最大随机校正脉冲串长度)是7。在这种情况下,对于每个交叉附加14个字节的ECC。在附图4的实例中,假设从第五字节到第26字节的范围内的包括在512个字节(一个扇区的数据)内并交叉的连续22个字节的数据中产生了错误。在这种情况下,由于在3个交叉的第二个中产生了8个字节的错误,因此不能校正它。因此,将“两个擦除(两字节的擦除校正)+六个脉冲串”方案应用于第二交叉中以使错误校正电路134能够执行错误校正。“两个擦除”是指使用两字节的ECC和两字节的擦除指针可以最多校正两个字节的错误。换句话说,“两个擦除”是指通过擦除校正所能够校正的数据的脉冲串长度(擦除校正脉冲串长度)是2。将“两个擦除+六个脉冲串”方案应用到第二交叉中甚至能够校 22个连续字节的错误。
再次参考附图3,HDC 13包括读数据缓冲器135和开关136。读数据缓冲器135以数据扇区为单元临时地存储读数据。具体地说,读数据缓冲器135存储从R/W通道12中传输的、错误校正之前获得的NRZ数据,或通过随机校正电路134a和擦除校正电路134b进行错误校正的NRZ数据。开关136对从R/W通道12中传输的NRZ数据的输出目的地进行切换。在通常的状态下,开关136将NRZ数据的输出目的地切换到读数据缓冲器135。在第一特定的状态(第一特定的模式)下,开关136将NRZ数据的输出目的地切换到错误校正电路134。在主机20已经发布了读长指令时,CPU 14通过主机接口控制器131设定第一特定的状态。HDC 13进一步包括可编程擦除指针发生器137和擦除指针存储器138。可编程擦除指针发生器137产生来自主机20的擦除指针设定指令所指定的擦除指针EP2。擦除指针存储器138存储擦除指针EP1或EP2。存储在擦除指针存储器138中的擦除指针EP1或EP2用于擦除通过擦除校正电路134b所执行的擦除校正。
HDC 13还进一步包括写数据缓冲器139、ECC发生器13A和开关13B。写数据缓冲器139与读数据缓冲器135一起保留在随机存取存储器(RAM)中。写数据缓冲器139以数据扇区为单元临时地存储通过主机接口控制器131从主机20中传输的写数据。ECC发生器13A基于从写数据缓冲器139中读的写数据以数据扇区为单元产生ECC数据。所产生的ECC数据附加到写数据中,并通过盘接口控制器132将所得的写数据传输给R/W通道12。开关13B切换从写数据缓冲器139中读取的写数据的输出目的地。在通常的状态下,开关136将写数据的输出目的地切换到ECC发生器13A。在第二特定的状态(第二特定的模式)下,开关13B将写数据的输出目的地切换到盘接口控制器132。在主机20已经发布了写长指令时,主机接口控制器131设定第二特定的状态。
下文描述例如为检验包括在错误校正电路134的擦除校正功能中的擦除校正电路134b的擦除校正功能而执行的实施例的操作。首先参考附图5的流程图,描述选择检验错误校正功能的数据扇区的过程。根据从主机20输送给HDD 10的指令,CPU 14将在HDC 13的随机校正电路134a中使用的随机校正脉冲串(随机ECC长度)设定为A1(步骤501)。随后,根据来自主机20的指令,CPU 14产生对应于一个扇区的测试数据(NRZ数据),并将它存储在写数据缓冲器139中(步骤502)。此后,根据来自主机20的第一搜索指令,CPU 14执行搜索控制以将磁头112移动到在磁盘111上的目标轨道(步骤503)。第一搜索指令包含用于指定目标轨道的逻辑块地址LBA1。逻辑块地址LBA1指定第一次测试的目标轨道T1。因此,通过在步骤503的搜索控制,磁头112被移动到轨道T1。在步骤503中,CPU 14将存取的块(扇区)的数量BLK设定为1。
在这种情况下,CPU 14控制将测试数据写入到磁盘111,和从磁盘111中读测试数据(步骤504)。结果,执行随后的测试数据写和读首先,对应于一个扇区并存储在写数据缓冲器139中的测试数据通过开关13B传输给ECC发生器13A。ECC发生器13A基于对应于一个扇区的测试数据产生每个交叉的ECC。给每个交叉所产生的ECC附加到测试数据。具有对应于一个扇区的ECC数据通过盘接口控制器132从HDC 13传输给R/W通道12。R/W通道12将从HDC 13传输的测试数据(NRZ数据)的每32-位数据项转换为34位代码。R/W通道12也将所得的NRZ数据转换为NRZI数据。通过磁头IC 115将这个NRZI数据(具有附加的ECC数据)发送给R/W通道12,并通过磁头112写入到磁盘111。NRZI数据写入到通过LBA1指定的轨道T1上的数据扇区S1上。
通过磁头112读取写到在轨道T1上的数据扇区S1的数据。因此所读取的数据通过磁头IC 115传输到R/W通道12。R/W通道12将所读取的数据转换为NRZ,然后将它转换为原始代码。此外,R/W通道12的错误位置检测器12A检测在所读取的数据中包含的错误的位置。擦除指针发生器12B产生表示所检测的错误位置的擦除指针EP1。擦除指针EP1连同经转换的代码数据(NRZ数据)一起被传输给HDC 13。在HDC 13中,擦除指针EP1存储在擦除指针存储器138中,而NRZ数据(读数据)通过盘接口控制器132和开关136输入到错误校正电路134。错误校正电路134的擦除校正电路134b使用附加到输入到错误校正电路134的NRZ数据的ECC数据和存储在擦除指针存储器138中的擦除指针通过擦除校正来校正在数据中的错误。在另一方面,随机校正电路134a通过随机校正可以校正可能存在由擦除指针所没有指示的位置中的错误。因此,错误校正电路134使用随机校正和擦除校正的组合校正了在读数据中的错误。错误校正的数据存储在读数据缓冲器135中。
如果通过错误校正电路134进行的错误校正成功(步骤505),即如果数据(测试数据)的读取成功,则CPU 14确定用于测试数据的写和读的数据扇区适合于检验错误校正功能。在这种情况下,执行检验随机校正功能(随机校正功能测试)的过程。在另一方面,如果通过错误校正电路134进行的错误校正失败(步骤505),即如果数据(测试数据)的读取失败,则CPU 14控制读重试,即测试数据的读取的重新执行(更具体地说,来自在轨道T1上的数据扇区S1的测试数据的读取)(步骤506)。这种读重试(步骤506)被重复(步骤507)直到测试数据的读取成功(步骤505),但是次数不超过预定的次数(例如10次)。
如果即使在重复预定次数的重试(步骤507)之后测试数据的读取仍然失败,则CPU 14确定用于写和读测试数据的数据扇区不适合于错误校正功能的检验。在这时,CPU 14执行将磁头112从轨道T1移动到轨道T2的搜索控制(要测试的第二目标轨道)(步骤509)。根据例如从用于第二次测试的主机10输送的指令执行搜索控制。第二搜索指令包含指定目标轨道的逻辑块地址LBA2。具体地说,逻辑块地址LBA2指定轨道T2作为第二测试目标。在执行步骤509之后,CPU 14返回到步骤504。在步骤504中,测试数据写到由地址LBA2所指定的轨道T2上的数据扇区S2中,并从数据扇区S2中读取。如果测试数据的读取成功(步骤505),则执行随机校正功能测试。在另一方面,如果即使在重试操作执行预定的次数(步骤508)之后从数据扇区S2的测试数据的读取(第二次测试)失败,CPU 14也给主机20输送指示读错误的错误消息(步骤510)。
参考附图6的流程图,描述随机校正功能测试。如果主机20成功地从在轨道Tk上的数据扇区Sk(k=1或2)中读取测试数据,则它将读长指令发送给HDD 10以执行随机校正功能测试。读长指令是指示从在轨道Tk上的数据扇区Sk中读数据而不操作错误校正电路134的特殊的读指令。一旦从主机20中接收读长指令,则在HDD 10中的HDC 13执行该指令(步骤601)。换句话说,CPU 14控制从在由读长指令所指示的在轨道Tk上的数据扇区Sk中读取数据。这时,HDD 10根据读长指令从通常状态切换到第一特定状态(第一特定模式)。结果,在HDC 13中的开关136把通过盘接口控制器132从R/W通道12传输的NRZ数据的输出目的地从错误校正电路134切换到读数据缓冲器135。在这种状态下,从在轨道Tk上的数据扇区Sk中读取的数据通过磁头IC 115和R/W通道12传输给HDC13。通过盘接口控制器132和开关136,这种具有将ECC数据附加到其中的数据(读数据)然后存储在读数据缓冲器135中。
此后,主机20给HDD 10发布拷贝指令。拷贝指令指示将数据从读数据缓冲器135拷贝到写数据缓冲器136。一旦从主机20中接收拷贝指令,则在HDD 10中的CPU 14通过主机接口控制器131从读数据缓冲器135中将具有ECC数据的读数据拷贝到写数据缓冲器139中(步骤602)。此后,CPU 14重写(中断)拷贝到写数据缓冲器139中的数据的部分(步骤603)。从附图8A中可看出,拷贝的数据的要被重写的部分包括从第1字节到第(n1+m-1)字节范围的m个字节。主机20指定要被重写的部分。在此,“m”代表满足m≤(交叉数i×校正脉冲串长度b)的任何数量。(交叉数i×校正脉冲串长度b)代表通过错误校正电路134(随机校正电路134a)的随机校正所能够校正的字节(符号)的总数。例如,如果交叉的数量i是3,并且校正脉冲串长度b是7个字节,则“m”是满足m≤3×7(=21字节)的整数。在这种情况下,假设m=21。交叉的数量i为3,则可以表示为“3i”,校正脉冲串长度b是7个字节,则可以表示为“7b”。在附图6的流程图中,步骤602和603的顺序可以颠倒。换句话说,包含在存储在读数据缓冲器135中的读数据中的第n1字节至第(n1+m-1)字节的范围的字节数m可以被重写,使用附加到该数据的ECC数据可以将所得的数据拷贝到写数据缓冲器139。
为检验错误校正电路134的随机校正功能是否正常,主要执行随后的两个过程就足够。在第一过程中,通过执行写长指令将其中被重写(被破坏)了m个字节的数据写到磁盘111中。在第二过程中,为确定是否正确地校正了写到磁盘111的部分被破坏的数据,通过执行正常的读指令读取这个数据。
为此,在已经重写了拷贝到写数据缓冲器139的数据的一部分(即,从第n1字节到第(n1+m-1)字节范围的m个字节)时,主机20给HDD 10输送用于将重写的数据写到磁盘111的写长指令。写长指令是指示将数据写到在轨道Tk上的数据扇区Sk而不操作ECC发生器13A的特殊的写指令。一旦从主机20接收到写长指令,在HDD 10中的CPU 14执行这种指令(步骤604)。具体地说,CPU14控制将在写数据缓冲器139中拷贝的重写的数据写到写长指令所指示的在轨道Tk上的数据扇区Sk。这时,HDD 10根据写长指令切换到第二特定的状态(第二特定的模式)。然后,在HDC 13中的开关136将存储在写数据缓冲器139中的数据(写数据)的输出目的地切换到盘接口控制器132。结果,存储在写数据缓冲器139中的数据(写数据)(它的一部分(即,从第n1字节到第(n1+m-1)字节范围的m个字节)被重写了)与附加的ECC数据一起通过开关13B传输给盘接口控制器132。这个数据进一步通过R/W通道12和磁头IC 115从盘接口控制器132传输到磁头112。磁头112将数据写到磁盘111。在本实例中,磁头112将该数据(其中从第n1字节到第(n1+m-1)字节范围的字节被重写了)写到在磁盘111上的轨道Tk的数据扇区Sk。
随后,主机20给HDD 10输送从轨道Tk的数据扇区Sk中读数据的正常读指令。这个指令规定使用“3i(三个交叉)×7b(7个脉冲串)”的随机校正。一旦从主机20中接收正常的读指令,在HDD10中的CPU 14执行指令(步骤605)。具体地说,CPU 14控制从由正常的读指令所规定的轨道Tk的数据扇区Sk中读数据。这时,HDD 10根据正常的读指令切换到正常的状态。然后,在HDC 13中的开关136将通过盘接口控制器132从R/W通道12传输到其中的NRZ数据(读数据)的输出目的地切换到错误校正电路134。在这种状态下,从轨道Tk的数据扇区Sk中读取的数据(读数据)通过磁头IC 115和R/W通道12传输到HDC 13。在HDC13中,将该数据(读数据)与附加的ECC数据一起通过盘接口控制器132和开关136输入到错误校正电路134。在本实例中,正常的指令规定随机校正使用“3i(三个交叉)×7b(7个脉冲串)”。因此,通过随机校正,使用附加到读数据的ECC数据(3i×7b ECC数据,即,3×7个字节的ECC数据),错误校正电路134的随机校正电路134a校正了包含在读数据中的错误。校正了错误的数据存储在读数据缓冲器135中。
如果读数据的错误校正成功并且正常地完成了数据读取(步骤606),则CPU 14确定错误校正电路134的随机校正功能(随机校正电路134a)是正常的。在这种情况下,执行下一检验擦除校正功能的过程(擦除校正功能测试)。在另一方面,如果读数据的错误校正失败,即如果数据读失败(步骤606),则CPU 14控制上述数据读的再执行(即,读重试)(步骤607),直到数据读取成功(步骤606),但是次数不超过预定的次数(例如10次)(步骤608)。
如果即使在重复了重试预定的次数之后数据读取仍然失败(步骤608),则CPU 14确定错误校正电路134的随机校正功能没有正常地起作用。这时,CPU 14给主机20输送指示随机校正错误的消息(步骤609)。
然后参考附图7A和7B的流程图,描述擦除校正功能测试。如果从随机校正功能测试中确定随机校正功能是正常地工作,则主机20给HDD 10发布拷贝指令。拷贝指令指定将数据从读数据缓冲器135拷贝到写数据缓冲器139。一旦从主机20接收拷贝指令,则在HDD 10中的CPU 14根据该指令将数据从读数据缓冲器135拷贝到写数据缓冲器139(步骤701)。在这种情况下,在随机校正功能测试的过程中存储在读数据缓冲器135中的校正了错误的读数据作为写数据拷贝到写数据缓冲器139中。
随后,主机20给HDD 10输送正常的写指令以将拷贝在写数据缓冲器139中的数据(一个扇区的数据)写到磁盘111中。一旦从主机20中接收正常的写指令,则在HDD 10中的CPU 14执行该指令(步骤702)。具体地说,CPU 14控制将拷贝在写数据缓冲器139中的一个扇区的数据写到由正常的写指令所规定的在轨道Tk上的数据扇区Sk中。结果,拷贝在写数据缓冲器139中的一个扇区的数据通过开关13B传输给ECC发生器13A。基于这种数据,ECC发生器13A为一个扇区的数据的每个交叉产生一个ECC。为每个交叉所产生的ECC附加到该一个扇区的数据中。这个具有ECC数据的一个扇区的数据通过R/W通道12和磁头IC 115从盘接口控制器132输送到磁头112,并通过磁头112写到磁盘111。在这种情况下,将该数据写到在轨道Tk上的数据扇区Sk。换句话说,将该数据(其中的一部分被破坏并且被写在轨道Tk的数据扇区Sk上以便进行随机校正功能测试)重写到原始的校正数据中。
此后,主机20将读长指令发布给HDD 10以读取写在轨道Tk的数据扇区Sk中的数据而不操作错误校正电路134。一旦从主机20中接收到读长指令,则在HDD 10中的CPU 14执行该指令(步骤703)。具体地说,CPU 14控制从由读长指令所规定的在轨道Tk上的数据扇区Sk中读数据。结果,从在轨道Tk的数据扇区Sk中读取的数据通过磁头IC 115和R/W通道12传输给HDC 13。然后这个其中附加了ECC数据的数据(读数据)通过盘接口控制器132和开关136被存储到读数据缓冲器135中。
随后,在步骤602中,CPU 14通过主机接口控制器131将具有ECC数据的读数据从读数据缓冲器135拷贝到写数据缓冲器139中。这个拷贝操作由主机20发布的拷贝指令所规定。随后,与步骤603一样,CPU 14重写(破坏)拷贝到写数据缓冲器139的数据的一部分(步骤705)。然而,在这种情况下,所拷贝的数据的要被重写的部分包括第n2字节到第(n2+h-1)字节范围的h个字节,如附图8B所示。主机20指定要被重写的部分。“h”代表满足h≤(随机校正脉冲串长度+擦除校正脉冲串长度)的任意数。随机校正脉冲串长度代表由随机校正电路134a的随机校正所能够校正的字节(符号)的数量。在本实施例中,假设随机校正脉冲串的长度(随机ECC的长度)是3×2(3i×2b)(=6字节)。在另一方面,擦除校正脉冲串的长度代表由擦除校正电路134b的擦除校正所能够校正的字节(符号)的数量。在本实施例中,假设擦除校正脉冲串的长度(擦除ECC的长度)是3×8(3i×8b)(=24字节)。因此,“随机校正脉冲串的长度”+“擦除校正脉冲串的长度”是6+24=30(字节),而“h”是满足h≤30(字节)的整数。在本实施例中,假设h=28(字节)。在每个交叉的ECC是14个字节的实施例中,如果仅使用随机校正执行错误校正,则根据参考附图4的描述,不能校正包括连续的22个字节的错误。考虑到这种情况,可取的是设定“h”的下限,即将“h”设定为落在22个字节至“随机校正脉冲串的长度”+“擦除校正脉冲串的长度”的范围内的值。这个范围使得能够有效地检验擦除校正功能。步骤704和705的顺序可以颠倒。换句话说,包含于存储在读数据缓冲器135中的读数据中的从第n2字节到第(n2+h-1)字节的h个字节可以被重写,并与附加到该数据的ECC数据一起将所得的结果拷贝到写数据缓冲器139中。
为检验错误校正电路134的擦除校正功能是否正常,如果主要执行随后的三个过程就足够。在第一过程中,通过执行写长指令将其中被重写(被破坏)了h个字节的数据写到磁盘111中。在第二过程中,根据外部指令将指定对应于数据重写的位置的错误位置的擦除指针EP2设定到擦除指针存储器138中。在第三过程中,为确定是否正确地校正了写到磁盘111的部分被破坏的数据,通过执行正常的读指令读取这个数据。
为此,在已经重写了拷贝到写数据缓冲器139的数据的一部分(即,从第n2字节到第(n2+h-1)字节范围的h个字节)时,主机20给HDD 10输送用于将重写的数据写到磁盘111的写长指令。一旦从主机20接收到写长指令,在HDD 10中的CPU 14执行这种指令(步骤706)。结果,存储在写数据缓冲器139中的数据(写数据)(它的一部分(即,从第n2字节到第(n2+h-1)字节范围的h个字节)被重写了)与附加的ECC数据一起通过开关13B传输给盘接口控制器132。这个数据进一步通过R/W通道12和磁头IC 115从盘接口控制器132传输到磁头112。磁头112将数据写到磁盘111。在本实例中,磁头112将该数据(其中从第n2字节到第(n2+h-1)字节范围的字节被重写了)写到在磁盘111上的轨道Tk的数据扇区Sk。
随后,主机20给HDD 10输送用于将擦除指针EP2存储在HDD 10中的擦除指针存储器138中的擦除指针设置指令。一旦从主机20中接收到这个擦除指针设置指令,在HDD 10中的CPU 14执行这个指令(步骤707)。具体地说,CPU 14通过主机接口控制器131控制可编程擦除指针发生器137,由此产生通过擦除指针设置指令指定的擦除指针EP2(步骤707a)。可编程擦除指针发生器137将所产生的擦除指针EP2存储到擦除指针存储器138中。所产生的擦除指针EP2指定对应于从第n2字节到第(n2+h-1)字节范围的重写的字节的位置作为错误位置。例如,如附图8C所示,所产生的擦除指针EP2指定对应于从(n2+随机校正脉冲串长度)至第(n2+h-1)字节的范围的一个扇区的数据的字节的范围作为错误位置(在这种情况下,随机校正脉冲串长度=3i×2b=6;“h”=28)。这个擦除指针EP2指定除了从第n2字节至(n2+随机校正脉冲串长度-1)的范围的字节(这些字节对应于随机校正脉冲串长度(随机ECC数据))之外的从第n2字节至第(n2+h-1)字节的范围的重写的字节部分作为错误位置。一旦可编程擦除指针发生器137已经将擦除指针EP2存储在擦除指针存储器138中,它就禁止通过擦除指针EP1从R/W通道12中重写擦除指针存储器138的内容(步骤707b)。在随机校正功能测试完成之后释放这种禁止状态。
此后,主机20给HDD 10输送正常的读指令以从在轨道Tk上的数据扇区Sk读数据。这个指令规定使用“3i(三个交叉)×2b(2个脉冲串)”的随机校正和使用“3i(三个交叉)×8b(8个脉冲串)”的擦除校正。一旦从主机20中接收正常的读指令,在HDD10中的CPU 14执行指令(步骤708)。具体地说,CPU 14控制从由正常的读指令所规定的轨道Tk的数据扇区Sk中读数据。结果,从轨道Tk的数据扇区Sk中读取数据并通过磁头IC 115和R/W通道12将其传输到HDC 13。传输到HDC 13中的数据与附加的ECC数据一起通过盘接口控制器132和开关136输入到错误校正电路134。在本实例中,使用“3i×2b”的随机校正和使用“3i×8b”的擦除校正由正常的读指令规定。通过擦除校正,使用附加到该数据的ECC数据和存储在擦除指针存储器138中的擦除指针EP2,在错误校正电路134中的擦除校正电路134b校正了在输入数据中的错误。如上文所述,擦除指针EP2将在从第(n2+随机校正脉冲串长度)至(n2+h-1)字节的范围的一个扇区的数据中的字节指定为错误位置。因此,擦除校正电路134b通过擦除校正来校正在错误位置中的错误。在另一方面,随机校正电路134a通过随机校正来校正了可能存在于由擦除指针EP2所没有指定的位置上的错误。例如,错误可能存在于引导数据部分中,即包括在重写的(第n2至第(n2+h-1))字节中并具有等于随机校正脉冲串长度的长度的从第n2字节至第(n2+随机校正脉冲串长度-1)字节的范围的字节中。因此,通过使用随机校正和擦除校正的组合,错误校正电路134校正了在读数据中的错误。校正了错误的数据存储在读数据缓冲器135中。
如果读数据的错误校正(即其中从第n2字节至第(n2+h-1)字节范围的字节被有意地重写的数据)成功并且完成了正常的读取(步骤709),则CPU 14确定随机校正电路134a的随机校正功能和擦除校正电路134b的擦除校正功能都是正常的。这时,CPU 14给主机20输送HDD 10的随机和擦除校正功能测试都已经成功的消息(步骤710)。在另一方面,如果读数据的错误校正失败,即如果数据读失败(步骤709),则CPU 14控制数据读的再执行(即,读重试)(步骤711)。这个读重试(步骤711)被重复(步骤712)直到测试数据读成功(步骤709),但次数不超过预定的次数(例如10次)。
如果即使在执行了重试操作预定次数(步骤712)之后的数据读取仍然失败,则CPU 14确定错误校正电路134的擦除校正功能没有正常地工作。在这种情况下,CPU 14给主机20输送指示擦除校正错误的消息(步骤713)。
如上文所述,在本实施例中,根据来自主机20的写长指令(特殊的写指令)将数据(第一数据)写到磁盘111,该数据的一部分被重写(破坏)并将从原始数据(第二数据)产生的ECC数据附加到其中。在这种情况下,由于ECC发生器13A的操作被写长指令禁止,则具有ECC数据的第一数据直接写到磁盘111中。因此,必须将第一数据的被破坏的部分看作是错误。考虑到这一点,在本实施例中,将指示对应于第一数据的被破坏的部分的位置作为错误位置的擦除指针EP2(特殊指针信息)以可编程的方式设定在HDC 13中的擦除指针存储器138中。在这种情况下,如果执行正常读指令以从磁盘111中读第一数据,则错误校正电路134基于擦除指针EP2和附加到该数据的ECC数据执行校正第一数据的错误的操作。如果错误校正电路134正常地工作,即如果擦除校正功能正常地工作,则适当地校正了上述的被破坏的部分,由此完成了基于正常的读指令的数据读取。因此,通过简单地确定是否已经从磁盘111中成功地读取了第一数据可以检测擦除校正功能是否正常地工作。
在上述的实施例中,本发明适用于磁盘驱动器(HDD)。然而,本发明也适用于从记录媒体中读取数据或将数据写到其中的任何类型的存储装置,比如光盘驱动器、磁光盘驱动器、磁带型装置等。
其它的优点和改进对于本领域普通技术人员来说是容易的。因此,从广义上讲本发明并不限于在此所示出并描述的特定的细节和代表性实施例。因此,在不脱离如附加的权利要求及其等效方案所界定的本发明的原理的精神或范围的前提下可以做出各种变型。
权利要求
1.一种存储控制器,根据来自主机的读/写指令,该存储控制器控制从记录媒体中读数据或将数据写到记录媒体以及从主机读数据或将数据写到主机的传输,其特征在于包括错误校正代码发生器,该错误校正代码发生器根据要写到记录媒体中的数据产生错误校正代码,该错误校正代码附加到该数据中;擦除指针存储器,该擦除指针存储器存储表示存在错误的位置的指针信息,该错误包含在从记录媒体中所读取的数据中;错误校正电路,通过使用附加到该数据的错误校正代码和存储在擦除指针存储器中的指针信息,该错误校正电路通过擦除校正和随机校正来校正从记录媒体中读取的该数据中的错误;禁止电路,在执行来自主机的特殊写指令时,该禁止电路禁止错误校正代码发生器将错误校正代码附加到要写到记录媒体中的数据中;和可编程擦除指针发生器,该可编程擦除指针发生器根据来自主机的擦除指针设定指令在擦除指针存储器中设定指示某一位置作为错误位置的特殊的指针信息,该位置由擦除指针设定指令指定,在擦除指针存储器中设定的特殊指针信息由错误校正电路使用以校正通过执行特殊的写指令要写到记录媒体中和根据来自主机的正常的读指令从其中读取的数据中的错误。
2.根据权利要求1所述的存储控制器,其特征在于进一步包括在执行后面的读指令时用于禁止根据擦除指针设定指令设定在擦除指针存储器中的特殊指针信息被重写的装置。
3.根据权利要求1所述的存储控制器,其特征在于禁止电路包括在将要写入到记录媒体中的数据输入到错误校正代码发生器的状态和要写入到记录媒体的数据绕过错误校正代码发生器的状态之间进行切换的开关,在执行特殊的写指令时切换该开关以使要写入到记录媒体中的数据绕过错误校正代码发生器。
4.根据权利要求1所述的存储控制器,其特征在于进一步包括以数据扇区为单元存储从记录媒体中读取的并具有通过错误校正电路所校正的错误的数据的读数据缓冲器;以数据扇区为单元存储要写入到记录媒体中的数据的写数据缓冲器;和在执行来自主机的特殊的读指令时将从记录媒体中读取的并具有附加到其中的错误校正代码的数据传输给读数据缓冲器并且不使该数据通过错误校正电路。
5.根据权利要求4所述的存储控制器,其特征在于传输电路包括在将要写入到记录媒体中的数据输入到错误校正代码发生器的状态和要写入到记录媒体的数据绕过错误校正代码发生器的状态之间进行切换的开关,在执行特殊的写指令时切换该开关以使要写入到记录媒体中的数据绕过错误校正代码发生器。
6.根据权利要求1所述的存储控制器,其特征在于在来自主机的特殊写指令规定将第一数据写入到记录媒体时该禁止电路禁止错误校正代码发生器将错误代码附加到第一数据,该第一数据用于检验擦除校正功能,通过重写第二数据的一部分获得该第一数据,附加到第一数据的错误校正代码基于第二数据;在来自主机的擦除指针设定指令规定特殊的指针信息的设置时可编程擦除指针发生器将该特殊的指针信息设置在擦除指针存储器中,该特殊指针信息指定对应于第一数据的重写部分的位置作为错误位置;和在来自主机中的正常的读指令规定从记录媒体中读取第一数据时,通过使用附加到第一数据的错误校正代码和设置在擦除指针存储器中的特殊指针信息,通过擦除校正和随机校正,该错误校正电路校正从记录媒体中读取的第一数据中的错误。
7.根据权利要求6所述的存储控制器,其特征在于进一步包括以数据扇区为单元存储从记录媒体中读取的并具有通过错误校正电路所校正的错误的数据的读数据缓冲器;以数据扇区为单元存储要写入到记录媒体中的数据的写数据缓冲器;在执行来自主机的特殊的读指令时将从记录媒体中读取的并具有附加到其中的错误校正代码的数据传输给读数据缓冲器并且不使该数据通过错误校正电路的传输电路;在通过执行来自主机的特殊读指令从记录媒体中读取第二数据时将存储在读数据缓冲器中并具有附加到其中的错误校正代码的第二数据拷贝到写数据缓冲器中并存储到读数据缓冲器中而不通过错误校正电路的装置;和通过重写拷贝到写数据缓冲器中的第二数据的一部分产生要写到记录媒体中的第一数据的装置。
8.根据权利要求6所述的存储控制器,其特征在于进一步包括以数据扇区为单元存储从记录媒体中读取的并具有通过错误校正电路所校正的错误的数据的读数据缓冲器;以数据扇区为单元存储要写入到记录媒体中的数据的写数据缓冲器;在执行来自主机的特殊的读指令时将从记录媒体中读取的并具有附加到其中的错误校正代码的数据传输给读数据缓冲器并且不使该数据通过错误校正电路的传输电路;在通过执行来自主机的特殊读指令从记录媒体中读取第二数据时重写存储在读数据缓冲器的一部分第二数据并将其存储在读数据缓冲器中而不通过错误校正电路的装置;和通过将来自读数据缓冲器中重写的第二数据拷贝到写数据缓冲器中产生要写到记录媒体中的第一数据的装置,该第二数据具有附加到其中的错误校正代码。
9.一种存储设备,用于在将数据写到记录媒体时产生数据的错误校正代码并在从记录媒体中读取数据时校正在该数据中的错误,使用表示该错误的位置的指针信息和附加到该数据的错误校正代码校正该错误,该存储设备包括信号处理装置,该信号处理装置对从记录媒体中读取的读信号进行模拟至数字转换,对要写到记录媒体的数据进行编码以及对经数字化的读数据进行解码;和存储控制器,根据来自主机的读/写指令,该存储控制器通过信号处理装置控制从记录媒体中读数据或将数据写到记录媒体以及从主机读数据或将数据写到主机的传输,和其中存储控制器包括错误校正代码发生器,该错误校正代码发生器根据要写到记录媒体中的数据产生错误校正代码,该错误校正代码附加到该数据中;擦除指针存储器,该擦除指针存储器存储表示存在错误的位置的指针信息,该错误包含在从记录媒体中所读取的数据中;错误校正电路,通过使用附加到该数据的错误校正代码和存储在擦除指针存储器中的指针信息,该错误校正电路通过擦除校正和随机校正来校正从记录媒体中读取的该数据中的错误;禁止电路,在执行来自主机的特殊写指令时,该禁止电路禁止错误校正代码发生器将错误校正代码附加到要写到记录媒体中的数据中;和可编程擦除指针发生器,该可编程擦除指针发生器根据来自主机的擦除指针设定指令在擦除指针存储器中设定指示某一位置作为错误位置的特殊的指针信息,该位置由擦除指针设定指令指定,特殊指针信息用于根据来自主机的正常读指令读取通过执行特殊写指令写到记录媒体的数据。
10.一种检验并入在存储设备中的擦除校正功能的方法,通过使用表示错误的位置的指针信息和附加到数据的错误校正代码,该擦除校正功能用于校正从记录媒体中读取的数据中的错误,该方法的特征在于包括在写数据缓冲器中准备要写到记录媒体的第一数据,通过重写第二数据的一部分获得该第一数据,该第一数据具有基于第二数据所产生的错误校正代码;执行特殊的写指令以将在写数据缓冲器中准备的并已经具有错误校正代码的第一数据写到记录媒体中,而不基于第一数据产生另一错误校正代码;不管是否从记录媒体中读取数据,在擦除指针存储器中设置特殊的指针信息,该特殊指针信息指示对应于第一数据的重写部分的位置作为错误位置;读取通过执行特殊的写指令写入到记录媒体中的第一数据;和通过使用附加到第一数据的错误校正代码和存储在擦除指针存储器中的指针信息,通过确定是否由擦除校正和随机校正来校正了从记录媒体中读取的第一数据中的错误,确定擦除校正功能是否正常工作。
11.根据权利要求10所述的方法,其特征在于进一步包括禁止重写存储在擦除指针存储器中的特殊指针信息,以及其中在禁止之后读取第一数据。
12.根据权利要求10所述的方法,其特征在于准备第一数据包括在写数据缓冲器中准备第二数据,同时附加错误校正代码,该错误校正代码基于第二数据产生;和通过重写在写数据缓冲器中准备的第二数据的一部分产生第一数据。
13.根据权利要求12所述的方法,其特征在于准备第二数据包括在写数据缓冲器中准备第二数据,同时不附加错误校正代码;执行正常的写指令以将在写数据缓冲器中准备的没有错误校正代码的第二数据写到记录媒体中;执行特殊的读指令以从记录媒体中读取通过执行正常的写指令写到记录媒体中的第二数据并将第二数据存储在读数据的缓冲器中,同时附加错误校正代码,该第二数据写到记录媒体中,同时附加错误校正代码,该错误校正代码基于第二数据产生;和通过执行特殊的读指令将存储在读数据缓冲器中的第二数据拷贝到写数据缓冲器中,同时附加错误校正代码。
14.根据权利要求10所述的方法,其特征在于该部分的长度不超过通过擦除校正所能够校正的数据长度和通过随机校正所能够校正的数据长度之和。
15.根据权利要求14所述的方法,其特征在于特殊指针信息指示包括在该部分中并除了通过随机校正所能够校正的脉冲串长度之外的连续的数据范围作为错误位置。
全文摘要
在执行来自主机的特殊写指令时,执行切换以使通过该指令指定的数据将不输入到ECC发生器(13A)。根据来自主机的擦除指针设置指令,可编程擦除指针发生器(137)在擦除指针存储器(138)中设置指示由设置指令所指定的位置作为错误位置的特殊的擦除指针(EP2)。这个指针(EP2)用于在根据正常的读指令读取通过执行特殊的写指令写到盘中的数据时执行的擦除校正。
文档编号G06F11/08GK1519846SQ20031012433
公开日2004年8月11日 申请日期2003年12月26日 优先权日2002年12月27日
发明者角田昌彦 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1