錯誤校正代碼播種的制作方法
【專利摘要】本發(fā)明公開了錯誤校正代碼播種。本發(fā)明中公開的技術(shù)提供了一種當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的ECC值不匹配時對從數(shù)據(jù)塊讀取的數(shù)據(jù)進行驗證的方法。特別地,該方法包括:將數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊指定為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián);將單元號與所述索引序列中的指定的數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián);以及將偏移量與所述后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地記錄在可由錯誤檢測與校正模塊訪問的偏移量表中,其中所述偏移量和所述單元號的組合表示用于所述錯誤檢測與校正模塊的種子。
【專利說明】錯誤校正代碼播種
[0001]相關(guān)申請的交叉引用
[0002]本申請涉及到序號為、發(fā)明名稱為“Error Correct1n Code Seeding”且與本申請同時遞交的美國專利申請,該美國申請因其所公開和教導(dǎo)的全部內(nèi)容特此通過引用合并于本文中。
【背景技術(shù)】
[0003]在驅(qū)動器處理的多個階段中都會發(fā)現(xiàn)不可用數(shù)據(jù)塊。當(dāng)發(fā)現(xiàn)這樣的數(shù)據(jù)塊時,驅(qū)動器會被重新線性化,以使可用數(shù)據(jù)塊具有以關(guān)于每個數(shù)據(jù)塊的錯誤校正代碼(ECC)信息編碼的順序索引。由于該重新線性化,ECC信息被重新寫到全部可用數(shù)據(jù)塊上,使得可用塊具有順序索引。然而,要花費幾個小時來將單個驅(qū)動器重新線性化,這對制造商而言是相當(dāng)大的開銷。
[0004]發(fā)明概述
[0005]本文所描述的以及進行權(quán)利要求的實施方案通過如下方案解決了上述問題:將數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊指定為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián);將單元號與索引序列中的識別的數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián);以及與后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地將偏移量記錄在可由錯誤檢測與校正模塊訪問的偏移量表中,其中偏移量和單元號的組合表示用于錯誤檢測與校正模塊的種子。
[0006]提供該概述是為了以簡化形式引入下文在發(fā)明詳述部分中進一步說明的構(gòu)思的選擇。該概述不意在確定權(quán)利要求主題的關(guān)鍵特征或必要特征,也不意在用于限定權(quán)利要求主題的范圍。這些以及其它的特征和優(yōu)點將從下面的發(fā)明詳述的閱讀中變得顯然。
【專利附圖】
【附圖說明】
[0007]圖1圖示出具有當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的錯誤校正代碼(ECC)值不匹配時用于對從數(shù)據(jù)塊中讀取的數(shù)據(jù)進行驗證的機構(gòu)的系統(tǒng)。
[0008]圖2圖示出具有創(chuàng)建偏移量表的偏移量表創(chuàng)建模塊的存儲設(shè)備,偏移量表能夠用于計算用于錯誤檢測模塊的種子值。
[0009]圖3圖示出具有用于當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的ECC值不匹配時用于對從數(shù)據(jù)塊中讀取的數(shù)據(jù)進行驗證的機構(gòu)的另一系統(tǒng)。
[0010]圖4圖不出用于創(chuàng)建偏移量表的實施例操作,偏移量表能夠用于創(chuàng)建用于錯誤檢測模塊的種子值。
[0011]圖5圖示出當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的ECC值不匹配時用于對從數(shù)據(jù)塊中讀取的數(shù)據(jù)進行驗證的實施例操作。
[0012]圖6披露了適于實施用于在磁盤訪問操作期間選擇性略去目標(biāo)數(shù)據(jù)塊的索引序列中的一個以上數(shù)據(jù)塊的系統(tǒng)的一個以上方案的計算機系統(tǒng)的框圖。
[0013]發(fā)明詳述
[0014]圖1圖示出具有用于當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的錯誤校正代碼(ECC)值不匹配時用于對數(shù)據(jù)塊的數(shù)據(jù)進行驗證的機構(gòu)(例如,偏移量查找模塊114)的系統(tǒng)100。系統(tǒng)100包括主計算機102,其將一個或多個訪問命令104 (例如,讀命令或?qū)懨?發(fā)送到存儲驅(qū)動器106。存儲驅(qū)動器106是具有有形的計算機可讀存儲介質(zhì)的設(shè)備,該存儲介質(zhì)能夠?qū)?shù)據(jù)存儲在可由計算機訪問的順序單位中(例如,單元或數(shù)據(jù)塊)。該有形計算機可讀介質(zhì)可以包括但不限于磁存儲盤、固態(tài)驅(qū)動器、快擦寫存儲器、光存儲盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。存儲驅(qū)動器106包括多個數(shù)據(jù)塊(例如,數(shù)據(jù)塊108),其能夠保持設(shè)定數(shù)量的存儲字節(jié)。
[0015]每個數(shù)據(jù)塊都具有與存儲設(shè)備106上的數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊物理位置相關(guān)聯(lián)的物理索引(例如,數(shù)據(jù)塊108中的物理索引O)。根據(jù)一種實施方式,存儲設(shè)備106上的順序數(shù)據(jù)塊與連續(xù)增加的物理索引相關(guān)聯(lián)。每個數(shù)據(jù)塊還包括錯誤校正代碼(ECC)信息(未示出),包括對數(shù)據(jù)塊的物理索引進行編碼的ECC值。
[0016]存儲設(shè)備(例如,存儲驅(qū)動器106)可以包括在設(shè)備的初始處理期間被標(biāo)識為差的或不可用的多個數(shù)據(jù)塊。例如,磁盤表面上的塊缺陷或不規(guī)格(例如,熱粗糙)會使得磁盤的一個或多個塊不可用。沒有實際的物理缺陷的數(shù)據(jù)塊也可能是“不可用的”,因為它們由于其它原因從存儲設(shè)備的數(shù)據(jù)存儲操作中被選擇性地略去了。因此,術(shù)語“不可用”在本文中用于表示由于任何原因而從數(shù)據(jù)存儲操作中的使用選擇性地略去的存儲塊。
[0017]當(dāng)從存儲驅(qū)動器106上的數(shù)據(jù)塊讀回數(shù)據(jù)時,錯誤檢測與校正模塊110執(zhí)行數(shù)據(jù)完整性校驗以確保所讀或?qū)懙臄?shù)據(jù)是正確的并且正確的數(shù)據(jù)塊被訪問。為了執(zhí)行該完整性校驗,錯誤檢測與校正模塊I1使用種子值和從數(shù)據(jù)塊讀回的數(shù)據(jù)來生成ECC值。當(dāng)完整性校驗成功時,所生成的ECC值與存儲在數(shù)據(jù)塊中的ECC值匹配。然而,如果種子值與數(shù)據(jù)塊的物理索引不匹配,該確認(rèn)通常是不可能的。
[0018]在圖1中,在初始工廠處理操作期間具有物理索引I和4的數(shù)據(jù)塊被標(biāo)識為不可用。然而,存儲驅(qū)動器106無需重新線性化來從存儲設(shè)備的索引方案中排除不可用塊I和4。相反,系統(tǒng)100已經(jīng)被制造為包括偏移量查找模塊114,其可以是固件中的功能模塊。偏移量查找模塊114允許錯誤檢測與校正模塊110對從數(shù)據(jù)塊讀取的數(shù)據(jù)的完整性進行驗證,即使當(dāng)輸入到錯誤檢測與校正模塊110的種子值不同于數(shù)據(jù)塊的物理索引時。
[0019]在圖示的實施例中,主計算機102發(fā)送四個訪問命令104以將四個名字(例如,Sarah、Jake、June和Charlie)寫入具有單元號0_3的四個目標(biāo)數(shù)據(jù)塊中。與四個目標(biāo)數(shù)據(jù)塊中的每一個相關(guān)聯(lián)的數(shù)據(jù)(例如,名字)連同與每個數(shù)據(jù)塊對應(yīng)的邏輯塊地址(LBA) —起發(fā)送到存儲驅(qū)動器106。存儲設(shè)備100將來自主計算機102的LBA分別轉(zhuǎn)換成單元號O、1、2和3。此后,數(shù)據(jù)分配模塊(未示出)選擇物理塊索引以與各單元號對應(yīng)。為避免將數(shù)據(jù)寫到具有物理索引I和4的不可用塊中,數(shù)據(jù)分配模塊判定與單元號O、1、2和3相關(guān)聯(lián)的數(shù)據(jù)能夠分別分配到物理數(shù)據(jù)塊0、2、3和5中。結(jié)果是,名字Sarah、Jake、June和Charlie被寫入物理數(shù)據(jù)塊O、2、3和5中。
[0020]當(dāng)從四個目標(biāo)數(shù)據(jù)塊中的一個讀回數(shù)據(jù)時,偏移量查找模塊114計算種子值,該種子值能夠由錯誤檢測與校正模塊110使用來對從目標(biāo)數(shù)據(jù)塊中讀取的數(shù)據(jù)的完整性進行驗證。特別地,偏移量查找模塊114訪問偏移量表(未示出)并且取回與目標(biāo)數(shù)據(jù)塊的單元號相關(guān)聯(lián)的偏移量。利用單元號和偏移量,偏移量查找模塊生成種子值。錯誤檢測與校正模塊110使用種子值和從關(guān)聯(lián)數(shù)據(jù)塊讀回的數(shù)據(jù)來計算ECC值,將該ECC值與存儲在目標(biāo)數(shù)據(jù)塊中的ECC值進行比較。
[0021]例如,為了驗證數(shù)據(jù)“Sarah”的完整性,偏移量查找模塊114取回與單元號O相關(guān)聯(lián)的偏移量O。利用偏移量0,偏移量查找模塊114計算種子值0,該種子值用于計算與存儲在具有物理索引O的數(shù)據(jù)塊中的ECC值匹配的ECC值。
[0022]同樣,為了驗證數(shù)據(jù)“Jake”的完整性,偏移量查找模塊114使用單元值I來取回偏移量I并且計算種子值2。錯誤檢測與校正模塊110使用種子2來計算與存儲在具有物理索引2的數(shù)據(jù)塊中的ECC值匹配的ECC值。
[0023]類似地,為了驗證數(shù)據(jù)“Charlie”的完整性,偏移量查找模塊110取回與單元號3相關(guān)聯(lián)的偏移量2并且計算種子值5。錯誤檢測與校正模塊110使用種子值5和從具有物理索引5的數(shù)據(jù)塊讀回的數(shù)據(jù)來計算與存儲在具有物理索引5的數(shù)據(jù)塊中的ECC值匹配的ECC值。結(jié)果,數(shù)據(jù)寫入到介質(zhì)上的順序可用數(shù)據(jù)塊中,驗證了數(shù)據(jù)的完整性,并且在初始驅(qū)動器處理期間未對驅(qū)動器進行重新線性化。
[0024]圖2圖示出具有創(chuàng)建偏移量表204的偏移量表創(chuàng)建模塊202的存儲設(shè)備200,偏移量表204能夠用于計算用于錯誤檢測模塊(未示出)的種子值,并且因此對從數(shù)據(jù)塊讀取的數(shù)據(jù)的完整性進行驗證。存儲設(shè)備200包括存儲介質(zhì)206,存儲介質(zhì)206具有能夠存儲設(shè)定數(shù)據(jù)量的多個數(shù)據(jù)塊(例如,數(shù)據(jù)塊208和210)。存儲介質(zhì)206可以是任何類型的有形計算機可讀介質(zhì);然而,在一種實施方式中,存儲介質(zhì)是磁盤并且數(shù)據(jù)塊是沿著磁盤上的數(shù)據(jù)磁道的順序扇區(qū)。在另一實施方式中,存儲介質(zhì)是固態(tài)驅(qū)動器(SSD)。
[0025]存儲介質(zhì)206上的每個數(shù)據(jù)塊具有與索引序列(例如,包括在存儲介質(zhì)206上的可用的不可用的數(shù)據(jù)塊兩者的序列)中的數(shù)據(jù)塊物理位置相關(guān)聯(lián)的物理索引(例如,數(shù)據(jù)塊210中的物理索引O)。另外,每個數(shù)據(jù)塊具有經(jīng)編碼的EEC信息,經(jīng)編碼的EEC信息對數(shù)據(jù)塊的物理索引進行編碼(例如,數(shù)據(jù)塊210中的經(jīng)編碼的物理索引“ECC0”)。在可以在ECC信息編碼到每個數(shù)據(jù)塊上之后進行的工廠格式化操作期間,通過錯誤檢測模塊(未示出)將不可用數(shù)據(jù)塊(例如,具有物理索引I和4的不可用數(shù)據(jù)塊)標(biāo)識在存儲介質(zhì)206上。
[0026]經(jīng)由偏移量表創(chuàng)建模塊202實現(xiàn)了用于對從存儲操作中選擇性地略去不可用塊的序列中的數(shù)據(jù)塊進行錯誤校驗的機構(gòu)。偏移量表創(chuàng)建模塊202將可用數(shù)據(jù)塊的物理索引與對應(yīng)的單元號(其中單元號統(tǒng)一地表示可用數(shù)據(jù)塊的未中斷序列)相關(guān)聯(lián)并且將增量偏移量值與選定的單元號相關(guān)聯(lián)地記錄在偏移量表204中。該偏移量值隨后可用于對在磁盤存儲操作期間寫和讀的數(shù)據(jù)的完整性進行校驗。
[0027]圖2還包括邏輯表214 (其可以包括或者可以不包括在存儲器中),邏輯表示例了用于取得偏移量表204的偏移量的邏輯。特別地,邏輯表214具有“物理索引”欄,其包括對應(yīng)于存儲介質(zhì)206上的可用數(shù)據(jù)塊和不可用數(shù)據(jù)塊兩者的物理索引。邏輯表214還具有“單元號”欄,其包括與每個可用數(shù)據(jù)塊相關(guān)聯(lián)的單元號。例如,物理索引I和4不具有在偏移量表204中的對應(yīng)單元號,因為這些數(shù)據(jù)塊已被錯誤檢測模塊標(biāo)識為不可用。因此,一組連續(xù)的單元號0、1、2和3分別對應(yīng)于順序可用數(shù)據(jù)塊0、2、3和5的物理索引。偏移量(例如,邏輯表214中的總偏移量值)表示數(shù)據(jù)塊的物理索引和單元號之間的差值??偲屏恐蹬c索引序列中的不可用數(shù)據(jù)塊之后的每個可用數(shù)據(jù)塊關(guān)聯(lián)地增I。例如,總偏移量值與物理索引2關(guān)聯(lián)地增1,因為物理索引2對應(yīng)于具有物理索引I的不可用數(shù)據(jù)塊之后的下一可用數(shù)據(jù)塊。類似地,總偏移量還與物理索引5關(guān)聯(lián)地增1,因為物理索引5對應(yīng)于具有物理索引4的不可用數(shù)據(jù)塊之后的下一可用數(shù)據(jù)塊。通過偏移量表創(chuàng)建模塊202將在邏輯表214中所圖示的信息濃縮成偏移量表204且存儲在存儲設(shè)備200的存儲器中。
[0028]偏移量表創(chuàng)建模塊202不將與存儲設(shè)備上的每一個可用物理索引相關(guān)聯(lián)的偏移量記錄在偏移量表204中。相反,與具有受增量影響的第一個順序物理索引的每個可用數(shù)據(jù)塊(例如,物理索引的索引序列中不可用數(shù)據(jù)塊之后的第一個可用數(shù)據(jù)塊)相關(guān)聯(lián)地記錄偏移量。例如,單元號I和2均受偏移量I影響。然而,物理索引2是受偏移量I影響的第一個物理索引。因此,與物理索引2相關(guān)聯(lián)地記錄偏移量I。
[0029]偏移量表創(chuàng)建模塊202被圖示為在存儲設(shè)備200的內(nèi)部(例如,固件中的模塊);然而,偏移量表創(chuàng)建模塊202和/或邏輯映射模塊202可以是與存儲設(shè)備200通信耦合的外部設(shè)備的軟件或固件。由偏移量表創(chuàng)建模塊202創(chuàng)建的偏移量表204與存儲設(shè)備200相關(guān)聯(lián)地保存在例如存儲設(shè)備200的固件中,以使其可在存儲設(shè)備200的整個生命周期內(nèi)被訪問。特別地,每當(dāng)從數(shù)據(jù)塊讀取數(shù)據(jù)時可以訪問偏移量表204,并且偏移量表204用于計算用于錯誤檢測與校正模塊的種子值,該種子值對存儲在數(shù)據(jù)塊中的數(shù)據(jù)的完整性進行驗證。
[0030]圖3圖示出具有當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的ECC值不匹配時用于對從數(shù)據(jù)塊讀取的數(shù)據(jù)進行驗證的機構(gòu)(例如,偏移量查找模塊310)的另一系統(tǒng)300。系統(tǒng)包括主計算機(未示出),其發(fā)送一個或多個訪問命令304 (例如,讀命令和寫命令)至存儲設(shè)備306。存儲設(shè)備306也包括偏移量查找模塊320、偏移量表322和存儲介質(zhì)312。存儲介質(zhì)312包括用于存儲數(shù)據(jù)的多個數(shù)據(jù)塊(例如,數(shù)據(jù)塊308)。每個數(shù)據(jù)塊都具有與存儲介質(zhì)312上的數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊物理位置相關(guān)聯(lián)的物理索引(例如,數(shù)據(jù)塊308中的物理索引O)。另外,每個數(shù)據(jù)塊都包含對數(shù)據(jù)塊的物理索引進行編碼的EEC信息。例如,數(shù)據(jù)塊308具有對數(shù)據(jù)塊的物理索引“O”進行編碼的ECC值‘ECC0’。
[0031]在存儲設(shè)備306的工廠處理操作期間,標(biāo)識不可用數(shù)據(jù)塊(例如,不可用數(shù)據(jù)塊314和318)??梢耘c參考圖2描述的偏移量表創(chuàng)建模塊相同或相似的偏移量表創(chuàng)建模塊(未不出)創(chuàng)建偏移量表322。偏移量表322包括名稱為“單兀號”的第一欄。此處,單兀號序列表不可用塊的未中斷序列。僅選擇列于偏移量表322中的單兀號。偏移量表322還包括名稱為“總偏移量”的欄,其包括能夠用于將既定單元號轉(zhuǎn)換成可作為種子傳遞到錯誤檢測與校正模塊310的值的偏移量。
[0032]在圖3中,主計算機發(fā)送訪問命令304以將四個名字(例如,Sarah、Jake、June和Charlie)寫入與單元號0、1、2和3相關(guān)聯(lián)的四個目標(biāo)數(shù)據(jù)塊中。特別地,主機將LBA發(fā)送到存儲設(shè)備306,并且存儲設(shè)備將LBA轉(zhuǎn)換成關(guān)聯(lián)的單元號0-3。利用現(xiàn)有技術(shù),存儲設(shè)備判定與單元號0-3相關(guān)聯(lián)的數(shù)據(jù)分別可寫入到物理索引0、2、3和5。
[0033]當(dāng)隨后從目標(biāo)數(shù)據(jù)塊之一讀回數(shù)據(jù)時,存儲設(shè)備306的偏移量查找模塊320訪問偏移量表322并且取回與每個單元號相關(guān)聯(lián)的偏移量。在圖示的實施例中,偏移量查找模塊320取回與單元號O相關(guān)聯(lián)的偏移量O ;與單元號I和2相關(guān)聯(lián)的偏移量I ;以及與單元號3相關(guān)聯(lián)的偏移量2。通過將每個目標(biāo)數(shù)據(jù)塊的單元號增加到關(guān)聯(lián)的偏移量,偏移量查找模塊310計算種子值(對于每個目標(biāo)數(shù)據(jù)塊),該種子值被輸入到錯誤檢測與校正模塊310。錯誤檢測與校正模塊310利用種子值對存儲在目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)的完整性進行驗證。結(jié)果是,錯誤檢測與校正模塊310能夠通過計算ECC值并且將其與存儲在目標(biāo)數(shù)據(jù)塊中的ECC值進行比較來檢測并校正數(shù)據(jù)中的錯誤。如果計算出的ECC值和所存儲的ECC值滿足完整性條件(例如,如果值匹配或者滿足一些其它相關(guān)),則對寫入目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)的完整性進行了驗證。
[0034]例如,為確保名字“Jake”被正確地寫且寫到正確的數(shù)據(jù)塊中,物理索引2 (通過將關(guān)聯(lián)的單元號與來自偏移量表322的偏移量相加在一起來計算)連同寫到具有物理索引2的單元的數(shù)據(jù)(例如,“ Jake”)一起被輸入到錯誤檢測與校正模塊310。利用這些輸入,錯誤檢測與校正模塊310計算ECC值(例如,ECC2),該ECC值與具有物理索引2的數(shù)據(jù)塊上所存儲的ECC值(例如,ECC2)匹配。
[0035]在圖中示出錯誤檢測與校正模塊310和偏移量查找模塊320兩者都位于存儲設(shè)備306的內(nèi)部(例如,固件)。然而,兩個模塊中的任一個還可以是與存儲設(shè)備300通信耦合的外部設(shè)備的軟件或固件。
[0036]圖4圖示出用于創(chuàng)建能夠用于計算用于錯誤檢測模塊的種子值的偏移量表的示例性操作。指定操作405將索引序列中的數(shù)據(jù)塊指定為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián)。索引序列是包括存儲設(shè)備上的可用數(shù)據(jù)塊和不可用數(shù)據(jù)塊兩者的序列。在一種實施方案中,存儲設(shè)備上的順序數(shù)據(jù)塊被分配了在索引序列中連續(xù)增加的物理索引。關(guān)聯(lián)操作410將單元號與索引序列中的標(biāo)識數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián)。記錄操作415將偏移量與后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地記錄在偏移量表中,其中偏移量用于生成后續(xù)可用數(shù)據(jù)塊的ECC值。在一種實施方式中,偏移量與關(guān)聯(lián)的單元號相加以創(chuàng)建用于計算ECC值的用于錯誤檢測與校正模塊的種子值。計算出的ECC值和在后續(xù)可用數(shù)據(jù)塊上編碼的ECC值滿足完整性條件,確保寫入后續(xù)可用數(shù)據(jù)塊的數(shù)據(jù)的完整性。
[0037]在一種實施方式中,所記錄的偏移量是后續(xù)可用數(shù)據(jù)塊的單元號與物理索引之間的差值。偏移量可以與索引序列中受偏移量影響的第一個數(shù)據(jù)塊相關(guān)聯(lián)地記錄在偏移量表中。在一種實施方式中,索引序列中的數(shù)據(jù)塊是沿著磁盤上的數(shù)據(jù)磁道的連續(xù)扇區(qū)。
[0038]在一種實施方式中,示例性操作400是在存儲設(shè)備的初始工廠格式化期間進行的。操作405-415可以在工廠中O重復(fù)多次,并且可以與磁盤上的多個選擇性略去(即,不可用)的數(shù)據(jù)塊中的每個相關(guān)地記錄偏移量。
[0039]圖5圖示出用于當(dāng)數(shù)據(jù)塊的單元號與存儲在數(shù)據(jù)塊中的ECC值不匹配時對從數(shù)據(jù)塊讀取的數(shù)據(jù)進行驗證的示例性操作500。訪問操作505基于單元號來訪問數(shù)據(jù)塊中具有索引序列的數(shù)據(jù)塊,其中索引序列中的每個數(shù)據(jù)塊包括存儲的ECC值。在一種實施方案中,數(shù)據(jù)塊的索引序列是存儲設(shè)備中的連續(xù)數(shù)據(jù)塊的序列。在另一實施方式中,數(shù)據(jù)塊是沿著磁介質(zhì)盤中的數(shù)據(jù)磁道的扇區(qū)。
[0040]取回操作510取回與數(shù)據(jù)塊的單元號相關(guān)聯(lián)的偏移量。在一種實施方式中,取回操作510通過訪問可存儲在存儲設(shè)備的固件中的偏移量訪問表來取回偏移量。
[0041]生成操作515基于單兀號和所取回的偏移量來生成ECC值。在一種實施方式中,判定操作515通過為錯誤檢測與校正模塊播種單元號與偏移量之和來生成ECC值。
[0042]判定操作520判定所生成的ECC值和所存儲的ECC值是否滿足完整性條件。在一種實施方式中,如果所生成的ECC值和經(jīng)編碼的ECC值相等,則滿足完整性條件。
[0043]圖6披露了適于實現(xiàn)用于在磁盤訪問操作期間選擇性略去目標(biāo)數(shù)據(jù)庫的索引序列中的一個或多個數(shù)據(jù)庫的系統(tǒng)的一個或多個方案的計算機系統(tǒng)600的框圖。在一種實施方案中,計算機系統(tǒng)600與存儲設(shè)備可通信地耦合,存儲設(shè)備具有偏移量表創(chuàng)建模塊、錯誤檢測與校正模塊和/或偏移量查找模塊,偏移量查找模塊取回偏移量以計算與用于錯誤檢測與校正操作的數(shù)據(jù)庫相關(guān)聯(lián)的種子。
[0044]計算機系統(tǒng)600能夠執(zhí)行在有形計算機可讀存儲介質(zhì)中具體實施的計算機程序產(chǎn)品以執(zhí)行計算機處理。有形計算機可讀存儲介質(zhì)不具體實施在載波或其它信號中。數(shù)據(jù)和程序文件可輸入到計算機系統(tǒng)600中,計算機系統(tǒng)600利用一個以上的處理器來讀取文件并且執(zhí)行其中的程序。在圖6中示出了計算機系統(tǒng)的一些元件,其中顯示處理器602具有輸入/輸出(I/O)部604、中央處理單元(CPU) 606和存儲器部608??纱嬖谝粋€以上的處理器602、使得計算系統(tǒng)600的處理器602包括單個中央處理單元6060或多個處理單元。計算系統(tǒng)600可以是常規(guī)的計算機、分布式計算機或任何其它類型的計算機。所描述的技術(shù)可任選地以加載于存儲器608、磁盤存儲單元612或可移除存儲器618中的軟件實現(xiàn)。
[0045]在示例性實施方式中,錯誤檢測與校正模塊、偏移量查找模塊和/或偏移量表創(chuàng)建模塊可以存儲在存儲器608和/或存儲單元612中且由處理器607執(zhí)行的指令來具體實現(xiàn)。此外,本地計算系統(tǒng)、遠程數(shù)據(jù)源和/或服務(wù)以及其它關(guān)聯(lián)邏輯表示可配置成適應(yīng)性地分配工作負(fù)荷任務(wù)以提高系統(tǒng)性能的固件、硬件和/或軟件。錯誤檢測與校正模塊、偏移量查找模塊和/或偏移量表創(chuàng)建模塊可利用通用計算機和專用軟件(諸如執(zhí)行服務(wù)軟件的服務(wù)器)、以及專用計算系統(tǒng)和專用軟件(諸如執(zhí)行服務(wù)軟件的移動設(shè)備或網(wǎng)絡(luò)應(yīng)用)、或其它計算配置來實現(xiàn)。另外,程序數(shù)據(jù),諸如偏移量表,可以存儲在存儲器608和/或存儲單元612中并且由處理器602執(zhí)行。
[0046]本文所描述的實施方式可實現(xiàn)為一個或多個計算機系統(tǒng)中的邏輯步驟。本發(fā)明的邏輯操作實現(xiàn)為:(I)在一個或多個計算機系統(tǒng)中執(zhí)行的處理器實現(xiàn)的步驟序列;以及(2)一個或多個計算機系統(tǒng)內(nèi)的相互連接的機器或電路模塊。實施方式是選擇的問題,取決于實施本發(fā)明的計算機系統(tǒng)的性能要求。因此,構(gòu)成本文所描述的實施方案的實施方案的邏輯操作不同地稱為操作、步驟、對象或模塊。此外,應(yīng)當(dāng)理解的是,邏輯操作可以根據(jù)需要按任意次序執(zhí)行、添加和省略,除非明確地做要求或者權(quán)利要求語言本質(zhì)上使得特定次序成為必然。
[0047]上述的說明書、實施例和數(shù)據(jù)提供了對示例性實施方案的結(jié)構(gòu)和使用的完整描述。因為能夠在不偏離本發(fā)明的精神和范圍的情況下做出許多可選的實施方案,本發(fā)明在于本文中所附的權(quán)利要求。此外,不同實施方案的結(jié)構(gòu)特征可組合到另外的實施方案中而不會偏離所記述的權(quán)利要求。
【權(quán)利要求】
1.一種方法,包括: 將數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊指定為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián); 將單元號與所述索引序列中的指定的數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián);以及 將偏移量與所述后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地記錄在可由錯誤檢測與校正模塊訪問的偏移量表中,其中所述偏移量和所述單元號的組合表示用于所述錯誤檢測與校正模塊的種子。
2.如權(quán)利要求1所述的方法,其中所述偏移量是所述后續(xù)可用數(shù)據(jù)塊的所述單元號與所述物理索引之間的差值。
3.如權(quán)利要求1所述的方法,其中將所述偏移量記錄在所述偏移量表中還包括與所述索引序列中的受所述偏移量影響的第一數(shù)據(jù)塊相關(guān)聯(lián)地記錄所述偏移量。
4.如權(quán)利要求1所述的方法,其中記錄所述偏移量是在存儲設(shè)備的工廠格式化操作期間執(zhí)行的。
5.如權(quán)利要求1所述的方法,其中所述偏移量表存儲在存儲設(shè)備的固件中。
6.如權(quán)利要求1所述的方法,其中所述索引序列包括與存儲設(shè)備上的順序數(shù)據(jù)塊相關(guān)聯(lián)的連續(xù)增加的索引。
7.如權(quán)利要求1所述的方法,其中所述索引序列中的數(shù)據(jù)塊是沿著磁盤上的數(shù)據(jù)磁道的連續(xù)扇區(qū)。
8.—個以上有形處理器可讀存儲介質(zhì),其對用于在基于處理器的系統(tǒng)上執(zhí)行計算處理的處理器可執(zhí)行指令進行編碼,所述計算處理包括: 將數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊指定為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián); 將單元號與所述索引序列中的指定的數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián);以及 將偏移量與所述后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地記錄在可由錯誤檢測與校正模塊訪問的偏移量表中,其中所述偏移量和所述單元號的組合表示用于所述錯誤檢測與校正模塊的種子。
9.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中所述偏移量是所述后續(xù)可用數(shù)據(jù)塊的所述單元號與所述物理索引之間的差值。
10.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中將所述偏移量記錄在所述偏移量表中還包括與所述索引序列中的受所述偏移量影響的第一數(shù)據(jù)塊相關(guān)聯(lián)地記錄所述偏移量。
11.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中記錄所述偏移量是在存儲設(shè)備的工廠格式化操作期間執(zhí)行的。
12.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中所述偏移量表存儲在存儲設(shè)備的固件中。
13.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中所述索引序列包括與存儲設(shè)備上的順序數(shù)據(jù)塊相關(guān)聯(lián)的連續(xù)增加的索引。
14.如權(quán)利要求8所述的一個以上計算機可讀存儲介質(zhì),其中所述索引序列中的數(shù)據(jù)塊是沿著磁盤上的數(shù)據(jù)磁道的連續(xù)扇區(qū)。
15.—種系統(tǒng),包括: 存儲設(shè)備;以及錯誤檢測模塊,其配置為將數(shù)據(jù)塊的索引序列中的數(shù)據(jù)塊識別為不可用,其中每個數(shù)據(jù)塊與物理索引相關(guān)聯(lián);以及 偏移量表創(chuàng)建模塊,其配置為: 將單元號與與所述索引序列中的指定的數(shù)據(jù)塊之后的后續(xù)可用數(shù)據(jù)塊相關(guān)聯(lián);以及 將偏移量與所述后續(xù)可用數(shù)據(jù)塊的單元號相關(guān)聯(lián)地記錄在可由錯誤檢測與校正模塊訪問的偏移量表中,其中所述偏移量和所述單元號的組合表示用于所述錯誤檢測與校正模塊的種子。
16.如權(quán)利要求15所述的系統(tǒng),其中所述偏移量是所述后續(xù)可用數(shù)據(jù)塊的所述單元號與所述物理索引之間的差值。
17.如權(quán)利要求15所述的系統(tǒng),其中所述偏移量表創(chuàng)建模塊還配置為將與所述索引序列中的受所述偏移量影響的第一數(shù)據(jù)塊相關(guān)聯(lián)地記錄所述偏移量。
18.如權(quán)利要求15所述的系統(tǒng),其中偏移量表創(chuàng)建模塊在所述存儲設(shè)備上進行工廠格式化操作期間記錄所述偏移量。
19.如權(quán)利要求15所述的系統(tǒng),其中所述偏移量表存儲在所述存儲設(shè)備的固件中。
20.如權(quán)利要求15所述 的系統(tǒng),其中所述索引序列包括與存儲設(shè)備上的順序數(shù)據(jù)塊相關(guān)聯(lián)的連續(xù)增加的索引。
【文檔編號】G06F11/10GK104050053SQ201410085259
【公開日】2014年9月17日 申請日期:2014年3月10日 優(yōu)先權(quán)日:2013年3月11日
【發(fā)明者】D·J·庫能, A·T·卡塔里亞 申請人:希捷科技有限公司