專利名稱:數(shù)據(jù)一致性檢驗(yàn)裝置及其方法、磁盤陣列控制器及數(shù)據(jù)儲(chǔ)存系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)儲(chǔ)存技術(shù),尤其涉及一種具有檢驗(yàn)數(shù)據(jù)一致性裝置的儲(chǔ)存系統(tǒng)、磁盤陣列控制器、及該數(shù)據(jù)一致性檢驗(yàn)裝置及其方法。
背景技術(shù):
數(shù)據(jù)傳輸過程中,常常會(huì)因?yàn)橐恍┩庠谝蛩囟沟脭?shù)據(jù)產(chǎn)生錯(cuò)誤,這對(duì)于數(shù)據(jù)接收端而言,其所接收到的數(shù)據(jù)將不可靠。例如數(shù)據(jù)通過以太網(wǎng)絡(luò)(Ethernet)、SATA、iSCSI等環(huán)境來傳輸數(shù)據(jù)時(shí),往往容易發(fā)生數(shù)據(jù)錯(cuò)誤的情形。因此,目前有多種錯(cuò)誤偵測(cè)方法及/或裝置,其中循環(huán)多余檢查碼(Cycle Redundancy Check,CRC)即為最常使用到的數(shù)據(jù)錯(cuò)誤檢驗(yàn)方法。
在某些特定場(chǎng)合,有可能傳輸中的數(shù)據(jù)流(Data Stream)已經(jīng)包含有檢查數(shù)據(jù),例如該傳輸中的數(shù)據(jù)包括多個(gè)一般數(shù)據(jù)(Regular Data或User Data)以及多個(gè)奇偶數(shù)據(jù)(Parity Data),且每一個(gè)奇偶數(shù)據(jù)與至少一個(gè)一般數(shù)據(jù)相對(duì)應(yīng)(即該奇偶數(shù)據(jù)由該至少一個(gè)一般數(shù)據(jù)進(jìn)行互斥或(XOR)運(yùn)算所產(chǎn)生)。若傳送端于傳送這些一般數(shù)據(jù)及這些奇偶數(shù)據(jù)之前,這些一般數(shù)據(jù)及這些奇偶數(shù)據(jù)已經(jīng)發(fā)生錯(cuò)誤(例如由一儲(chǔ)存介質(zhì)讀取過程中發(fā)生讀取錯(cuò)誤的情形),雖然傳送端對(duì)這些已經(jīng)有錯(cuò)誤數(shù)據(jù)的數(shù)據(jù)流之后加上CRC,并將其傳送至接收端,但該CRC僅能用來檢查傳送是否有再發(fā)生錯(cuò)誤,使得接收端無法得知其所接收的這些數(shù)據(jù)是否有錯(cuò)誤。
因此,如何有效利用具有多個(gè)一般數(shù)據(jù)與多個(gè)奇偶數(shù)據(jù)的傳輸數(shù)據(jù)的特性,以直接對(duì)這些數(shù)據(jù)進(jìn)行檢驗(yàn),已成為一急需解決的課題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用以檢驗(yàn)數(shù)據(jù)一致性的儲(chǔ)存系統(tǒng)、磁盤陣列控制器、數(shù)據(jù)檢驗(yàn)裝置及方法,能有效計(jì)算檢驗(yàn)數(shù)據(jù)一致性。
本發(fā)明的目的在于提供一種用以檢驗(yàn)數(shù)據(jù)一致性的儲(chǔ)存系統(tǒng)、磁盤陣列控制器、數(shù)據(jù)檢驗(yàn)裝置及方法,能在進(jìn)行檢驗(yàn)數(shù)據(jù)一致性時(shí),不會(huì)嚴(yán)重降低整體效能。
依據(jù)本發(fā)明的第一方案,其提供一數(shù)據(jù)一致性檢驗(yàn)裝置。該數(shù)據(jù)一致性檢驗(yàn)裝置用以檢驗(yàn)多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的至少一筆查核數(shù)據(jù),該數(shù)據(jù)一致性檢驗(yàn)裝置包括一互斥或運(yùn)算單元,用于針對(duì)每一該中處理集合的數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;以及,一邏輯或運(yùn)算單元,用于針對(duì)這些互斥或運(yùn)算結(jié)果實(shí)時(shí)進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
依據(jù)本發(fā)明的第二方案,其提供一種數(shù)據(jù)一致性檢驗(yàn)方法。該數(shù)據(jù)一致性檢驗(yàn)方法,用以檢驗(yàn)多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的一至少一筆查核數(shù)據(jù),該方法包括以下的步驟針對(duì)每一處理集合中的這些數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;以及,針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
依據(jù)本發(fā)明的第三方案,其提供一種磁盤陣列控制器。該磁盤陣列控制器,包括一數(shù)據(jù)暫存單元,用以暫存至少一處理集合的待檢驗(yàn)數(shù)據(jù);以及,一互斥或運(yùn)算引擎,用以檢驗(yàn)該讀自磁盤陣列的該至少一處理集合的數(shù)據(jù),該互斥或運(yùn)算引擎包括一互斥或運(yùn)算模塊,用于針對(duì)每一該至少一數(shù)處理集合的數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;以及一邏輯或運(yùn)算單元,用于針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
依據(jù)本發(fā)明的第四方案,其提供一種數(shù)據(jù)儲(chǔ)存系統(tǒng)。該數(shù)據(jù)儲(chǔ)存系統(tǒng),包括一主機(jī);一數(shù)據(jù)儲(chǔ)存設(shè)備用以提供數(shù)據(jù)儲(chǔ)存空間;以及,一控制器,耦接于該主機(jī)與該儲(chǔ)存設(shè)備之間,該控制器包括一數(shù)據(jù)暫存單元,用以暫存多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的至少一查核數(shù)據(jù);以及,一數(shù)據(jù)一致性檢驗(yàn)單元,用以檢驗(yàn)這些待檢驗(yàn)數(shù)據(jù)的數(shù)據(jù)一致性,其包括一互斥或運(yùn)算單元,用以對(duì)每一處理集合的這些待檢驗(yàn)數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一相對(duì)于該處理集合的互斥或運(yùn)算結(jié)果;以及,一邏輯或運(yùn)算單元,接收每一處理集合的互斥或運(yùn)算結(jié)果,以供進(jìn)行邏輯或運(yùn)算,以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
于本發(fā)明的第一方案中,更進(jìn)一步的特點(diǎn)如下。互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)一第一輸入數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,且該互斥或運(yùn)算模塊所產(chǎn)生的一輸出被回存至該緩沖單元。在其它實(shí)施態(tài)樣中,互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)來自該至少一處理集合的一第一輸入數(shù)據(jù)及來自一選擇單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,該第二輸入數(shù)據(jù)選擇性地輸出自一耦接至該互斥或運(yùn)算模塊的緩沖單元或一默認(rèn)值。處理集合包括至少一儲(chǔ)存分割帶。在其它實(shí)施態(tài)樣中,處理集合包括至少部份儲(chǔ)存分割帶。數(shù)據(jù)一致性檢驗(yàn)裝置還包括一控制單元用以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元。在其它實(shí)施態(tài)樣中,該邏輯或運(yùn)算單元包括一邏輯或運(yùn)算暫存單元用以儲(chǔ)存該邏輯或運(yùn)算單元的運(yùn)算結(jié)果,且該邏輯或運(yùn)算暫存單元可以為一正反器。該邏輯或運(yùn)算單元所產(chǎn)生的該邏輯或運(yùn)算結(jié)果為一數(shù)據(jù)一致性檢驗(yàn)結(jié)果。該互斥或運(yùn)算單元包含一互斥或運(yùn)算模塊用于針對(duì)一先前產(chǎn)生的互斥或運(yùn)算結(jié)果及來自該至少一筆數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。該邏輯或運(yùn)算單元針對(duì)該新的互斥或運(yùn)算結(jié)果及由該至少一處理集合中的另一個(gè)所產(chǎn)生的下一互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算。于本發(fā)明的一實(shí)施例中,當(dāng)該互斥或運(yùn)算所進(jìn)行的次數(shù)等于在該處理集合的數(shù)據(jù)筆數(shù)時(shí),該互斥或運(yùn)算結(jié)果被提供給該邏輯或運(yùn)算單元。
于本發(fā)明的第二方案中,更進(jìn)一步的特點(diǎn)如下。該互斥或運(yùn)算步驟包括以下的步驟針對(duì)來自該處理集合的一第一輸入數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算。在進(jìn)行該互斥或運(yùn)算后,產(chǎn)生出一輸出且被回存至該緩沖單元。該互斥或運(yùn)算步驟由一互斥或運(yùn)算模塊所進(jìn)行,且該互斥或運(yùn)算步驟還包括一選擇步驟,用于選擇性輸出至該互斥或運(yùn)算模塊下列的一個(gè)該第二輸入及一默認(rèn)值。數(shù)據(jù)一致性檢驗(yàn)方法,還包括將該邏輯或運(yùn)算結(jié)果暫存的步驟。該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算為實(shí)時(shí)進(jìn)行。該互斥或運(yùn)算步驟由一互斥或運(yùn)算單元所進(jìn)行。該互斥或運(yùn)算步驟由一中央處理單元所進(jìn)行。該邏輯或運(yùn)算步驟由一邏輯或運(yùn)算單元所進(jìn)行。于本發(fā)明的其它實(shí)施態(tài)樣中,該邏輯或運(yùn)算步驟由一中央處理單元所進(jìn)行。該針對(duì)每一處理集合中的這些數(shù)據(jù)進(jìn)行互斥或運(yùn)算的步驟包含以下步驟針對(duì)一先前產(chǎn)生的互斥或運(yùn)算結(jié)果及該至少一筆數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算的步驟包含以下步驟針對(duì)該新的互斥或運(yùn)算結(jié)果及該至少一處理集合中的另一個(gè)所產(chǎn)生的下一互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算。當(dāng)該互斥或運(yùn)算所進(jìn)行的次數(shù)等于在該處理集合的數(shù)據(jù)筆數(shù)時(shí),進(jìn)行該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算的步驟。該邏輯或運(yùn)算步驟所產(chǎn)生的邏輯或運(yùn)算結(jié)果為一數(shù)據(jù)一致性檢驗(yàn)結(jié)果。
于本發(fā)明的第三方案中,更進(jìn)一步的特點(diǎn)如下。該互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)一第一輸入來自該至少一處理集合中的數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,并具有一輸出耦接至該緩沖單元。該互斥或運(yùn)算單元包括一選擇單元,用于選擇性輸出至該互斥或運(yùn)算模塊來自該緩沖單元的該第二輸入數(shù)據(jù)或一默認(rèn)值。磁盤陣列控制器還包括一控制單元用以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元的操作。該至少一處理集合中的待檢驗(yàn)數(shù)據(jù)包含至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的一至少一筆查核數(shù)據(jù),其中在該互斥運(yùn)算模塊針對(duì)這些數(shù)據(jù)中的第一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一第一互斥或運(yùn)算結(jié)果后,該互斥運(yùn)算模塊針對(duì)所產(chǎn)生出來的最新互斥或運(yùn)算結(jié)果及這些數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。
于本發(fā)明的第四方案中,更進(jìn)一步的特點(diǎn)如下。該互斥或運(yùn)算單元還包括一選擇單元,以選擇性輸出該第二輸入或一默認(rèn)值至該互斥或運(yùn)算模塊。該互斥或運(yùn)算單元還包括一互斥或運(yùn)算模塊與一選擇單元,該互斥或運(yùn)算模塊用以對(duì)一來自該至少一處理集合的第一輸入及一來自一緩沖單元的第二輸入進(jìn)行互斥或運(yùn)算,該互斥或運(yùn)算模塊并具有一耦接至該緩沖單元的輸出,該輸出儲(chǔ)存于該緩沖裝置,該選擇單元用以選擇性輸出該第二輸入或一默認(rèn)值至該互斥或運(yùn)算模塊,該互斥或運(yùn)算模塊進(jìn)行互斥或運(yùn)算的次數(shù)達(dá)到一該處理集合所具有的數(shù)據(jù)筆數(shù)時(shí),該緩沖單元輸出該處理集合的互斥或運(yùn)算結(jié)果至該邏輯或運(yùn)算單元,且該專屬邏輯或運(yùn)算單元所產(chǎn)生的邏輯或運(yùn)算結(jié)果為數(shù)據(jù)一致性檢驗(yàn)結(jié)果,該處理集合包括至少部份儲(chǔ)存分割帶,該數(shù)據(jù)一致性檢驗(yàn)單元還包括一控制單元,以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元的操作,且該邏輯或運(yùn)算單元包括一邏輯或運(yùn)算暫存單元用以儲(chǔ)存該邏輯或運(yùn)算單元的運(yùn)算結(jié)果。
圖1顯示依據(jù)本發(fā)明的儲(chǔ)存系統(tǒng)的一實(shí)施例的示意圖。
圖2a、2b及2c顯示依據(jù)本發(fā)明的用于RAID3、RAID4或RAID5架構(gòu)中避免待檢驗(yàn)數(shù)據(jù)錯(cuò)誤的一實(shí)施例的示意圖。
圖3顯示依據(jù)本發(fā)明的另一實(shí)施例的儲(chǔ)存系統(tǒng)架構(gòu)示意圖。
圖4a顯示依據(jù)本發(fā)明的一實(shí)施例的互斥或運(yùn)算引擎內(nèi)部功能示意圖。
圖4b顯示依據(jù)本發(fā)明的一實(shí)施例的邏輯或運(yùn)算單元內(nèi)部電路示意圖。
圖5a與圖5b顯示依據(jù)本發(fā)明的一實(shí)施例的動(dòng)作流程圖。
圖6顯示依據(jù)本發(fā)明的一實(shí)施例的待檢驗(yàn)數(shù)據(jù)處理示意圖。
圖7a與圖7b顯示依據(jù)本發(fā)明的一實(shí)施例的待檢驗(yàn)數(shù)據(jù)進(jìn)行檢驗(yàn)動(dòng)作的示意圖。
其中,附圖標(biāo)記說明如下11,32 控制器111 數(shù)據(jù)暫存單元112,323中央處理單元 113 互斥或運(yùn)算單元12,31 主機(jī) 13,34磁盤陣列131,132,133,341,342,343,344 磁盤20,61,62 儲(chǔ)存分割帶21,22,23 一般數(shù)據(jù) 24 奇偶數(shù)據(jù)25,26,27 新奇偶數(shù)據(jù)33 邏輯磁盤321 數(shù)據(jù)暫存單元 322 互斥或運(yùn)算引擎3221互斥或引擎控制器3222互斥或運(yùn)算模塊3223多任務(wù)選擇器 3224 緩沖單元3225邏輯或運(yùn)算單元3226 數(shù)據(jù)總線3227讀入數(shù)據(jù)總線 3228 寫入數(shù)據(jù)總線3229選擇信號(hào)
3251邏輯或運(yùn)算模塊3252閂鎖單元3253,3254或邏輯611,612,613,614,621,622,623,624數(shù)據(jù)具體實(shí)施方式
本發(fā)明用以檢驗(yàn)數(shù)據(jù)一致性(Data Coherence),所加以檢驗(yàn)數(shù)據(jù)的對(duì)象無限制,可為由磁盤驅(qū)動(dòng)器讀取的數(shù)據(jù)或由主機(jī)傳送的數(shù)據(jù)。檢驗(yàn)處理數(shù)據(jù)包括一般數(shù)據(jù)及其奇偶數(shù)據(jù)(或具有奇偶數(shù)據(jù)性質(zhì)的數(shù)據(jù),例如RAID 1中的備份數(shù)據(jù)(Backup Data,或稱查核數(shù)據(jù)(Check Data)))。本發(fā)明的作動(dòng)可用下述方程式來表達(dá)Desti=S1S2...Sn;Ei=Desti中的每一位進(jìn)行邏輯或運(yùn)算(OR operation)的結(jié)果;Cm=E1|E2|...|Em;其中,n為一儲(chǔ)存分割帶(stripe)中的數(shù)據(jù)區(qū)塊數(shù),i=第i個(gè)儲(chǔ)存分割帶,S1~Sn-1為一般數(shù)據(jù),Sn為奇偶數(shù)據(jù),Desti(=Destination i)為每一儲(chǔ)存分割帶的一般數(shù)據(jù)與奇偶數(shù)據(jù)的XOR運(yùn)算結(jié)果,Ei為將Desti中的每一位進(jìn)行邏輯或運(yùn)算(OR operation)的結(jié)果,Em為第m個(gè)處理集合,Cm則為最后的檢驗(yàn)結(jié)果,“”為互斥或(XOR)運(yùn)算符號(hào),“|”為邏輯或運(yùn)算符號(hào)。因此,本發(fā)明對(duì)一般數(shù)據(jù)與其奇偶數(shù)據(jù)再次進(jìn)行XOR運(yùn)算,且將XOR運(yùn)算結(jié)果與一預(yù)設(shè)運(yùn)算值進(jìn)行邏輯或運(yùn)算,并將邏輯或運(yùn)算的結(jié)果與下一個(gè)XOR運(yùn)算結(jié)果再次進(jìn)行邏輯或運(yùn)算,并以最后一個(gè)邏輯或運(yùn)算結(jié)果作為數(shù)據(jù)一致性檢驗(yàn)值,供通過該數(shù)據(jù)一致性檢驗(yàn)值來判斷檢驗(yàn)數(shù)據(jù)是否正確。有關(guān)本發(fā)明的實(shí)施方式,敬請(qǐng)參照下述說明。
有關(guān)本發(fā)明的實(shí)施例說明,以檢驗(yàn)儲(chǔ)存系統(tǒng)中的數(shù)據(jù)作為例子,當(dāng)然,本發(fā)明亦可實(shí)施于其它應(yīng)用環(huán)境中,以進(jìn)行數(shù)據(jù)檢驗(yàn)動(dòng)作。在儲(chǔ)存系統(tǒng)中,磁盤陣列(Redundant Array of Independent Disks,RAID)為常見的儲(chǔ)存架構(gòu),其主要有RAID0、RAID1、RAID2、RAID3、RAID4、RAID5及RAID6等型態(tài),以及這些型態(tài)的組合,而在RAID1、RAID2、RAID3、RAID4 RAID5及RAID6的數(shù)據(jù)儲(chǔ)存系統(tǒng)中,利用冗余數(shù)據(jù)(查核數(shù)據(jù))來維持?jǐn)?shù)據(jù)一致性,亦即儲(chǔ)存在其中的使用者數(shù)據(jù)(一般數(shù)據(jù))具有查核數(shù)據(jù)伴隨著。在RAID3、RAID4及RAID5的數(shù)據(jù)儲(chǔ)存系統(tǒng)中,多筆使用者數(shù)據(jù)或一般數(shù)據(jù)是通過相關(guān)的奇偶數(shù)據(jù)(Parity Data)來保護(hù)。該奇偶數(shù)據(jù)借助針對(duì)相關(guān)的多筆一般數(shù)據(jù)執(zhí)行互斥或運(yùn)算(XOR,exclusive OR)所產(chǎn)生。如果在一筆一般數(shù)據(jù)中發(fā)生了一個(gè)錯(cuò)誤,而其它的一般數(shù)據(jù)及相關(guān)的奇偶數(shù)據(jù)為正確時(shí),則數(shù)據(jù)的一致性將被破壞,因?yàn)閷?duì)這些一般數(shù)據(jù)進(jìn)行互斥或運(yùn)算所產(chǎn)生的新的奇偶數(shù)據(jù)將與原先的奇偶數(shù)據(jù)不一致(或是不相同)。在RAID1的數(shù)據(jù)儲(chǔ)存系統(tǒng)中,查核數(shù)據(jù)與該一般數(shù)據(jù)相同,但該查核數(shù)據(jù)亦具有與奇偶數(shù)據(jù)相同的性質(zhì)。在RAID6的數(shù)據(jù)儲(chǔ)存系統(tǒng)中,相同的一般數(shù)據(jù)可以受到奇偶數(shù)據(jù)多重的保護(hù)。舉例來說,在包括一般數(shù)據(jù)與相關(guān)的查核數(shù)據(jù)的同一數(shù)據(jù)中的兩筆不同的數(shù)據(jù)中的兩個(gè)錯(cuò)誤,可以被檢出并更正。
圖1顯示依據(jù)本發(fā)明的儲(chǔ)存系統(tǒng)的一實(shí)施例的示意圖,其由磁盤陣列控制器11、主機(jī)12及磁盤陣列13所組成,其中,磁盤陣列控制器11具有暫存器111、一個(gè)中央處理單元112以及互斥或(XOR)運(yùn)算單元113,且磁盤陣列13具有多個(gè)磁盤131,132,133。當(dāng)主機(jī)12讀取這些磁盤131,132,133中的數(shù)據(jù)時(shí),通過磁盤陣列控制器11來讀取目標(biāo)數(shù)據(jù),繼而將所讀取的目標(biāo)數(shù)據(jù)儲(chǔ)存于暫存器111中,之后再將所讀取的目標(biāo)數(shù)據(jù)由暫存器111送至主機(jī)12。然而,磁盤陣列控制器11在讀取這些磁盤131,132,133中的目標(biāo)數(shù)據(jù)時(shí),有可能因?yàn)榘l(fā)生媒體錯(cuò)誤(Media Error)或這些磁盤131,132,133出錯(cuò)而使得所讀取的目標(biāo)數(shù)據(jù)發(fā)生錯(cuò)誤且沒有產(chǎn)生錯(cuò)誤信息的情形。因此,依據(jù)本發(fā)明的實(shí)施例,對(duì)所讀取的目標(biāo)數(shù)據(jù)(包括一般數(shù)據(jù)及其奇偶數(shù)據(jù))進(jìn)行XOR運(yùn)算,繼而再進(jìn)行邏輯或運(yùn)算來檢驗(yàn)所讀取的數(shù)據(jù)是否錯(cuò)誤,以確保數(shù)據(jù)一致性,且避免將錯(cuò)誤數(shù)據(jù)傳送至主機(jī)12。
請(qǐng)?jiān)賲㈤唸D1及圖2a、2b及2c,其中顯示依據(jù)本發(fā)明的用于RAID3、RAID4或RAID5架構(gòu)中避免待檢驗(yàn)數(shù)據(jù)錯(cuò)誤的一實(shí)施例的示意圖,首先,控制器在讀取磁盤中的數(shù)據(jù)時(shí),同時(shí)讀取同一儲(chǔ)存分割帶20中的多筆一般數(shù)據(jù)21,22,23及其奇偶數(shù)據(jù)24(步驟S201)。接著,對(duì)這些一般數(shù)據(jù)21,22,23及奇偶數(shù)據(jù)24再次進(jìn)行XOR運(yùn)算,以求出新的奇偶數(shù)據(jù)25,其中奇偶數(shù)據(jù)24由一般數(shù)據(jù)21,22,23所計(jì)算出來的,故奇偶數(shù)據(jù)24與一般數(shù)據(jù)21,22,23具有一致性關(guān)系,因此若這些一般數(shù)據(jù)21,22,23讀取無誤,則這些一般數(shù)據(jù)21,22,23在與奇偶數(shù)據(jù)24進(jìn)行XOR運(yùn)算后所得的新的奇偶數(shù)據(jù)25的內(nèi)容值應(yīng)該皆為錯(cuò)值(False,例如0),但在此時(shí)控制器無法得知其所計(jì)算出新的奇偶數(shù)據(jù)25的內(nèi)容值(步驟S202)。
通常,所讀取的目標(biāo)數(shù)據(jù)需讀取多筆這些一般數(shù)據(jù)21,22,23及奇偶數(shù)據(jù)24,因此將產(chǎn)生多個(gè)新的奇偶數(shù)據(jù)25,26,27,如圖2c所示。由于,在獲得這些新的奇偶數(shù)據(jù)25,26,27時(shí),并無法得知其內(nèi)容值(亦即每一筆新的奇偶數(shù)據(jù)包括多個(gè)內(nèi)容值,例如1或0),因而無法通過這些新的奇偶數(shù)據(jù)25,26,27的內(nèi)容值來確定所讀取的目標(biāo)數(shù)據(jù)是否正確,因此磁盤陣列控制器11中的中央處理單元112必須將這些新的奇偶數(shù)據(jù)25,26,27再次讀取出來,以供讀取這些新的奇偶數(shù)據(jù)25,26,27的內(nèi)容值,繼而中央處理單元112對(duì)這些內(nèi)容值進(jìn)行OR運(yùn)算。
若這些奇偶數(shù)據(jù)25,26,27中具有一個(gè)真值(True,例如1)時(shí),則中央處理單元112運(yùn)算的OR運(yùn)算結(jié)果為真值,代表所讀取的目標(biāo)數(shù)據(jù)則為錯(cuò)誤(步驟S203),若這些奇偶數(shù)據(jù)25,26,27的內(nèi)容值皆為錯(cuò)值(False,例如0),則OR運(yùn)算結(jié)果為錯(cuò)值(0),代表所讀取的目標(biāo)數(shù)據(jù)為正確的,因此中央處理單元112將這些暫存于數(shù)據(jù)暫存單元111的目標(biāo)數(shù)據(jù)傳送至?xí)捍嫫鳎^而再通過暫存器送至主機(jī)。
雖然在本實(shí)施例中,在步驟S203的該互斥或運(yùn)算時(shí)是通過互斥或運(yùn)算單元113進(jìn)行,但必須知道的是,這些互斥或運(yùn)算及邏輯或運(yùn)算均可通過中央處理單元112來進(jìn)行運(yùn)算而達(dá)成。
圖3顯示依據(jù)本發(fā)明的另一實(shí)施例的儲(chǔ)存系統(tǒng)架構(gòu)示意圖,其主要由主機(jī)31、磁盤陣列控制器(RAID Controller)32以及邏輯磁盤(LUN)33等主要構(gòu)成要件所組成,其中磁盤陣列控制器32具有數(shù)據(jù)暫存單元321、互斥或運(yùn)算引擎322及中央處理單元323,磁盤陣列控制器32與多個(gè)磁盤341,342,343,344所形成的邏輯磁盤(LUN)33可形成一儲(chǔ)存子系統(tǒng)。于本實(shí)施例中,數(shù)據(jù)暫存單元321可為一般的外部?jī)?nèi)存,例如雙倍數(shù)據(jù)傳輸率同步動(dòng)態(tài)隨機(jī)存取內(nèi)存(DDR SDRAM)或同步動(dòng)態(tài)隨機(jī)存取內(nèi)存(SDRAM)等存儲(chǔ)單元,數(shù)據(jù)暫存單元321的大小可為千兆位組(1GB)。這些磁盤341,342,343,344并能組成一磁盤陣列34。例如,應(yīng)用于RAID 3架構(gòu)中,這些磁盤341,342,343,344形成邏輯磁盤33,其中奇偶數(shù)據(jù)儲(chǔ)存于同一磁盤中,例如磁盤344中,而一般數(shù)據(jù)則儲(chǔ)存于其它磁盤341,342,343之中。若應(yīng)用于RAID 5架構(gòu)中,則一般數(shù)據(jù)與奇偶數(shù)據(jù)分散于各個(gè)磁盤341,342,343,344之中。下述將以主機(jī)31讀取邏輯磁盤33中的數(shù)據(jù)時(shí),對(duì)讀取數(shù)據(jù)加以檢驗(yàn)的情形為例。
上述的主機(jī)31讀取邏輯磁盤33中的數(shù)據(jù)時(shí),送出一讀取I/O至磁盤陣列控制器32,以供通過磁盤陣列控制器32來讀取邏輯磁盤33中的數(shù)據(jù)。于本實(shí)施例中,當(dāng)磁盤陣列控制器32讀取邏輯磁盤33中的數(shù)據(jù)時(shí),先將所讀取的數(shù)據(jù)儲(chǔ)存于數(shù)據(jù)暫存單元321中,接著通過互斥或運(yùn)算引擎322來對(duì)讀取數(shù)據(jù)(即待檢驗(yàn)數(shù)據(jù))進(jìn)行互斥或(XOR)運(yùn)算,以確認(rèn)讀取數(shù)據(jù)是否正確,若讀取數(shù)據(jù)正確,則將儲(chǔ)存于數(shù)據(jù)暫存單元321的讀取數(shù)據(jù)傳輸至讀取端(主機(jī)31);若讀取數(shù)據(jù)不正確,則磁盤陣列控制器32產(chǎn)生一對(duì)應(yīng)動(dòng)作,例如重新讀取數(shù)據(jù)或重建讀取數(shù)據(jù)等動(dòng)作。有關(guān)本實(shí)施例的詳細(xì)作動(dòng),請(qǐng)參照下述說明。
圖4a顯示上述互斥或運(yùn)算引擎322的內(nèi)部功能的一實(shí)施例的示意圖,其由互斥或引擎控制器3221、互斥或運(yùn)算模塊3222、多任務(wù)選擇器3223、緩沖單元3224以及邏輯或運(yùn)算單元(OR Operation Unit)3225等主要模塊所組成,其中,多任務(wù)選擇器3223位于互斥或運(yùn)算模塊3222與緩沖單元3224之間。上述的互斥或引擎控制器3221除了用來控制互斥或運(yùn)算模塊3222、多任務(wù)選擇器3223以及緩沖單元3224的動(dòng)作外,并與中央處理單元323以及磁盤陣列控制器32的內(nèi)部其它模塊相連接。
在互斥或運(yùn)算引擎322、數(shù)據(jù)暫存單元321及邏輯磁盤33之間具有一數(shù)據(jù)總線3226,且互斥或運(yùn)算引擎322與數(shù)據(jù)總線3226間更具有讀入數(shù)據(jù)總線3227與寫入數(shù)據(jù)總線3228,以供磁盤陣列控制器32通過數(shù)據(jù)總線3226來將所讀取的數(shù)據(jù)傳輸至數(shù)據(jù)暫存單元321,且中央處理單元323控制互斥或引擎控制器3221通過這些數(shù)據(jù)總線3226、讀入數(shù)據(jù)總線3227、寫入數(shù)據(jù)總線3228及邏輯或運(yùn)算單元3225來完成數(shù)據(jù)暫存單元321中的數(shù)據(jù)檢驗(yàn)處理。實(shí)際上,互斥或運(yùn)算模塊3222、多任務(wù)選擇器3223及緩沖單元3224三者可視為一互斥或運(yùn)算單元3230,如圖中虛線所示,而在互斥或引擎控制器3221的控制下,接收來自讀入數(shù)據(jù)總線3227的數(shù)據(jù)進(jìn)行互斥或運(yùn)算,并將結(jié)果通過寫入數(shù)據(jù)總線3228送至邏輯或運(yùn)算單元3225進(jìn)行進(jìn)一步的處理。
圖4b顯示上述的邏輯或運(yùn)算單元3225內(nèi)部電路的一實(shí)施例的示意圖,其主要由一邏輯或運(yùn)算模塊3251與一閂鎖單元3252所組成,其中,邏輯或運(yùn)算模塊3251具有或邏輯3253,3254,或邏輯3253具有多根輸入接腳(D0~Dn-1),用來接收由緩沖單元3224所輸出的XOR運(yùn)算結(jié)果,于本實(shí)施例中,這些輸入接腳可為128根,但不限于128?;蜻壿?253的輸出端與或邏輯3254的其中一輸入端相連接,或邏輯3254的另外一輸入端則與閂鎖單元3252的輸出端相連接,或邏輯3254的輸出端則與閂鎖單元3252的輸入端相連接。閂鎖單元3252除了接收或邏輯3254的輸出結(jié)果外,尚接收清除信號(hào)(Clear)以及頻率信號(hào)(Clock),在此清除信號(hào)及頻率信號(hào)系由互斥或引擎控制器3221所送出,其輸出信號(hào)則為一檢驗(yàn)值(Check Value)。有關(guān)或邏輯3253,3254與閂鎖單元3252的作動(dòng)關(guān)系,容后詳述。
圖5a及圖5b顯示依據(jù)本發(fā)明的一實(shí)施例的動(dòng)作流程圖,有關(guān)其說明敬請(qǐng)一并參照?qǐng)D3、圖4a、圖4b、圖6、圖7a及圖7b,其中,圖6顯示依據(jù)本發(fā)明的一實(shí)施例的待檢驗(yàn)數(shù)據(jù)的處理示意圖,圖7a與圖7b顯示依據(jù)本發(fā)明的一實(shí)施例的對(duì)待檢驗(yàn)數(shù)據(jù)進(jìn)行檢驗(yàn)動(dòng)作的示意圖。于本實(shí)施例中,以主機(jī)31由邏輯磁盤33讀取二個(gè)儲(chǔ)存分割帶(Stripe)61,62的數(shù)據(jù)611,612,613,614,621,622,623,624作為例子,其中,數(shù)據(jù)611,612,613,614位于儲(chǔ)存分割帶61上,數(shù)據(jù)621,622,623,624位于儲(chǔ)存分割帶62,有關(guān)儲(chǔ)存分割帶61,62的定義,請(qǐng)參照”The RAID book,Sixth Edition,Paul Massiglia,RAIDAdvisory Board”。
當(dāng)主機(jī)31欲讀取這些數(shù)據(jù)611,612,613,614,621,622,623,624時(shí),送出一讀取數(shù)據(jù)指令至磁盤陣列控制器32,磁盤陣列控制器32接收讀取數(shù)據(jù)指令后,開始由邏輯磁盤33讀取,并將其所讀取的數(shù)據(jù)611,612,613,614,621,622,623,624儲(chǔ)存于數(shù)據(jù)暫存單元321,繼而中央處理單元323控制互斥或引擎控制器3221通過數(shù)據(jù)總線3226與讀取數(shù)據(jù)總線3227將這些數(shù)據(jù)611,612,613,614,621,622,623,624由數(shù)據(jù)暫存單元321一筆一筆傳輸至互斥或運(yùn)算引擎322的互斥或運(yùn)算模塊3222。在互斥或運(yùn)算模塊3222開始接收每一儲(chǔ)存分割帶61的第一筆數(shù)據(jù)611的瞬間,互斥或引擎控制器3221送出一選擇信號(hào)3229至多任務(wù)選擇器3223,以使得多任務(wù)選擇器選取一預(yù)設(shè)運(yùn)算參考值(例如“0”)來輸出至互斥或運(yùn)算模塊3222,其中,互斥或運(yùn)算模塊3222接收運(yùn)算輸入值時(shí)僅接收一筆運(yùn)算參考值與一筆讀取數(shù)據(jù)(例如數(shù)據(jù)611)(步驟S501)。
互斥或運(yùn)算模塊3222接收數(shù)據(jù)611與預(yù)設(shè)運(yùn)算參考值(“0”)后,則對(duì)數(shù)據(jù)611與預(yù)設(shè)運(yùn)算參考值進(jìn)行互斥或運(yùn)算,以獲得一互斥或運(yùn)算結(jié)果(即新的奇偶數(shù)據(jù))(步驟S502)。于本實(shí)施例中,互斥或運(yùn)算模塊3222在開始時(shí)僅接收儲(chǔ)存分割帶61的第一筆數(shù)據(jù)611,因此互斥或運(yùn)算模塊3222沒有辦法對(duì)數(shù)據(jù)611與下一個(gè)數(shù)據(jù)612直接進(jìn)行互斥或運(yùn)算,因此本發(fā)明通過多任務(wù)選擇器3223輸入一預(yù)設(shè)運(yùn)算參考值“0”至互斥或運(yùn)算模塊3222,并經(jīng)由讀入數(shù)據(jù)總線3227輸入的數(shù)據(jù)611在互斥或運(yùn)算模塊3222進(jìn)行互斥或運(yùn)算。由于互斥或運(yùn)算具有A0=A的特性。因此互斥或運(yùn)算模塊3222對(duì)數(shù)據(jù)611與預(yù)設(shè)運(yùn)算參考值“0”進(jìn)行互斥或運(yùn)算后,互斥或運(yùn)算結(jié)果仍為原值(數(shù)據(jù)611)。此運(yùn)作的目的是將儲(chǔ)存分割帶61的第一筆數(shù)據(jù)611存入暫存器3224,以與下一筆數(shù)據(jù)612進(jìn)行互斥或運(yùn)算。
如上所述,互斥或運(yùn)算模塊3222將互斥或運(yùn)算結(jié)果(數(shù)據(jù)611)輸出至緩沖器3224予以暫存,以供作為互斥或運(yùn)算模塊3222的下一次的運(yùn)算參考值(步驟S503)。繼而互斥或引擎控制器3221判斷互斥或運(yùn)算模塊3222執(zhí)行互斥或運(yùn)算的次數(shù)是否等于預(yù)設(shè)運(yùn)算次數(shù)N(例如4),在此N=4是因本實(shí)施例中每一儲(chǔ)存分割帶61,62分別具有四筆數(shù)據(jù),因此互斥或運(yùn)算引擎322在進(jìn)行待檢驗(yàn)數(shù)據(jù)檢驗(yàn)時(shí),較佳為以四筆數(shù)據(jù)作為一個(gè)處理集合,亦即一儲(chǔ)存分割帶61視為一處理集合。當(dāng)然,N亦可視需求來調(diào)整成其它數(shù)值。
若互斥或引擎控制器3221判斷互斥或運(yùn)算模塊3222進(jìn)行互斥或運(yùn)算的次數(shù)小于預(yù)設(shè)運(yùn)算次數(shù)N(4),則互斥或運(yùn)算模塊3222繼續(xù)接收下一筆數(shù)據(jù)612(步驟S505)。互斥或引擎控制器3221控制多任務(wù)選擇器3223輸出緩沖器3224中的互斥運(yùn)算結(jié)果,其中,緩沖器3224中的互斥運(yùn)算結(jié)果通過寫入數(shù)據(jù)總線3228傳輸至多任務(wù)選擇器3223,以作為互斥或運(yùn)算模塊3222的下一次的運(yùn)算參考值,以進(jìn)行互斥或運(yùn)算(步驟S502)。之后,互斥或運(yùn)算引擎322繼續(xù)重復(fù)執(zhí)行步驟S502,S503及S505,以對(duì)這些數(shù)據(jù)612,613,614接續(xù)地進(jìn)行互斥或運(yùn)算,直到互斥或運(yùn)算模塊3222的運(yùn)算次數(shù)等于預(yù)設(shè)運(yùn)算次數(shù)N(4)。
若互斥或運(yùn)算模塊3222進(jìn)行互斥或運(yùn)算的次數(shù)等于預(yù)設(shè)運(yùn)算次數(shù)N(4),則代表互斥或運(yùn)算模塊3222已經(jīng)對(duì)一個(gè)處理集合(一儲(chǔ)存分割帶的所有數(shù)據(jù))完成互斥或運(yùn)算,因此此時(shí)互斥或運(yùn)算模塊3222的互斥或運(yùn)算結(jié)果即為處理集合的運(yùn)算結(jié)果,亦即互斥或運(yùn)算模塊3222在進(jìn)行四次互斥或運(yùn)算之后的互斥或運(yùn)算結(jié)果為數(shù)據(jù)611,612,613,614的新的奇偶數(shù)據(jù),然而對(duì)于該新的奇偶數(shù)據(jù)中的內(nèi)容值是否為零,在此并無法判別。
接著,互斥或引擎控制器3221判斷傳輸至邏輯或運(yùn)算單元3225的互斥或運(yùn)算結(jié)果是否為讀取數(shù)據(jù)中的第一個(gè)處理集合(儲(chǔ)存分割帶61)的互斥或運(yùn)算結(jié)果,若邏輯或運(yùn)算單元3225所接收的互斥或運(yùn)算結(jié)果為第一個(gè)處理集合的互斥運(yùn)算結(jié)果,則邏輯或運(yùn)算單元3225對(duì)第一個(gè)處理集合的互斥運(yùn)算結(jié)果及其本身儲(chǔ)存的預(yù)設(shè)運(yùn)算值進(jìn)行邏輯或運(yùn)算,于本實(shí)施例中,預(yù)設(shè)運(yùn)算值為0,以獲得一處理集合的檢驗(yàn)值,亦即邏輯或運(yùn)算單元3225先通過或邏輯3254來對(duì)緩沖單元3224所輸出的第一個(gè)處理集合的互斥運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算,繼而將其邏輯或運(yùn)算結(jié)果輸出至或邏輯3254,而此時(shí)互斥或引擎控制器3221控制閂鎖單元3252輸出默認(rèn)值0至或邏輯3254的另一輸入端,使得或邏輯3254對(duì)默認(rèn)值0及或邏輯3254的輸出結(jié)果再次進(jìn)行邏輯或運(yùn)算,以獲得該處理集合的檢驗(yàn)值(步驟S504)。邏輯或運(yùn)算單元3225在完成邏輯或運(yùn)算后,將其所獲得的檢驗(yàn)值予以暫存于該閂鎖單元3252中,以作為下一次邏輯或運(yùn)算的其中一個(gè)運(yùn)算值(步驟S507)。
由于本實(shí)施例以四筆數(shù)據(jù)作為一個(gè)處理集合,其中,數(shù)據(jù)614,624為奇偶數(shù)據(jù),數(shù)據(jù)611,612,613,621,622,623為一般數(shù)據(jù),數(shù)據(jù)614由數(shù)據(jù)611,612,613進(jìn)行互斥或運(yùn)算所形成,數(shù)據(jù)624由數(shù)據(jù)621,622,623進(jìn)行互斥或運(yùn)算所形成,因此若再對(duì)同一儲(chǔ)存分割帶61的數(shù)據(jù)611,612,613,614進(jìn)行互斥或運(yùn)算,則其互斥或運(yùn)算結(jié)果(新的奇偶數(shù)據(jù))的每一內(nèi)容值應(yīng)為“0”,亦即若這些數(shù)據(jù)611,612,613,614若為正確(一致性),則其新的奇偶數(shù)據(jù)的每一內(nèi)容值為“0”。因此,邏輯或運(yùn)算單元3225對(duì)互斥或運(yùn)算結(jié)果與預(yù)設(shè)運(yùn)算值進(jìn)行邏輯或運(yùn)算時(shí),若這些數(shù)據(jù)611,612,613,614若為正確,則邏輯或運(yùn)算單元3225所獲得的檢驗(yàn)結(jié)果應(yīng)為“0”。
若邏輯或運(yùn)算單元3225所接收的互斥或運(yùn)算結(jié)果為其它處理集合的互斥運(yùn)算結(jié)果(即非第一個(gè)處理集合的互斥或運(yùn)算結(jié)果),例如邏輯或運(yùn)算單元3225接收第二個(gè)儲(chǔ)存分割帶62的互斥或運(yùn)算結(jié)果,則邏輯或運(yùn)算單元3225將該筆互斥運(yùn)算結(jié)果與先前暫存于閂鎖單元3252中的檢驗(yàn)值進(jìn)行邏輯或運(yùn)算,以獲得一新的檢驗(yàn)值(步驟S506)。接著,邏輯或運(yùn)算單元3225將該新的檢驗(yàn)值暫存起來,以作為下一次邏輯或運(yùn)算的其中一個(gè)運(yùn)算值(步驟S507)。
邏輯或運(yùn)算單元3225完成暫存檢驗(yàn)值動(dòng)作后,互斥或引擎控制器3221判斷是否完成所有處理集合的數(shù)據(jù)檢驗(yàn),若否,則處理下一個(gè)處理集合的數(shù)據(jù),繼續(xù)執(zhí)行上述步驟S501、S502、S503、S505、S506及S507。與上面描述相類似地,數(shù)據(jù)621為儲(chǔ)存分割帶62的第一筆數(shù)據(jù),因此互斥或運(yùn)算模塊3222在執(zhí)行互斥或運(yùn)算時(shí),將預(yù)設(shè)運(yùn)算參考值“0”與數(shù)據(jù)621進(jìn)行互斥或運(yùn)算。當(dāng)互斥或運(yùn)算單元3220對(duì)儲(chǔ)存分割帶62的這些數(shù)據(jù)621,622,623,624完成互斥或運(yùn)算時(shí),則將其互斥或運(yùn)算結(jié)果儲(chǔ)存于緩沖器3224中,繼而再由緩沖器3224將互斥或運(yùn)算結(jié)果輸出至邏輯或運(yùn)算單元3225,此時(shí),邏輯或運(yùn)算單元3225則將前次獲得的檢驗(yàn)結(jié)果作為其中一運(yùn)算值,以供對(duì)前次獲得的檢驗(yàn)結(jié)果與新的互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算,以輸出一新的檢驗(yàn)檢果。
若完成所有處理集合的數(shù)據(jù)檢驗(yàn),則邏輯或運(yùn)算單元3225輸出其所獲得的檢驗(yàn)結(jié)果(步驟S508)。由于檢驗(yàn)結(jié)果為一簡(jiǎn)單的判別值,亦即0或1。所以,互斥或引擎控制器3221在互斥或運(yùn)算模塊3222完成互斥或運(yùn)算與邏輯或運(yùn)算單元3225完成邏輯或運(yùn)算后,則判別檢驗(yàn)結(jié)果為何。若檢驗(yàn)結(jié)果為0,則代表所讀取的儲(chǔ)存分割帶61,62的數(shù)據(jù)611,612,613,614,621,622,623,624無誤,所以互斥或引擎控制器3221告知中央處理單元323,以供將這些數(shù)據(jù)611,612,613,614,621,622,623,624由數(shù)據(jù)暫存單元321傳輸至主機(jī)31(步驟S509)。若檢驗(yàn)結(jié)果為1,則表示所讀取的數(shù)據(jù)中至少有一個(gè)數(shù)據(jù)的內(nèi)容值為錯(cuò)誤,因此在進(jìn)行互斥或運(yùn)算與邏輯或運(yùn)算后導(dǎo)致檢驗(yàn)結(jié)果為1,此時(shí),互斥或引擎控制器3221告知中央處理單元323,以進(jìn)行一讀取數(shù)據(jù)錯(cuò)誤的對(duì)應(yīng)動(dòng)作,例如重新讀取數(shù)據(jù)或通過奇偶計(jì)算來重建數(shù)據(jù)等動(dòng)作(步驟S510)。
于上述實(shí)施例中,互斥或運(yùn)算單元3230的緩沖單元3224在互斥或引擎控制器3221的控制下將處理集合的XOR運(yùn)算結(jié)果實(shí)時(shí)(On-The-Flight)輸出至邏輯或運(yùn)算單元3225,亦即,互斥或運(yùn)算單元3230每次算出處理集合的XOR運(yùn)算結(jié)果直接輸出至互斥或運(yùn)算單元3230,而非先儲(chǔ)存至數(shù)據(jù)儲(chǔ)存單元321再由邏輯或運(yùn)算單元3225讀取出,本發(fā)明的效能因而大幅提升。從另一個(gè)角度來說,本發(fā)明在本實(shí)施例中的邏輯或運(yùn)算單元3225是專為提供邏輯或運(yùn)算作業(yè)的電路單元,可進(jìn)行該邏輯或運(yùn)算而不占用中央處理單元的資源,故相較于公知技術(shù)可大幅提升效能。
此外,雖然在上述的說明中,在進(jìn)行所有處理集合的檢驗(yàn)后所產(chǎn)生的最后檢驗(yàn)值被用來決定是否所讀取的待檢驗(yàn)數(shù)據(jù)是否有錯(cuò)誤存在,必須要知道的是,在檢驗(yàn)處理的過程中,任何時(shí)間均可以檢查該檢驗(yàn)值,且當(dāng)此檢驗(yàn)值為“1”時(shí)則可確認(rèn)被檢驗(yàn)數(shù)據(jù)中有錯(cuò)誤。
另且,雖然在上述的說明中,在一處理集合的所有筆數(shù)據(jù)均進(jìn)行檢驗(yàn)后,所產(chǎn)生的互斥或運(yùn)算結(jié)果被提供給該邏輯或運(yùn)算單元以進(jìn)行邏輯或運(yùn)算,必須要知道的是,該互斥或運(yùn)算結(jié)果可在一處理集合的所有筆數(shù)據(jù)均完成檢驗(yàn)之前即提供給該邏輯或運(yùn)算單元,且此時(shí),基于此等互斥或運(yùn)算結(jié)果所產(chǎn)生的邏輯或運(yùn)算結(jié)果,如果其檢驗(yàn)值為“1”的話,依然可以用來確認(rèn)被檢驗(yàn)數(shù)據(jù)中有錯(cuò)誤。
另外,雖然在上述的實(shí)施例中,該處理集合包括一個(gè)儲(chǔ)存分割帶,每一儲(chǔ)存分割帶包括4個(gè)儲(chǔ)存分割帶區(qū)塊(Chunk),因而每一筆數(shù)據(jù)剛好由一個(gè)儲(chǔ)存分割帶區(qū)塊所構(gòu)成。然而,該處理集合亦可包括多個(gè)儲(chǔ)存分割帶,此時(shí),一處理集合的一筆數(shù)據(jù)可由各個(gè)儲(chǔ)存分割帶在一特定磁盤驅(qū)動(dòng)器的各個(gè)儲(chǔ)存分割帶區(qū)塊所構(gòu)成。又或,該處理集合可由部分儲(chǔ)存分割帶所構(gòu)成,只要該部分儲(chǔ)存分割帶包括的各個(gè)部分儲(chǔ)存分割區(qū)塊中所包括的一般數(shù)據(jù)與奇偶數(shù)據(jù)是在對(duì)應(yīng)上是完整的,亦即,該處理集合中包括了一段一般數(shù)據(jù)被分儲(chǔ)于各個(gè)儲(chǔ)存分割區(qū)塊中的每一部分以及其奇偶數(shù)據(jù)。此時(shí),一筆數(shù)據(jù)包含了在一個(gè)磁盤驅(qū)動(dòng)器中的部份儲(chǔ)存分割帶區(qū)塊的數(shù)據(jù)。因而,可以很容易知道,一筆數(shù)據(jù)不但可以是包含了恰好一個(gè)儲(chǔ)存分割帶區(qū)塊的數(shù)據(jù),或是多個(gè)儲(chǔ)存分割帶區(qū)塊的數(shù)據(jù),或是一個(gè)儲(chǔ)存分割帶區(qū)塊的部份數(shù)據(jù),也可以是多個(gè)以及部份儲(chǔ)存分割帶區(qū)塊的數(shù)據(jù)。更且,一處理集合的數(shù)據(jù)不但可以是包含了恰好一個(gè)儲(chǔ)存分割帶的數(shù)據(jù),或是多個(gè)儲(chǔ)存分割帶的數(shù)據(jù),或是一個(gè)儲(chǔ)存分割帶的部份數(shù)據(jù),也可以是多個(gè)以及部份儲(chǔ)存分割帶的數(shù)據(jù)。
當(dāng)然,若由主機(jī)傳送數(shù)據(jù)至磁盤驅(qū)動(dòng)器時(shí),或是由一磁盤驅(qū)動(dòng)器讀取數(shù)據(jù)再寫入另一磁盤驅(qū)動(dòng)器時(shí),亦類似上述作法來檢驗(yàn)待檢驗(yàn)數(shù)據(jù)的一致性,在此不再詳述。本發(fā)明亦可實(shí)施于其它儲(chǔ)存系統(tǒng)中,只要該儲(chǔ)存系統(tǒng)所讀取或傳送的數(shù)據(jù)包括一般數(shù)據(jù)及該一般數(shù)據(jù)的奇偶數(shù)據(jù)(或具有該一般數(shù)據(jù)的奇偶數(shù)據(jù)性質(zhì)的數(shù)據(jù))。例如RAID 1架構(gòu)中的一般數(shù)據(jù)(Db)與查核數(shù)據(jù)(Db’)(鏡射數(shù)據(jù),mirrored data)相同,因此若將一般數(shù)據(jù)(Db)與查核數(shù)據(jù)(Db’)進(jìn)行XOR運(yùn)算,則XOR運(yùn)算結(jié)果將為零,因此查核數(shù)據(jù)亦可在數(shù)據(jù)一致性觀點(diǎn)上視為奇偶數(shù)據(jù),因此亦可在同時(shí)讀取一般數(shù)據(jù)(Db)與查核數(shù)據(jù)(Db’),以利用本發(fā)明的互斥或運(yùn)算引擎322來確認(rèn)數(shù)據(jù)的一致性。
由以上的說明可知,本發(fā)明在檢驗(yàn)數(shù)據(jù)一致性時(shí),先將待檢驗(yàn)數(shù)據(jù)儲(chǔ)存于數(shù)據(jù)暫存單元之中,繼而對(duì)待檢驗(yàn)數(shù)據(jù)接續(xù)地進(jìn)行互斥或運(yùn)算,并在完成一個(gè)處理集合的數(shù)據(jù)(例如一個(gè)儲(chǔ)存分割帶上的數(shù)據(jù))時(shí),將其互斥或運(yùn)算結(jié)果輸出至邏輯或運(yùn)算單元,以供進(jìn)行邏輯或運(yùn)算,以獲得一檢驗(yàn)結(jié)果,繼而將檢驗(yàn)結(jié)果與下一個(gè)處理集合的互斥或運(yùn)算結(jié)果再次進(jìn)行邏輯或運(yùn)算,直到所有處理集合的數(shù)據(jù)完成互斥或運(yùn)算與邏輯或運(yùn)算時(shí),則依據(jù)邏輯或運(yùn)算單元所輸出的最新的檢驗(yàn)結(jié)果來判斷待檢驗(yàn)數(shù)據(jù)是否正確,以能提供有效計(jì)算待檢驗(yàn)數(shù)據(jù)一致性且不會(huì)嚴(yán)重降低系統(tǒng)效能。
上述實(shí)施例僅為了方便說明而舉例而已,而非僅限于上述實(shí)施例。
權(quán)利要求
1.一種數(shù)據(jù)一致性檢驗(yàn)裝置,用以檢驗(yàn)多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的至少一筆查核數(shù)據(jù),該數(shù)據(jù)一致性檢驗(yàn)裝置包括一互斥或運(yùn)算單元,用于針對(duì)每一該處理集合中的數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;以及一邏輯或運(yùn)算單元,用于針對(duì)這些互斥或運(yùn)算結(jié)果實(shí)時(shí)進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)一第一輸入數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,且該互斥或運(yùn)算模塊所產(chǎn)生的一輸出被回存至該緩沖單元。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)來自該至少一處理集合的一第一輸入數(shù)據(jù)及來自一選擇單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,該第二輸入數(shù)據(jù)選擇性地輸出自一耦接至該互斥或運(yùn)算模塊的緩沖單元或一默認(rèn)值。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該處理集合包括至少一儲(chǔ)存分割帶。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該處理集合包括至少部份儲(chǔ)存分割帶。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,還包括一控制單元用以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該邏輯或運(yùn)算單元包括一邏輯或運(yùn)算暫存單元,用以儲(chǔ)存該邏輯或運(yùn)算單元的運(yùn)算結(jié)果。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該邏輯或運(yùn)算暫存單元是一正反器。
9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該邏輯或運(yùn)算單元所產(chǎn)生的該邏輯或運(yùn)算結(jié)果為一數(shù)據(jù)一致性檢驗(yàn)結(jié)果。
10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該互斥或運(yùn)算單元包含一互斥或運(yùn)算模塊用于針對(duì)一先前產(chǎn)生的互斥或運(yùn)算結(jié)果及來自該至少一筆數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中該邏輯或運(yùn)算單元針對(duì)該新的互斥或運(yùn)算結(jié)果及由該至少一處理集合中的另一個(gè)所產(chǎn)生的下一互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算。
12.根據(jù)權(quán)利要求1所述的數(shù)據(jù)一致性檢驗(yàn)裝置,其中當(dāng)該互斥或運(yùn)算所進(jìn)行的次數(shù)等于在該處理集合的數(shù)據(jù)筆數(shù)時(shí),該互斥或運(yùn)算結(jié)果被提供給該邏輯或運(yùn)算單元。
13.一種數(shù)據(jù)一致性檢驗(yàn)方法,用以檢驗(yàn)多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的一至少一筆查核數(shù)據(jù),該方法包括以下的步驟針對(duì)每一處理集合中的這些數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;以及,針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該互斥或運(yùn)算步驟包括以下的步驟針對(duì)來自該處理集合的一第一輸入數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算。
15.根據(jù)權(quán)利要求14所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中在進(jìn)行該互斥或運(yùn)算后,產(chǎn)生出一輸出且被回存至該緩沖單元。
16.根據(jù)權(quán)利要求14所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該互斥或運(yùn)算步驟由一互斥或運(yùn)算模塊所進(jìn)行,且該互斥或運(yùn)算步驟還包括一選擇步驟,用于選擇性輸出至該互斥或運(yùn)算模塊下列的一個(gè)該第二輸入及一默認(rèn)值。
17.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該處理集合包括至少一儲(chǔ)存分割帶。
18.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該處理集合包括至少部份儲(chǔ)存分割帶。
19.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,還包括利用一控制單元控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元操作的步驟。
20.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,還包括將該邏輯或運(yùn)算結(jié)果暫存的步驟。
21.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算為實(shí)時(shí)進(jìn)行。
22.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該互斥或運(yùn)算步驟由一互斥或運(yùn)算單元所進(jìn)行。
23.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該邏輯或運(yùn)算步驟由一邏輯或運(yùn)算單元所進(jìn)行。
24.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該邏輯或運(yùn)算步驟由一中央處理單元所進(jìn)行。
25.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該互斥或運(yùn)算步驟由一中央處理單元所進(jìn)行。
26.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該針對(duì)每一處理集合中的這些數(shù)據(jù)進(jìn)行互斥或運(yùn)算的步驟包含以下步驟針對(duì)一先前產(chǎn)生的互斥或運(yùn)算結(jié)果及該至少一筆數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。
27.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算的步驟包含以下步驟針對(duì)該新的互斥或運(yùn)算結(jié)果及該至少一處理集合中的另一個(gè)所產(chǎn)生的下一互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算。
28.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中當(dāng)該互斥或運(yùn)算所進(jìn)行的次數(shù)等于在該處理集合的數(shù)據(jù)筆數(shù)時(shí),進(jìn)行該針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算的步驟。
29.根據(jù)權(quán)利要求13所述的數(shù)據(jù)一致性檢驗(yàn)方法,其中該邏輯或運(yùn)算步驟所產(chǎn)生的邏輯或運(yùn)算結(jié)果為一數(shù)據(jù)一致性檢驗(yàn)結(jié)果。
30.一種磁盤陣列控制器,包括一數(shù)據(jù)暫存單元,用以暫存至少一處理集合的待檢驗(yàn)數(shù)據(jù);以及一互斥或運(yùn)算引擎,用以檢驗(yàn)該讀自磁盤陣列的該至少一處理集合的數(shù)據(jù),該互斥或運(yùn)算引擎包括一互斥或運(yùn)算模塊,用于針對(duì)每一該至少一數(shù)處理集合的數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一互斥或運(yùn)算結(jié)果;及一邏輯或運(yùn)算單元,用于針對(duì)這些互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
31.根據(jù)權(quán)利要求30所述的磁盤陣列控制器,其中該互斥或運(yùn)算單元包括一互斥或運(yùn)算模塊用于針對(duì)一第一輸入來自該至少一處理集合中的數(shù)據(jù)及來自一緩沖單元的一第二輸入數(shù)據(jù)進(jìn)行互斥或運(yùn)算,并具有一輸出耦接至該緩沖單元。
32.根據(jù)權(quán)利要求31所述的磁盤陣列控制器,其中該互斥或運(yùn)算單元包括一選擇單元,用于選擇性輸出至該互斥或運(yùn)算模塊來自該緩沖單元的該第二輸入數(shù)據(jù)或一默認(rèn)值。
33.根據(jù)權(quán)利要求30所述的磁盤陣列控制器,還包括一控制單元用以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元的操作。
34.根據(jù)權(quán)利要求30所述的磁盤陣列控制器,其中該邏輯或運(yùn)算單元包括一邏輯或運(yùn)算暫存單元用以儲(chǔ)存該邏輯或運(yùn)算單元的運(yùn)算結(jié)果。
35.根據(jù)權(quán)利要求30所述的磁盤陣列控制器,其中該至少一處理集合中的待檢驗(yàn)數(shù)據(jù)包含至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的一至少一筆查核數(shù)據(jù),其中在該互斥運(yùn)算模塊針對(duì)這些數(shù)據(jù)中的第一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一第一互斥或運(yùn)算結(jié)果后,該互斥運(yùn)算模塊針對(duì)所產(chǎn)生出來的最新互斥或運(yùn)算結(jié)果及這些數(shù)據(jù)中的另一筆數(shù)據(jù)進(jìn)行互斥或運(yùn)算以產(chǎn)生一新的互斥或運(yùn)算結(jié)果。
36.根據(jù)權(quán)利要求35所述的磁盤陣列控制器,其中該邏輯或運(yùn)算單元針對(duì)該新的互斥或運(yùn)算結(jié)果及由該至少一處理集合中的另一個(gè)所產(chǎn)生的下一互斥或運(yùn)算結(jié)果進(jìn)行邏輯或運(yùn)算。
37.一種數(shù)據(jù)儲(chǔ)存系統(tǒng),包括一主機(jī);一數(shù)據(jù)儲(chǔ)存設(shè)備用以提供數(shù)據(jù)儲(chǔ)存空間;以及一控制器,耦接于該主機(jī)與該儲(chǔ)存設(shè)備之間,該控制器包括一數(shù)據(jù)暫存單元,用以暫存多筆待檢驗(yàn)數(shù)據(jù),這些待檢驗(yàn)數(shù)據(jù)能被區(qū)分為至少一處理集合,每一處理集合具有至少一筆一般數(shù)據(jù)與該至少一筆一般數(shù)據(jù)的至少一查核數(shù)據(jù);以及一數(shù)據(jù)一致性檢驗(yàn)單元,用以檢驗(yàn)這些待檢驗(yàn)數(shù)據(jù)的數(shù)據(jù)一致性,其包括一互斥或運(yùn)算單元,用以對(duì)每一處理集合的這些待檢驗(yàn)數(shù)據(jù)進(jìn)行互斥或運(yùn)算,以產(chǎn)生一相對(duì)于該處理集合的互斥或運(yùn)算結(jié)果;以及,一邏輯或運(yùn)算單元,接收每一處理集合的互斥或運(yùn)算結(jié)果,以供進(jìn)行邏輯或運(yùn)算,以產(chǎn)生一邏輯或運(yùn)算結(jié)果。
38.根據(jù)權(quán)利要求37所述的數(shù)據(jù)儲(chǔ)存系統(tǒng),其中該互斥或運(yùn)算單元還包括一互斥或運(yùn)算模塊,以對(duì)一來自該處理集合的這些待檢驗(yàn)數(shù)據(jù)的第一輸入及一來自一緩沖單元的第二輸入進(jìn)行互斥或運(yùn)算,該互斥或運(yùn)算模塊并具有一耦接至該緩沖單元的輸出。
39.根據(jù)權(quán)利要求38所述的數(shù)據(jù)儲(chǔ)存系統(tǒng),其中該互斥或運(yùn)算單元還包括一選擇單元,以選擇性輸出該第二輸入或一默認(rèn)值至該互斥或運(yùn)算模塊。
40.根據(jù)權(quán)利要求37所述的數(shù)據(jù)儲(chǔ)存系統(tǒng),該互斥或運(yùn)算單元還包括一互斥或運(yùn)算模塊與一選擇單元,該互斥或運(yùn)算模塊用以對(duì)一來自該至少一處理集合的第一輸入及一來自一緩沖單元的第二輸入進(jìn)行互斥或運(yùn)算,該互斥或運(yùn)算模塊并具有一耦接至該緩沖單元的輸出,該輸出儲(chǔ)存于該緩沖裝置,該選擇單元用以選擇性輸出該第二輸入或一默認(rèn)值至該互斥或運(yùn)算模塊,該互斥或運(yùn)算模塊進(jìn)行互斥或運(yùn)算的次數(shù)達(dá)到一該處理集合所具有的數(shù)據(jù)筆數(shù)時(shí),該緩沖單元輸出該處理集合的互斥或運(yùn)算結(jié)果至該邏輯或運(yùn)算單元,且該專屬邏輯或運(yùn)算單元所產(chǎn)生的邏輯或運(yùn)算結(jié)果為數(shù)據(jù)一致性檢驗(yàn)結(jié)果,該處理集合包括至少部份儲(chǔ)存分割帶,該數(shù)據(jù)一致性檢驗(yàn)單元還包括一控制單元,以控制該互斥或運(yùn)算單元及該邏輯或運(yùn)算單元的操作,且該邏輯或運(yùn)算單元包括一邏輯或運(yùn)算暫存單元用以儲(chǔ)存該邏輯或運(yùn)算單元的運(yùn)算結(jié)果。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)一致性檢驗(yàn)裝置、具有此檢驗(yàn)裝置的磁盤陣列控制器及儲(chǔ)存系統(tǒng)及其方法,其利用互斥或運(yùn)算單元及邏輯或運(yùn)算單元來檢驗(yàn)數(shù)據(jù)一致性時(shí),互斥或運(yùn)算單元對(duì)待檢驗(yàn)數(shù)據(jù)進(jìn)行互斥或運(yùn)算,并在完成一個(gè)處理集合的數(shù)據(jù)時(shí),將其互斥或運(yùn)算結(jié)果輸出至邏輯或運(yùn)算單元,以供進(jìn)行邏輯或運(yùn)算,以獲得一檢驗(yàn)結(jié)果。
文檔編號(hào)G06F7/38GK1690980SQ20051005948
公開日2005年11月2日 申請(qǐng)日期2005年3月25日 優(yōu)先權(quán)日2004年3月26日
發(fā)明者潘瑞曜, 陳榮耀 申請(qǐng)人:普安科技股份有限公司