專利名稱:陣列型記錄裝置的制作方法
技術領域:
本發明是有關計算機存儲系統的陣列型記錄裝置,例如,是有關通過將多個磁盤裝置配置成陣列狀來改進磁盤驅動系統的性能以及可靠性。
將多個磁盤裝置做成陣列狀所構成的磁盤系統,已為各種文獻和專利所公開。其中加利福尼亞柏克萊大學發表了有關大容量化存儲數據的可靠性的改善方式的論文,該論文為“A Case forRedundant Arrays of InexpensiveDisks (RAID)”1988,6,1,ProcACM SIGMOD Conf,Chicago,其對數據可靠性的改善方式是從已有的密勒磁盤方式到成組交叉奇偶方式,按5個等級進行了分類。下面對其概述如下RAID等級1通常為鏡(陰影)方式,將同一數據存儲到兩組磁盤裝置中。對于高可靠性要求的系統而言,RAID等級1是已有的、普通的,但由于冗余度大因此單位容量的成本高。
DAID等級2適用于按DRAM所使用的漢明碼形式,在冗余組的數據磁盤中,按位間隔存儲。由于可以做成能修正一位誤差,所以在每組(一組由大約10~25個盤構成)的多個校驗盤中(數據盤數為10個時,所需校驗盤數為4),寫入ECC(誤差檢驗與校正碼)碼。該等級的冗余度稍大些。
RAID等級3以固定方式使用奇偶磁盤,將數據進行字節交錯后記錄在各組中的數據磁盤里。由于是按每個驅動器的ECC判斷誤差位置,因此只需用1個奇偶磁盤就可以了,其適用于與心軸同步回轉的做高速傳送。
RAID等級4按固定方式使用奇偶磁盤,將數據進行成組交錯后記錄在組中的數據盤,中與等級3的差別在于交錯單位不一樣,由于按區組單位進行記錄,因而適合于將少量數據多次存取的情況。
RAID等級5與等級3和4不同,其不帶有固定的奇偶磁盤,而是將奇偶數據分散地記錄在所構成的磁盤中(螺旋式記錄)為此寫時不會引起奇偶磁盤的負荷集中問題。并使10ps增加(與RAID相比,寫的比率越多越有利)。使用時性能,容量效率同時很好。
作為具有冗余性的陣列型磁盤驅動裝置的公知例,如特開平2-236714號公報中所公開的,美國陣列技術協會的“陣列型磁盤驅動機構的系統及方法”。根劇陣列技術協會例舉的冗余等級并利用主計算機可以選擇構成磁盤裝置的理論個數。
而有關奇偶數據的分散記錄(螺旋式記錄)在特開昭62-293355號公報所公開的美國國際商業機械協會的“數據保護機構”中描述了該方法。
圖28所示的是上述特開平2-236714號公報中所示的已有的陣列型磁盤驅動裝置,圖中2是作為主計算機和陣列控制器之間的緩沖器的主接口(以下稱主I/F),3是控制陣列控制器整體的微處理器,4是存儲器,5是產生冗余數據以及對數據進行復位的EOR機構,6是連接上述主接口I/F2。微處理器3,存儲器4以及EOR機構5的共用數據總線,8是通道控制器,在上述數據總線上連接著多個通道控制器,9是磁盤裝置,10是通道,磁盤裝置9經通道10與上述通道控制器連接,13是控制多個磁盤裝置9的陣列控制器。
圖29是解釋形成RAIO冗余數據的圖,如圖29所示,用5個磁盤中的一個磁盤的數據存儲其它4個磁盤數據中的冗余數據(奇偶)的狀態,奇偶性可以通過4個磁盤數據的異(XOR)運算來計算,即奇偶性磁盤P中的奇偶數據,是將磁盤0和磁盤1以及磁盤2和磁盤3的數據進行XOR而得到,將這樣得到的奇偶數據作為冗余數據,通過保持奇偶數據可以在例如當磁盤0中的數據因某種障礙而不能讀取時,將磁盤1和磁盤2以及磁盤3和奇偶磁盤P的數據進行異(XOR)運算后的數據作為磁盤0的數據進行復原。
而且,奇偶性計算如前所述是將4個磁盤數據進行XOR運算而得到的,另外的方法還將已寫入數據的磁盤的原數據和目前的奇偶磁盤中所記錄的現存奇偶數據前移后計算新數據和老數據和現有奇偶數據三個數據的XOR后所得的數據,作為新的奇偶性數據的情況。用圖30說明該方法。例如,需要在磁盤2中記錄新數據DN(2)時,首先從磁盤2中讀出原有的數據DO(2)。同時讀出從奇偶性磁盤來的現有的奇偶數據DO(P),然后將DN(2)和DO(2)和DO(P)這三個數據進行XOR計算,并將算后的數據作為新的奇偶性數據DN(P)。然后在磁盤2里記錄新數據DN(2)。最后將新的奇偶性數據DN(P)記錄到奇偶性磁盤中。
以下就如圖28所示系統的動作進行說明。圖28中,主計算機和數據的存儲再生都是通過主I/F2來完成的,數據存儲時,來自主機的命令以及數據經數據總線6一次性地被存儲到存儲器4中。當數據再生時在存儲器4中所準備的數據通過主I/F2被傳送到主機中。
圖31是主I/F2內部的方框圖及其動作流程。圖中,21是協議芯片22是微型計算機。I/F協議芯片21是將SCSI硬件化的接口芯片,微型計算機22對I/F協議芯片21接受的數據內容進行分析的結果輸出到下段的控制器。如流程圖所示微型計算機22進行指令的有效性檢驗,并分析指令的內容。進而根據該分析的結果實現從邏輯地址向物理地址的變換。這樣就可以按順序進行指令的有效性校驗、指令的譯碼和地址的變換。由于這段時間需要例如300微秒到1毫秒,因此即使在其他硬件的性能提高的情況下,由于主I/F內的微型計算機22的性能沒提高,因此仍然具有實質上不可能提高傳送速度的缺點。
以下利用圖28、圖32說明有關RAID等級5的動作。在存儲數據時,微處理器3將存儲在存儲器4中的數據分割成數據塊、并確定數據寫入磁盤裝置以及冗余數據寫入磁盤裝置。對于RAID等級5由于需要用新寫入的冗余數據替代已寫入的數據塊中的原有數據,因此在寫入之前,需要進行讀取的動作。數據傳送是通過存儲器和通道8之間的數據總線6來進行的,與上述數據傳送相同步地由EOR機構5形成冗余數據。
如圖32所示在寫入1024字節的數據時,如果數據塊是按512字節進行設定的,則可將上述1024字節分割成16和17兩塊進行記錄,同時還可記錄奇偶性數據P。把這樣的記錄狀態叫做螺旋式記錄。
以下將對其進行順序說明。首先如圖28所示可確定寫入數據磁盤裝置9a、9b以及冗余數據磁盤裝置9e,然后通過微處理器3的控制可起動EOR機構5,向數據連接磁盤裝置9a、9b以及冗余數據磁盤裝置9e的通道控制器8a 8b 8e發出讀取用于冗余數據計算的老數據的指令。當上述數據磁盤裝置9a、9b以及冗余數據磁盤裝置9e讀取了老數據之后,根據微處理器3的指令,在數據磁盤裝置9a、9b中寫入新的數據,以及在冗余磁盤裝置9e寫入由EOR機構5所生成的替換了的冗余數據。并向主計算機報告上述數據寫入已終結。按上述方式寫入數據時,需要先讀取用于生成冗余數據的老數據,因此處理時間較長。
另外,如圖32所示,在把一個數據分割記錄到多個磁盤中的情況下,在存取該數據時需要訪問多個磁盤,因而性能不好。
以下就數據讀出進行說明,主計算機給出數據讀出指令,由微處理器3計算數據塊及數據磁盤裝置中存儲的數據。例如如果磁盤裝置9c中存儲了該數據,則向連接磁盤裝置9c的通道控制器8c中發出讀指令。當磁盤裝置9c讀出數據之后,將數據傳送到存儲器4中。并向主計算機報告數據讀出已終結。
以下就產生異常時,對數據的修改以及備用磁盤中數據的重新構成進行說明。
例如可以在上述磁盤裝置9c不能進行數據讀出的情況下對數據進行修復。當磁盤裝置9c不能進行數據讀出時,由微處理器3從包含讀出該數據磁盤在內的所有冗余組的磁盤裝置中讀出數據,并由EOR機構5將不能讀出的該數據塊的數據進行復位。
例如,冗余組是由磁盤9a、9b、9c、9d、9e構成時,由磁盤裝置9a、9b、9d、9e讀出數據塊,而由EOR機構5將磁盤9c的數據復位,并將數據傳送到存儲器4,同時向主計算機報告讀出數據結束。
如上所述,在磁盤裝置發生異常之后,在不能讀出數據時,也能修復數據,因而提高了數據的可靠性。
如上所述,數據的重新構成是在磁盤裝置9e不能使用的情況下進行的。在這種情況下由微處理器3讀出包含磁盤裝置9c中已存儲的數據的冗余組在內的所有磁盤裝置中的數據,而由EOR機構5使磁盤裝置9c的數據復位,并將復位后的數據重新構成到備用磁盤上。
例如如果冗余組是由磁盤裝置9a,9b,9c,9d,9e構成的,則讀出來自磁盤裝置9a,9b,9d,9e的數據,并由EOR機構5將磁盤裝置9c的數據復位,并將所復位的數據寫入備用磁盤,使磁盤裝置9c的數據在備用磁盤上重新構成,以上是用備用磁盤代替不能使用的磁盤裝置9c,這種代替處理應在系統運轉中進行,因而在代替處理中會使系統的性能變壞。
由于已有的陣列型磁盤驅動裝置是按上述方式構成的,因此即使在通常動作中也存在當數據寫入時,為了形成冗余數據,需先進行數據讀出,從而使處理時間延遲等問題。
而且對于磁盤裝置替代處理而言,當用替代的備用磁盤進行替代時,存在使系統的性能進一步變壞的問題。
本發明的目的就是要克服上述缺點,得到一種改善了數據讀出和寫入時的處理時間的陣列型記錄裝置。
與本發明有關的第一種陣列型記錄裝置,使用了與已有裝置相同的讀寫回路,其中寫入回路和讀出回路是分開設置的,其具有以下部分(a)多個記錄數據的記錄載體;(b)在上述多個記錄載體上寫入數據的寫入回路;(c)與上述寫入回路不相同的回路、并從上述多個記錄載體中讀出數據的讀出回路。
與本發明有關的第二種陣列型記錄裝置,其特征是具備(a)多個記錄數據的記錄載體;(b)具有對應于上述多個記錄載體分別配備的先進先出緩沖器,用于對上述多個記錄載體寫入數據的數據寫入回路;(c)具有對應于上述多個記錄載體分別配備的先進先出緩沖器,用于從所述記錄載體中讀出數據,與上述數據寫入回路獨立地操作的數據讀出回路。
與本發明有關的第三種陣列型記錄裝置,例如在接口部備有雙通道的存儲器,其特征是具有由該雙通道的各通道存取雙通道存儲器中所存儲的數據的多個指令處理單元,并具有以下部分(a)記錄數據的多個記錄載體;(b)根據請求對上述記錄載體進行數據讀寫的讀寫裝置;(c)用于對上述讀寫裝置提出請求,而且具有由以下部件的接口裝置;(c1)從外部裝置輸入指令的指令輸入單元;(c2)具有多個存取通道并保持來自上述指令輸入單元的輸入指令的多通道存儲器;(c3)用于根據上述多通道存儲器中所保持的指令將上述讀寫裝置中輸出的請求進行變換處理,經多種處理后,再分別進行分配的多個同時存取來自多通道存儲器各存取通道的指令并進行分配處理的指令處理單元。
與本發有關的第四種陣列型記錄裝置,其特征是,在通過螺旋式記錄將數據分散在多個記錄載體中進行記錄的情況下設置了冗余數據在連續寫入數據時,下一個冗余組的開頭,是以以前已寫入冗余組冗余數據的記錄載體所定方向為起點,在連續讀出數據的情況下,沿所定的方向按順序讀出多個記錄載體,并且有以下部分
(a)記錄數據的多個記錄載體(b)寫入裝置,其將數據以及該數據的冗余數據分散記錄在上述多個記錄載體中,并在連續進行多個數據寫入的情況下,在所定的方向上按順序地將數據寫入多個記錄載體中,同時把各數據的冗余數據周期地配置到多個記錄載體中,并從已寫入在前數據的冗余數據的記錄載體開始,寫入下一個數據;(c)讀出裝置,其在將上述寫入裝置連續寫入的多個數據進行連續地讀出的情況下,當從一個冗余組讀取數據時,應忽略從該冗余組讀出冗余數據,而是從具有該冗余數據的記錄載體開始通過按順序在所定的方向上讀出多個記錄載體的數據,來讀出下一個數據。
與本發明有關的第五種陣列型記錄裝置,其特征在于通過先進先出緩沖器(FIFO),在讀出記錄載體上所記錄的數據時,先進先出緩沖器在讀出數據的同時生成修正數據,并且有以下部分(a)將數據以及冗余數據進行分散記錄的多個記錄載體;(b)具有以下部件的、讀出上述記錄載體記錄的上述數據的讀出裝置;(b1)分別對應于上述多個記錄載體所設置的、輸入記錄載體中所記錄的數據的先進先出緩沖器;(b2)通過上述先進先出緩沖器,讀出記錄載體中所記錄的數據的讀出控制回路;(b3)通過上述讀出控制回路,讀出來自先進先出緩沖器的數據時,產生用于修正所讀出的數據的修正數據生成回路。
與本發明有關的第六種陣列型記錄裝置,特征是當通過先入先出緩沖器(FIFO)在記錄載體上寫數據時,同時生成寫入數據的冗余數據,并具有以下部分(a)將數據以及其冗余數據分散地進行記錄多的個記錄載體;(b)具有以下部件且將數據寫入記錄載體中的寫入裝置;(b1)分別對應于上述多個記錄載體所設置的并在各記錄載體中進行記錄的先進先出緩沖器;(b2)通過上述先進先出緩沖器,向記錄載體中寫入數據的寫入控制回路;(b3)由上述寫入控制回路通過先進先出緩沖器向記錄載體寫數據時,生成寫入數據的冗余數據的冗余數據生成回路。
與本發明有關的第七種陣列型記錄裝置,其特征在于在數據讀出回路中具有把所讀出的數據向寫入回路傳送的傳送回路,在寫入數據的寫入回路中,用來自傳送回路的數據,生成冗余數據,并具有以下部分(a)將數據以及冗余數據進行分散記錄的多個記錄載體;(b)讀出上述記錄載體中所記錄數據的讀出裝置,其具有以下部分(b1)向分別對應于上述多個記錄載體設置的各記錄載體輸入所記錄的數據的先進先出緩沖器;(b2)通過上述先進先出緩沖器,讀出記錄載體中記錄的數據和其冗余數據的讀出控制回路;(b3)利用上述讀出控制回路,在從先進先出緩沖器讀出數據時,傳送所讀出的數據的傳送回路;
(c)在上述記錄載體中寫入數據的寫入裝置,其具有以下部分(c1)對應于上述多個記錄載體分別設置的、對各載體進行記錄的先進先出緩沖器;(c2)通過上述先進先出緩沖器,在記錄載體中寫入數據的寫入控制回路;(c3)利用上述寫入控制回路通過先進先出該沖器向記錄載體寫入數據時,根據上述傳送回路所傳送的數據和寫入數據生成冗余數據的冗余數據生成回路。
與本發明有關的第八種陣列型記錄裝置,其特征在于,具有先進先出緩沖器(FIFO),和利用該先進先出緩沖器,將先入先出緩沖器中所寄存的數據進行任意次傳送的輸出裝置,并且有以下部分(a)記錄數據的多個記錄載體;(b)對應于上述記錄載體設置的先進先出緩沖器;(c)通過上述先進先出緩沖器,對記錄載體進行數據讀寫的讀寫裝置;(d)利用上述讀寫裝置,在從先進先出緩沖器輸出數據的同時,持續保持該輸出數據,并可以再次從先進先出緩沖器輸出數據的輸出裝置。
與本發明有關的第九種陣列型記錄裝置,與已有的陣列型記錄裝置中所對應的多個記錄載體只帶一個高速緩沖存儲器的情況相反,本發明的特征在于對應于多個記錄載體,分別設置高速緩沖存儲器,并且有以下部分
(a)記錄數據的多個記錄載體;(b)對應于上述記錄載體設置的、對記錄載體上所讀寫的數據進行暫時保持的高速緩沖存儲器;(c)利用上述高速緩沖存儲器,對記錄載體進行數據讀寫的讀寫裝置。
與本發明有關的第十種陣列型記錄裝置,其特征在于對任意個記錄裝置的處理終結報告進行組合,并使裝置例如產生中斷,和根據該中斷進行任務起動,其具有以下部分(a)記錄數據的多個記錄載體;(b)向上述多個記錄載體中的任意個記錄載體中輸出存取請求的多個任務裝置;(c)利用上述任務裝置,報告用于存取的各記錄載體已完成存取的報告裝置;(d)通過對上述報告裝置的報告進行組合,從上述多個任務裝置中,識別對應的任務裝置后,起動該任務的任務起動裝置。
在第1發明中,寫入數據的寫入回路和讀出數據的讀出回路分別是用不同的回路構成的。因此通過并行地進行寫入動作和讀出動作,來提高了陣列型記錄裝置的處理性能。
在第2發明中,由于分別對應于各記錄載體設置了先進先出緩沖器,利用該專用的先進先出緩沖器進行相應于各記錄載體的數據處理,從而能實現高速處理。
在第3發明中,在接口部配置了多通道存儲器,因此可同時訪問與多個通道存儲器對應的多個指令處理單元,這與已有的按時序并行地進行處理的方式相比,可使接口部的處理高速進行。
第4發明中,由寫入裝置寫入的數據,即螺旋式記錄的數據是按螺旋狀配置的,在讀出裝置讀出該數據時,這種按螺旋狀所配置了的螺旋式記錄數據,可以順次地連續讀出。即寫入裝置為了寫入下一個冗余組,而通過讀出裝置從與帶常有前一冗余組冗余數據的記錄載體相同的記錄載體所寫入的數據中讀出新的冗余組數據時,是從具有前一冗余組冗余數據的記錄載體中開始讀的。因此,通過預先跳讀或忽略前一個冗余數據,來讀具有下一個冗余組的冗余數據的記錄載體并沿所定的方向不斷讀出多個記錄載體就可以連續地進行數據讀出。
第5發明中,如果在某個記錄載體上發生誤差,并想修正該記錄載體上所記錄的數據時,需要從進行正常動作的記錄載體中,讀出數據,并使其構成修正數據。在本發明中,是將從正常記錄載體讀出的數據記錄到輸入輸出緩沖器中。然后在讀出數據的過程中,將最后傳送的并與從先進先出緩沖器中讀出的數據傳送時鐘脈沖相同步的數據,作為讀出的數據的修正數據,即,修正數據生成回路在讀出由控制回路把從記錄載體來的數據讀出到先進先出緩沖器中時,與該讀出同步生成修正數據,從記錄載體讀出數據的時間,就是生成修復數據的時間,從而可以省略已有的在讀出所有的數據之后再生成修正數據的時間,并且可以高速地實現修正數據的生成處理。
第6發明中,在記錄載體上寫入數據時生成冗余數據后再進行寫入,寫入控制回路在記錄載體上寫數據時,冗余數據生成回路在該寫入數據的整個過程中與最后被傳送到先進先出緩沖器的寫入數據的傳送時鐘脈沖同步,而生成寫入數據的冗余數據。這樣冗余數據生成回路在寫入控制回路寫入數據的同時,形成冗余數據,因此相對于已有的從寫入數據開始到生成冗余數據所特殊需要的時間而言,在本發明通過把寫入數據寫入到記錄載體的同時,就可以生成冗余數據,因此可以節省生成冗余數據的時間。
第7發明中,改善了在記錄載體上寫入數據的情況下,把老數據一次讀取之后,再進行新的冗余數據的生成的過程,其將讀出控制回路讀出的數據和冗余數據,傳送到寫入控制回路的傳送回路,利用該傳送回路在傳送數據的同時,使用新寫入的數據來生成新的冗余數據,因此就不需要像已有的那樣由所讀出的老數據和寫入的新數據來生成冗余數據所要求的特別的時間,所以可以縮短冗余數據生成的時間。
第8發明中,輸出裝置可以從先進先出緩沖器進行任意次的數據輸出,例如在出現寫入錯誤或讀出錯誤時,利用輸出裝置可再次將先進先出緩沖器里的數據進行傳送,因此在寫入動作中就能實行重寫,而在讀出動作中就可以進行讀出數據的再傳送。
第9發明中,對應于多個記錄載體設置了高速緩沖存儲器,使數據的存取能高速進行,同時由于高速緩沖器是被分別設置在記錄載體上的,所以只限于相應于高速使用的記錄載體,而在其它的記錄載體上不需要使用高速,因此在多個記錄載體使用高速緩沖器的情況下,不必進行排他處理。
第10發明中,設置有報告裝置,通過將該報告裝置的報告進行組合,可對向記錄載體輸出的處理請求的任務進行識別,并起動該被識別了的任務,因此根據處理請求而動作的記錄載體在完成其所有處理的時間點上,可以自動地起動所期望的任務。
附圖的簡要說明
圖1是根據本發明的一個實施例的方塊圖。
圖2是根據本發明一個實施例的接口單元的方塊3是根據本發明的一個實施例的另一個接口單元的實施例的圖。
圖4根據本發明一個實施例的自修復單元圖。
圖5是根據本發明一個實施例的RAID單元的方塊6是根據本發明一個實施例的HDD控制單元和磁盤裝置的方塊圖。
圖7是根據本發明一個實施例的螺旋式數據陣列圖。
圖8是根據本發明一個實施例的另一種螺旋式數據陣列圖。
圖9是根據本發明一個實施例的讀單元的方塊圖。
圖10是根據本發明一個實施例的異回路的電路圖。
圖11是根據本發明一個實施例的時間圖。
圖12是根據本發明一個實施例的寫單元的方塊圖。
圖13是根據本發明一個實施例的用于說明動作的說明圖。
圖14是用于說明根據本發明一個實施例的動作的示圖。
圖15是用于說明根據本發明一個實施例的動作的說明16用于說明根據本發明一個實施例的動作的說明圖。
圖17是用于說明根據本發明一個實施例動作和說明圖。
圖18是用于說明根據本發明一個實施例動作的說明圖。
圖19是用于說明根據本發明一個實施例動作的說明圖。
圖20是用于說明根據本發明一個實施例動作的說明圖。
圖21是用于說明根據本發明的一個實施例動作的說明圖。
圖22是用于說明根據本發明的一個實施例動作的說明圖。
圖23是用于說明根據本發明一個實施例的動作的說明圖。
圖24是用于說明根據本發明一個實施例的動作的說明圖。
圖25是用于說明根據本發明一個實施例動作的說明圖。
圖26是根據本發明的一個實施例的中斷回路圖。
圖27是用于說明根據本發明的一個實施例的中斷向量的圖。
圖28是已有的陣列型磁盤裝置圖。
圖29是用于說明陣列型磁盤裝置的動作的說明圖。
圖30是用于說明陣列型磁盤裝置的動作的說明圖。
圖31是用于說明已有接口單元動作的說明圖。
圖32是已有的螺旋式數據陣列圖。
符號說明100接口單元 160 控制總線 170 數據總線200自修復單元 300 RAID單元 340 中斷回路400 讀單元、410 FIFO 420 異回路,500 寫單元 510 FIFO 520 異回路600 控制回路700 HDD控制單元800 磁盤裝置實施例1圖1所示的是有關本發明的陣列型記錄裝置的一個實施例。
圖中,100是接口單元,200是自修復單元,300是RAID單元,400是RAID單元300內部的讀出單元,500是同一RAID單元300內部的寫單元,600是用于對讀單元400和寫單元500以及RAID300的整體進行控制的控制回路。700是與RAID單元300相連接的磁盤裝置的控制單元(HDD控制單元)。800是與HDD控制單元700相連接的磁盤裝置。
下面利用圖2以及圖3來說明接口單元100。
圖2中101是SCSI接口,110是控制該SCSI接口的SCSI芯片,120是分析由SCSI芯片110輸入的協議的微處理機SCSIMPU,130是進行直接存儲器存取(DMA)傳送的DMA芯片,140是有兩個存取通道的雙端口隨機存取存儲器(RAM),150是具有0.5到兆字節的緩沖器,160是與SCSI芯片110和SCSIMPU120和雙端口RAM140相連接的控制總線,170是與SCSI芯片110和DMA芯片130以及雙端口RAM140和緩沖器150相連接的數據總線。
雙端口RAM140帶有兩個存取通道,在本列中,與控制總線160和數據總線170通過各自的通道進行連接。通過SCSI接口101在芯片SCSI110上所輸入的處理請求由控制總線160和數據總線170分別進行處理,SCSI芯片110將處理請示求一次寄存到雙端口RAM140中,在該雙端口RAM140中所寄存的處理請求,可以通過SCSIMPU120和DMA芯片130進行存取。SCSIMPU120例如把寄存在雙端口RAM中的指令群(CDB指令盤117リブミヨニ塊)通過控制總線160從雙端口DMA中讀出,并對該指令的有效性進行校驗同時進行指令的譯碼,另一方面,SCSIMPU120在進行指令的有效性的校驗和指令的譯碼期間,為了得到所需要的地址,而控制DMA芯片130進行例如從邏輯地址向物理地址的變換。
這樣該接口單元100的特征在于分別具有控制總線和數據總線,而且在雙端口RAM140中一次性地寄存指令群,并且在存取來自各通道的各程序的同時,可并行地進行指令分析、必要的變換等。
另外,將緩沖器150用於傳送那些傳送長度很長的數據或用于在讀出來自磁盤裝置的數據之后,對其進行修正并再次寫入到磁盤裝置中的所謂的讀改寫動作。
而且SCSI芯片110以及DMA芯片130可以通過與外部接口連接的RAIO裝置300來進行故障排除,并可以對主計算機的診斷系統作出響應。
以下,圖3是表示接口裝置100的另一個例子。
圖3中,110是SCSI芯片,120是微處理機,121是指令校驗回路,122是邏輯物理地址變換器,140是雙端口RAM。
在本例中,SCSI芯片110將SCSI接口101傳送的指令群(CDB)寄存到雙端口RAM140中。微處理機120和邏輯物理變換器122和指令校驗回路121對雙端口RAM140可以同時進行訪問,因此用指令校驗回路121可以對雙端口RAM140指令群(CDB)的指令有效性進行校驗。同時由微處理機120進行指令譯碼。再由邏輯物理地址變換器122將輸入的邏輯地址變成物理地址。指令校驗回路121也可由硬件構成,或者可以由與微處理機120不同的微處理機構成。同樣邏輯物理地址變換器122也可以是由專用的硬件構成,或者用和微處理機120不一樣的微處理機進行處理。
這樣,將由接口單元100進行的處理分成三部分后進行系列處理,可以減少接口單元100的內務操作,從而可以使陣列型記錄裝置的處理速度提高。
以下用圖4表示圖1中所示的自修正單元200的構成。
圖中,210是記錄存儲器,220是用于保持日期,時間等的壓制電池,230是用于控制自修正單元的MPU,240為進行選擇操作的面板。
在操作面板240上,設置了就緒發光二極管(LED)、故障LEO等各種顯示裝置,同時還設置了修正用的軟件或診斷用的軟件。或備有以在線方式連接且用于修正診斷系統的通信用機構。該自修正單元200內設有圖中未示的實時時鐘,同時還具有用于保持日期、時刻等的壓制電池220,在保持日期、時刻的同時還可以把RAIO單元300的動作狀態采集到記錄存儲器210中。MPU230,通常用于監視RAID單元300的動作,并將該記錄數據采集到記錄存儲器中,而且MPU根據操作面板240所設置的診斷軟件,對RAID單元300進行診斷。當磁盤裝置中產生故障,而用替代磁盤進行替代的情況下,修正操作就變得有必要了,MPU230根據操作面板240上的修正軟件的指示,在接口裝置100受理處理請求的同時對替代磁盤進行數據修正操作。通常對替代磁盤的修正操作是從正常動作的其它磁盤裝置開始到最后將數據全部讀出,再進行向替代磁盤寫入修正數據的動作。MPU230按通常那樣,在接口單元110從主計算機等上位裝置接受處理請求一段時間后,再實行全面讀出動作。
以下,圖5所示的是圖1中的RAID300的詳細構成。
圖中,310是作為RAID單元300核心的門陣列,400是在門陣列310內部設置的讀單元,500是在同一門陣列310中設置的寫單元,600是控制回路。而410是在讀單元400內部設置的FIFO,420是為生成冗余數據等而設置的異回路。450是連接數據總線170和FIFO420的開關。而510是設置在寫單元500的FIFO,520是為生成冗余數據等使用的異回路。320是雙端口RAM,其存儲圖4中所示的自修正單元200的MPU230的控制信息,321是用于存儲來自前述接口單元100的控制總線160的控制信息的雙端口RAM,330是在雙端口RAM320和330進行數據存取后對接口單元100和自修正單元200進行聯系通信的MPU。340是接受對磁盤裝置訪問結束的報告,并產生中斷的中斷回路。350是用于保持MPU330的處理請求的疊式存儲器。360是相對磁盤裝置分別設置的雙端口RAM。370是用于對從磁盤裝置側的雙端口RAM360來的信息進行查詢的查詢寄存器。
以下說明有關動作,RAID單元300具有作為其核心的門陣列310,在該門陣列310的內部分別各自設有讀出單元400和寫單元500。讀單元400是用于讀出從多個磁盤裝置來的數據的讀出回路,在其內部相應于各磁盤裝置可設置記錄讀出數據的FIFO410。同樣,在寫單元500的內部分別對應于磁盤可設置用于在磁盤裝置中寫入數據的FIFO510。該讀出單元400和寫單元500的FIFO通過開關450,可選擇性地與來自接口100的數據總線170相連接。
下面,將把這些讀出單元和寫入單元的動作分成讀出情況和寫入情況進行說明。
當從接口裝置100讀出經控制總線160傳來的數據指令時,將讀出的請求送到控制回路(也叫控制邏輯)600中。同樣,將相同的請求記錄到雙端口RAM321的內部。控制邏輯600使讀出單元400動作。并且當MPU330得到雙端口RAM321中所記錄的信息后,對該讀出請求進行判斷,并在與記錄有相關數據的磁盤裝置相對應的雙端RAM360中寫入信息。查詢寄存器370,其通過受理來自磁盤裝置側的中斷處理進行查詢。利用MPU330控制與寫入信息的雙端口RAM相對應的磁盤裝置根據RAM中的信息將數據經數據總線380傳送到與讀出單元400相對應的FIFO410中。控制邏輯600利用開關切換把先傳送數據的磁盤裝置的FIFO轉換成準備就緒的狀態。然后在讀取FIFO中的相關數據后,利用數據總線170將數據傳送到接口單元100中。
一方面,當主計算機等提出將數據寫入接口裝置中的請求時,經控制總線160把寫入請求傳到控制邏輯600及雙端口RAM321中。控制邏輯600利用數據總線170,從與應該寫入該數據的磁盤裝置相對應的FIFO得到數據。MPU330根據雙端口RMA321中的寫入請求,判定相應的磁盤裝置,并在相關的雙端口RAM中寫入寫入請求到來的信息。磁盤裝置通過查詢寄存器在得知自身的磁盤裝置中有寫入請求時,利用總線380從對應于自己磁盤裝置的FIFO410取出數據進行記錄。
下面說明控制邏輯600。控制邏輯600根據經過控制總線160且來自接口單元和主計算機等的請求,控制讀出以及寫入單元。特別是在訪問讀出單元和寫入單元的FIFO時,應設定訪問模型和模式。訪問模型例如可設置從第1到第19的19種的訪問模型(這里,將不詳述訪問模型),而作為模式則設定了塊讀出,塊寫入,單讀,單寫,修正寫入5種模式,可選擇其中的任一個模式。
雙端口RAM321經控制總線160順序地記錄來自接口單元100的磁盤存取請求。而且當雙端口RAM321從MPU330接到中止這些請求的信息后,作出記錄請求結束的報告,并等待由接口裝置100經控制總線160傳送的分配任務。例如,當通過接口單元100提出讀出請求時,FIFO410中已準備了該讀出數據。在從RAID單元300相對于接口單元100變成可以傳送數據的狀態時,利用該雙端口RAM321將數據已準備完畢的信息報告給接口單元100,而當接口單元100中已有寫入請求時,在寫入單元500和控制邏輯600已有準備的情況下,可以用雙端口RAM321,把經數據總線170傳送的應該寫入數據的請求報告給利用雙端口RAM321的接口裝置100。
或者,在變更讀出的數據后,進行再寫的讀改寫入處理時,通過雙端口RAM321向接口裝置100報告已對接口裝置100進行了修改寫入。
以下將利用圖6說明圖1所示的HDD控制單元700以及磁盤裝置800的構成。
圖6中,700是HDD控制單元,710是控制HDD控制單元700的MPU,720是HDD控制單元700用SCSI訪問磁盤裝置時用的SCSI芯片,730是暫時記錄數據的高速緩沖存儲器,而800是200兆位2.5英寸磁盤裝置,或1千兆位,3.5英寸磁盤裝置等的磁盤裝置。
如圖所示的HDD控制單元700,是由5個控制單元組成,在每個控制單元中都具有MPU710,SCSI芯片720、高速緩沖存儲器730,每個控制單元都做成連接有磁盤裝置800的結構。控制單元和磁盤裝置的接口在本例中使用的是SCSI,而作為其他的接口例子也可使用IED(相互服務數據交換)或PCMCIA等接口。本例所的是用一個控制單元連接兩個磁盤,也可以用一個控制單元連接3個或4個磁盤裝置。
MPU710在磁盤裝置800和前述RAID裝置300之間用字符串命令進行數據傳送,MPU710可以專用于數據傳送。而高速緩沖存儲器730使用CAM可實現超高速緩沖存儲器檢索。進而對應于控制單元分別設置了超高速緩沖存儲器,因此可以進行并行的超高速緩沖器存儲檢索,從而可以實現高速存取。已有的是只在一處具有超高速緩沖存儲器,而這個超高速緩沖芯片器是由多個控制單元(多個磁盤裝置)共用,因此需要對數據控制單元(磁盤裝置)所用的高速緩沖存儲器進行管理,而對應于各控制單元(磁盤裝置)分別設置高速緩沖存儲器時,則不再需要對高速緩沖存儲器進行排他處理。
以下通過磁盤裝置的數據配置說明圖5所示的讀出單元以及寫入單元的讀和寫動作。圖7是查詢數據的陣列圖。在圖32中說明的已有技術實例中,對已有的螺旋數據陣列的排列情況進行了說明,而圖7所示的是螺旋式數據陣列的情況,該螺旋數據陣列有利于連續地傳送長的數據長度,而且這種數據陣列改進了已有的螺旋式數據陣列。
如圖32所示,按已有螺旋式數據陣列在連續寫入數據時,是從圖中的左向右方寫入數據。即在按數據塊0、1、2、3的順次寫入的同時,也寫入奇偶性。將一個冗余組寫入后,再寫入下一個冗余組數據,所以下一個冗余組就從4開始,以后來的下一個冗余數據就按5、6、7的順序號寫入。這樣冗余數據就按從左上方向右下方傾斜地移位后被記錄,同時前面的數據被記錄在左側,而后面的數據就順序地被記錄在右方。
而與此相反,所謂螺旋式數據陣列在如圖7所示寫入或讀出從0到24的數據塊時,可以按從磁盤裝置0(HDD0)到磁盤裝置4(HDD4)的順序,按序號進行讀寫排列。在讀出數據塊0,1,2,3,4時,可以按HDD0,1,2,3,4的順序讀出,同時在讀出數據塊5,6,7,8,9時,最好再次按序號順序讀出HDD0,1,2,3,4,同樣在讀出數據塊10,11,12,13,14時最好按序號HDD0,1,2,3,4的順序讀出。但是,在讀出圖示的數據塊3時,從HDD4中會同時讀出冗余數據P,因此需要對數據P進行空讀或省略,在最后讀出的冗余數據P所在冗余組中的數據的同時,通過這樣的空讀或省略,只要按磁盤裝置的順序進行螺旋狀或龍卷狀的讀取,就可以得到連續的數據。
所謂的螺旋數據陣列,是這樣構成的在寫入單元500進行寫入時,在多個磁盤裝置上循環地設置冗余數據P的同時,從已寫入前面一個冗余組的冗余數據的磁盤開始,寫入下一個冗余組的的開頭。而在讀出單元根據該螺旋狀數據陣列讀出數據的情況下,在讀出一個冗余組最后的數據時,同時也讀出該冗余組的冗余數據,然后再將其省略,再從具有前一冗余組的冗余數據的磁盤裝置中讀出下一個冗余組前端數據。
下面利用圖8說明圖7中所示的螺旋狀數據陣列的另一個例子。
圖7中所表示的是由一個數據塊構成冗余組的情況,其表示螺旋線的深度為1的情況,而圖8則表示螺旋線的深度取為4的情況。所說的螺旋線的深度為4是指連續地讀寫一個磁盤裝置的連續4個邏輯地址(數據塊)。因此圖8中所示的將0,1,2,3數據塊記錄在HDD0中,而將數據塊4,5,6,7記錄到HDD1中,同樣將數據塊8,9,10,11,記錄到HDD2中。這樣在將數據塊0至14記錄到磁盤裝置中的同時,冗余數據P同樣地也生成螺旋線深度為4的冗余數據,并被記錄到HDD4中。圖8中未示出但在記錄下一個冗余組時,按圖7所示,冗余數據P被記錄到HDD3中,而在記錄再下一個冗余組時,就變成了冗余數據P被記錄到HDD2中,冗余數據P如圖7所示被循環記錄。
用圖8所示的狀態,說明訪問邏輯地址2到5(數據塊2-5)的情況,對從邏輯地址2到5(數據塊2到5)進行讀出的情況下,讀出HDD0和HDD1的數據,并將數據傳送到門陣列310的讀出單元的FIFO中。當從讀出單元400的FIFO410向接口單元100傳送數據時,舍去邏輯地址0和1的數據,而傳送所殘留下的邏輯地址2和3的數據。同樣把從HDD1讀取的邏輯地址4到7的數據中的4和5的數據傳送到接口單元100中,而通過不向接口單元100傳送邏輯地址6和7的數據來將其舍棄。
下面對邏輯地址2到5的數據寫入情況進行說明,同樣從HDD0和HDD1中讀出邏輯地址0到3以及4到7的數據之后,將其展示在FIFO上。將由接口單元100傳送來的寫入數據移位后重合在其上。即在該時間點,對位于FIFO中的邏輯地址2,3,4,5的數據通過寫數據的方式進行改寫。然后將FIFO的數據寫入到HDD0和HDD1中。即將邏輯地址0到3的數據寫入到HDD0中,而邏輯地址4到7的數據被寫入到HDD1。
下面利用圖9對讀出單元400進行詳細說明。圖9中,410是數據先進先出FIFO,420是生成冗余數據的異回路,430是在磁盤裝置側來的總線380和FIFO410之間進行連接及切斷的開關,440是用于將從異回路420輸出的冗余數據等連接到FIFO的開關。450是用于將FIFO410和接口單元100的數據總線170進行連接的開關。460是用于將FIFO410連接到異回路420上的開關。900和910是傳送異回路420的運算結果的總線。600是控制回路。
控制回路600根據存取模型及模式對開關430,440,450,460進行切換以執行讀出動作。并對寫入FIFO410中的數據脈沖進行監視。而且供給用于從FIFO讀出數據的時鐘脈沖。而且控制回路600在內部具有定序器,定序器將圖7所示的那樣的螺旋狀數據陣列按螺旋狀圖表進行存儲,并參照該螺旋狀圖表確定用于進行讀寫的磁盤裝置。螺旋狀圖表如圖8所示還存儲有關螺旋線的深度,控制回路600參照螺旋線的深度來進行動作。
還可通過超過變更圖7和圖8所示的螺旋線狀而用其它形式的數據陣列來進行續寫動作。例如圖7、圖8所示的情況,是對應于RAID等級5的例子,而也可以不妨象圖32那樣對應于已有的RAID等級5的一般的螺旋式數據陣列。或者也可以按與RAID等級4相對應的陣列進行存儲。
下面用圖9說明有關讀出的動作。
首先對連續讀出如圖7所示陣列中的數據的情況進行說明。
在連續讀出數據時,從HDD0讀出的數據被輸入到FIFO410a中。而由HDD1讀出的數據塊1的數據可讀取到FIFO410b中。同樣從HDD2以及HDD3來的數據被讀出到FIFO410C和410d中。在讀出FIFO410d中的數據時,來自HDD4的冗余數據P被輸入到FIFO410e中。控制回路600在從FIFO410a至410d中讀出數據的過程中,通過順序切換開關450,將數據塊0到3的數據傳送到數據總線170上。然后數據塊4的數據從HDD4被讀到FIFO410e中。同樣數據塊5到7的數據被讀到FIFO410到410c中。在FIFO410d中的數據被讀出時,來自HDD3的冗余數據P被讀到FIFO410d中,這樣一來,當第二次冗余組被讀出到FIFO410時,控制回路600通過再次切換開關,將數據塊4到7的數據順序地傳送到數據總線170上。可以省略被讀到FIFO410d中的冗余數據。
下面,對異回路的動作進行說明。
例如當從HDD0讀出的數據不合適而不能進行正常讀出時,通過讀出HDD1到HDD4的數據,可以恢復HDD0的數據。在這種情況下,可讀出與FIFO410b至410e,相對應的HDD0因故障而產生的數據所屬的冗余組數據。同時將從FIFO410b-410e中讀出的數據,經開關460后輸入到異回路420。
圖10是表示異回路420的詳細示圖。
將FIFO410a到410e的輸出輸入到5個與門回路然后由異元件對該5個信號進行異運算。在本例中,由于將HDD1到HDD4的數據輸入到FIFO410到410c中,對應于HDD0的開關460被斷開,而相應的其余的HDD1到HDD4則與開關460接通,從而將數據輸入到異回路420。異回路420將HDD1到HDD4的數據進行異運算并將結果輸出。該輸出被輸出到傳送總線910。控制回路600通過接通對應于HDD0的開關440,在FIFO410a中產生修復數據。而HDD1到HDD4所對應的開關440,保持原來的斷開狀態。這樣在從FIFO中讀出HDD1到HDD4的同時,異回路420在各字節單位中產生修復數據,在FIFO410中寫入時,修復數據與HDD1到HDD4被傳送的讀出數據的傳送塊同步形成在FIFO410a中,這樣,當如已有技術那樣,HDD1到HDD4的數據一次被存儲器讀取后,可以減少利用這些數據生成修復數據的生成時間。
圖11所示的是生成修復數據時的時間關系圖。
圖中,T表示經過的時間,在讀取數據時,首先利用讀出命令查找磁盤裝置,然后讀出圖示中的時間X。通過圖9所示的異回路420,將HDD1到HDD4中的讀出時間取為X,則修復HDD0的時間就僅需要圖示的時間Y,該時間X的終止時間點和時間點和時間Y的終止時間點的差就是異回420工作所需要的理想時間,即元件動作所延遲的時間。
以下利用圖12詳細說明寫入單元的結構。
圖12中,510是先進先出FIFO,520是異回路,530是用于連接接口單元100的數據總線170和FIFO510的開關,540是用于連接異回路520和FIFO510的開關,550是將FIFO510和磁盤裝置側的總線380相連接的開關。560用于連接FIFO510和異回路520的開關。900是將圖9中所示的來自寫入單元異回路420的輸出進行傳送的傳送總線。
下面對圖12所示的寫入單元的動作進行說明。
在連續寫入傳送長度較長的數據時,螺旋式圖表中所存儲的是如圖7所示的螺旋線狀數據陣列。控制回路600參照螺旋式圖表,按照圖7所示的陣列連續地寫入數據。即控制回路600參照螺旋線圖表,將數據塊0到3的數據從FIFO510a傳送到510d。異回路520輸入從FIFO510a到510d所傳送來的數據,并在該異回路進行運算。異回路520具有如圖10所示的回路結構,從異回路520來的輸出,將輸出到FIFO510e。因此在FIFO510e上就可以生成被寫入到HDD0到HDD3的數據的冗余數據。該冗余數據是與FIFO510a到510d中被最后傳送的寫入數據的傳送塊相同步生成的。在FIFO510e中生成冗余數據的時間理想的是從FIFO510a到510d傳送最后數據的時間開始使導回路520的動作延遲的延遲時間。因此按已有的那樣,在存儲器中一次存儲寫入數據后,就可以減少用該數據進行異運算以及求冗余數據的時間。這樣在FIFO510a到510e的數據被準備后,當控制回路600使開關550接通時,通過連接FIFO510和磁盤裝置側的總線380,就可以將FIFO中的數據記錄到各自對應的磁盤裝置中。
下面對有關不是連續寫入數據的情況而是在某一個數據塊中寫入數據情況下的動作進行說明。例如,當相對HDD0寫入時,有必要讀出HDD0以前已寫入的老數據OD和它的冗余組的冗余數據OP。如果假定該冗余數據被記錄在HDD4時,為了在HDD0中寫入數據,而將HDD0和HDD4中的老數據OD和老冗余數據OP一次讀取,有必要按照這些老的數據OD和老的冗余數據OP以及新寫入的數據寫出新的冗余數據。而讀取老數據OD和老冗余數據OP時,可以利用圖9所示的讀出單元來進行,所讀出的數據再由FIFO410a和FIFO410e讀出。然后將這些被讀出的數據傳送到異回路420,在異回路420中對老數據OD和老冗余數據進行異運算,并將其結果送到傳輸總線900,被傳送的數據經開關560被輸入到寫入單元的異回路520。
一方面,在寫入單元500中寫入的數據經數據總線170被輸入到FIFO510a,FIFO510a所輸入的數據被傳送到異回路520。異回路520將從傳輸總線900傳送來的OD和OP的異運算信號和在FIFO510a中新寫入的數據進行異運算并輸出,該異回路的輸出數據經開關540寫入到FIFO510e中,這樣在FIFO510a準備新的寫入數據的同時,在FIFO510e中就可以同時生成新的冗余數據。控制回路600控制開關550,并通過將FIFO510a和FIFO510e連接到磁盤裝置的總線380上,而在磁盤裝置中進行數據記錄。這樣通過所具有的讀出單元的異回路420和寫入單元的異回路520,對已有的一次讀取的數據和新數據進行異運算來計算冗余數據,根據本實施例,新的冗余數據幾乎可以在傳送寫數據的同時產生,因而可以減少所說的已有異運算所需的特別時間。
下面利用圖13~圖25,對前述的讀出單元和寫單元的動作按照各自的模式分別進行說明。
圖13,圖9和圖12所示的是讀單元400和寫單元500位于磁盤裝置之間的構成模式。圖中,使用的各記號與圖9以及圖12所表示的相同,但525是記錄從異回路520輸出的冗余數據的奇偶發生器FIFO(PGENFIFO)。
下面利用圖14-圖16說明從磁盤裝量中讀出數據時的動作。
對如圖14表示的從HDD2、3、4中讀出數據塊2、3、4的數據的情況進行說明。該讀出動作如圖15所示,首先從該磁盤HDD2、3、4中將數據讀到RDFIFO2#到4#中,這三個磁盤的存取可并行進行。但作為進行這些動作的初始條件RDFIFO2#到4#應是空的,并且以寫地址已被復位為條件。然后如果RDFIFO中數據塊2到4的數據已聚齊,則如圖16所示順序號讀出RDFIFO2#到4#的數據,并按序號順序向數據總線進行數據傳送。
下面利用圖17到圖20對相對于1個數據塊寫入數據的動作進行說明。
首先,當如圖17所示將數據寫入到HDD1的數據塊1時,如圖19所示將新寫入的數據輸送到寫FIFO1#和PGENFIFO525中。并且同時從HDD1和HDD5(HDD用于記錄冗余數據)中把該數據讀到RDFIPO1#和5#中。
進而如圖20所示,由RDFIFO1#和5#所讀出的數據經異回路410輸入到異回路520。在輸入的同時,通過把從帶有新的寫入數據的PGENFIFO525中來的數據,輸出到回路520,就可以在異回路520的輸出端,就可得到老的奇偶性數據和新寫入的數據的異輸出。該輸出由WRTFIFO5#(寫FIFO)保持。然后作出最后處理,將在WRTFIFO1#狀態的新寫入的數據寫入到HDD1中的同時將WRTFIFO5#的數據作為冗余數據寫入到HDD5。
下面用圖21到圖25對將一個冗余組寫入到磁盤裝置中情況下的成組寫入的動作進行說明。
圖21用以說明將與磁盤裝置的數據塊1到4相應的數據進行記錄的情況。
首先,如圖23所示,將寫入的新數據傳送到寫FIFO1#中。同樣如圖24所示將新寫入的數據傳送給寫FIFO2#。對寫FIFO3#和4#進行同樣的操作。每當異回路520順序地將數據輸入FIFO中時就在FIFO中形成新的冗余數據。即在向寫FIFO1#傳送數據時,相同數據也被傳送到PGENFIFO525中,接著在向寫FIFO傳送下一個數據的同時該數據和已存在PGENFIFO525中的數據取異后再次被記錄到PGENFIFO525中。當這種從在HDD1中寫入數據到在HDD4中寫入數據的動作重復進行4次后,如圖25所示,把FIFO的數據寫進各自的磁盤裝置中。
下面說明FIFO的功能。
FIFO是將數據以先進先出的方式進行暫時寄存用的。因此通常按先進先出的方式所輸出的數據不會殘存在FIFO中,對本例而言在FIFO收到將一次輸入的數據消除的指令之前,其內容一直保存在FIFO中。為了保持FIFO的數據,例如,通常先進先出的數據并不是邊移位邊輸出,而是通過設置計數器并增加計數器的計數而順序地將計數器所記的數據輸出來完成FIFO的職能。或者和已有技術一樣通過把FIFO的數據進行移位再將數據輸出,并把FIFO輸出的數據再次輸入到FIFO,由此使FIFO的數據進行周期循環。這樣就可以通過不抹去FIFO的數據而是通過殘留而將FIFO的數據進行再傳送。
例如,寫入數據時,如果磁盤裝置側產生某種故障,使FIFO輸出的數據丟失,則由于FIFO保存著以前的數據,所以就不必再次接受主計算機等部分來的數據,只需將FIFO中所保存的數據傳送給磁盤裝置,就可以將丟失的數據恢復。即可以使寫動作馬上重復進行。考慮到有關數據讀出的情況,如果在把FIFO的數據向接口單元輸出之后,再讀取在接口單元等處產生的障妨,則當再讀出時由于FIFO中殘留著相同的內容,因此可以省略再次從磁盤裝置讀出的動作,而只需將FIFO中所存在的數據再次向接口單元輸出就可以了。因此具有使讀出動作立刻重復的效果。
下面利用圖26說明圖5中所示的中斷回路340的結構。
圖26中,340是用于檢測多個磁盤裝置的動作結束并使該多個磁盤裝置動作處理程序起動的中斷回路,341是發送中斷向量編號的中斷向量編號發送回路,342是生成中斷向量編號的變換器,343是測到多個磁盤裝置的動作結果后產生中斷信號的中斷發生回路。而345是“與”元件,346是“或”元件,344是可將來自MPU330的程序值進行置位的寄存器。
下面將說明有關動作。
MPU330在接到從接口單元送來的處理請求時,應判定該處理要求應使用哪個磁盤裝置,并控制與判定的磁盤裝置相應的動作,同時設置對應于寄存器344的值。例如當處理請求是HDD0和HDD4存取時如圖中的寄存器344所示。在相應于HDD0和HDD4的字節置“0”,而其余的字節則置“1”。磁盤裝置800以及HDD控制裝量700在該處理結束時,相對中斷回路340進行完結報告。在本例中當HDD0處理完成時,以及HDD4處理完成時要進行完結報告。HDD0和HDD4做完結束報告時。中斷發生回路343,通過或回路346對寄存器344的值和完結報告進行運算,并使或回路的輸出變為“1”。然后“與”回路345就接通了。變換器342檢測已成接通狀態的中斷發生回路后,變換中斷向量的編號,并將其送到中斷向量編號發生回路341中。中斷向量編號發生回路341將中斷向量編號送至MPU330中,MPU330根據與圖27所示的各個向量編號對應的地址轉移,就可以起動完成請求的處理程序。例如當發送向量編號0時,MPU330就可以起動為地址100準備任務O所用的處理程序。
在本例中所示的是具有5個中斷發生回路343的情況,MPU330將5個處理請求保存在堆棧350里就可以進行處理。即分別對應于5個處理請求,通過分別將中斷發生回路343的寄存器344進行置位,在HDD控制單元進行處理總結報告的時間點上,使中斷發生回路343動作,中斷向量編號發送回路將與處理請求對應的向量編號送至MPU中發送,堆棧350可以自動地進行與處理請求的任務相應的起動。在將任意多個HDD的終結報告進行組合的條件下,中斷回路340具有任意個中斷向量編號發生回路,通過該向量編號可以起動相應的任務。得到對多個磁盤進行訪問的動作結束時在處理完所希望的磁盤裝置的時間點上,起動對所期待的任務進行自動識別。
MPU330進行程序變更,并根據中斷向量編號來起動程序和對程序組合(フ“ロケ”ラマプル) 進行變更,因此可以構成柔性很好的中斷回路340。而與動作將要結束的磁盤裝置的編號、個數或處理要求相對應的起動任務編號程序的變更系統也都是柔性很好的結構。
實施例2在上述實施例1中,所示的是有5個磁盤裝置的情況,而也可以不受該個數的限制而采用不同的個數。上述實施例中所示的是HDD控制裝置連接有一個或2個磁盤裝置的情況,但HDD控制裝置上所連接的磁盤裝置的個數并不受此限制。
實施例3在上述實施例1中所示的是使用雙端口的情況,除雙端口RAM之外如果有帶有存取通道的存儲器的話,也可以用帶多個端口的其它的存儲器來代替雙端口RAM。
實施例4在上述實施例1中,所示的是用磁盤裝置構成陣列型記錄裝置的情況,除磁盤裝置之外也可以使用光盤裝置,CDROM裝置,半導體盤存儲器(SSD)來構成陣列型記錄裝置。或者在不限于在1個系統中所使用的記錄裝置是同一種類的記錄裝置的情況下,也可以使用將光盤裝置和磁盤裝置等混用的系統。
本發明具有以下效果;減少了讀寫處理的總開銷,而且可以得到高性能的陣列型記錄裝置。特別是縮短了冗余數據生成動作的時間并且使其簡單化。進而縮短了修復數據的時間并使其簡化。而且在連續地控制數據的同時,不需進行存儲器傳送以及數據處理的動作。而且在多塊寫入時可以減少奇偶性寫入動作的次數。進而可以立即進行讀寫動作的重復。
權利要求
1.一種陣列型記錄裝置,其特征在于,包括以下部分(a)多個記錄數據的記錄載體;(b)向上述多個記錄載中寫入數據的寫入裝置;(c)和與上述寫入回路不同的回路,其是從上述多個記錄載體中讀出數據的讀出回路。
2.一種陣列型記錄裝置,其特征在于,包括以下部分(a)多個記錄數據的記錄載體;(b)根據請求對上述記錄載體讀寫數據的讀寫裝置;(c)用于對上述讀寫裝置提出請求且具有以下部分的接口裝置;(c1)從外部裝置輸入指令的指令輸入部件;(c2)具有多個存取端口并保持從上述指令輸入部件來的輸入指令的多端口存儲器;(c3)根據上述多端口存儲器中所保存的指令,將用于對上述讀寫裝置輸出請求的處理,分成若干個處理后,再分別進行分配和把來自多端口存儲器的各存取端口的指令進行存取分配處理的多個指令處理部件。
3.一種陣列型的記錄裝置,其特征在于,包括以下部分,(a)多個記錄數據的記錄載體;(b)當將數據以及數據的冗余數據分散記錄到上述多個記錄載體中,并連續寫入多個數據時,在多個記錄載體中按所定的方向順序地寫入數據的同時,循環地將各數據的冗余數據設置在多個記錄載體中,并從已寫入前面數據的冗余數據的記錄載體中開始,寫入后面數據的寫入裝置。(c)在連續地讀出由上述寫入裝置所寫入的多個連續數據的情況下,當從一個冗余組讀出數據時,將所讀出的該冗余組的冗余數據忽略,同時從讀出該冗余數據的記錄載體開始,通過順序地按所定方向讀出多個記錄載體的數據,來讀出下面數據的讀出裝置。
4.一種陣列型記錄裝置,其特征在于,包括以下部分,(a)記錄數據的多個記錄載體;(b)對應于上述記錄載體所設置的,暫時保存記錄載體已讀寫的數據的超高速緩沖存儲器;(c)利用上述超高速緩沖存儲器,對記錄載體進行數據讀寫的讀寫裝置。
5.一種陣列型記錄裝置,其特征在于,包括以下部分,(a)記錄數據的多個記錄載體;(b)向上述多個記錄載體中任意個載體輸出存取請求的多個任務裝置;(c)報告由上述任務裝置存取的各記錄載體的存取已結束的報告裝置;(d)對上述報告裝置的報告進行組合,并從上述多個任務裝置中識別對應的任務裝置,并起動該任務的任務起動裝置。
全文摘要
在控制陣列型磁盤裝置的RAID單元的內部分別設置有讀單元和寫單元。當從磁盤裝置讀出數據時,控制回路使用讀單元并通過HDD控制裝置來讀出數據。而在寫入數據時,使用寫單元將數據寫到磁盤裝置中,由于讀單元和寫單元是分開設置的,因此提高了處理的性能,并使陣列型磁盤裝置的讀寫動作能高速進行。
文檔編號G06F11/10GK1264119SQ0010119
公開日2000年8月23日 申請日期2000年1月25日 優先權日1992年10月6日
發明者水野正博, 小倉史郎, 伊藤一彥 申請人:三菱電機株式會社