專利名稱:檢驗擦除校正功能的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用表示錯誤的位置的指針信息和附加到數(shù)據(jù)的錯誤校正代碼檢驗擦除校正功能(即校正在從記錄媒體中再現(xiàn)的數(shù)據(jù)中的錯誤的功能)的設(shè)備和方法。
背景技術(shù):
在近年來的磁盤驅(qū)動器中,在從盤中讀取和解碼的數(shù)據(jù)中的錯誤通常通過隨機(jī)校正和擦除校正的組合校正,如在USP 6,119,261(在下文中稱為“在先文獻(xiàn)”)中所公開的那樣。這個文獻(xiàn)描述了檢測在數(shù)據(jù)中的錯誤位置并使用表示該錯誤位置的信息再執(zhí)行錯誤校正的技術(shù),如果隨機(jī)校正失敗的話。指示錯誤位置的信息是稱為擦除指針的指針信息。
使用長指令通過磁盤驅(qū)動器可以測試并入在磁盤驅(qū)動器中的隨機(jī)校正功能。長指令主要分為用于指示將數(shù)據(jù)寫到盤的寫長指令和指示從盤讀數(shù)據(jù)的讀長指令。寫長指令用于將由主機(jī)指定的數(shù)據(jù)(一扇區(qū)的數(shù)據(jù))直接寫到盤。在執(zhí)行寫長指令時,抑制產(chǎn)生錯誤校正代碼(ECC)的ECC發(fā)生器的操作。ECC數(shù)據(jù)是用于從數(shù)據(jù)中檢測錯誤并校正它們的冗余數(shù)據(jù)。讀長指令用于將從盤中讀取的數(shù)據(jù)(一扇區(qū)的數(shù)據(jù))直接存儲到讀數(shù)據(jù)緩沖器而不執(zhí)行錯誤校正。在執(zhí)行讀長指令時,抑制校正在讀數(shù)據(jù)中的錯誤的錯誤校正電路的操作。
如下文所描述,通過檢驗隨機(jī)校正電路是否正確地操作而實現(xiàn)隨機(jī)校正功能的檢查。在主機(jī)給磁盤驅(qū)動器已經(jīng)發(fā)布了讀長指令時,磁盤驅(qū)動器執(zhí)行該指令。結(jié)果,包含ECC數(shù)據(jù)的數(shù)據(jù)從盤中讀取。從該盤中讀取的數(shù)據(jù)由讀/寫通道解碼,然后存儲在讀數(shù)據(jù)緩沖器中而不進(jìn)行誤差校正。存儲在讀數(shù)據(jù)緩沖器中的數(shù)據(jù)的一部分被有意地破壞(重寫)。部分破壞的數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器中,并寫到該盤中。此后,根據(jù)正常的讀指令執(zhí)行從該盤中讀部分破壞的數(shù)據(jù)的操作。如果隨機(jī)的校正電路正確地操作,則必須適當(dāng)?shù)匦U糠制茐牡臄?shù)據(jù)。因此,通過校驗部分被破壞的數(shù)據(jù)是否已經(jīng)正確地校正可以檢測是否正確地操作了隨機(jī)校正電路。
如上文所述,在已有技術(shù)中,使用長指令可以檢驗是否正確地操作了隨機(jī)校正電路。在另一方面,在沒有指針信息的情況下不能檢驗是否正確地操作了擦除校正電路。在常規(guī)的磁盤驅(qū)動器中,根據(jù)讀/寫通道輸出指針信息。因此,除非從盤中讀取滿足在讀/寫通道中的指針產(chǎn)生條件的數(shù)據(jù),否則不能檢驗擦除校正電路的操作。此外,為從讀/寫通道中輸出高度再現(xiàn)性的指針信息,從盤中讀取的數(shù)據(jù)必須包含明顯缺陷。甚至存在例如重復(fù)數(shù)據(jù)讀以編譯指針信息的情況,由此估計校正指針位置。因此,使用隨機(jī)校正和擦除校正的組合執(zhí)行錯誤校正的常規(guī)磁盤驅(qū)動器沒有與使用長指令檢驗隨機(jī)校正功能的功能相同類型的檢驗擦除校正功能的功能(即,擦除校正檢驗功能)。
發(fā)明內(nèi)容
本發(fā)明的一個目的是設(shè)定表示錯誤的位置和擦除校正所需的指針信息,而不管從記錄媒體中讀取的數(shù)據(jù),由此有利于檢驗擦除校正功能。
根據(jù)本發(fā)明的一方面,提供一種存儲控制器,根據(jù)來自主機(jī)的讀/寫指令,該存儲控制器控制從記錄媒體中讀數(shù)據(jù)或?qū)?shù)據(jù)寫到記錄媒體以及從主機(jī)讀數(shù)據(jù)或?qū)?shù)據(jù)寫到主機(jī)的傳輸。存儲控制器包括錯誤校正代碼發(fā)生器、擦除指針存儲器、錯誤校正電路、禁止電路和可編程擦除指針發(fā)生器。錯誤校正代碼發(fā)生器根據(jù)要寫到記錄媒體中的數(shù)據(jù)產(chǎn)生錯誤校正代碼,該錯誤校正代碼附加到該數(shù)據(jù)中。擦除指針存儲器存儲表示存在錯誤的位置的指針信息,該錯誤包含在從記錄媒體中所讀取的數(shù)據(jù)中。通過使用附加到該數(shù)據(jù)的錯誤校正代碼和存儲在擦除指針存儲器中的指針信息,錯誤校正電路通過擦除校正和隨機(jī)校正校正從記錄媒體中讀取的該數(shù)據(jù)中的錯誤。在執(zhí)行來自主機(jī)的特殊寫指令時,禁止電路禁止錯誤校正代碼發(fā)生器將錯誤校正代碼附加到要寫到記錄媒體中的數(shù)據(jù)中??删幊滩脸羔槹l(fā)生器根據(jù)來自主機(jī)的擦除指針設(shè)定指令在擦除指針存儲器中設(shè)定指示某一位置作為錯誤位置的特殊的指針信息,該位置由擦除指針設(shè)定指令指定。在擦除指針存儲器中設(shè)定的特殊指針信息由錯誤校正電路使用以校正通過執(zhí)行特殊的寫指令要寫到記錄媒體中和根據(jù)來自主機(jī)的正常的讀指令從其中讀取的數(shù)據(jù)中的錯誤。
附圖1所示為根據(jù)本發(fā)明的一種實施例的磁盤驅(qū)動器的結(jié)構(gòu)的方塊圖;附圖2所示為在附圖1中顯示的R/W通道12的結(jié)構(gòu)的方塊圖;附圖3所示為在附圖1中顯示的HDC 13的結(jié)構(gòu)的方塊圖;附圖4所示為用于解釋擦除校正結(jié)果的特定的實例的視圖;附圖5所示為說明選擇用于檢驗錯誤校正功能的數(shù)據(jù)扇區(qū)的過程的流程圖;附圖6所示為隨機(jī)校正功能測試的過程的流程圖;附圖7A和7B所示為擦除校正功能測試的過程的流程圖;附圖8A所示為在其中重寫數(shù)據(jù)以產(chǎn)生用于擦除校正功能測試的數(shù)據(jù)的部分;附圖8B所示為在其中重寫數(shù)據(jù)以產(chǎn)生用于擦除校正功能測試的數(shù)據(jù)的部分;和附圖8C所示為通過產(chǎn)生擦除校正功能測試的擦除指針EP2所指定的錯誤位置。
具體實施例方式
參考附圖詳細(xì)地描述本發(fā)明的實施例。附圖1所示為根據(jù)本發(fā)明的實施例磁盤驅(qū)動器10的結(jié)構(gòu)的方塊圖。如附圖1所示,磁盤驅(qū)動器(在下文中稱為“HDD”)10主要包括盤盒(在下文中稱為“DE”)11、讀/寫通道(在下文中稱為“R/W通道”)12、硬盤控制器(在下文中稱為“HDC”)13和CPU 14。DE 11連接到R/W通道12,并執(zhí)行寫信號(記錄信號)的接收和讀信號(再現(xiàn)信號)的發(fā)送。DE 11包括用于記錄數(shù)據(jù)的盤(磁盤媒體)111和頭(磁頭)112。磁盤111具有兩個盤表面,即上面和下面。磁盤111的至少一個磁盤表面形成了用于磁記錄數(shù)據(jù)的記錄表面。磁頭112對應(yīng)于磁盤111的記錄表面而設(shè)置。磁頭112將數(shù)據(jù)寫(記錄)到磁盤111并從其中讀(再現(xiàn))數(shù)據(jù)。磁頭112是一種由讀頭和寫頭(兩者都沒有示出)形成的復(fù)合磁頭。讀頭是例如由磁阻(MR)元件形成的磁阻頭(MR頭)。寫頭是由電感型的薄膜元件形成的感應(yīng)頭。DE 11進(jìn)一步包括旋轉(zhuǎn)磁盤111的主軸馬達(dá)(在下文中稱為“SPM”)113、傳動裝置114和磁頭IC(集成電路)115。傳動裝置114支撐著磁頭112并在磁盤111上徑向地移動它。傳動裝置114包括音圈馬達(dá)(在下文中稱為“VCM”)114a作為它的驅(qū)動源。磁頭IC 115包括放大從R/W通道12中輸送的寫信號的寫放大器115a和放大通過磁頭112所讀的讀信號的讀放大器115b。在附圖1中所示的HDD中,為簡化描述起見,假設(shè)提供單個磁盤111,并且磁頭112位于磁盤111的一個側(cè)面上。然而,多個磁盤111可以彼此疊加。此外,磁盤111的每個表面可以是記錄表面,而提供相應(yīng)的磁頭112以用于記錄表面。
R/W通道12是執(zhí)行各種信號處理的信號處理裝置,比如執(zhí)行對讀信號進(jìn)行模擬到數(shù)字(A/D)轉(zhuǎn)換的處理、對寫數(shù)據(jù)進(jìn)行編碼的處理和對被數(shù)字化的讀信號進(jìn)行解碼的處理。HDC 13是連接到R/W通道12、CPU 14和主機(jī)(主機(jī)系統(tǒng))20的存儲控制器。主機(jī)20是使用HDD 10的數(shù)字裝置,比如個人計算機(jī)。HDC 13具有用于從主機(jī)20接收指令(比如寫指令、讀指令等)并控制將數(shù)據(jù)傳輸?shù)街鳈C(jī)20和從其中傳輸數(shù)據(jù)的主機(jī)接口功能。HDC 13也具有控制通過R/W通道12將數(shù)據(jù)傳輸給磁盤111和從磁盤111傳輸數(shù)據(jù)的盤控制功能。HDC 13進(jìn)一步具有產(chǎn)生附加到要寫入磁盤111的數(shù)據(jù)(寫數(shù)據(jù))的ECC數(shù)據(jù)和使用附加到其中的ECC數(shù)據(jù)校正從磁盤111中讀的數(shù)據(jù)中的錯誤的ECC數(shù)據(jù)處理功能。通過隨機(jī)校正和擦除校正的組合執(zhí)行錯誤校正。CPU 14是在HDD 10中的主控制器。CPU 14根據(jù)存儲在只讀存儲器(ROM,未示)中的控制程序控制DE 11、R/W通道12和HDC 13。CPU 14具體根據(jù)來自主機(jī)20的指令執(zhí)行控制以檢驗HDD 10的擦除校正功能。
附圖2所示為R/W通道12的結(jié)構(gòu)。R/W通道12包括模擬前端121、均衡器122、維特比解碼器(Viterbi decoder)123和時序恢復(fù)控制器124。模擬前端121具有可變增益放大器(VGA)、模擬濾波器和模擬到數(shù)字轉(zhuǎn)換器(都沒有示出)。通過時序恢復(fù)控制器124,模擬到數(shù)字轉(zhuǎn)換器的采樣時鐘與在磁盤111中寫的數(shù)據(jù)的時鐘(通道時鐘)同步。
R/W通道12進(jìn)一步包括編碼器/解碼器(在下文中稱為“ENDEC”)125、寫合成器126、NRZ時鐘發(fā)生器127、熱粗糙度檢測器(在下文中稱為“TA檢測器”)128和非法編碼檢測器129。ENDEC 125將通過維特比解碼器123解碼的數(shù)據(jù)轉(zhuǎn)換為NRZ(不歸零)數(shù)據(jù)。所得的NRZ數(shù)據(jù)作為讀數(shù)據(jù)傳輸給HDC 13。ENDEC 125對從HDC 13傳輸?shù)膶憯?shù)據(jù)(NRZ數(shù)據(jù))進(jìn)行代碼轉(zhuǎn)換并將它轉(zhuǎn)換為NRZI(不歸零反向)數(shù)據(jù)。在代碼轉(zhuǎn)換中,例如,每32位的數(shù)據(jù)項(四個字節(jié))轉(zhuǎn)換為34-位數(shù)據(jù)。寫合成器126主要產(chǎn)生形成寫時鐘所需的基礎(chǔ)時鐘。寫合成器126可以改變基礎(chǔ)時鐘的頻率。NRZ時鐘發(fā)生器127基于來自寫合成器126的基礎(chǔ)時鐘和均衡器122的輸出產(chǎn)生對應(yīng)于NRZ數(shù)據(jù)的NRZ時鐘。NRZ時鐘傳輸給HDC 13。TA檢測器128監(jiān)測模擬前端121的輸出電平以檢測熱粗糙度(下文稱為“TA”)的發(fā)生。TA是指由磁頭112和磁盤111的表面的碰撞產(chǎn)生的熱能引起的現(xiàn)象。在這種現(xiàn)象中,MR頭(MR元件)的磁阻改變,由此顯著地改變讀信號的DC電平。TA檢測器128將模擬前端121的輸出電平與預(yù)設(shè)的閾值進(jìn)行比較。如果模擬前端121的輸出電平超出預(yù)設(shè)的閾值,TA檢測器128確定TA已經(jīng)發(fā)生了,僅在TA發(fā)生時輸出其為“1”的標(biāo)志(TA標(biāo)志)F1。非法編碼檢測器129以預(yù)定大小的塊為單元(在這種情況下以34位為單元)從維特比解碼器123輸入到ENDEC 125的二進(jìn)制序列中檢測非法編碼二進(jìn)制序列。非法編碼二進(jìn)制序列是預(yù)定的錯誤并且例如所有的位設(shè)定為“1”的特定模式。非法編碼檢測器129僅在對應(yīng)于所檢測的非法編碼二進(jìn)制序列的周期內(nèi)輸出為“1”的標(biāo)志(非法編碼標(biāo)志)F2。
R/W通道12進(jìn)一步包括錯誤位置檢測器12A和擦除指針發(fā)生器12B。根據(jù)來自TA檢測器128的TA標(biāo)志F1、來自非法編碼檢測器129的非法編碼標(biāo)志F2和來自HDC 13的擦除指針選擇信號EPSS,錯誤位置檢測器12A檢測在產(chǎn)生擦除指針?biāo)璧淖x數(shù)據(jù)中的錯誤位置。更具體地說,錯誤位置是指從錯誤開始位置到錯誤結(jié)束位置的范圍的區(qū)域。擦除指針選擇信號EPSS指定是否應(yīng)該僅基于標(biāo)志F1、僅基于標(biāo)志F2、標(biāo)志F1和F2的邏輯和或者標(biāo)志F1和F2的邏輯乘檢測錯誤位置。擦除指針發(fā)生器12B產(chǎn)生指示由錯誤位置檢測器12A所檢測的錯誤位置的擦除指針EP1。擦除指針EP1是在一種類型的位圖中例如以字節(jié)為單元指示在對應(yīng)于一個扇區(qū)的數(shù)據(jù)中的錯誤位置的指針信息。在本實施例中,位只為“1”,它們包括在構(gòu)成擦除指針EP1的位中并對應(yīng)于包括在由錯誤位置檢測器12A所檢測的錯誤位置(從錯誤開始位置到錯誤結(jié)束位置的范圍的區(qū)域)中的字節(jié)。DE 11也包括寫預(yù)補(bǔ)償器12C。寫預(yù)補(bǔ)償器12C校正從ENDEC125中輸出的NRZI數(shù)據(jù)的記錄波形時序。在時序校正之后獲得的數(shù)據(jù)作為寫數(shù)據(jù)輸出到磁頭IC 115的寫放大器115a。
附圖3所示為HDC 13的結(jié)構(gòu)。HDC 13包括主機(jī)接口控制器131、盤接口控制器132和CPU接口133。主機(jī)接口控制器131具有上述的主機(jī)接口控制功能。盤接口控制器132具有上述的盤接口控制功能。CPU接口133起與CPU 14的接口的作用。在CPU 14通過CPU接口133將某一位(例如“1”)設(shè)定在控制寄存器(未示)中時擦除指針選擇信號EPSS從HDC 13輸送給R/W通道12。
HDC 13也包括錯誤校正電路134。錯誤校正電路134使用附加到該數(shù)據(jù)的ECC數(shù)據(jù)校正包含在通過錯誤校正電路134從R/W通道12傳輸?shù)狡渲械腘RZ數(shù)據(jù)(讀數(shù)據(jù))中的錯誤。錯誤校正電路134包括隨機(jī)校正電路134a和擦除校正電路134b。隨機(jī)校正電路134a僅使用附加該數(shù)據(jù)的ECC數(shù)據(jù)校正NRZ數(shù)據(jù)的錯誤。擦除校正電路134b使用附加該數(shù)據(jù)的ECC數(shù)據(jù)和存儲在擦除指針存儲器138(將在下文中描述)校正NRZ數(shù)據(jù)的錯誤。通過擦除校正電路134b進(jìn)行的錯誤校正稱為擦除校正。
現(xiàn)在描述使用擦除指針通過錯誤校正電路134執(zhí)行的錯誤校正。ECC數(shù)據(jù)的錯誤校正能力與ECC數(shù)據(jù)的字節(jié)的數(shù)量(符號的數(shù)量)相關(guān)。一般地,在使用讀所羅門(read Solomon)碼作為ECC數(shù)據(jù)以執(zhí)行錯誤校正時,需要兩字節(jié)(符號)的ECC數(shù)據(jù)來校正一個字節(jié)(符號)的錯誤。兩字節(jié)中的一個用于指定錯誤的位置,另一個用于校正該錯誤。然而,在事先已知錯誤位置時,如果將它用作擦除,則可以最大地校正對應(yīng)于ECC數(shù)據(jù)的字節(jié)的數(shù)量(冗余符號的數(shù)量)的錯誤。因此,如果適當(dāng)?shù)貦z測數(shù)據(jù)的錯誤位置,則使用表示錯誤位置的位置信息(錯誤位置信息),即它的擦除指針,可以使用一個字節(jié)的ECC數(shù)據(jù)校正一個字節(jié)的錯誤。換句話說,可以執(zhí)行擦除校正?,F(xiàn)在參考附圖4描述擦除校正的一個優(yōu)點的實例。
附圖4所示為“三個交叉(3i)×七個脈沖串(7b)”的實例?!叭齻€交叉(3i)×七個脈沖串(7b)”是指數(shù)據(jù)的交叉的數(shù)量(例如,從第一字節(jié)到第512字節(jié)的范圍內(nèi)的512個字節(jié)所形成的一個扇區(qū)的數(shù)據(jù))是3,對于每個交叉可以最大地校正七個字節(jié)的隨機(jī)錯誤。換句話說,“七個脈沖串”是指對于每個交叉使用ECC通過隨機(jī)校正可以校正的數(shù)據(jù)的最大的總的脈沖串長度(即最大隨機(jī)校正脈沖串長度)是7。在這種情況下,對于每個交叉附加14個字節(jié)的ECC。在附圖4的實例中,假設(shè)從第五字節(jié)到第26字節(jié)的范圍內(nèi)的包括在512個字節(jié)(一個扇區(qū)的數(shù)據(jù))內(nèi)并交叉的連續(xù)22個字節(jié)的數(shù)據(jù)中產(chǎn)生了錯誤。在這種情況下,由于在3個交叉的第二個中產(chǎn)生了8個字節(jié)的錯誤,因此不能校正它。因此,將“兩個擦除(兩字節(jié)的擦除校正)+六個脈沖串”方案應(yīng)用于第二交叉中以使錯誤校正電路134能夠執(zhí)行錯誤校正?!皟蓚€擦除”是指使用兩字節(jié)的ECC和兩字節(jié)的擦除指針可以最多校正兩個字節(jié)的錯誤。換句話說,“兩個擦除”是指通過擦除校正所能夠校正的數(shù)據(jù)的脈沖串長度(擦除校正脈沖串長度)是2。將“兩個擦除+六個脈沖串”方案應(yīng)用到第二交叉中甚至能夠校 22個連續(xù)字節(jié)的錯誤。
再次參考附圖3,HDC 13包括讀數(shù)據(jù)緩沖器135和開關(guān)136。讀數(shù)據(jù)緩沖器135以數(shù)據(jù)扇區(qū)為單元臨時地存儲讀數(shù)據(jù)。具體地說,讀數(shù)據(jù)緩沖器135存儲從R/W通道12中傳輸?shù)摹㈠e誤校正之前獲得的NRZ數(shù)據(jù),或通過隨機(jī)校正電路134a和擦除校正電路134b進(jìn)行錯誤校正的NRZ數(shù)據(jù)。開關(guān)136對從R/W通道12中傳輸?shù)腘RZ數(shù)據(jù)的輸出目的地進(jìn)行切換。在通常的狀態(tài)下,開關(guān)136將NRZ數(shù)據(jù)的輸出目的地切換到讀數(shù)據(jù)緩沖器135。在第一特定的狀態(tài)(第一特定的模式)下,開關(guān)136將NRZ數(shù)據(jù)的輸出目的地切換到錯誤校正電路134。在主機(jī)20已經(jīng)發(fā)布了讀長指令時,CPU 14通過主機(jī)接口控制器131設(shè)定第一特定的狀態(tài)。HDC 13進(jìn)一步包括可編程擦除指針發(fā)生器137和擦除指針存儲器138??删幊滩脸羔槹l(fā)生器137產(chǎn)生來自主機(jī)20的擦除指針設(shè)定指令所指定的擦除指針EP2。擦除指針存儲器138存儲擦除指針EP1或EP2。存儲在擦除指針存儲器138中的擦除指針EP1或EP2用于擦除通過擦除校正電路134b所執(zhí)行的擦除校正。
HDC 13還進(jìn)一步包括寫數(shù)據(jù)緩沖器139、ECC發(fā)生器13A和開關(guān)13B。寫數(shù)據(jù)緩沖器139與讀數(shù)據(jù)緩沖器135一起保留在隨機(jī)存取存儲器(RAM)中。寫數(shù)據(jù)緩沖器139以數(shù)據(jù)扇區(qū)為單元臨時地存儲通過主機(jī)接口控制器131從主機(jī)20中傳輸?shù)膶憯?shù)據(jù)。ECC發(fā)生器13A基于從寫數(shù)據(jù)緩沖器139中讀的寫數(shù)據(jù)以數(shù)據(jù)扇區(qū)為單元產(chǎn)生ECC數(shù)據(jù)。所產(chǎn)生的ECC數(shù)據(jù)附加到寫數(shù)據(jù)中,并通過盤接口控制器132將所得的寫數(shù)據(jù)傳輸給R/W通道12。開關(guān)13B切換從寫數(shù)據(jù)緩沖器139中讀取的寫數(shù)據(jù)的輸出目的地。在通常的狀態(tài)下,開關(guān)136將寫數(shù)據(jù)的輸出目的地切換到ECC發(fā)生器13A。在第二特定的狀態(tài)(第二特定的模式)下,開關(guān)13B將寫數(shù)據(jù)的輸出目的地切換到盤接口控制器132。在主機(jī)20已經(jīng)發(fā)布了寫長指令時,主機(jī)接口控制器131設(shè)定第二特定的狀態(tài)。
下文描述例如為檢驗包括在錯誤校正電路134的擦除校正功能中的擦除校正電路134b的擦除校正功能而執(zhí)行的實施例的操作。首先參考附圖5的流程圖,描述選擇檢驗錯誤校正功能的數(shù)據(jù)扇區(qū)的過程。根據(jù)從主機(jī)20輸送給HDD 10的指令,CPU 14將在HDC 13的隨機(jī)校正電路134a中使用的隨機(jī)校正脈沖串(隨機(jī)ECC長度)設(shè)定為A1(步驟501)。隨后,根據(jù)來自主機(jī)20的指令,CPU 14產(chǎn)生對應(yīng)于一個扇區(qū)的測試數(shù)據(jù)(NRZ數(shù)據(jù)),并將它存儲在寫數(shù)據(jù)緩沖器139中(步驟502)。此后,根據(jù)來自主機(jī)20的第一搜索指令,CPU 14執(zhí)行搜索控制以將磁頭112移動到在磁盤111上的目標(biāo)軌道(步驟503)。第一搜索指令包含用于指定目標(biāo)軌道的邏輯塊地址LBA1。邏輯塊地址LBA1指定第一次測試的目標(biāo)軌道T1。因此,通過在步驟503的搜索控制,磁頭112被移動到軌道T1。在步驟503中,CPU 14將存取的塊(扇區(qū))的數(shù)量BLK設(shè)定為1。
在這種情況下,CPU 14控制將測試數(shù)據(jù)寫入到磁盤111,和從磁盤111中讀測試數(shù)據(jù)(步驟504)。結(jié)果,執(zhí)行隨后的測試數(shù)據(jù)寫和讀首先,對應(yīng)于一個扇區(qū)并存儲在寫數(shù)據(jù)緩沖器139中的測試數(shù)據(jù)通過開關(guān)13B傳輸給ECC發(fā)生器13A。ECC發(fā)生器13A基于對應(yīng)于一個扇區(qū)的測試數(shù)據(jù)產(chǎn)生每個交叉的ECC。給每個交叉所產(chǎn)生的ECC附加到測試數(shù)據(jù)。具有對應(yīng)于一個扇區(qū)的ECC數(shù)據(jù)通過盤接口控制器132從HDC 13傳輸給R/W通道12。R/W通道12將從HDC 13傳輸?shù)臏y試數(shù)據(jù)(NRZ數(shù)據(jù))的每32-位數(shù)據(jù)項轉(zhuǎn)換為34位代碼。R/W通道12也將所得的NRZ數(shù)據(jù)轉(zhuǎn)換為NRZI數(shù)據(jù)。通過磁頭IC 115將這個NRZI數(shù)據(jù)(具有附加的ECC數(shù)據(jù))發(fā)送給R/W通道12,并通過磁頭112寫入到磁盤111。NRZI數(shù)據(jù)寫入到通過LBA1指定的軌道T1上的數(shù)據(jù)扇區(qū)S1上。
通過磁頭112讀取寫到在軌道T1上的數(shù)據(jù)扇區(qū)S1的數(shù)據(jù)。因此所讀取的數(shù)據(jù)通過磁頭IC 115傳輸?shù)絉/W通道12。R/W通道12將所讀取的數(shù)據(jù)轉(zhuǎn)換為NRZ,然后將它轉(zhuǎn)換為原始代碼。此外,R/W通道12的錯誤位置檢測器12A檢測在所讀取的數(shù)據(jù)中包含的錯誤的位置。擦除指針發(fā)生器12B產(chǎn)生表示所檢測的錯誤位置的擦除指針EP1。擦除指針EP1連同經(jīng)轉(zhuǎn)換的代碼數(shù)據(jù)(NRZ數(shù)據(jù))一起被傳輸給HDC 13。在HDC 13中,擦除指針EP1存儲在擦除指針存儲器138中,而NRZ數(shù)據(jù)(讀數(shù)據(jù))通過盤接口控制器132和開關(guān)136輸入到錯誤校正電路134。錯誤校正電路134的擦除校正電路134b使用附加到輸入到錯誤校正電路134的NRZ數(shù)據(jù)的ECC數(shù)據(jù)和存儲在擦除指針存儲器138中的擦除指針通過擦除校正來校正在數(shù)據(jù)中的錯誤。在另一方面,隨機(jī)校正電路134a通過隨機(jī)校正可以校正可能存在由擦除指針?biāo)鶝]有指示的位置中的錯誤。因此,錯誤校正電路134使用隨機(jī)校正和擦除校正的組合校正了在讀數(shù)據(jù)中的錯誤。錯誤校正的數(shù)據(jù)存儲在讀數(shù)據(jù)緩沖器135中。
如果通過錯誤校正電路134進(jìn)行的錯誤校正成功(步驟505),即如果數(shù)據(jù)(測試數(shù)據(jù))的讀取成功,則CPU 14確定用于測試數(shù)據(jù)的寫和讀的數(shù)據(jù)扇區(qū)適合于檢驗錯誤校正功能。在這種情況下,執(zhí)行檢驗隨機(jī)校正功能(隨機(jī)校正功能測試)的過程。在另一方面,如果通過錯誤校正電路134進(jìn)行的錯誤校正失敗(步驟505),即如果數(shù)據(jù)(測試數(shù)據(jù))的讀取失敗,則CPU 14控制讀重試,即測試數(shù)據(jù)的讀取的重新執(zhí)行(更具體地說,來自在軌道T1上的數(shù)據(jù)扇區(qū)S1的測試數(shù)據(jù)的讀取)(步驟506)。這種讀重試(步驟506)被重復(fù)(步驟507)直到測試數(shù)據(jù)的讀取成功(步驟505),但是次數(shù)不超過預(yù)定的次數(shù)(例如10次)。
如果即使在重復(fù)預(yù)定次數(shù)的重試(步驟507)之后測試數(shù)據(jù)的讀取仍然失敗,則CPU 14確定用于寫和讀測試數(shù)據(jù)的數(shù)據(jù)扇區(qū)不適合于錯誤校正功能的檢驗。在這時,CPU 14執(zhí)行將磁頭112從軌道T1移動到軌道T2的搜索控制(要測試的第二目標(biāo)軌道)(步驟509)。根據(jù)例如從用于第二次測試的主機(jī)10輸送的指令執(zhí)行搜索控制。第二搜索指令包含指定目標(biāo)軌道的邏輯塊地址LBA2。具體地說,邏輯塊地址LBA2指定軌道T2作為第二測試目標(biāo)。在執(zhí)行步驟509之后,CPU 14返回到步驟504。在步驟504中,測試數(shù)據(jù)寫到由地址LBA2所指定的軌道T2上的數(shù)據(jù)扇區(qū)S2中,并從數(shù)據(jù)扇區(qū)S2中讀取。如果測試數(shù)據(jù)的讀取成功(步驟505),則執(zhí)行隨機(jī)校正功能測試。在另一方面,如果即使在重試操作執(zhí)行預(yù)定的次數(shù)(步驟508)之后從數(shù)據(jù)扇區(qū)S2的測試數(shù)據(jù)的讀取(第二次測試)失敗,CPU 14也給主機(jī)20輸送指示讀錯誤的錯誤消息(步驟510)。
參考附圖6的流程圖,描述隨機(jī)校正功能測試。如果主機(jī)20成功地從在軌道Tk上的數(shù)據(jù)扇區(qū)Sk(k=1或2)中讀取測試數(shù)據(jù),則它將讀長指令發(fā)送給HDD 10以執(zhí)行隨機(jī)校正功能測試。讀長指令是指示從在軌道Tk上的數(shù)據(jù)扇區(qū)Sk中讀數(shù)據(jù)而不操作錯誤校正電路134的特殊的讀指令。一旦從主機(jī)20中接收讀長指令,則在HDD 10中的HDC 13執(zhí)行該指令(步驟601)。換句話說,CPU 14控制從在由讀長指令所指示的在軌道Tk上的數(shù)據(jù)扇區(qū)Sk中讀取數(shù)據(jù)。這時,HDD 10根據(jù)讀長指令從通常狀態(tài)切換到第一特定狀態(tài)(第一特定模式)。結(jié)果,在HDC 13中的開關(guān)136把通過盤接口控制器132從R/W通道12傳輸?shù)腘RZ數(shù)據(jù)的輸出目的地從錯誤校正電路134切換到讀數(shù)據(jù)緩沖器135。在這種狀態(tài)下,從在軌道Tk上的數(shù)據(jù)扇區(qū)Sk中讀取的數(shù)據(jù)通過磁頭IC 115和R/W通道12傳輸給HDC13。通過盤接口控制器132和開關(guān)136,這種具有將ECC數(shù)據(jù)附加到其中的數(shù)據(jù)(讀數(shù)據(jù))然后存儲在讀數(shù)據(jù)緩沖器135中。
此后,主機(jī)20給HDD 10發(fā)布拷貝指令。拷貝指令指示將數(shù)據(jù)從讀數(shù)據(jù)緩沖器135拷貝到寫數(shù)據(jù)緩沖器136。一旦從主機(jī)20中接收拷貝指令,則在HDD 10中的CPU 14通過主機(jī)接口控制器131從讀數(shù)據(jù)緩沖器135中將具有ECC數(shù)據(jù)的讀數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器139中(步驟602)。此后,CPU 14重寫(中斷)拷貝到寫數(shù)據(jù)緩沖器139中的數(shù)據(jù)的部分(步驟603)。從附圖8A中可看出,拷貝的數(shù)據(jù)的要被重寫的部分包括從第1字節(jié)到第(n1+m-1)字節(jié)范圍的m個字節(jié)。主機(jī)20指定要被重寫的部分。在此,“m”代表滿足m≤(交叉數(shù)i×校正脈沖串長度b)的任何數(shù)量。(交叉數(shù)i×校正脈沖串長度b)代表通過錯誤校正電路134(隨機(jī)校正電路134a)的隨機(jī)校正所能夠校正的字節(jié)(符號)的總數(shù)。例如,如果交叉的數(shù)量i是3,并且校正脈沖串長度b是7個字節(jié),則“m”是滿足m≤3×7(=21字節(jié))的整數(shù)。在這種情況下,假設(shè)m=21。交叉的數(shù)量i為3,則可以表示為“3i”,校正脈沖串長度b是7個字節(jié),則可以表示為“7b”。在附圖6的流程圖中,步驟602和603的順序可以顛倒。換句話說,包含在存儲在讀數(shù)據(jù)緩沖器135中的讀數(shù)據(jù)中的第n1字節(jié)至第(n1+m-1)字節(jié)的范圍的字節(jié)數(shù)m可以被重寫,使用附加到該數(shù)據(jù)的ECC數(shù)據(jù)可以將所得的數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器139。
為檢驗錯誤校正電路134的隨機(jī)校正功能是否正常,主要執(zhí)行隨后的兩個過程就足夠。在第一過程中,通過執(zhí)行寫長指令將其中被重寫(被破壞)了m個字節(jié)的數(shù)據(jù)寫到磁盤111中。在第二過程中,為確定是否正確地校正了寫到磁盤111的部分被破壞的數(shù)據(jù),通過執(zhí)行正常的讀指令讀取這個數(shù)據(jù)。
為此,在已經(jīng)重寫了拷貝到寫數(shù)據(jù)緩沖器139的數(shù)據(jù)的一部分(即,從第n1字節(jié)到第(n1+m-1)字節(jié)范圍的m個字節(jié))時,主機(jī)20給HDD 10輸送用于將重寫的數(shù)據(jù)寫到磁盤111的寫長指令。寫長指令是指示將數(shù)據(jù)寫到在軌道Tk上的數(shù)據(jù)扇區(qū)Sk而不操作ECC發(fā)生器13A的特殊的寫指令。一旦從主機(jī)20接收到寫長指令,在HDD 10中的CPU 14執(zhí)行這種指令(步驟604)。具體地說,CPU14控制將在寫數(shù)據(jù)緩沖器139中拷貝的重寫的數(shù)據(jù)寫到寫長指令所指示的在軌道Tk上的數(shù)據(jù)扇區(qū)Sk。這時,HDD 10根據(jù)寫長指令切換到第二特定的狀態(tài)(第二特定的模式)。然后,在HDC 13中的開關(guān)136將存儲在寫數(shù)據(jù)緩沖器139中的數(shù)據(jù)(寫數(shù)據(jù))的輸出目的地切換到盤接口控制器132。結(jié)果,存儲在寫數(shù)據(jù)緩沖器139中的數(shù)據(jù)(寫數(shù)據(jù))(它的一部分(即,從第n1字節(jié)到第(n1+m-1)字節(jié)范圍的m個字節(jié))被重寫了)與附加的ECC數(shù)據(jù)一起通過開關(guān)13B傳輸給盤接口控制器132。這個數(shù)據(jù)進(jìn)一步通過R/W通道12和磁頭IC 115從盤接口控制器132傳輸?shù)酱蓬^112。磁頭112將數(shù)據(jù)寫到磁盤111。在本實例中,磁頭112將該數(shù)據(jù)(其中從第n1字節(jié)到第(n1+m-1)字節(jié)范圍的字節(jié)被重寫了)寫到在磁盤111上的軌道Tk的數(shù)據(jù)扇區(qū)Sk。
隨后,主機(jī)20給HDD 10輸送從軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀數(shù)據(jù)的正常讀指令。這個指令規(guī)定使用“3i(三個交叉)×7b(7個脈沖串)”的隨機(jī)校正。一旦從主機(jī)20中接收正常的讀指令,在HDD10中的CPU 14執(zhí)行指令(步驟605)。具體地說,CPU 14控制從由正常的讀指令所規(guī)定的軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀數(shù)據(jù)。這時,HDD 10根據(jù)正常的讀指令切換到正常的狀態(tài)。然后,在HDC 13中的開關(guān)136將通過盤接口控制器132從R/W通道12傳輸?shù)狡渲械腘RZ數(shù)據(jù)(讀數(shù)據(jù))的輸出目的地切換到錯誤校正電路134。在這種狀態(tài)下,從軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀取的數(shù)據(jù)(讀數(shù)據(jù))通過磁頭IC 115和R/W通道12傳輸?shù)紿DC 13。在HDC13中,將該數(shù)據(jù)(讀數(shù)據(jù))與附加的ECC數(shù)據(jù)一起通過盤接口控制器132和開關(guān)136輸入到錯誤校正電路134。在本實例中,正常的指令規(guī)定隨機(jī)校正使用“3i(三個交叉)×7b(7個脈沖串)”。因此,通過隨機(jī)校正,使用附加到讀數(shù)據(jù)的ECC數(shù)據(jù)(3i×7b ECC數(shù)據(jù),即,3×7個字節(jié)的ECC數(shù)據(jù)),錯誤校正電路134的隨機(jī)校正電路134a校正了包含在讀數(shù)據(jù)中的錯誤。校正了錯誤的數(shù)據(jù)存儲在讀數(shù)據(jù)緩沖器135中。
如果讀數(shù)據(jù)的錯誤校正成功并且正常地完成了數(shù)據(jù)讀取(步驟606),則CPU 14確定錯誤校正電路134的隨機(jī)校正功能(隨機(jī)校正電路134a)是正常的。在這種情況下,執(zhí)行下一檢驗擦除校正功能的過程(擦除校正功能測試)。在另一方面,如果讀數(shù)據(jù)的錯誤校正失敗,即如果數(shù)據(jù)讀失敗(步驟606),則CPU 14控制上述數(shù)據(jù)讀的再執(zhí)行(即,讀重試)(步驟607),直到數(shù)據(jù)讀取成功(步驟606),但是次數(shù)不超過預(yù)定的次數(shù)(例如10次)(步驟608)。
如果即使在重復(fù)了重試預(yù)定的次數(shù)之后數(shù)據(jù)讀取仍然失敗(步驟608),則CPU 14確定錯誤校正電路134的隨機(jī)校正功能沒有正常地起作用。這時,CPU 14給主機(jī)20輸送指示隨機(jī)校正錯誤的消息(步驟609)。
然后參考附圖7A和7B的流程圖,描述擦除校正功能測試。如果從隨機(jī)校正功能測試中確定隨機(jī)校正功能是正常地工作,則主機(jī)20給HDD 10發(fā)布拷貝指令??截愔噶钪付▽?shù)據(jù)從讀數(shù)據(jù)緩沖器135拷貝到寫數(shù)據(jù)緩沖器139。一旦從主機(jī)20接收拷貝指令,則在HDD 10中的CPU 14根據(jù)該指令將數(shù)據(jù)從讀數(shù)據(jù)緩沖器135拷貝到寫數(shù)據(jù)緩沖器139(步驟701)。在這種情況下,在隨機(jī)校正功能測試的過程中存儲在讀數(shù)據(jù)緩沖器135中的校正了錯誤的讀數(shù)據(jù)作為寫數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器139中。
隨后,主機(jī)20給HDD 10輸送正常的寫指令以將拷貝在寫數(shù)據(jù)緩沖器139中的數(shù)據(jù)(一個扇區(qū)的數(shù)據(jù))寫到磁盤111中。一旦從主機(jī)20中接收正常的寫指令,則在HDD 10中的CPU 14執(zhí)行該指令(步驟702)。具體地說,CPU 14控制將拷貝在寫數(shù)據(jù)緩沖器139中的一個扇區(qū)的數(shù)據(jù)寫到由正常的寫指令所規(guī)定的在軌道Tk上的數(shù)據(jù)扇區(qū)Sk中。結(jié)果,拷貝在寫數(shù)據(jù)緩沖器139中的一個扇區(qū)的數(shù)據(jù)通過開關(guān)13B傳輸給ECC發(fā)生器13A?;谶@種數(shù)據(jù),ECC發(fā)生器13A為一個扇區(qū)的數(shù)據(jù)的每個交叉產(chǎn)生一個ECC。為每個交叉所產(chǎn)生的ECC附加到該一個扇區(qū)的數(shù)據(jù)中。這個具有ECC數(shù)據(jù)的一個扇區(qū)的數(shù)據(jù)通過R/W通道12和磁頭IC 115從盤接口控制器132輸送到磁頭112,并通過磁頭112寫到磁盤111。在這種情況下,將該數(shù)據(jù)寫到在軌道Tk上的數(shù)據(jù)扇區(qū)Sk。換句話說,將該數(shù)據(jù)(其中的一部分被破壞并且被寫在軌道Tk的數(shù)據(jù)扇區(qū)Sk上以便進(jìn)行隨機(jī)校正功能測試)重寫到原始的校正數(shù)據(jù)中。
此后,主機(jī)20將讀長指令發(fā)布給HDD 10以讀取寫在軌道Tk的數(shù)據(jù)扇區(qū)Sk中的數(shù)據(jù)而不操作錯誤校正電路134。一旦從主機(jī)20中接收到讀長指令,則在HDD 10中的CPU 14執(zhí)行該指令(步驟703)。具體地說,CPU 14控制從由讀長指令所規(guī)定的在軌道Tk上的數(shù)據(jù)扇區(qū)Sk中讀數(shù)據(jù)。結(jié)果,從在軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀取的數(shù)據(jù)通過磁頭IC 115和R/W通道12傳輸給HDC 13。然后這個其中附加了ECC數(shù)據(jù)的數(shù)據(jù)(讀數(shù)據(jù))通過盤接口控制器132和開關(guān)136被存儲到讀數(shù)據(jù)緩沖器135中。
隨后,在步驟602中,CPU 14通過主機(jī)接口控制器131將具有ECC數(shù)據(jù)的讀數(shù)據(jù)從讀數(shù)據(jù)緩沖器135拷貝到寫數(shù)據(jù)緩沖器139中。這個拷貝操作由主機(jī)20發(fā)布的拷貝指令所規(guī)定。隨后,與步驟603一樣,CPU 14重寫(破壞)拷貝到寫數(shù)據(jù)緩沖器139的數(shù)據(jù)的一部分(步驟705)。然而,在這種情況下,所拷貝的數(shù)據(jù)的要被重寫的部分包括第n2字節(jié)到第(n2+h-1)字節(jié)范圍的h個字節(jié),如附圖8B所示。主機(jī)20指定要被重寫的部分?!癶”代表滿足h≤(隨機(jī)校正脈沖串長度+擦除校正脈沖串長度)的任意數(shù)。隨機(jī)校正脈沖串長度代表由隨機(jī)校正電路134a的隨機(jī)校正所能夠校正的字節(jié)(符號)的數(shù)量。在本實施例中,假設(shè)隨機(jī)校正脈沖串的長度(隨機(jī)ECC的長度)是3×2(3i×2b)(=6字節(jié))。在另一方面,擦除校正脈沖串的長度代表由擦除校正電路134b的擦除校正所能夠校正的字節(jié)(符號)的數(shù)量。在本實施例中,假設(shè)擦除校正脈沖串的長度(擦除ECC的長度)是3×8(3i×8b)(=24字節(jié))。因此,“隨機(jī)校正脈沖串的長度”+“擦除校正脈沖串的長度”是6+24=30(字節(jié)),而“h”是滿足h≤30(字節(jié))的整數(shù)。在本實施例中,假設(shè)h=28(字節(jié))。在每個交叉的ECC是14個字節(jié)的實施例中,如果僅使用隨機(jī)校正執(zhí)行錯誤校正,則根據(jù)參考附圖4的描述,不能校正包括連續(xù)的22個字節(jié)的錯誤??紤]到這種情況,可取的是設(shè)定“h”的下限,即將“h”設(shè)定為落在22個字節(jié)至“隨機(jī)校正脈沖串的長度”+“擦除校正脈沖串的長度”的范圍內(nèi)的值。這個范圍使得能夠有效地檢驗擦除校正功能。步驟704和705的順序可以顛倒。換句話說,包含于存儲在讀數(shù)據(jù)緩沖器135中的讀數(shù)據(jù)中的從第n2字節(jié)到第(n2+h-1)字節(jié)的h個字節(jié)可以被重寫,并與附加到該數(shù)據(jù)的ECC數(shù)據(jù)一起將所得的結(jié)果拷貝到寫數(shù)據(jù)緩沖器139中。
為檢驗錯誤校正電路134的擦除校正功能是否正常,如果主要執(zhí)行隨后的三個過程就足夠。在第一過程中,通過執(zhí)行寫長指令將其中被重寫(被破壞)了h個字節(jié)的數(shù)據(jù)寫到磁盤111中。在第二過程中,根據(jù)外部指令將指定對應(yīng)于數(shù)據(jù)重寫的位置的錯誤位置的擦除指針EP2設(shè)定到擦除指針存儲器138中。在第三過程中,為確定是否正確地校正了寫到磁盤111的部分被破壞的數(shù)據(jù),通過執(zhí)行正常的讀指令讀取這個數(shù)據(jù)。
為此,在已經(jīng)重寫了拷貝到寫數(shù)據(jù)緩沖器139的數(shù)據(jù)的一部分(即,從第n2字節(jié)到第(n2+h-1)字節(jié)范圍的h個字節(jié))時,主機(jī)20給HDD 10輸送用于將重寫的數(shù)據(jù)寫到磁盤111的寫長指令。一旦從主機(jī)20接收到寫長指令,在HDD 10中的CPU 14執(zhí)行這種指令(步驟706)。結(jié)果,存儲在寫數(shù)據(jù)緩沖器139中的數(shù)據(jù)(寫數(shù)據(jù))(它的一部分(即,從第n2字節(jié)到第(n2+h-1)字節(jié)范圍的h個字節(jié))被重寫了)與附加的ECC數(shù)據(jù)一起通過開關(guān)13B傳輸給盤接口控制器132。這個數(shù)據(jù)進(jìn)一步通過R/W通道12和磁頭IC 115從盤接口控制器132傳輸?shù)酱蓬^112。磁頭112將數(shù)據(jù)寫到磁盤111。在本實例中,磁頭112將該數(shù)據(jù)(其中從第n2字節(jié)到第(n2+h-1)字節(jié)范圍的字節(jié)被重寫了)寫到在磁盤111上的軌道Tk的數(shù)據(jù)扇區(qū)Sk。
隨后,主機(jī)20給HDD 10輸送用于將擦除指針EP2存儲在HDD 10中的擦除指針存儲器138中的擦除指針設(shè)置指令。一旦從主機(jī)20中接收到這個擦除指針設(shè)置指令,在HDD 10中的CPU 14執(zhí)行這個指令(步驟707)。具體地說,CPU 14通過主機(jī)接口控制器131控制可編程擦除指針發(fā)生器137,由此產(chǎn)生通過擦除指針設(shè)置指令指定的擦除指針EP2(步驟707a)。可編程擦除指針發(fā)生器137將所產(chǎn)生的擦除指針EP2存儲到擦除指針存儲器138中。所產(chǎn)生的擦除指針EP2指定對應(yīng)于從第n2字節(jié)到第(n2+h-1)字節(jié)范圍的重寫的字節(jié)的位置作為錯誤位置。例如,如附圖8C所示,所產(chǎn)生的擦除指針EP2指定對應(yīng)于從(n2+隨機(jī)校正脈沖串長度)至第(n2+h-1)字節(jié)的范圍的一個扇區(qū)的數(shù)據(jù)的字節(jié)的范圍作為錯誤位置(在這種情況下,隨機(jī)校正脈沖串長度=3i×2b=6;“h”=28)。這個擦除指針EP2指定除了從第n2字節(jié)至(n2+隨機(jī)校正脈沖串長度-1)的范圍的字節(jié)(這些字節(jié)對應(yīng)于隨機(jī)校正脈沖串長度(隨機(jī)ECC數(shù)據(jù)))之外的從第n2字節(jié)至第(n2+h-1)字節(jié)的范圍的重寫的字節(jié)部分作為錯誤位置。一旦可編程擦除指針發(fā)生器137已經(jīng)將擦除指針EP2存儲在擦除指針存儲器138中,它就禁止通過擦除指針EP1從R/W通道12中重寫擦除指針存儲器138的內(nèi)容(步驟707b)。在隨機(jī)校正功能測試完成之后釋放這種禁止?fàn)顟B(tài)。
此后,主機(jī)20給HDD 10輸送正常的讀指令以從在軌道Tk上的數(shù)據(jù)扇區(qū)Sk讀數(shù)據(jù)。這個指令規(guī)定使用“3i(三個交叉)×2b(2個脈沖串)”的隨機(jī)校正和使用“3i(三個交叉)×8b(8個脈沖串)”的擦除校正。一旦從主機(jī)20中接收正常的讀指令,在HDD10中的CPU 14執(zhí)行指令(步驟708)。具體地說,CPU 14控制從由正常的讀指令所規(guī)定的軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀數(shù)據(jù)。結(jié)果,從軌道Tk的數(shù)據(jù)扇區(qū)Sk中讀取數(shù)據(jù)并通過磁頭IC 115和R/W通道12將其傳輸?shù)紿DC 13。傳輸?shù)紿DC 13中的數(shù)據(jù)與附加的ECC數(shù)據(jù)一起通過盤接口控制器132和開關(guān)136輸入到錯誤校正電路134。在本實例中,使用“3i×2b”的隨機(jī)校正和使用“3i×8b”的擦除校正由正常的讀指令規(guī)定。通過擦除校正,使用附加到該數(shù)據(jù)的ECC數(shù)據(jù)和存儲在擦除指針存儲器138中的擦除指針EP2,在錯誤校正電路134中的擦除校正電路134b校正了在輸入數(shù)據(jù)中的錯誤。如上文所述,擦除指針EP2將在從第(n2+隨機(jī)校正脈沖串長度)至(n2+h-1)字節(jié)的范圍的一個扇區(qū)的數(shù)據(jù)中的字節(jié)指定為錯誤位置。因此,擦除校正電路134b通過擦除校正來校正在錯誤位置中的錯誤。在另一方面,隨機(jī)校正電路134a通過隨機(jī)校正來校正了可能存在于由擦除指針EP2所沒有指定的位置上的錯誤。例如,錯誤可能存在于引導(dǎo)數(shù)據(jù)部分中,即包括在重寫的(第n2至第(n2+h-1))字節(jié)中并具有等于隨機(jī)校正脈沖串長度的長度的從第n2字節(jié)至第(n2+隨機(jī)校正脈沖串長度-1)字節(jié)的范圍的字節(jié)中。因此,通過使用隨機(jī)校正和擦除校正的組合,錯誤校正電路134校正了在讀數(shù)據(jù)中的錯誤。校正了錯誤的數(shù)據(jù)存儲在讀數(shù)據(jù)緩沖器135中。
如果讀數(shù)據(jù)的錯誤校正(即其中從第n2字節(jié)至第(n2+h-1)字節(jié)范圍的字節(jié)被有意地重寫的數(shù)據(jù))成功并且完成了正常的讀取(步驟709),則CPU 14確定隨機(jī)校正電路134a的隨機(jī)校正功能和擦除校正電路134b的擦除校正功能都是正常的。這時,CPU 14給主機(jī)20輸送HDD 10的隨機(jī)和擦除校正功能測試都已經(jīng)成功的消息(步驟710)。在另一方面,如果讀數(shù)據(jù)的錯誤校正失敗,即如果數(shù)據(jù)讀失敗(步驟709),則CPU 14控制數(shù)據(jù)讀的再執(zhí)行(即,讀重試)(步驟711)。這個讀重試(步驟711)被重復(fù)(步驟712)直到測試數(shù)據(jù)讀成功(步驟709),但次數(shù)不超過預(yù)定的次數(shù)(例如10次)。
如果即使在執(zhí)行了重試操作預(yù)定次數(shù)(步驟712)之后的數(shù)據(jù)讀取仍然失敗,則CPU 14確定錯誤校正電路134的擦除校正功能沒有正常地工作。在這種情況下,CPU 14給主機(jī)20輸送指示擦除校正錯誤的消息(步驟713)。
如上文所述,在本實施例中,根據(jù)來自主機(jī)20的寫長指令(特殊的寫指令)將數(shù)據(jù)(第一數(shù)據(jù))寫到磁盤111,該數(shù)據(jù)的一部分被重寫(破壞)并將從原始數(shù)據(jù)(第二數(shù)據(jù))產(chǎn)生的ECC數(shù)據(jù)附加到其中。在這種情況下,由于ECC發(fā)生器13A的操作被寫長指令禁止,則具有ECC數(shù)據(jù)的第一數(shù)據(jù)直接寫到磁盤111中。因此,必須將第一數(shù)據(jù)的被破壞的部分看作是錯誤??紤]到這一點,在本實施例中,將指示對應(yīng)于第一數(shù)據(jù)的被破壞的部分的位置作為錯誤位置的擦除指針EP2(特殊指針信息)以可編程的方式設(shè)定在HDC 13中的擦除指針存儲器138中。在這種情況下,如果執(zhí)行正常讀指令以從磁盤111中讀第一數(shù)據(jù),則錯誤校正電路134基于擦除指針EP2和附加到該數(shù)據(jù)的ECC數(shù)據(jù)執(zhí)行校正第一數(shù)據(jù)的錯誤的操作。如果錯誤校正電路134正常地工作,即如果擦除校正功能正常地工作,則適當(dāng)?shù)匦U松鲜龅谋黄茐牡牟糠?,由此完成了基于正常的讀指令的數(shù)據(jù)讀取。因此,通過簡單地確定是否已經(jīng)從磁盤111中成功地讀取了第一數(shù)據(jù)可以檢測擦除校正功能是否正常地工作。
在上述的實施例中,本發(fā)明適用于磁盤驅(qū)動器(HDD)。然而,本發(fā)明也適用于從記錄媒體中讀取數(shù)據(jù)或?qū)?shù)據(jù)寫到其中的任何類型的存儲裝置,比如光盤驅(qū)動器、磁光盤驅(qū)動器、磁帶型裝置等。
其它的優(yōu)點和改進(jìn)對于本領(lǐng)域普通技術(shù)人員來說是容易的。因此,從廣義上講本發(fā)明并不限于在此所示出并描述的特定的細(xì)節(jié)和代表性實施例。因此,在不脫離如附加的權(quán)利要求及其等效方案所界定的本發(fā)明的原理的精神或范圍的前提下可以做出各種變型。
權(quán)利要求
1.一種存儲控制器,根據(jù)來自主機(jī)的讀/寫指令,該存儲控制器控制從記錄媒體中讀數(shù)據(jù)或?qū)?shù)據(jù)寫到記錄媒體以及從主機(jī)讀數(shù)據(jù)或?qū)?shù)據(jù)寫到主機(jī)的傳輸,其特征在于包括錯誤校正代碼發(fā)生器,該錯誤校正代碼發(fā)生器根據(jù)要寫到記錄媒體中的數(shù)據(jù)產(chǎn)生錯誤校正代碼,該錯誤校正代碼附加到該數(shù)據(jù)中;擦除指針存儲器,該擦除指針存儲器存儲表示存在錯誤的位置的指針信息,該錯誤包含在從記錄媒體中所讀取的數(shù)據(jù)中;錯誤校正電路,通過使用附加到該數(shù)據(jù)的錯誤校正代碼和存儲在擦除指針存儲器中的指針信息,該錯誤校正電路通過擦除校正和隨機(jī)校正來校正從記錄媒體中讀取的該數(shù)據(jù)中的錯誤;禁止電路,在執(zhí)行來自主機(jī)的特殊寫指令時,該禁止電路禁止錯誤校正代碼發(fā)生器將錯誤校正代碼附加到要寫到記錄媒體中的數(shù)據(jù)中;和可編程擦除指針發(fā)生器,該可編程擦除指針發(fā)生器根據(jù)來自主機(jī)的擦除指針設(shè)定指令在擦除指針存儲器中設(shè)定指示某一位置作為錯誤位置的特殊的指針信息,該位置由擦除指針設(shè)定指令指定,在擦除指針存儲器中設(shè)定的特殊指針信息由錯誤校正電路使用以校正通過執(zhí)行特殊的寫指令要寫到記錄媒體中和根據(jù)來自主機(jī)的正常的讀指令從其中讀取的數(shù)據(jù)中的錯誤。
2.根據(jù)權(quán)利要求1所述的存儲控制器,其特征在于進(jìn)一步包括在執(zhí)行后面的讀指令時用于禁止根據(jù)擦除指針設(shè)定指令設(shè)定在擦除指針存儲器中的特殊指針信息被重寫的裝置。
3.根據(jù)權(quán)利要求1所述的存儲控制器,其特征在于禁止電路包括在將要寫入到記錄媒體中的數(shù)據(jù)輸入到錯誤校正代碼發(fā)生器的狀態(tài)和要寫入到記錄媒體的數(shù)據(jù)繞過錯誤校正代碼發(fā)生器的狀態(tài)之間進(jìn)行切換的開關(guān),在執(zhí)行特殊的寫指令時切換該開關(guān)以使要寫入到記錄媒體中的數(shù)據(jù)繞過錯誤校正代碼發(fā)生器。
4.根據(jù)權(quán)利要求1所述的存儲控制器,其特征在于進(jìn)一步包括以數(shù)據(jù)扇區(qū)為單元存儲從記錄媒體中讀取的并具有通過錯誤校正電路所校正的錯誤的數(shù)據(jù)的讀數(shù)據(jù)緩沖器;以數(shù)據(jù)扇區(qū)為單元存儲要寫入到記錄媒體中的數(shù)據(jù)的寫數(shù)據(jù)緩沖器;和在執(zhí)行來自主機(jī)的特殊的讀指令時將從記錄媒體中讀取的并具有附加到其中的錯誤校正代碼的數(shù)據(jù)傳輸給讀數(shù)據(jù)緩沖器并且不使該數(shù)據(jù)通過錯誤校正電路。
5.根據(jù)權(quán)利要求4所述的存儲控制器,其特征在于傳輸電路包括在將要寫入到記錄媒體中的數(shù)據(jù)輸入到錯誤校正代碼發(fā)生器的狀態(tài)和要寫入到記錄媒體的數(shù)據(jù)繞過錯誤校正代碼發(fā)生器的狀態(tài)之間進(jìn)行切換的開關(guān),在執(zhí)行特殊的寫指令時切換該開關(guān)以使要寫入到記錄媒體中的數(shù)據(jù)繞過錯誤校正代碼發(fā)生器。
6.根據(jù)權(quán)利要求1所述的存儲控制器,其特征在于在來自主機(jī)的特殊寫指令規(guī)定將第一數(shù)據(jù)寫入到記錄媒體時該禁止電路禁止錯誤校正代碼發(fā)生器將錯誤代碼附加到第一數(shù)據(jù),該第一數(shù)據(jù)用于檢驗擦除校正功能,通過重寫第二數(shù)據(jù)的一部分獲得該第一數(shù)據(jù),附加到第一數(shù)據(jù)的錯誤校正代碼基于第二數(shù)據(jù);在來自主機(jī)的擦除指針設(shè)定指令規(guī)定特殊的指針信息的設(shè)置時可編程擦除指針發(fā)生器將該特殊的指針信息設(shè)置在擦除指針存儲器中,該特殊指針信息指定對應(yīng)于第一數(shù)據(jù)的重寫部分的位置作為錯誤位置;和在來自主機(jī)中的正常的讀指令規(guī)定從記錄媒體中讀取第一數(shù)據(jù)時,通過使用附加到第一數(shù)據(jù)的錯誤校正代碼和設(shè)置在擦除指針存儲器中的特殊指針信息,通過擦除校正和隨機(jī)校正,該錯誤校正電路校正從記錄媒體中讀取的第一數(shù)據(jù)中的錯誤。
7.根據(jù)權(quán)利要求6所述的存儲控制器,其特征在于進(jìn)一步包括以數(shù)據(jù)扇區(qū)為單元存儲從記錄媒體中讀取的并具有通過錯誤校正電路所校正的錯誤的數(shù)據(jù)的讀數(shù)據(jù)緩沖器;以數(shù)據(jù)扇區(qū)為單元存儲要寫入到記錄媒體中的數(shù)據(jù)的寫數(shù)據(jù)緩沖器;在執(zhí)行來自主機(jī)的特殊的讀指令時將從記錄媒體中讀取的并具有附加到其中的錯誤校正代碼的數(shù)據(jù)傳輸給讀數(shù)據(jù)緩沖器并且不使該數(shù)據(jù)通過錯誤校正電路的傳輸電路;在通過執(zhí)行來自主機(jī)的特殊讀指令從記錄媒體中讀取第二數(shù)據(jù)時將存儲在讀數(shù)據(jù)緩沖器中并具有附加到其中的錯誤校正代碼的第二數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器中并存儲到讀數(shù)據(jù)緩沖器中而不通過錯誤校正電路的裝置;和通過重寫拷貝到寫數(shù)據(jù)緩沖器中的第二數(shù)據(jù)的一部分產(chǎn)生要寫到記錄媒體中的第一數(shù)據(jù)的裝置。
8.根據(jù)權(quán)利要求6所述的存儲控制器,其特征在于進(jìn)一步包括以數(shù)據(jù)扇區(qū)為單元存儲從記錄媒體中讀取的并具有通過錯誤校正電路所校正的錯誤的數(shù)據(jù)的讀數(shù)據(jù)緩沖器;以數(shù)據(jù)扇區(qū)為單元存儲要寫入到記錄媒體中的數(shù)據(jù)的寫數(shù)據(jù)緩沖器;在執(zhí)行來自主機(jī)的特殊的讀指令時將從記錄媒體中讀取的并具有附加到其中的錯誤校正代碼的數(shù)據(jù)傳輸給讀數(shù)據(jù)緩沖器并且不使該數(shù)據(jù)通過錯誤校正電路的傳輸電路;在通過執(zhí)行來自主機(jī)的特殊讀指令從記錄媒體中讀取第二數(shù)據(jù)時重寫存儲在讀數(shù)據(jù)緩沖器的一部分第二數(shù)據(jù)并將其存儲在讀數(shù)據(jù)緩沖器中而不通過錯誤校正電路的裝置;和通過將來自讀數(shù)據(jù)緩沖器中重寫的第二數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器中產(chǎn)生要寫到記錄媒體中的第一數(shù)據(jù)的裝置,該第二數(shù)據(jù)具有附加到其中的錯誤校正代碼。
9.一種存儲設(shè)備,用于在將數(shù)據(jù)寫到記錄媒體時產(chǎn)生數(shù)據(jù)的錯誤校正代碼并在從記錄媒體中讀取數(shù)據(jù)時校正在該數(shù)據(jù)中的錯誤,使用表示該錯誤的位置的指針信息和附加到該數(shù)據(jù)的錯誤校正代碼校正該錯誤,該存儲設(shè)備包括信號處理裝置,該信號處理裝置對從記錄媒體中讀取的讀信號進(jìn)行模擬至數(shù)字轉(zhuǎn)換,對要寫到記錄媒體的數(shù)據(jù)進(jìn)行編碼以及對經(jīng)數(shù)字化的讀數(shù)據(jù)進(jìn)行解碼;和存儲控制器,根據(jù)來自主機(jī)的讀/寫指令,該存儲控制器通過信號處理裝置控制從記錄媒體中讀數(shù)據(jù)或?qū)?shù)據(jù)寫到記錄媒體以及從主機(jī)讀數(shù)據(jù)或?qū)?shù)據(jù)寫到主機(jī)的傳輸,和其中存儲控制器包括錯誤校正代碼發(fā)生器,該錯誤校正代碼發(fā)生器根據(jù)要寫到記錄媒體中的數(shù)據(jù)產(chǎn)生錯誤校正代碼,該錯誤校正代碼附加到該數(shù)據(jù)中;擦除指針存儲器,該擦除指針存儲器存儲表示存在錯誤的位置的指針信息,該錯誤包含在從記錄媒體中所讀取的數(shù)據(jù)中;錯誤校正電路,通過使用附加到該數(shù)據(jù)的錯誤校正代碼和存儲在擦除指針存儲器中的指針信息,該錯誤校正電路通過擦除校正和隨機(jī)校正來校正從記錄媒體中讀取的該數(shù)據(jù)中的錯誤;禁止電路,在執(zhí)行來自主機(jī)的特殊寫指令時,該禁止電路禁止錯誤校正代碼發(fā)生器將錯誤校正代碼附加到要寫到記錄媒體中的數(shù)據(jù)中;和可編程擦除指針發(fā)生器,該可編程擦除指針發(fā)生器根據(jù)來自主機(jī)的擦除指針設(shè)定指令在擦除指針存儲器中設(shè)定指示某一位置作為錯誤位置的特殊的指針信息,該位置由擦除指針設(shè)定指令指定,特殊指針信息用于根據(jù)來自主機(jī)的正常讀指令讀取通過執(zhí)行特殊寫指令寫到記錄媒體的數(shù)據(jù)。
10.一種檢驗并入在存儲設(shè)備中的擦除校正功能的方法,通過使用表示錯誤的位置的指針信息和附加到數(shù)據(jù)的錯誤校正代碼,該擦除校正功能用于校正從記錄媒體中讀取的數(shù)據(jù)中的錯誤,該方法的特征在于包括在寫數(shù)據(jù)緩沖器中準(zhǔn)備要寫到記錄媒體的第一數(shù)據(jù),通過重寫第二數(shù)據(jù)的一部分獲得該第一數(shù)據(jù),該第一數(shù)據(jù)具有基于第二數(shù)據(jù)所產(chǎn)生的錯誤校正代碼;執(zhí)行特殊的寫指令以將在寫數(shù)據(jù)緩沖器中準(zhǔn)備的并已經(jīng)具有錯誤校正代碼的第一數(shù)據(jù)寫到記錄媒體中,而不基于第一數(shù)據(jù)產(chǎn)生另一錯誤校正代碼;不管是否從記錄媒體中讀取數(shù)據(jù),在擦除指針存儲器中設(shè)置特殊的指針信息,該特殊指針信息指示對應(yīng)于第一數(shù)據(jù)的重寫部分的位置作為錯誤位置;讀取通過執(zhí)行特殊的寫指令寫入到記錄媒體中的第一數(shù)據(jù);和通過使用附加到第一數(shù)據(jù)的錯誤校正代碼和存儲在擦除指針存儲器中的指針信息,通過確定是否由擦除校正和隨機(jī)校正來校正了從記錄媒體中讀取的第一數(shù)據(jù)中的錯誤,確定擦除校正功能是否正常工作。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于進(jìn)一步包括禁止重寫存儲在擦除指針存儲器中的特殊指針信息,以及其中在禁止之后讀取第一數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于準(zhǔn)備第一數(shù)據(jù)包括在寫數(shù)據(jù)緩沖器中準(zhǔn)備第二數(shù)據(jù),同時附加錯誤校正代碼,該錯誤校正代碼基于第二數(shù)據(jù)產(chǎn)生;和通過重寫在寫數(shù)據(jù)緩沖器中準(zhǔn)備的第二數(shù)據(jù)的一部分產(chǎn)生第一數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于準(zhǔn)備第二數(shù)據(jù)包括在寫數(shù)據(jù)緩沖器中準(zhǔn)備第二數(shù)據(jù),同時不附加錯誤校正代碼;執(zhí)行正常的寫指令以將在寫數(shù)據(jù)緩沖器中準(zhǔn)備的沒有錯誤校正代碼的第二數(shù)據(jù)寫到記錄媒體中;執(zhí)行特殊的讀指令以從記錄媒體中讀取通過執(zhí)行正常的寫指令寫到記錄媒體中的第二數(shù)據(jù)并將第二數(shù)據(jù)存儲在讀數(shù)據(jù)的緩沖器中,同時附加錯誤校正代碼,該第二數(shù)據(jù)寫到記錄媒體中,同時附加錯誤校正代碼,該錯誤校正代碼基于第二數(shù)據(jù)產(chǎn)生;和通過執(zhí)行特殊的讀指令將存儲在讀數(shù)據(jù)緩沖器中的第二數(shù)據(jù)拷貝到寫數(shù)據(jù)緩沖器中,同時附加錯誤校正代碼。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于該部分的長度不超過通過擦除校正所能夠校正的數(shù)據(jù)長度和通過隨機(jī)校正所能夠校正的數(shù)據(jù)長度之和。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于特殊指針信息指示包括在該部分中并除了通過隨機(jī)校正所能夠校正的脈沖串長度之外的連續(xù)的數(shù)據(jù)范圍作為錯誤位置。
全文摘要
在執(zhí)行來自主機(jī)的特殊寫指令時,執(zhí)行切換以使通過該指令指定的數(shù)據(jù)將不輸入到ECC發(fā)生器(13A)。根據(jù)來自主機(jī)的擦除指針設(shè)置指令,可編程擦除指針發(fā)生器(137)在擦除指針存儲器(138)中設(shè)置指示由設(shè)置指令所指定的位置作為錯誤位置的特殊的擦除指針(EP2)。這個指針(EP2)用于在根據(jù)正常的讀指令讀取通過執(zhí)行特殊的寫指令寫到盤中的數(shù)據(jù)時執(zhí)行的擦除校正。
文檔編號G06F11/08GK1519846SQ20031012433
公開日2004年8月11日 申請日期2003年12月26日 優(yōu)先權(quán)日2002年12月27日
發(fā)明者角田昌彥 申請人:株式會社東芝