国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      存儲系統(tǒng)和存儲裝置制造方法

      文檔序號:6498510閱讀:246來源:國知局
      存儲系統(tǒng)和存儲裝置制造方法
      【專利摘要】一種存儲系統(tǒng)包括第一控制器和多個存儲設(shè)備。多個存儲設(shè)備配置RAID,這些多個存儲設(shè)備中的每個存儲設(shè)備包括一個或者多個非易失性存儲器芯片和耦合到非易失性存儲器芯片的第二控制器,這些非易失性存儲器芯片提供其中存儲來自主機計算機的數(shù)據(jù)的存儲空間。在第一控制器從主機計算機接收用于將第一數(shù)據(jù)更新成第二數(shù)據(jù)的更新請求的情況下,存儲設(shè)備中的第一存儲設(shè)備中的第二控制器被配置為在第一存儲設(shè)備的存儲空間中的、與其中已經(jīng)存儲有第一數(shù)據(jù)的區(qū)域不同的區(qū)域中存儲第二數(shù)據(jù);生成將第一數(shù)據(jù)和第二數(shù)據(jù)關(guān)聯(lián)的信息;并且基于第一數(shù)據(jù)和第二數(shù)據(jù)生成中間奇偶校驗。存儲設(shè)備中的、存儲與第一數(shù)據(jù)對應(yīng)的第一奇偶校驗的第二存儲設(shè)備中的第二控制器被配置為接收中間奇偶校驗、基于第一奇偶校驗和中間奇偶校驗生成第二奇偶校驗、并且在第二存儲設(shè)備的存儲空間中的區(qū)域中存儲第二奇偶校驗。第一存儲設(shè)備中的第二控制器被配置為在第二奇偶校驗被存儲于第二存儲設(shè)備的存儲空間中的區(qū)域中之后刪除信息,并且設(shè)置其中已經(jīng)存儲有第一數(shù)據(jù)的區(qū)域作為擦除目標區(qū)域。
      【專利說明】存儲系統(tǒng)和存儲裝置

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種用于操作在存儲裝置中存儲的冗余碼的技術(shù)。

      【背景技術(shù)】
      [0002]已知一種用于根據(jù)控制多個存儲設(shè)備的存儲系統(tǒng)控制器配置RAID(獨立盤冗余陣列)并且防止數(shù)據(jù)丟失的技術(shù)。例如在使用RAID 5的存儲系統(tǒng)中,與相對于存儲設(shè)備的較高級裝置等效的存儲系統(tǒng)控制器從多個數(shù)據(jù)塊創(chuàng)建奇偶校驗(parity)。
      [0003]有如下存儲系統(tǒng),在該存儲系統(tǒng)中,與較低級裝置等效的相應(yīng)存儲設(shè)備配置RAID以便減少存儲系統(tǒng)控制器在創(chuàng)建以上提到的奇偶校驗之后的處理。每個存儲設(shè)備例如是HDD (硬盤驅(qū)動),并且每個HDD的控制器(下文為HDD控制器)創(chuàng)建奇偶校驗。
      [0004]例如在專利文獻I中,在存在關(guān)于更新前數(shù)據(jù)(舊數(shù)據(jù))的數(shù)據(jù)更新請求時,HDD控制器在創(chuàng)建用于從更新的數(shù)據(jù)(新數(shù)據(jù))和更新前的數(shù)據(jù)(舊數(shù)據(jù))創(chuàng)建奇偶校驗的中間值(中間奇偶校驗)之后將舊數(shù)據(jù)更新成新數(shù)據(jù)。HDD控制器向其中正在存儲與舊數(shù)據(jù)對應(yīng)的舊奇偶校驗的HDD傳送所創(chuàng)建的中間奇偶校驗。在接收中間奇偶校驗的HDD中,HDD控制器從中間奇偶校驗和舊奇偶校驗創(chuàng)建新奇偶校驗并且用創(chuàng)建的新奇偶校驗更新舊數(shù)據(jù)。
      [0005]隨著閃存價格近年來下降,已經(jīng)越來越多地使用閃存SSD(閃存固態(tài)驅(qū)動)取代HDD作為存儲設(shè)備。在HDD中,在存在關(guān)于某個邏輯地址范圍標識的數(shù)據(jù)的更新請求時,向其中存儲相關(guān)數(shù)據(jù)(舊數(shù)據(jù))的物理數(shù)據(jù)重寫更新的數(shù)據(jù)(新數(shù)據(jù))。然而在閃存SSD中,由于數(shù)據(jù)的重寫是不可能的,所以在存在對于邏輯地址標識的數(shù)據(jù)的更新請求時,在與其中存儲相關(guān)數(shù)據(jù)的物理區(qū)域不同的物理區(qū)域中存儲更新的數(shù)據(jù),并且將新物理區(qū)域映射到標識的邏輯地址。根據(jù)這一點,使在閃存SSD中的其中存儲舊數(shù)據(jù)的物理區(qū)域無效。
      [0006]引用列表
      [0007]專利文獻
      [0008]PTL I:US 5,191,584


      【發(fā)明內(nèi)容】

      [0009]技術(shù)問題
      [0010]在專利文獻I中,由于在已經(jīng)創(chuàng)建中間奇偶校驗之后用新數(shù)據(jù)重寫舊數(shù)據(jù),所以舊數(shù)據(jù)在創(chuàng)建中間奇偶校驗之后中止存在。出于這一原因,在故障在正在更新奇偶校驗之前(例如在向其中正在存儲舊奇偶校驗的HDD傳送中間奇偶校驗之前)出現(xiàn)并且中間奇偶校驗丟失的情況下,舊數(shù)據(jù)不再存在,并且這樣不能再次創(chuàng)建中間奇偶校驗。
      [0011]備選地,在已經(jīng)用閃存SSD替換存儲設(shè)備的情況下,由于未在閃存中重寫數(shù)據(jù),所以有舊數(shù)據(jù)將在已經(jīng)創(chuàng)建中間奇偶校驗之后保留這樣的可能性。然而在閃存SSD中,在寫入新數(shù)據(jù)時使存儲舊數(shù)據(jù)的物理區(qū)域無效,并且在規(guī)定的時間刪除舊數(shù)據(jù)。也就是說,在閃存SSD中,存在舊數(shù)據(jù)將在故障出現(xiàn)時不再存在這樣的可能性,在該情況下,將不能夠與在引用的文獻I中同樣地創(chuàng)建中間奇偶校驗。
      [0012]對問題的解決方案
      [0013]作為本發(fā)明的一個方面的一種存儲系統(tǒng)包括第一控制器和多個存儲設(shè)備。多個存儲設(shè)備配置RAID,這些多個存儲設(shè)備中的每個存儲設(shè)備包括一個或者多個非易失性存儲器芯片和耦合到非易失性存儲器芯片的第二控制器,這些非易失性存儲器芯片提供其中存儲有來自主機計算機的數(shù)據(jù)的存儲空間。在第一控制器接收對于將第一數(shù)據(jù)更新成第二數(shù)據(jù)的更新請求的情況下,存儲設(shè)備中的第一存儲設(shè)備中的第二控制器被配置為在第一存儲設(shè)備的存儲空間中的、與其中已經(jīng)存儲有第一數(shù)據(jù)的區(qū)域不同的區(qū)域中存儲第二數(shù)據(jù);生成將第一數(shù)據(jù)和第二數(shù)據(jù)關(guān)聯(lián)的信息;并且基于第一數(shù)據(jù)和第二數(shù)據(jù)生成中間奇偶校驗。存儲設(shè)備中的、存儲與第一數(shù)據(jù)對應(yīng)的第一奇偶校驗的第二存儲設(shè)備中的第二控制器被配置為接收中間奇偶校驗、基于第一奇偶校驗和中間奇偶校驗生成第二奇偶校驗、并且在第二存儲設(shè)備的存儲空間中的區(qū)域中存儲第二奇偶校驗。第一存儲設(shè)備中的第二控制器被配置為在第二奇偶校驗被存儲于第二存儲設(shè)備的存儲空間中的區(qū)域中之后刪除信息,并且設(shè)置其中已經(jīng)存儲有第一數(shù)據(jù)的區(qū)域作為擦除目標區(qū)域。

      【專利附圖】

      【附圖說明】
      [0014][圖1]圖1示出存儲系統(tǒng)的配置的示例。
      [0015][圖2]圖2示出系統(tǒng)控制器20的配置的示例,
      [0016][圖3]圖3不出與不例I有關(guān)的計算機系統(tǒng)的配置的不例。
      [0017][圖4]圖4示出RG和Lu的配置的示例。
      [0018][圖5]圖5示出RG管理表600的示例。
      [0019][圖6]圖6示出LU管理表700的示例。
      [0020][圖7]圖7示出FMPK管理表800的示例。
      [0021][圖8]圖8示出在RG上的地址空間的示例。
      [0022][圖9]圖9示出在屬于RG的FMPK50上的地址空間的示例。
      [0023][圖10]圖10示出在FMPK50中的頁面映射的示例。
      [0024][圖11]圖11示出頁面映射管理表1100的示例。
      [0025][圖12]圖12示出奇偶校驗運算功能注冊過程的示例。
      [0026][圖13]圖13示出用于判決奇偶校驗運算實現(xiàn)裝置的方法1300的示例。
      [0027][圖14]圖14示出系統(tǒng)控制器20寫入過程的示例。
      [0028][圖15]圖15示出第一奇偶校驗運算選擇過程的示例。
      [0029][圖16]圖16示出第二奇偶校驗運算選擇過程的示例。
      [0030][圖17]圖17示出第三奇偶校驗運算選擇過程的示例。
      [0031][圖18]圖18示出第四奇偶校驗運算選擇過程的示例。
      [0032][圖19]圖19示出寫入方法選擇過程1403的示例。
      [0033][圖20]圖20示出第一讀取-修改-寫入過程的示例。
      [0034][圖21]圖21示出存儲控制器20在第一讀取-修改-寫入過程中的操作的示例。
      [0035][圖22]圖22示出第二讀取-修改-寫入過程的示例。
      [0036][圖23]圖23示出存儲控制器20在第二讀取-修改-寫入過程中的操作的示例。
      [0037][圖24]圖24示出第三讀取-修改-寫入過程的示例。
      [0038][圖25]圖25示出存儲控制器20在第三讀取-修改-寫入過程中的操作的示例。
      [0039][圖26]圖26示出第一全條帶寫入過程的示例。
      [0040][圖27]圖27示出存儲控制器20在第一全條帶寫入過程中的操作的示例。
      [0041][圖28]圖28示出第二全條帶寫入過程的示例。
      [0042][圖29]圖29示出存儲控制器20在第二全條帶寫入過程中的操作的示例。
      [0043][圖30]圖30示出第一數(shù)據(jù)恢復過程的示例。
      [0044][圖31]圖31示出存儲控制器20在第一數(shù)據(jù)恢復過程中的操作的示例。
      [0045][圖32]圖32示出第二數(shù)據(jù)恢復過程的示例。
      [0046][圖33]圖33示出存儲控制器20在第二數(shù)據(jù)恢復過程中的操作的示例。
      [0047][圖34]圖34示出設(shè)備控制器60的根據(jù)正常寫入命令的處理的示例。
      [0048][圖35]圖35示出設(shè)備控制器60的根據(jù)舊數(shù)據(jù)存儲寫入命令的處理的示例。
      [0049][圖36]圖36示出設(shè)備控制器60的根據(jù)中間奇偶校驗讀取命令的處理的示例。
      [0050][圖37]圖37示出設(shè)備控制器60的根據(jù)奇偶校驗更新寫入命令的處理的示例。
      [0051][圖38]圖38示出設(shè)備控制器60的根據(jù)奇偶校驗創(chuàng)建寫入命令的處理的示例。
      [0052][圖39]圖39示出設(shè)備控制器60的舊數(shù)據(jù)去映射過程的示例。
      [0053][圖40]圖40示出Q奇偶校驗創(chuàng)建方法的示例。
      [0054][圖41]圖41示出DO、Dl恢復方法的示例。
      [0055][圖42]圖42示出第四讀取-修改-寫入過程的示例。
      [0056][圖43]圖43示出存儲控制器20在第四讀取-修改-寫入過程中的操作的示例。
      [0057][圖44]圖44示出與示例3有關(guān)的計算機系統(tǒng)的配置的示例。
      [0058][圖45]圖45示出與示例4有關(guān)的計算機系統(tǒng)的配置的示例。

      【具體實施方式】
      [0059]將說明多個示例。本發(fā)明的技術(shù)范圍不限于示例。
      [0060]在以下說明中,可以使用表達“***表”來說明各種類型的信息,但是也可以使用除了表之外的數(shù)據(jù)結(jié)構(gòu)來表達各種信息。為了示出各種信息不依賴于數(shù)據(jù)結(jié)構(gòu),“***表”可以稱為“***信息”。
      [0061]在以下描述中,可以有以“程序”作為動作的執(zhí)行者來說明處理的情況。根據(jù)需要,在使用存儲資源(例如存儲器)和通信控制設(shè)備(例如通信端口)之時根據(jù)正在由處理器(例如CPU(中央處理單元))執(zhí)行的程序執(zhí)行規(guī)定的處理,并且這樣,處理器也可以是處理的執(zhí)行者。以程序作為動作的執(zhí)行者而說明的過程可以是管理系統(tǒng)執(zhí)行的過程??梢允褂脤S糜布韺崿F(xiàn)程序的全部或者部分。出于這一原因,以程序作為動作的執(zhí)行者而說明的過程可以是控制器執(zhí)行的過程??刂破骺梢园ㄌ幚砥骱陀糜诖鎯⒂商幚砥鲌?zhí)行的計算機程序的存儲資源或者可以包括以上提到的專用硬件。計算機程序可以從程序源安裝于相應(yīng)計算機中。程序源例如可以是程序遞送服務(wù)器或者存儲介質(zhì)。
      [0062]在以下說明中,管理系統(tǒng)是一個或者多個計算機、例如管理計算機或者管理計算機和顯示計算機的組合。具體而言,例如在管理計算機對顯示信息進行顯示的情況下,管理計算機是管理系統(tǒng)??梢允褂枚鄠€計算機來實現(xiàn)與管理計算機相同的功能以增加處理速度和可靠性,并且根據(jù)這一點,相關(guān)多個計算機(可以在顯示計算機上執(zhí)行顯示時包括顯示計算機)是管理系統(tǒng)。
      [0063]示例I
      [0064]首先將說明存儲系統(tǒng)的配置,該存儲系統(tǒng)是本發(fā)明的應(yīng)用的示例。
      [0065]圖1示出存儲系統(tǒng)30的配置的示例。這一存儲系統(tǒng)30包括用于存儲數(shù)據(jù)的多個存儲裝置50和耦合到這些多個存儲資源的系統(tǒng)控制器20。存儲裝置例如是FMPK (閃存封裝)50。
      [0066]FMPK 50包括用于存儲數(shù)據(jù)的非易失性存儲器以及耦合到非易失性存儲器和系統(tǒng)控制器20。非易失性存儲器例如是NAND型FM(閃存)55。非易失性存儲器不限于閃存并且可以是可記錄存儲器(例如相變存儲器)。設(shè)備控制器60包括通信接口設(shè)備、存儲設(shè)備和耦合到它們的控制設(shè)備。通信接口設(shè)備例如是系統(tǒng)接口 53和FM接口 54。在以下說明中,可以將接口表示為I/F。系統(tǒng)I/F 53耦合到系統(tǒng)控制器20。FM I/F 54耦合到FM 55。
      [0067]存儲設(shè)備例如是存儲器52和緩沖器66??刂圃O(shè)備例如是CPU51??刂圃O(shè)備除了處理器、比如CPU 51之外還可以包括用于執(zhí)行指定的處理(例如壓縮、解壓、編碼或者解碼)的專用硬件電路。專用硬件電路例如是用于計算奇偶校驗或者中間奇偶校驗的奇偶校驗電路65。存儲器52存儲用于控制FM 55的程序和各種類型的信息。CPU 51根據(jù)執(zhí)行在存儲器52中存儲的程序來實現(xiàn)各種類型的功能。緩沖器66例如是易失性存儲器、比如DRAM(動態(tài)隨機存取存儲器)。緩沖器66暫時存儲將向FM 55寫入的數(shù)據(jù)、從FM 55讀取的數(shù)據(jù)和在奇偶校驗運算期間的數(shù)據(jù)。
      [0068]FMPK 50可以包括多個FM 55。多個FM 55可以包括不同類型的存儲介質(zhì)或者可以是相同類型的存儲介質(zhì)。例如FM 55可以包括多個物理塊。物理塊可以包括多個物理頁面。在FM 55以內(nèi)的每個單元可以是SLC(單級單元)或者MLC(多級單元)。非易失性存儲器可以是另一非易失性存儲器或者可以是可記錄存儲器、比如相變存儲器。
      [0069]圖2示出系統(tǒng)控制器20的配置。系統(tǒng)控制器20包括通信接口設(shè)備、存儲設(shè)備和耦合到它們的控制設(shè)備。通信接口設(shè)備例如是用于耦合到通信網(wǎng)絡(luò)的通信I/F 18和用于耦合到FMPK 50的盤I/F 19。存儲設(shè)備例如是存儲器12和緩沖器26。控制設(shè)備例如是CPU
      11??刂圃O(shè)備除了處理器、比如CPU 51之外可以包括用于執(zhí)行指定的處理(例如壓縮、解壓、編碼或者解碼)的專用硬件電路。專用硬件電路例如是用于計算奇偶校驗或者中間奇偶校驗的奇偶校驗電路25。存儲器12存儲用于控制FMPK 50的程序和各種類型的信息。CPU 51根據(jù)基于在存儲器12中存儲的信息執(zhí)行程序來實現(xiàn)各種類型的功能。緩沖器26例如是易失性存儲器,諸如DRAM。緩沖器26暫時存儲將向FMPK 50寫入的數(shù)據(jù)、從FMPK 50讀取的數(shù)據(jù)和在奇偶校驗運算期間的數(shù)據(jù)。在連接到系統(tǒng)控制器20的每個FMPK50具有奇偶校驗電路65時,系統(tǒng)控制器20并非必須包括奇偶校驗電路25。
      [0070]與系統(tǒng)控制器20等效的現(xiàn)有技術(shù)系統(tǒng)提供的功能包括奇偶校驗運算、快照、數(shù)據(jù)壓縮和重復消除,但是這些功能可以由FMPK 50或者其它這樣的存儲介質(zhì)實現(xiàn)。在這一示例中,將說明奇偶校驗運算功能。
      [0071 ] 由于系統(tǒng)控制器20和設(shè)備控制器60形成分級,所以可以定義系統(tǒng)控制器20為較高級控制器而可以定義設(shè)備控制器60為較低級控制器。
      [0072]接著將說明計算機系統(tǒng),該計算機系統(tǒng)是存儲系統(tǒng)30在系統(tǒng)控制器20是支持RAID(獨立盤冗余陣列)功能的控制器的情況下的應(yīng)用的示例。
      [0073]圖3示出與示例I有關(guān)的計算機系統(tǒng)的配置的示例。這一計算機系統(tǒng)包括主機計算機10和存儲系統(tǒng)30。經(jīng)由通信網(wǎng)絡(luò)、例如SAN(存儲區(qū)域網(wǎng)絡(luò)I)耦合主機計算機30和存儲系統(tǒng)30。計算機系統(tǒng)可以包括多個主機計算機10。在這一情況下,存儲系統(tǒng)30經(jīng)由SANl耦合到多個主機計算機10。
      [0074]存儲系統(tǒng)30包括多個FMPK 50和用于控制這些FMPK 50的系統(tǒng)控制器20。存儲裝置例如是FMPK 50。在這一示例中,系統(tǒng)控制器20例如是RAID控制器。此外,在這一示例中,存儲系統(tǒng)30包括多個系統(tǒng)控制器20。每個系統(tǒng)控制器20經(jīng)由SAN I耦合到主機計算機10。多個FMPK 50中的每個FMPK耦合到多個系統(tǒng)控制器20。存儲系統(tǒng)30可以包括僅一個系統(tǒng)控制器20。
      [0075]系統(tǒng)控制器20的配置與圖2中所示配置相同。存儲器12也存儲用于RAID功能的程序和各種類型的信息,該RAID功能使用多個FMPK 50。在這一示例中,系統(tǒng)控制器20包括了奇偶校驗電路25、但是不必須包括奇偶校驗電路25。
      [0076]主機計算機10可以是管理系統(tǒng)。
      [0077]下文將說明系統(tǒng)控制器20執(zhí)行RAID 5控制的情況。
      [0078]系統(tǒng)控制器20與RG (RAID組)、LU (邏輯單元,也可以稱為邏輯卷)和FMPK 50關(guān)聯(lián)。圖4示出RG和LU的配置的示例。系統(tǒng)控制器20向RG分配多個FMPK 50并且向LU分配RG存儲區(qū)域的全部或者部分。另外,邏輯卷可以是虛擬卷,在該虛擬卷中已經(jīng)根據(jù)精簡配置技術(shù)虛擬化該卷的容量。未向虛擬卷預先分配用于存儲數(shù)據(jù)的物理存儲區(qū)域。根據(jù)向相關(guān)虛擬卷的寫入請求而在指定的單元中向相關(guān)虛擬卷分配物理存儲區(qū)域。
      [0079]圖5示出RG管理表600的示例。圖6示出LU管理表700的示例。圖7示出FMPK管理表800的示例。系統(tǒng)控制器20向在存儲器12中的RG管理表600、LU管理表700和FMPK管理表800寫入RG (RAID組)、LG (邏輯單元)和FPMK 50的關(guān)系。
      [0080]RG管理表600包括用于每個RG的記錄。一個RG記錄示出表示RG的RG編號601、表示向RG分配的FMPK 50的FMPK編號602和RG的RAID級別603。
      [0081]LU管理表700包括用于每個LU的記錄。一個LU記錄示出表示LU的LU編號701、表示向LU分配的RG的RG編號702、條帶(stripe)大小703——該條帶大小是向LU分配的條帶塊的大小、LU開始地址704—該LU開始地址是這一 LU的邏輯開始地址、LU大小705——該LU大小是LU的大小——和LU的1特性706。1特性706是關(guān)于LU執(zhí)行的1模式的趨勢并且表示哪個更強、順序趨勢或者隨機趨勢。
      [0082]1特性706可以由用戶預先指定或者可以由系統(tǒng)控制器20確定?;蛘咂浣M合,其中1特性706的初始值可以由用戶預先指定,并且在經(jīng)過指定的時間之后,系統(tǒng)控制器20可以根據(jù)確定來優(yōu)化初始值。作為一種用于確定1特性706的方法,例如系統(tǒng)控制器20可以在每個時間單位收集用于某個LU的命令統(tǒng)計值并且可以確定隨機1模式和順序1模式中的更高1模式作為相關(guān)LU的1特性706。命令類型包括隨機寫入和順序?qū)懭?。隨機寫入的比例與順序?qū)懭氲谋壤谋容^可以通過比較這些命令的頻率來完成。也可以比較根據(jù)這些命令寫入的數(shù)據(jù)量。此外,系統(tǒng)控制器20可以根據(jù)以上提到的確定方法按照固定周期監(jiān)視10/特性706并且可以在改變?yōu)楸匦璧那闆r下更新LU管理表700。
      [0083]FMPK管理表800包括用于每個FMPK 50的記錄。一個FMPK 50記錄包括表示FMPK50的FMPK編號801、表示FMPK 50屬于的RG的對應(yīng)RG編號802和表示這一 FMPK 50的奇偶校驗運算功能的奇偶校驗運算功能支持信息803。奇偶校驗運算功能支持信息803例如是表示這一 FMPK 50是否包括奇偶校驗運算功能、比如奇偶校驗電路65的標志。
      [0084]圖8示出在RG上的地址空間的示例。圖9示出在屬于RG的FMPK 50上的地址空間的示例。在這一示例中,系統(tǒng)控制器20向RAID 5RG#0分配FMPK#0至FMPK#3這四個FMPK 50。此外,系統(tǒng)控制器20從在RG#0上的地址空間向LWO分配連續(xù)區(qū)域并且向LWl分配不同連續(xù)區(qū)域。系統(tǒng)控制器20分配跨越在FMPK#0至FMPK#3上的地址空間的條帶行并且按照條帶行和FMPK編號的順序分配條帶塊和奇偶校驗。在這一點,系統(tǒng)控制器20移位用于每個條帶行的分配條帶塊和奇偶校驗的FMPK編號。這時,系統(tǒng)控制器20向RG管理表600、LU管理表700和FMPK管理表800寫入與RG#0、LU#0和LWl有關(guān)的信息。
      [0085]圖10示出在FMPK 50中的頁面映射的示例。將在FMPK 50上的邏輯地址空間分割成多個邏輯頁面。備選地,將在FMPK 50上的物理地址空間分割成多個物理塊,并且此外,每個物理塊包括規(guī)定的塊大小并且被分配給多個物理頁面。每個邏輯頁面和每個物理頁面包括指定的頁面大小。
      [0086]可以使用物理塊或者某個其它物理區(qū)域取代物理頁面。此外,還可以使用邏輯單元或者某個其它邏輯區(qū)域取代邏輯頁面。
      [0087]圖11示出頁面映射管理表1100的示例。設(shè)備控制器60關(guān)聯(lián)邏輯頁面與物理頁面并且向在存儲器52中的頁面映射管理表1100寫入這一關(guān)系。頁面映射管理表1100包括用于每個邏輯頁面的記錄。一個邏輯頁面記錄表示邏輯頁面編號1101—該邏輯頁面編號表示邏輯頁面、物理頁面編號1102—該物理頁面編號表示當前物理頁面,該當前物理頁面是向邏輯頁面當前分配的物理頁面-和舊物理頁面編號1103,該舊物理頁面編號表示舊物理頁面,該舊物理頁面是向在當前物理頁面先前的邏輯頁面分配的物理頁面。也就是說,與某個邏輯頁面關(guān)聯(lián)的舊物理頁面表示先前已經(jīng)與在前一代中的邏輯頁面關(guān)聯(lián)的當前物理頁面。與邏輯頁面關(guān)聯(lián)的舊物理頁面視為有效頁面,并且維持這一關(guān)聯(lián)直至取消與邏輯頁面的關(guān)聯(lián)。由于關(guān)聯(lián)已經(jīng)被取消的舊物理頁面轉(zhuǎn)變成無效頁面,所以根據(jù)回收過程等在指定的定時擦除在舊物理頁面以內(nèi)的數(shù)據(jù)。在其中存儲器特性使得不能重寫數(shù)據(jù)的閃存中,回收過程是指擦除無效數(shù)據(jù)(在無效頁面中存儲的數(shù)據(jù))并且再次設(shè)置其中存儲這一無效數(shù)據(jù)的頁面為可寫入狀態(tài)的過程。由于在閃存中以塊為單位擦除數(shù)據(jù),所以在目標塊以內(nèi)存在有效頁面和無效頁面二者的情況下,F(xiàn)M控制器1447在向另一個塊移動在有效頁面以內(nèi)的數(shù)據(jù)之后擦除在目標塊中存儲的無效數(shù)據(jù)。在這一示例中,F(xiàn)M控制器1447確定與邏輯頁面關(guān)聯(lián)的物理頁面1102和舊物理頁面1103是有效頁面并且執(zhí)行回收處理。
      [0088]將說明用于舊物理頁面的管理方法的具體示例。設(shè)備控制器60確定在頁面映射管理表1100中示出的舊物理頁面不再必需并且在確定不再需要某個舊物理頁面的情況下可以取消在這一舊物理頁面與邏輯頁面之間的關(guān)聯(lián)。例如預先配置用于由設(shè)備控制器60管理的舊物理頁面的數(shù)目的上線,并且設(shè)備控制器60按照從最舊起的順序從頁面映射管理表1100刪除舊物理頁面。設(shè)備控制器60也可以根據(jù)來自系統(tǒng)控制器20的指令從頁面映射管理表1100刪除舊物理頁面。確定判據(jù)的示例是關(guān)于是否已經(jīng)完成從數(shù)據(jù)更新產(chǎn)生的奇偶校驗更新的確定。此外,系統(tǒng)控制器20可以確定是否需要舊物理頁面,并且在確定不需要舊物理頁面的情況下可以指令與舊物理頁面對應(yīng)的設(shè)備控制器60從頁面映射管理表1100刪除舊物理頁面。系統(tǒng)控制器20或者設(shè)備控制器60可以在FM 55所使用的容量已經(jīng)變成等于或者大于固定值的情況下從頁面映射管理表1100刪除舊物理頁面。在已經(jīng)發(fā)出對于從舊物理頁面讀取數(shù)據(jù)的請求并且此外舊物理頁面保留在頁面映射管理表1100中的情況下,設(shè)備控制器60可以從舊物理頁面讀取數(shù)據(jù)。
      [0089]接著將說明系統(tǒng)控制器20的操作。
      [0090]首先將說明在數(shù)據(jù)更新時間的寫入方法。
      [0091]寫入方法例如是讀取-修改-寫入和全條帶寫入。這一示例的讀取-修改-寫入是用于更新在單個條帶行內(nèi)指定的一個條帶塊的數(shù)據(jù)的過程。備選地,這一示例的全條帶寫入是用于更新在單個條帶行中的所有數(shù)據(jù)的過程。讀取-修改-寫入根據(jù)在指定的條帶塊中的舊數(shù)據(jù)和新數(shù)據(jù)來計算中間奇偶校驗,并且根據(jù)中間奇偶校驗和舊奇偶校驗來計算新奇偶校驗。全條帶寫入基于所有新數(shù)據(jù)來計算新奇偶校驗。如這里所用,舊數(shù)據(jù)是指更新前數(shù)據(jù),新數(shù)據(jù)是指更新后數(shù)據(jù),舊奇偶校驗是指更新前奇偶校驗,并且新奇偶校驗是指更新后奇偶校驗。中間奇偶校驗是在奇偶校驗運算中途的奇偶校驗,并且表示在舊奇偶校驗與新奇偶校驗之間的差異。
      [0092]接著將說明奇偶校驗運算功能。
      [0093]奇偶校驗運算功能例如是奇偶校驗電路25和奇偶校驗電路65并且計算在單個條帶行中的兩個條帶塊的數(shù)據(jù)之間的異或。奇偶校驗運算功能也計算在舊數(shù)據(jù)與新數(shù)據(jù)之間的異或作為中間奇偶校驗。此外,奇偶校驗運算功能還計算在舊奇偶校驗與中間奇偶校驗之間的異或作為新奇偶校驗。假設(shè)舊數(shù)據(jù)是Di,新數(shù)據(jù)是Di_new,并且舊奇偶校驗是P,使用以下等式來表達新奇偶校驗P_new。
      [0094]P_new = P+ (Di+Di_new)
      [0095]算符“ + ”這里代表異或,并且(Di+Di_new)代表中間奇偶校驗。中間奇偶校驗與在除了 Di之外的所有數(shù)據(jù)之間的異或等效。
      [0096]可以使用另一冗余碼(redundancy code)、比如海明碼取代奇偶校驗。
      [0097]接著將說明用于系統(tǒng)控制器20在FMPK管理表800中注冊奇偶校驗運算功能支持信息803的奇偶校驗運算功能注冊過程。
      [0098]圖12示出奇偶校驗運算功能注冊過程的示例。系統(tǒng)控制器20在安裝新FMPK 50時和在系統(tǒng)控制器20自舉(ramp up)時執(zhí)行奇偶校驗運算功能注冊過程。
      [0099]首先,系統(tǒng)控制器20向FMPK 50設(shè)備控制器60發(fā)出奇偶校驗運算功能支持確認命令并且接收對該命令的響應(yīng)(1201)。這時接收奇偶校驗運算功能支持確認命令的設(shè)備控制器60向系統(tǒng)控制器20發(fā)送響應(yīng),該響應(yīng)表示設(shè)備控制器60本身是否包括奇偶校驗運算功能。接著,系統(tǒng)控制器20基于響應(yīng)在FMPK管理表800的奇偶校驗運算功能支持信息803中注冊表示設(shè)備控制器60是否包括奇偶校驗運算功能的信息(1202)并且結(jié)束這一處理流程。
      [0100]用戶可以預先注冊奇偶校驗運算功能支持信息803取代執(zhí)行奇偶校驗運算功能注冊過程。
      [0101]接著將說明用于判決用于執(zhí)行奇偶校驗運算的奇偶校驗運算實現(xiàn)裝置的方法。
      [0102]圖13示出奇偶校驗運算實現(xiàn)裝置判決方法1300的示例。系統(tǒng)控制器20根據(jù)判決方法1300確定系統(tǒng)控制器20或者設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置。系統(tǒng)控制器20基于表示系統(tǒng)控制器20是否包括奇偶校驗運算功能、比如奇偶校驗電路25的信息和FMPK管理表800的奇偶校驗運算功能支持信息803確定系統(tǒng)控制器20或者設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置。定義用于判決奇偶校驗運算實現(xiàn)裝置的四種情況。定義用于判決奇偶校驗運算實現(xiàn)裝置的四種情況。每種情況示出情況編號1301、表示系統(tǒng)控制器20是否包括奇偶校驗運算功能的系統(tǒng)功能信息1302、表示設(shè)備控制器60是否包括奇偶校驗運算功能的設(shè)備功能信息1303、表示奇偶校驗運算實現(xiàn)裝置的奇偶校驗運算實現(xiàn)信息1304和選項1305。
      [0103]情況#1是系統(tǒng)控制器20包括奇偶校驗運算功能并且此外設(shè)備控制器60也包括奇偶校驗運算功能的情況。根據(jù)奇偶校驗運算實現(xiàn)信息1304,在這一情況下,系統(tǒng)控制器20可以選擇系統(tǒng)控制器20或者設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置。在這一情況下,系統(tǒng)控制器20基于選項1305執(zhí)行寫入過程,該寫入過程將在以下進一步說明。
      [0104]情況#2是系統(tǒng)控制器20包括奇偶校驗運算功能、但是設(shè)備控制器60不包括奇偶校驗運算功能的情況。根據(jù)奇偶校驗運算實現(xiàn)信息1304,在這一情況下,系統(tǒng)控制器20選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置。
      [0105]情況#3是系統(tǒng)控制器20不包括奇偶校驗運算功能、但是設(shè)備控制器60包括奇偶校驗運算功能的情況。根據(jù)奇偶校驗運算實現(xiàn)信息1304,在這一情況下,系統(tǒng)控制器20選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置。
      [0106]情況M是系統(tǒng)控制器20不包括奇偶校驗運算功能并且此外設(shè)備控制器60不包括奇偶校驗運算功能的情況。根據(jù)奇偶校驗運算實現(xiàn)信息1304,在這一情況下,系統(tǒng)控制器20不能選擇系統(tǒng)控制器20或者設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置。
      [0107]可以省略奇偶校驗運算功能注冊過程和奇偶校驗運算實現(xiàn)裝置判決。例如在系統(tǒng)控制器20和所有設(shè)備控制器60包括奇偶校驗運算功能的情況下,系統(tǒng)控制器20可以省略奇偶校驗運算功能注冊過程和奇偶校驗運算實現(xiàn)裝置判決并且在下文將說明的情況#1下執(zhí)行寫入過程。也可以在奇偶校驗運算實現(xiàn)裝置已經(jīng)由管理員等預先安裝的情況下省略這些過程。
      [0108]接著將說明系統(tǒng)控制器20在情況#1至#3下的寫入過程。
      [0109]圖14示出系統(tǒng)控制器20的寫入過程的示例。首先,系統(tǒng)控制器20從外部主機接收寫入請求作為1請求(1401)。外部主機例如是經(jīng)由SAN I耦合到系統(tǒng)控制器20的主機計算機10。接著,系統(tǒng)控制器20執(zhí)行用于選擇系統(tǒng)控制器20或者設(shè)備控制器60之一作為用于執(zhí)行奇偶校驗運算的奇偶校驗運算實現(xiàn)裝置的奇偶校驗運算選擇過程(1402)。在情況#2和#3的情況下,由于已經(jīng)選擇奇偶校驗運算實現(xiàn)裝置,所以省略在步驟1402中的過程。接著,系統(tǒng)控制器20基于接收的命令執(zhí)行用于選擇寫入方法的寫入方法選擇過程(1403)。寫入方法是讀取-修改-寫入或者全條帶寫入之一。接著,系統(tǒng)控制器20根據(jù)選擇的寫入方法執(zhí)行用于更新在設(shè)備控制器60中的數(shù)據(jù)和奇偶校驗的數(shù)據(jù)更新過程(1404)。
      [0110]接著將說明奇偶校驗運算選擇過程1402的多個具體示例。
      [0111]首先將說明第一奇偶校驗運算選擇過程,該第一奇偶校驗運算選擇過程是如下過程的具體示例,在該示例中,系統(tǒng)控制器20基于每個LU的1特性706選擇奇偶校驗運算實現(xiàn)裝置。
      [0112]圖15示出第一奇偶校驗運算選擇過程的示例。首先,系統(tǒng)控制器20基于LU管理表700確定作為相關(guān)寫入的目標的LU的1特性706是否隨機(1501)。在相關(guān)LU 1特性706表示隨機(1501:是)的情況下,系統(tǒng)控制器20根據(jù)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置來判決指令設(shè)備控制器60執(zhí)行奇偶校驗運算(1502),并且結(jié)束這一處理流程。備選地,在相關(guān)LU 1特性706未示出隨機O (1501:否)的情況下,更具體而言,在稍后將描述的順序?qū)懭氲那闆r下,系統(tǒng)控制器20根據(jù)選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置來判決系統(tǒng)控制器20將實現(xiàn)奇偶校驗運算(1503),并且結(jié)束這一處理流程。
      [0113]也就是說,在1的場合時,系統(tǒng)控制器20參考LU管理表700的1特性706并且在1特性706示出隨機寫入數(shù)目大于關(guān)于向相關(guān)LU的寫入的順序?qū)懭霐?shù)目的情況下指令設(shè)備控制器60創(chuàng)建奇偶校驗。備選地,在1特性706示出隨機寫入少于關(guān)于向相關(guān)LU的寫入的順序?qū)懭氲那闆r下,系統(tǒng)控制器20實現(xiàn)奇偶校驗創(chuàng)建。
      [0114]接著將說明第二奇偶校驗運算選擇過程,該第二奇偶校驗運算選擇過程是如下過程的具體示例,在該過程中,系統(tǒng)控制器20檢測系統(tǒng)控制器20的硬件負載并且基于這一負載選擇奇偶校驗運算實現(xiàn)裝置。
      [0115]圖16示出第二奇偶校驗運算選擇過程的示例。硬件例如是CPU11、存儲器12和奇偶校驗電路25。首先,系統(tǒng)控制器20確定它的自有硬件負載是否高于參考(1601)。在確定硬件負載高于參考(1601:是)的情況下,系統(tǒng)控制器20選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置、指令設(shè)備控制器60執(zhí)行奇偶校驗運算(1602)并且結(jié)束處理流程。備選地,在確定硬件負載不高于參考(1601:否)的情況下,系統(tǒng)控制器20選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置(1603)并且結(jié)束處理流程。
      [0116]系統(tǒng)控制器20例如這里測量在系統(tǒng)控制器20硬件上的負載,并且在測量結(jié)果超過規(guī)定的門限的情況下確定硬件負載為高。測量結(jié)果例如是CPU 11利用率、使用的存儲器12的數(shù)量和向奇偶校驗電路25輸入的數(shù)據(jù)量。
      [0117]接著將說明第三奇偶校驗運算選擇過程,該第三奇偶校驗運算選擇過程是如下過程的具體示例,在該過程中,系統(tǒng)控制器20基于相關(guān)寫入的1模式選擇奇偶校驗運算實現(xiàn)
      >j-U ρ?α裝直。
      [0118]圖17示出第三奇偶校驗運算選擇過程的示例。首先,系統(tǒng)控制器20確定相關(guān)1請求的1模式是否為隨機寫入(1701)。在確定1模式是隨機寫入(1701:是)的情況下,系統(tǒng)控制器20選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置、指令設(shè)備控制器60執(zhí)行奇偶校驗運算(1702)并且結(jié)束這一處理流程。備選地,在確定1模式不是隨機寫入的情況下,也就是說,在已經(jīng)確定1模式是順序?qū)懭?1701:否)的情況下,系統(tǒng)控制器20選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置(1703)并且結(jié)束處理流程。
      [0119]接著將說明第四奇偶校驗選擇過程,該第四奇偶校驗選擇過程是如下過程的具體示例,在該過程中,系統(tǒng)控制器20基于相關(guān)寫入的1模式和系統(tǒng)控制器20的硬件負載選擇奇偶校驗運算實現(xiàn)裝置。
      [0120]圖18示出第四奇偶校驗運算選擇過程的示例。首先,系統(tǒng)控制器20確定相關(guān)寫入的1模式是否為隨機寫入(1801)。在確定1模式是隨機寫入(1801:是)的情況下,系統(tǒng)控制器20選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置、指令設(shè)備控制器60執(zhí)行奇偶校驗運算(1802)并且結(jié)束處理流程。備選地,在確定1模式不是隨機寫入(1801:否)的情況下,系統(tǒng)控制器20確定硬件負載是否為高(1803)。在確定硬件負載為高(1803:是)的情況下,系統(tǒng)控制器20使處理流程移向1802。備選地,在確定硬件負載不高(1803:否)的情況下,系統(tǒng)控制器20選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置(1804),并且結(jié)束處理流程。
      [0121 ] 系統(tǒng)控制器20也可以根據(jù)以上描述的多個類型的奇偶校驗運算選擇過程1402選擇奇偶校驗運算實現(xiàn)裝置。
      [0122]根據(jù)系統(tǒng)控制器20在順序?qū)懭牒腿珬l帶寫入時執(zhí)行奇偶校驗運算,有可能防止從系統(tǒng)控制器20向設(shè)備控制器60傳送的數(shù)據(jù)量的增加。這使得有可能防止寫入速度的降低。
      [0123]接著將說明寫入方法選擇過程1403的具體示例。
      [0124]圖19示出寫入方法選擇過程1403的示例。寫入方法選擇例如是讀取-修改-寫入和全條帶寫入。首先,系統(tǒng)控制器20確定寫入——該寫入是相關(guān)1請求——的1模式是是否為隨機寫入(1901)。在確定1模式是隨機寫入(1901:是)的情況下,系統(tǒng)控制器20選擇讀取-修改-寫入作為寫入方法(1902)并且結(jié)束處理流程。備選地,在確定1模式不是隨機寫入(1901:否)的情況下,也就是說,在確定1模式是順序?qū)懭氲那闆r下,系統(tǒng)控制器20選擇全條帶寫入作為寫入方法(1903)并且結(jié)束處理流程。
      [0125]接著將說明與奇偶校驗運算實現(xiàn)裝置的選擇結(jié)果和寫入方法的選擇結(jié)果對應(yīng)的數(shù)據(jù)更新過程1404的多個具體示例。
      [0126]首先將說明第一讀取-修改-寫入過程,該第一讀取-修改-寫入過程是數(shù)據(jù)更新過程1404在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置并且已經(jīng)選擇讀取-修改-寫入作為寫入方法的情況下的具體示例。
      [0127]圖20示出第一讀取-修改-寫入過程的示例。圖21示出系統(tǒng)控制器20在第一讀取-修改-寫入過程中的操作的示例。在這一示例中,四個FMPK 50、即FMPK#0、#1、#2和#3分別在一個條帶行中存儲數(shù)據(jù)D0、D1、D2和奇偶校驗P。這里假設(shè)初始狀態(tài)是如下狀態(tài),在該狀態(tài)中,系統(tǒng)控制器20已經(jīng)接收用于根據(jù)寫入命令更新DO的舊數(shù)據(jù)的新數(shù)據(jù)。在以下說明中,在FMPK#0、#1、#2和#3之中,存儲待更新的數(shù)據(jù)的FMPK#0可以稱為數(shù)據(jù)FMPK。此外,在FMPK#0、#1、#2和#3之中,存儲奇偶校驗的FMPK#3可以稱為奇偶校驗FMPK。
      [0128]首先,系統(tǒng)控制器20從FMPK#0、#1、#2和#3之中選擇與DO對應(yīng)的FMPK#0 (數(shù)據(jù)FMPK)并且根據(jù)向FMPK#0發(fā)出舊數(shù)據(jù)存儲寫入命令來向FMPK#0傳送新數(shù)據(jù),該舊數(shù)據(jù)存儲寫入命令指令存儲舊數(shù)據(jù)并且寫入新數(shù)據(jù)(2101)。接收這一命令的FMPK#0的設(shè)備控制器60從系統(tǒng)控制器20向在FMPK#0中的與舊數(shù)據(jù)的物理頁面不同的物理頁面寫入新數(shù)據(jù)。利用正常寫入命令,舊物理頁面在向邏輯頁面分配新物理頁面時變成無效,并且在舊物理頁面中存儲的舊數(shù)據(jù)變成擦除的目標。因而,系統(tǒng)控制器20使用舊數(shù)據(jù)存儲寫入命令取代正常寫入命令以保證保持舊數(shù)據(jù)直至奇偶校驗更新完成。在后續(xù)說明中,寫入命令意味著正常寫入命令。
      [0129]接著,系統(tǒng)控制器20根據(jù)向FMPK#0發(fā)出請求中間奇偶校驗的中間奇偶校驗讀取命令來從FMPK#0獲取中間奇偶校驗(2102)。運算中奇偶校驗是用于根據(jù)在對舊奇偶校驗的奇偶校驗運算產(chǎn)生新奇偶校驗的中間運算結(jié)果。接收這一命令的FMPK#0的設(shè)備控制器60基于在FMPK#0中存儲的舊數(shù)據(jù)和在FMPK#0中存儲的新數(shù)據(jù)計算中間奇偶校驗并且向系統(tǒng)控制器20發(fā)送中間奇偶校驗作為響應(yīng)。FMPK#0設(shè)備控制器60這里可以向緩沖器66寫入計算的中間奇偶校驗或者可以向在FMPK#0的FM 55中的與舊數(shù)據(jù)物理頁面或者新數(shù)據(jù)物理頁面不同的物理頁面寫入計算的中間奇偶校驗。
      [0130]接著,系統(tǒng)控制器20從FMPK#0、#1、#2和#3選擇與P對應(yīng)的FMPK#3 (奇偶校驗FMPK)并且根據(jù)向FMPK#3發(fā)出指令更新奇偶校驗的奇偶校驗更新寫入命令來向FMPK#3傳送從FMPK#0接收到的中間奇偶校驗(2103)。接收這一命令的FMPK#3基于在FMPK#3中的舊奇偶校驗和來自系統(tǒng)控制器20的中間奇偶校驗計算新奇偶校驗,并且向FMPK#3寫入新奇偶校驗。FMPK#3設(shè)備控制器60向FMPK#3寫入新奇偶校驗并且向系統(tǒng)控制器20通知用于奇偶校驗更新寫入的完成響應(yīng)。在這一點,F(xiàn)MPK#3設(shè)備控制器60可以從系統(tǒng)控制器20向緩沖器66寫入中間奇偶校驗,或者可以向在FMPK#3以內(nèi)的FM 55中的與舊奇偶校驗物理頁面和新奇偶校驗物理頁面二者不同的物理頁面寫入中間奇偶校驗。
      [0131]接著,系統(tǒng)控制器20在從FMPK#3接收完成響應(yīng)時向FMPK#0發(fā)出指令使舊數(shù)據(jù)無效的去映射舊數(shù)據(jù)命令(2104)并且結(jié)束這一流程。接收這一命令的FMPK#0的設(shè)備控制器60從映射管理表1100刪除向去映射舊數(shù)據(jù)命令標識的邏輯頁面映射的物理頁面以便使存儲的舊數(shù)據(jù)無效。
      [0132]另外,系統(tǒng)控制器20在發(fā)出奇偶校驗更新寫入命令之后的規(guī)定的時間段內(nèi)尚未從FMPK#3接收完成響應(yīng)的情況下可以確定奇偶校驗更新已經(jīng)失敗、從FMPK#0重新獲取中間奇偶校驗并且通過向FMPK#3重新傳送這一中間奇偶校驗來重新執(zhí)行奇偶校驗更新過程。
      [0133]具體而言,系統(tǒng)控制器20在發(fā)出奇偶校驗更新寫入命令之后的指定的時間段內(nèi)尚未從FMPK#3接收完成響應(yīng)的情況下向FMPK#0重新發(fā)出中間奇偶校驗讀取命令并且接收根據(jù)這一命令重新計算的中間奇偶校驗。然后,系統(tǒng)控制器20根據(jù)向FMPK#3重新發(fā)出奇偶校驗更新寫入命令來向FMPK#3寫入重新計算的中間奇偶校驗。
      [0134]根據(jù)這一處理,在更新在單個條帶塊中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0135](I)從系統(tǒng)控制器20向數(shù)據(jù)FMPK的設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0136](2)從數(shù)據(jù)FMPK的設(shè)備控制器60向系統(tǒng)控制器20傳送中間奇偶校驗。
      [0137](3)從系統(tǒng)控制器20向奇偶校驗FMPK的設(shè)備控制器60傳送中間奇偶校驗。
      [0138]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。備選地,在系統(tǒng)控制器20這里執(zhí)行奇偶校驗運算的情況下,在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0139](I)從數(shù)據(jù)FMPK的設(shè)備控制器60向系統(tǒng)控制器20傳送更新前數(shù)據(jù)。
      [0140](2)從奇偶校驗FMPK的設(shè)備控制器60向系統(tǒng)控制器20傳送更新前奇偶校驗。
      [0141](3)從系統(tǒng)控制器20向數(shù)據(jù)FMPK的設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0142](4)從系統(tǒng)控制器20向奇偶校驗FMPK的設(shè)備控制器60傳送更新后奇偶校驗。
      [0143]在第一讀取-修改-寫入過程中比在系統(tǒng)控制器20執(zhí)行這一種奇偶校驗運算的情況下傳送更少數(shù)據(jù)。
      [0144]也可以根據(jù)數(shù)據(jù)FMPK在FM 55中存儲更新前數(shù)據(jù)和更新后數(shù)據(jù)來削減數(shù)據(jù)FMPK設(shè)備控制器60用來對運算中奇偶校驗執(zhí)行運算的緩沖器66。
      [0145]此外,即使在已經(jīng)寫入新數(shù)據(jù)之后仍然存儲舊數(shù)據(jù)直至更新奇偶校驗也使數(shù)據(jù)恢復在故障已經(jīng)在更新奇偶校驗之前出現(xiàn)的情況下成為可能。另外,在更新奇偶校驗之后使舊數(shù)據(jù)無效并且以舊數(shù)據(jù)作為擦除目標使得有可能減少舊數(shù)據(jù)正在使用的存儲區(qū)域數(shù)量。
      [0146]接著將說明第二讀取-修改-寫入過程,該第二讀取-修改-寫入過程是不同數(shù)據(jù)更新過程1404在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)正在并且已經(jīng)選擇讀取-修重寫入作為寫入方法的情況下的另一具體示例。
      [0147]圖22示出第二讀取-修改-寫入過程的示例。圖23示出系統(tǒng)控制器20在第二讀取-修改-寫入過程中的操作的示例。在這一示例中的初始狀態(tài)與第一讀取-修改-寫入過程的初始狀態(tài)相同。首先,系統(tǒng)控制器20根據(jù)向與DO對應(yīng)的FMPK#0 (數(shù)據(jù)FMPK)發(fā)出讀取命令來從FMPK#0獲取舊數(shù)據(jù)(2301)。接收這一命令的FMPK#0的設(shè)備控制器60讀取在FMPK#0中的舊數(shù)據(jù)并且向系統(tǒng)控制器20發(fā)送舊數(shù)據(jù)作為響應(yīng)。
      [0148]接著,系統(tǒng)控制器20根據(jù)向與P對應(yīng)的FMPK#3(奇偶校驗FMPK)發(fā)出奇偶校驗更新寫入命令來向FMPK#3傳送舊數(shù)據(jù)和新數(shù)據(jù)(2303)。接收這一命令的FMPK#3的設(shè)備控制器60基于來自系統(tǒng)控制器20的新數(shù)據(jù)、來自系統(tǒng)控制器20的舊數(shù)據(jù)和在FMPK#3中的舊奇偶校驗計算新奇偶校驗并且向FMPK#3寫入新奇偶校驗。
      [0149]接著,系統(tǒng)控制器20根據(jù)向FMPK#0發(fā)出寫入命令來向FMPK#0傳送新數(shù)據(jù)(2303)。接收這一命令的FMPK#0的設(shè)備控制器60向FMPK#0寫入新數(shù)據(jù)。
      [0150]根據(jù)這一處理,在更新在單個條帶塊中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0151](I)從數(shù)據(jù)FMPK設(shè)備控制器60向系統(tǒng)控制器20傳送更新前數(shù)據(jù),并且從系統(tǒng)控制器20向數(shù)據(jù)FMPK的設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0152](2)從系統(tǒng)控制器20向奇偶校驗FMPK設(shè)備控制器60傳送更新前數(shù)據(jù)和更新后數(shù)據(jù)。
      [0153]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0154]在2302中,系統(tǒng)控制器20使用單個奇偶校驗更新寫入命令來向奇偶校驗FMPK傳送新數(shù)據(jù)和舊數(shù)據(jù)。這時的傳送數(shù)據(jù)量是在第一讀取-修改-寫入過程的情況下在從系統(tǒng)控制器20向奇偶校驗FMPK傳送中間奇偶校驗時傳送的數(shù)據(jù)量的兩倍。然而由于僅有一個傳送,所以有可能防止數(shù)據(jù)傳送開銷的增加。在根據(jù)高速接口、比如6GB SAS(串行附著小型計算機接口)執(zhí)行數(shù)據(jù)傳送的情況下,傳送數(shù)目小的優(yōu)點超過傳送的數(shù)據(jù)量增加的缺點。
      [0155]此外,即使在已經(jīng)寫入新數(shù)據(jù)之后仍然存儲舊數(shù)據(jù)直至更新奇偶校驗也使數(shù)據(jù)恢復在故障已經(jīng)在更新奇偶校驗之前出現(xiàn)的情況下有可能。另外,在更新奇偶校驗之后使舊數(shù)據(jù)無效并且以舊數(shù)據(jù)作為擦除目標使得有可能減少舊數(shù)據(jù)正在使用的存儲區(qū)域數(shù)量。
      [0156]在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置并且已經(jīng)選擇讀取-修改-寫入作為寫入方法的情況下,可以執(zhí)行第一讀取-修改-寫入過程或者第二讀取-修改-寫入過程。
      [0157]接著將說明第三讀取-修改-寫入過程,該第三讀取-修改-寫入過程是數(shù)據(jù)更新過程1404在已經(jīng)選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置并且選擇讀取-修改-寫入作為寫入方法的情況下的具體示例。
      [0158]圖24示出第三讀取-修改-寫入過程的示例。圖25示出系統(tǒng)控制器20在第三讀取-修改-寫入過程中的操作的示例。在這一 i中的初始狀態(tài)與第一讀取-修改-寫入過程的初始狀態(tài)相同。首先,系統(tǒng)控制器20根據(jù)向與DO對應(yīng)的FMPK#0發(fā)出請求DO的讀取命令來從FMPK#0獲取舊數(shù)據(jù),并且根據(jù)向與P對應(yīng)的FMPK#3發(fā)出讀取命令來從FMPK#3獲取舊FMPK#3 (2501)。接收這一讀取命令的FMPK#0讀取FMPK#0的舊數(shù)據(jù)并且向系統(tǒng)控制器20發(fā)送這一舊數(shù)據(jù)作為響應(yīng)。同樣,接收這一讀取命令的FMPK#3的設(shè)備控制器60讀取FMPK#3的舊奇偶校驗并且向系統(tǒng)控制器20發(fā)送這一舊FMPK#作為響應(yīng)。
      [0159]接著,系統(tǒng)控制器20基于舊數(shù)據(jù)、舊奇偶校驗和新數(shù)據(jù)計算新FMPK#(2502)。接著,系統(tǒng)控制器20根據(jù)向FMPK#0發(fā)出寫入命令來向FMPK#0發(fā)送新數(shù)據(jù)、根據(jù)向與P對應(yīng)的FMPK#3發(fā)出寫入命令來向FMPK#3發(fā)送新FMPK#(2503)并且結(jié)束這一處理流程。接收這一寫入命令的FMPK#0的設(shè)備控制器60向FMPK#0寫入新數(shù)據(jù)。此外,接收這一寫入命令的FMPK#3向FMPK#3寫入新奇偶校驗。
      [0160]根據(jù)這一處理,在更新在單個條帶塊中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0161](I)從數(shù)據(jù)FMPK的設(shè)備控制器60向系統(tǒng)控制器20傳送更新前數(shù)據(jù),并且從系統(tǒng)控制器20向數(shù)據(jù)FMPK的設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0162](2)從奇偶校驗FMPK的設(shè)備控制器60向系統(tǒng)控制器20傳送更新前奇偶校驗。
      [0163](3)從系統(tǒng)控制器20向奇偶校驗FMPK的設(shè)備控制器60傳送更新后奇偶校驗。
      [0164]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0165]接著將說明全條帶寫入的多個具體示例。
      [0166]首先將說明第一全條帶寫入過程,該第一全條帶寫入過程是另一數(shù)據(jù)更新過程1404在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置并且已經(jīng)選擇全條帶寫入作為寫入方法的情況下的具體示例。
      [0167]圖26示出第一全條帶寫入過程的示例。圖27示出系統(tǒng)控制器20在第一全條帶寫入過程中的操作的示例。在這一示例中,F(xiàn)MPK#0、#1、#2和#3分別存儲DO、Dl、D2和P。這里假設(shè)初始狀態(tài)是如下狀態(tài),在該狀態(tài)中,系統(tǒng)控制器20已經(jīng)接收用于根據(jù)寫入命令更新舊數(shù)據(jù)DO、Dl和D2的新數(shù)據(jù)。在以下說明中,在FMPK#0、#1、#2和#3之中,正在存儲待更新的數(shù)據(jù)的FMPK#0、#1和#2可以稱為數(shù)據(jù)FMPK。
      [0168]首先,系統(tǒng)控制器20將接收到的數(shù)據(jù)分割成用于DO、Dl和D2的新數(shù)據(jù)并且根據(jù)向分別與D0、D1和D2對應(yīng)的FMPK#0、#1和#2 (數(shù)據(jù)FMPK)發(fā)出寫入命令來分別向FMPK#0、#1和#2傳送D0、D1和D2的新數(shù)據(jù)(2701)。接收這一寫入命令的FMPK#0、#1和#2的設(shè)備控制器60從系統(tǒng)控制器20分別向FMPK#0、#1和#2寫入新數(shù)據(jù)。
      [0169]接著,系統(tǒng)控制器20根據(jù)向與P對應(yīng)的FMPK#3(奇偶校驗FMPK)發(fā)出指令創(chuàng)建和寫入奇偶校驗的奇偶校驗創(chuàng)建寫入命令來向FMPK#3傳送D0、D1和D2的新數(shù)據(jù)(2702),并且結(jié)束處理流程。接收這一寫入命令的FMPK#3的設(shè)備控制器60基于DO、Dl和D2的新數(shù)據(jù)計算新奇偶校驗并且向FMPK#3寫入這一新奇偶校驗。
      [0170]根據(jù)這一處理,在更新在單個條帶行中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0171](I)從系統(tǒng)控制器20向數(shù)據(jù)FMPK設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0172](2)從系統(tǒng)控制器20向奇偶校驗FMPK設(shè)備控制器60傳送更新后奇偶校驗數(shù)據(jù)。
      [0173]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0174]首先將說明第二全條帶寫入過程,該第二全條帶寫入過程是另一數(shù)據(jù)更新過程1404在已經(jīng)選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置并且已經(jīng)選擇全條帶寫入作為寫入過程的情況下的具體示例。
      [0175]圖28示出第二全條帶寫入過程的示例。圖29示出系統(tǒng)控制器20在第二全條帶寫入過程中的操作的示例。在這一示例中的初始狀態(tài)與第一全條帶寫入過程的初始狀態(tài)相同。首先,系統(tǒng)控制器20根據(jù)DO、Dl和D2的新數(shù)據(jù)計算新奇偶校驗(2901)。接著,系統(tǒng)控制器20根據(jù)向與DO、Dl和D2對應(yīng)的FMPK#0、#1和#2發(fā)出寫入命令來分別向FMPK#0、#1和#2傳送DO、Dl和D2的新數(shù)據(jù)、根據(jù)向與P對應(yīng)的FMPK#3發(fā)出寫入命令來向FMPK#3傳送計算的新奇偶校驗(2902),并且結(jié)束這一處理流程。接收這一寫入命令的FMPK#0、#1和#2的設(shè)備控制器60從系統(tǒng)控制器20分別向FMPK#0、#1和#2寫入新數(shù)據(jù)。此外,接收寫入命令的FMPK#3的設(shè)備控制器60還從系統(tǒng)控制器20向FMPK#3寫入新奇偶校驗。
      [0176]根據(jù)這一處理,在更新在單個條帶行中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0177](I)從系統(tǒng)控制器20向數(shù)據(jù)FMPK設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0178](2)從系統(tǒng)控制器20向奇偶校驗FMPK設(shè)備控制器60傳送更新后奇偶校驗。
      [0179]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0180]接著將說明根據(jù)奇偶校驗運算實現(xiàn)裝置選擇結(jié)果的數(shù)據(jù)恢復過程的多個具體示例。
      [0181]首先將說明第一數(shù)據(jù)恢復過程,該第一數(shù)據(jù)恢復過程是數(shù)據(jù)恢復過程在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置的情況下的具體示例。
      [0182]圖30示出第一數(shù)據(jù)恢復過程的示例。圖31示出系統(tǒng)控制器20在第一數(shù)據(jù)恢復過程中的操作的示例。在這一示例中,F(xiàn)MPK#0、#1、#2和#3分別存儲D0、D1、D2和P。這里假設(shè)初始狀態(tài)是如下狀態(tài),在該狀態(tài)中,故障已經(jīng)在FMPK#1以內(nèi)的FM 55中出現(xiàn),并且已經(jīng)用新FM 55替換這一 FM 55。在以下說明中,在FMPK#0、#1、#2和#3之中,正在存儲待恢復的數(shù)據(jù)的FMPK#1可以稱為恢復進行中FMPK。
      [0183]首先,系統(tǒng)控制器20根據(jù)向在FMPK#0、#1、#2和#3屬于的RG中存在的FMPK#0、#2和#3發(fā)出讀取命令來獲取分別在FMPK#0、#2和#3中存儲的D0、D2和P (3101)。接收這一讀取命令的FMPK#0、#2和#3的設(shè)備控制器60分別讀取DO、D2和P并且向系統(tǒng)控制器20傳送讀取的D0、D2和P。這里可以讀取數(shù)據(jù)和奇偶校驗。
      [0184]接著,系統(tǒng)控制器20根據(jù)向正在進行恢復的FMPK#1 (恢復進行中FMPK)發(fā)出表示創(chuàng)建奇偶校驗的寫入命令來向FMPK#1傳送已經(jīng)讀取的D0、D2和P (3102),并且結(jié)束這一處理流程。接收這一寫入命令的FMPK#1的設(shè)備控制器60根據(jù)基于DO、D2和P計算Dl來創(chuàng)建Dl恢復的數(shù)據(jù)并且向FMPK#1寫入Dl恢復的數(shù)據(jù)。
      [0185]根據(jù)這一處理,在恢復在單個條帶塊時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0186](I)從對應(yīng)設(shè)備控制器60向系統(tǒng)控制器20傳送除了恢復進行中FMPK之外的FMPK50的數(shù)據(jù)。
      [0187](2)從系統(tǒng)控制器20向恢復進行中FMPK設(shè)備控制器60傳送所傳送的數(shù)據(jù)。
      [0188]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0189]接著將說明第二數(shù)據(jù)恢復過程,該第二數(shù)據(jù)恢復過程是數(shù)據(jù)恢復過程在已經(jīng)選擇系統(tǒng)控制器20作為奇偶校驗運算實現(xiàn)裝置的情況下的示例。
      [0190]圖32示出第二數(shù)據(jù)恢復過程的示例。圖33示出系統(tǒng)控制器20在第二數(shù)據(jù)恢復過程中的操作的示例。在這一示例中的初始狀態(tài)與第一具體示例的初始狀態(tài)相同。首先,系統(tǒng)控制器20根據(jù)向在FMPK#0、#1、#2和#3屬于的RG中存在的FMPK#0、#2和#3發(fā)出讀取命令來從FMPK#0、#2和#3讀取DO、D2和P (3301)。接收這一讀取命令的FMPK#0、#2和#3的設(shè)備控制器60分別讀取D0、D2和P,并且向系統(tǒng)控制器20傳送讀取的D0、D2和P。這里可以讀取數(shù)據(jù)和奇偶校驗。
      [0191]接著,系統(tǒng)控制器20根據(jù)基于D0、D2和P計算Dl來創(chuàng)建Dl恢復的數(shù)據(jù)(3302)。接著,系統(tǒng)控制器20根據(jù)向FMPK#1發(fā)出寫入命令來向FMPK#1寫入恢復的Dl (3303),并且結(jié)束這一處理流程。接收這一寫入命令的FMPK#1的設(shè)備控制器60向FMPK#1寫入接收的Dl0
      [0192]根據(jù)這一處理,在恢復在單個條帶塊時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0193](I)從對應(yīng)設(shè)備控制器60向系統(tǒng)控制器20傳送除了恢復進行中FMPK之外的FMPK50的數(shù)據(jù)。
      [0194](2)從系統(tǒng)控制器20向恢復進行中FMPK設(shè)備控制器60傳送所傳送的數(shù)據(jù)。
      [0195]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0196]接著將說明設(shè)備控制器60的操作。
      [0197]首先將說明正常寫入過程,該正常寫入過程是設(shè)備控制器60在已經(jīng)接收正常寫入命令的情況下的過程的具體示例。
      [0198]在這一正常寫入過程中,設(shè)備控制器60無需存儲舊數(shù)據(jù)。
      [0199]圖34示出正常寫入過程的示例。首先,設(shè)備控制器60接收正常寫入命令(3401)。接著,設(shè)備控制器60從在這一寫入命令中指定的邏輯地址確定邏輯頁面編號并且使這一邏輯頁面編號的邏輯頁面成為寫入目的地邏輯頁面(3402)。接著,設(shè)備控制器60獲取新空閑頁面,并且分配獲取的物理頁面作為寫入目的地頁面(3403)。接著,設(shè)備控制器60向?qū)懭肽康牡匚锢眄撁鎸懭敫鶕?jù)寫入命令接收的寫入數(shù)據(jù)(3404)。
      [0200]接著,設(shè)備控制器60在頁面映射管理表1100中關(guān)聯(lián)寫入目的地物理頁面與寫入目的地邏輯頁面,并且注冊寫入目的地物理頁面的編號作為物理頁面編號(3405)。接著,設(shè)備控制器60向系統(tǒng)控制器20發(fā)送表不已經(jīng)完成命令的響應(yīng)(3406)并且結(jié)束這一處理流程。
      [0201 ] 在3403中,設(shè)備控制器60可以通過執(zhí)行處理、比如保證未使用的物理頁面并且擦除物理塊而且在這一物理塊以內(nèi)保證物理頁面來獲取空閑物理頁面。為了這時擦除物理塊,設(shè)備控制器60可以在頁面映射管理表1100中取消舊物理頁面與另一邏輯頁面的關(guān)聯(lián)。
      [0202]接著將說明舊數(shù)據(jù)存儲寫入命令過程,該舊數(shù)據(jù)存儲寫入命令過程是設(shè)備控制器60在已經(jīng)接收舊數(shù)據(jù)存儲寫入命令的情況下的過程的具體示例。
      [0203]例如在上文描述的第一讀取-修改-寫入過程中使用這一舊數(shù)據(jù)存儲寫入過程。
      [0204]圖35示出舊數(shù)據(jù)存儲寫入過程的示例。首先,設(shè)備控制器60接收舊數(shù)據(jù)存儲寫入命令(3501)。接著,設(shè)備控制器60基于在這一寫入命令中指定的邏輯地址確定邏輯頁面編號,并且將這一邏輯頁面編號的邏輯頁面視為寫入目的地邏輯頁面(3502)。接著,設(shè)備控制器60通過參考頁面映射管理表1100來確定物理頁面是否被分配給寫入目的地邏輯頁面(3503)。
      [0205]在物理頁面被分配給寫入目的地邏輯頁面(3503:是)的情況下,設(shè)備控制器60在頁面映射管理表1100中注冊與寫入目的地邏輯頁面關(guān)聯(lián)的物理頁面編號作為舊物理頁面編號(3504)。
      [0206]在物理頁面未被分配給寫入目的地邏輯頁面(3503:否)的情況下,或在3504之后,設(shè)備控制器60獲取新空閑頁面并且分配獲取的物理頁面作為寫入目的地物理頁面
      (3505)。接著,設(shè)備控制器60向?qū)懭肽康牡匚锢眄撁鎸懭敫鶕?jù)寫入命令接收的寫入數(shù)據(jù)
      (3506)。
      [0207]接著,設(shè)備控制器60在頁面映射管理表1100中關(guān)聯(lián)寫入目的地物理頁面與寫入目的地邏輯頁面,并且注冊寫入目的地物理頁面的編號作為物理頁面編號(3507)。接著,設(shè)備控制器60向系統(tǒng)控制器20發(fā)送表不已經(jīng)完成命令的響應(yīng)(3508)并且結(jié)束這一處理流程。
      [0208]根據(jù)這一處理,數(shù)據(jù)FMPK能夠在數(shù)據(jù)更新時間存儲更新前數(shù)據(jù)。此外,數(shù)據(jù)FMPK設(shè)備控制器60能夠關(guān)聯(lián)更新的邏輯頁面、用于存儲舊數(shù)據(jù)的舊物理頁面和用于存儲新數(shù)據(jù)的物理頁面。這使得數(shù)據(jù)FMPK有可能在數(shù)據(jù)更新時間在非易失性存儲器中存儲更新前數(shù)據(jù)和更新后數(shù)據(jù)二者。數(shù)據(jù)FMPK設(shè)備控制器60也能夠讀取更新前數(shù)據(jù)和更新后數(shù)據(jù)二者而未使用易失性存儲器。此外,系統(tǒng)控制器20能夠讓數(shù)據(jù)FMPK設(shè)備控制器60存儲更新前數(shù)據(jù)和更新后數(shù)據(jù)二者。
      [0209]接著將說明中間奇偶校驗過程,該中間奇偶校驗過程是設(shè)備控制器60在已經(jīng)接收中間奇偶校驗命令的情況下的過程的具體示例。
      [0210]這一中間奇偶校驗過程根據(jù)對新數(shù)據(jù)和指定的地址的舊數(shù)據(jù)執(zhí)行奇偶校驗運算來創(chuàng)建和返回中間奇偶校驗。例如在上文描述的第一讀取-修改-寫入過程中使用這一中間奇偶校驗過程。
      [0211]圖36示出中間奇偶校驗過程的示例。首先,設(shè)備控制器60接收中間奇偶校驗命令(3601)。接著,設(shè)備控制器60基于這一讀取命令指定的邏輯地址確定邏輯頁面編號并且將這一邏輯頁面編號的邏輯頁面視為讀取目的地邏輯頁面(3602)。接著,設(shè)備控制器60通過參考頁面映射管理表1100來確定與讀取目的地邏輯頁面對應(yīng)的舊物理頁面是否被注冊(3603)。
      [0212]在與讀取目的地邏輯頁面對應(yīng)的舊物理頁面被注冊(3603:是)的情況下,設(shè)備控制器60讀取與讀取目的地邏輯頁面對應(yīng)的舊物理頁面的數(shù)據(jù)和當前物理頁面的數(shù)據(jù),并且從讀取的數(shù)據(jù)計算中間奇偶校驗(3604)。接著,設(shè)備控制器60向系統(tǒng)控制器20傳送中間奇偶校驗(3606)并且結(jié)束這一處理流程。
      [0213]在3603中,在與讀取目的地邏輯頁面對應(yīng)的舊物理頁面未被注冊(3603:否)的情況下,設(shè)備控制器60用表示在讀取目的地邏輯頁面中無舊數(shù)據(jù)的命令結(jié)果向系統(tǒng)控制器20報告(3605)并且結(jié)束這一處理流程。
      [0214]在3605中接收表示在讀取目的地邏輯頁面中無舊數(shù)據(jù)的結(jié)果的系統(tǒng)控制器20例如可以讀取在與新數(shù)據(jù)相同的條帶行中的所有數(shù)據(jù)、基于讀取的數(shù)據(jù)計算新奇偶校驗并且向與奇偶校驗對應(yīng)的設(shè)備控制器60發(fā)出用于寫入新奇偶校驗的寫入命令?;蛘吒鶕?jù)這一點,系統(tǒng)控制器20例如可以讀取在與新數(shù)據(jù)相同的條帶行中的所有數(shù)據(jù)并且向與奇偶校驗對應(yīng)的設(shè)備控制器60發(fā)出用于基于讀取的數(shù)據(jù)計算新奇偶校驗的奇偶校驗創(chuàng)建寫入命令。
      [0215]根據(jù)這一處理,數(shù)據(jù)FMPK設(shè)備控制器60在從系統(tǒng)控制器20接收用于中間奇偶校驗運算的指令時可以讀取更新前數(shù)據(jù)和更新后數(shù)據(jù)并且基于讀取的數(shù)據(jù)創(chuàng)建中間奇偶校驗。此外,系統(tǒng)控制器20可以讓數(shù)據(jù)FMPK設(shè)備控制器60創(chuàng)建中間奇偶校驗并且可以從設(shè)備控制器60獲取中間奇偶校驗。
      [0216]假定而言,假設(shè)數(shù)據(jù)FMPK設(shè)備控制器60已經(jīng)與系統(tǒng)控制器20的操作異步地創(chuàng)建中間奇偶校驗。在這一情況下,這一設(shè)備控制器60的性能由于中間奇偶校驗的運算對設(shè)備控制器60的緩沖器66施加負擔而下降。在功率在中間奇偶校驗運算中需要的數(shù)據(jù)存儲于緩沖器66中的狀態(tài)中關(guān)斷的情況下,這一數(shù)據(jù)可能被丟失并且數(shù)據(jù)恢復可能變得不可能。備選地,根據(jù)這一示例,數(shù)據(jù)FMPK設(shè)備控制器60可以在接收中間奇偶校驗讀取命令時創(chuàng)建中間奇偶校驗來防止在存儲系統(tǒng)30中的性能下降。也有可能防止丟失在中間奇偶校驗中需要的數(shù)據(jù)并且增強存儲系統(tǒng)30的可靠性。
      [0217]接著將說明奇偶校驗更新過程,該奇偶校驗更新過程是設(shè)備控制器60在已經(jīng)接收奇偶校驗更新寫入命令的情況下的過程的具體示例。
      [0218]這一奇偶校驗更新寫入過程根據(jù)對傳送的中間奇偶校驗和指定的舊奇偶校驗執(zhí)行奇偶校驗運算來創(chuàng)建新奇偶校驗,并且向FM 55寫入這一新奇偶校驗。例如在上文描述的第一讀取-修改-寫入過程中使用這一奇偶校驗更新寫入命令。
      [0219]圖37示出奇偶校驗更新寫入過程的示例。首先,設(shè)備控制器60接收奇偶校驗更新寫入命令(3701)。接著,設(shè)備控制器60基于根據(jù)這一寫入命令指定的邏輯地址確定邏輯頁面編號并且將這一邏輯頁面編號的邏輯頁面視為讀取目的地邏輯頁面(3702)。接著,設(shè)備控制器60根據(jù)參考頁面映射管理表1100確定與讀取目的地邏輯頁面對應(yīng)的物理頁面編號并且從這一物理頁面編號表示的物理頁面讀取數(shù)據(jù)(3703)。讀取數(shù)據(jù)例如是舊奇偶校驗。接著,設(shè)備控制器60獲取新空閑頁面并且分配獲取的物理頁面作為結(jié)果存儲目的地物理頁面(3704)。接著,設(shè)備控制器60使用讀取的數(shù)據(jù)和接收的數(shù)據(jù)來執(zhí)行奇偶校驗運算,并且向結(jié)果存儲目的地物理頁面寫入運算結(jié)果(3705)。
      [0220]接著,設(shè)備控制器60在頁面映射管理表1100中關(guān)聯(lián)結(jié)果存儲目的地物理頁面與寫入目的地邏輯頁面,并且注冊結(jié)果存儲目的地物理頁面的編號作為物理頁面編號(3706)。接著,設(shè)備控制器60向系統(tǒng)控制器20發(fā)送表示已經(jīng)完成命令的響應(yīng)(3707)并且結(jié)束這一處理流程。
      [0221 ] 根據(jù)這一處理,奇偶校驗FMPK設(shè)備控制器60可以基于來自系統(tǒng)控制器20的更新后數(shù)據(jù)和在奇偶校驗FMPK中存儲的更新前奇偶校驗計算更新后奇偶校驗,并且向奇偶校驗FMPK發(fā)送更新后奇偶校驗。此外,系統(tǒng)控制器20可以讓奇偶校驗FMPK設(shè)備控制器60創(chuàng)建和存儲更新后奇偶校驗。
      [0222]接著將說明奇偶校驗創(chuàng)建寫入過程,該奇偶校驗創(chuàng)建寫入過程是設(shè)備控制器60在已經(jīng)接收奇偶校驗創(chuàng)建寫入命令的情況下的過程的具體示例。
      [0223]這一奇偶校驗創(chuàng)建寫入過程是用于使用已經(jīng)從多個條帶塊傳送的數(shù)據(jù)來創(chuàng)建奇偶校驗并且向指定的地址寫入這一奇偶校驗的命令。例如在上文描述的第一全條帶寫入過程和數(shù)據(jù)恢復過程中使用這一奇偶校驗創(chuàng)建寫入過程。
      [0224]圖38示出設(shè)備控制器60的根據(jù)奇偶校驗創(chuàng)建寫入命令的處理的示例。首先,設(shè)備控制器60接收奇偶校驗創(chuàng)建寫入命令(3801)。接著,設(shè)備控制器60基于這一寫入命令指定的邏輯地址確定邏輯頁面編號并且將這一邏輯頁面編號的邏輯頁面視為寫入目的地邏輯頁面(3802)。接著,設(shè)備控制器60獲取新空閑頁面并且分配獲取的物理頁面作為寫入目的地物理頁面(3803)。接著,設(shè)備控制器60向?qū)懭肽康牡匚锢眄撁鎸懭敫鶕?jù)寫入命令接收的寫入數(shù)據(jù)(3804)。
      [0225]接著,設(shè)備控制器60在頁面映射管理表1100中關(guān)聯(lián)寫入目的地物理頁面與寫入目的地邏輯頁面,并且注冊寫入目的地物理頁面的編號作為物理頁面編號(3805)。接著,設(shè)備控制器60向系統(tǒng)控制器20發(fā)送表不已經(jīng)完成命令的響應(yīng)(3806)并且結(jié)束這一處理流程。
      [0226]根據(jù)這一處理,奇偶校驗FMPK設(shè)備控制器60能夠基于來自系統(tǒng)控制器20的更新后數(shù)據(jù)計算更新后奇偶校驗,并且向奇偶校驗FMPK寫入更新后奇偶校驗。此外,系統(tǒng)控制器20可以讓奇偶校驗FMPK設(shè)備控制器60創(chuàng)建和存儲更新后奇偶校驗。
      [0227]圖39示出根據(jù)設(shè)備控制器60的去映射就數(shù)據(jù)過程的示例。首先,設(shè)備控制器60從系統(tǒng)控制器20接收去映射舊數(shù)據(jù)命令(3901)。接著,設(shè)備控制器60從在這一去映射舊數(shù)據(jù)命令中指定的邏輯地址確定邏輯頁面編號并且從頁面映射管理表1100刪除與這一邏輯頁面編號對應(yīng)的舊物理頁面編號(3902)。設(shè)備控制器60直至已經(jīng)接收到去映射舊數(shù)據(jù)命令才使舊數(shù)據(jù)無效。也就是說,設(shè)備控制器60即使在已經(jīng)寫入新數(shù)據(jù)之后仍然能夠存儲舊數(shù)據(jù)而無失敗,直至已經(jīng)更新奇偶校驗(已經(jīng)接收去映射舊數(shù)據(jù)命令)。因此,保持舊數(shù)據(jù)直至更新奇偶校驗使數(shù)據(jù)恢復即使在故障已經(jīng)在奇偶校驗更新之前出現(xiàn)的情況下仍然有可能。此外,在更新奇偶校驗之后使舊數(shù)據(jù)無效并且成為擦除的目標也使得有可能減少舊數(shù)據(jù)正在使用的存儲器區(qū)域數(shù)量。
      [0228]示例 2
      [0229]在這一示例中,將說明系統(tǒng)控制器20執(zhí)行RAID 6控制的情況。
      [0230]在這一示例中的計算機系統(tǒng)的配置與在示例I中的計算機系統(tǒng)的配置相同。因而以下將說明與示例I的不同。
      [0231]系統(tǒng)控制器20執(zhí)行RAID 6控制。因而將首先說明在RAID 5與RAID 6之間的不同。
      [0232]為了將上文說明的RAID 5擴展至RAID 6,奇偶校驗電路25或者奇偶校驗電路65用系數(shù)執(zhí)行附加奇偶校驗運算。這里假設(shè)五個FMPK 50分別正在存儲數(shù)據(jù)D0、D1、D2以及奇偶校驗P和Q。在使用A0、A1和A2作為用于創(chuàng)建Q的系數(shù)的情況下,根據(jù)以下方程創(chuàng)建P和Q。
      [0233]P = D0+D1+D2
      [0234]Q = A0*D0+A1*D1+A2*D2
      [0235]圖40示出用于創(chuàng)建Q奇偶校驗的方法的示例。奇偶校驗運算實現(xiàn)裝置在存儲器中預先存儲A0、A1和A2?;?0、01、0240、41和八2計算0。在附圖中示出為黑色菱形形狀的計算單元將附著到它的系數(shù)相乘。
      [0236]求解P創(chuàng)建方程和Q創(chuàng)建方程作為方程系統(tǒng)使得有可能在數(shù)據(jù)丟失時恢復任意數(shù)據(jù)和奇偶校驗。例如在恢復DO和P時,可以使用以下方程來創(chuàng)建DO和P。
      [0237]DO = A1/A0*D1+A2/A0D2+1/A0*Q
      [0238]P = D0+D1+D2
      [0239]例如在恢復DO和Dl時,有可能使用以下方程來創(chuàng)建DO和Dl。
      [0240]DO = (A1+A2)/(A0+A1)*D2+A1/(A0+A1)*P+1/ (A0+A1)*Q
      [0241]Dl= (A0+A2)/(A0+A1)*D2+A0/(A0+A1)*P+1/(A0+A1)*Q
      [0242]圖41示出用于恢復DO和Dl的方法的示例。如在
      [0165]中所示,DO和Dl可以各自被表達為D2、P和Q的線性方程aaD2+bbP+rrQ。系數(shù)aa、bb和rr是基于A0、A1和A2的值。奇偶校驗運算實現(xiàn)裝置可以在存儲器中預先存儲基于A0、Al和A2的aa、bb和rr?;谝訢2、P、Q以及A0、A1和A2為基礎(chǔ)的aa、bb和rr計算D0。這一示例嚴格用于提出概念并且被實際設(shè)計用于增加處理速度和減少使用的存儲器數(shù)量。
      [0243]接著將說明第四讀取-修改-寫入過程,該第四讀取-修改-寫入過程是數(shù)據(jù)更新過程1404在已經(jīng)選擇設(shè)備控制器60作為奇偶校驗運算實現(xiàn)裝置并且已經(jīng)選擇讀取-修改-寫入作為寫入方法的情況下的具體示例。
      [0244]圖42示出第四讀取-修改-寫入過程的示例。圖42示出系統(tǒng)控制器20在第四讀取-修改-寫入過程中的操作的示例。在這一示例中,?1^1(#0、#1、#2、#3和#4分別存儲D0、D1、D2、P和Q。這里假設(shè)初始狀態(tài)是如下狀態(tài),在該狀態(tài)中,系統(tǒng)控制器20接收用于根據(jù)寫入命令更新舊數(shù)據(jù)DO的新數(shù)據(jù)。在以下說明中,存儲DO——DO是待更新的數(shù)據(jù)——FMPK#0可以稱為FMPK#0、#1、#2、#3和#4的數(shù)據(jù)FMPK。正在存儲P的FMPK#3也可以稱為FMPK#0、#1、#2、#3和#4的奇偶校驗FMPK。此外,正在存儲Q的FMPK#4還可以稱為FMPK#0、#1、#2、#3和#4的Q奇偶校驗FMPK。
      [0245]首先,系統(tǒng)控制器20根據(jù)向與DO對應(yīng)的FMPK#0 (數(shù)據(jù)FMPK)發(fā)出舊數(shù)據(jù)存儲寫入命令來向FMPK#0寫入新數(shù)據(jù)(4101)。接收這一命令的FMPK#0的設(shè)備控制器60從系統(tǒng)控制器20向在FMPK#0中的與舊數(shù)據(jù)物理頁面不同的物理頁面寫入新數(shù)據(jù)。
      [0246]接著,系統(tǒng)控制器20根據(jù)向FMPK#0發(fā)出中間奇偶校驗讀取命令來從FMPK#0獲取中間奇偶校驗(4102)。接收這一命令的FMPK#0的設(shè)備控制器60基于在FMPK#0中存儲的舊數(shù)據(jù)和新數(shù)據(jù)計算中間奇偶校驗,并且向系統(tǒng)控制器20發(fā)送中間奇偶校驗作為響應(yīng)。
      [0247]接著,系統(tǒng)控制器20根據(jù)向與P對應(yīng)的FMPK#3 (P奇偶校驗FMPK)發(fā)出與在RAID5的情況下相同的奇偶校驗更新寫入命令來向FMPK#3發(fā)送中間FMPK#(4103)。接收這一命令的FMPK#3的設(shè)備控制器60基于在FMPK#3中的舊FMPK#和來自系統(tǒng)控制器20的中間奇偶校驗計算新FMPK#并且向FMPK#3寫入新奇偶校驗。
      [0248]將說明新奇偶校驗P_new在i是0、1或者2中的任一個并且將在相關(guān)RG中的數(shù)據(jù)Di更新成Di_new的情況下的計算。與在RAID5中相同,接收奇偶校驗更新寫入命令的設(shè)備控制器60使用以下方程來基于中間奇偶校驗(Di+Di_new)和舊奇偶校驗P計算P_new。
      [0249]P_new = P+(Di+Di_new)
      [0250]數(shù)據(jù)FMPK設(shè)備控制器60根據(jù)中間奇偶校驗讀取命令計算(Di+Di_new)。P奇偶校驗FMPK設(shè)備控制器60根據(jù)奇偶校驗更新寫入命令計算P+(Di+Di_new)。
      [0251 ] 接著,系統(tǒng)控制器20根據(jù)向與Q對應(yīng)的FMPK#4發(fā)出Q奇偶校驗更新寫入命令——該Q奇偶校驗更新寫入命令是用于更新Q的奇偶校驗更新命令——來向FMPK#4(Q奇偶校驗FMPK)傳送中間奇偶校驗,并且結(jié)束這一處理流程。接收這一命令的FMPK#4的設(shè)備控制器60基于在FMPK#4中的舊奇偶校驗、來自系統(tǒng)控制器20的中間奇偶校驗和系數(shù)計算新奇偶校驗并且向FMPK#3寫入新奇偶校驗。
      [0252]根據(jù)這一處理,在更新在單個條帶塊中的數(shù)據(jù)時在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送如下。
      [0253](I)從系統(tǒng)控制器20向數(shù)據(jù)FMPK設(shè)備控制器60傳送更新后數(shù)據(jù)。
      [0254](2)從數(shù)據(jù)FMPK設(shè)備控制器60向系統(tǒng)控制器20傳送中間奇偶校驗。
      [0255](3)從系統(tǒng)控制器20向P奇偶校驗FMPK設(shè)備控制器60和Q奇偶校驗FMPK設(shè)備控制器60傳送中間奇偶校驗。
      [0256]這使得有可能抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。
      [0257]接收Q奇偶校驗更新寫入命令的設(shè)備控制器60的處理與在奇偶校驗更新寫入命令的情況下的處理不同在于使用在設(shè)備控制器60中預先配置的系數(shù)Ai。在將在相關(guān)RG中的數(shù)據(jù)Di更新成Di_new的情況下,接收Q奇偶校驗更新寫入命令的設(shè)備控制器60使用以下方程來基于中間奇偶校驗(Di+Di_new)、舊奇偶校驗Q和Ai計算新奇偶校驗Q_new。
      [0258]Q_new = Q+Ai* (Di+Di_new)
      [0259]數(shù)據(jù)FMPK設(shè)備控制器60根據(jù)中間奇偶校驗讀取命令計算(Di+Di_new)。Q奇偶校驗FMPK設(shè)備控制器60根據(jù)Q奇偶校驗更新寫入命令計算Q+Ai* (Di+Di_new)。
      [0260]根據(jù)奇偶校驗更新寫入命令,P奇偶校驗FMPK設(shè)備控制器60可以基于來自系統(tǒng)控制器20的更新后數(shù)據(jù)和在P奇偶校驗FMPK中存儲的更新前P奇偶校驗計算更新后P奇偶校驗,并且向P奇偶校驗FMPK寫入更新后P奇偶校驗。此外,系統(tǒng)控制器20可以讓P奇偶校驗FMPK設(shè)備控制器60創(chuàng)建和存儲更新后P奇偶校驗。
      [0261]根據(jù)Q奇偶校驗更新寫入命令,Q奇偶校驗FMPK設(shè)備控制器60可以基于來自系統(tǒng)控制器20的更新后數(shù)據(jù)、在Q奇偶校驗FMPK中存儲的更新前Q奇偶校驗和規(guī)定的系數(shù)計算更新后奇偶校驗,并且向Q奇偶校驗FMPK寫入更新后Q奇偶校驗。此外,系統(tǒng)控制器20可以讓Q奇偶校驗FMPK設(shè)備控制器60創(chuàng)建和存儲更新后Q奇偶校驗。
      [0262]示例3
      [0263]在這一示例中,將說明計算機系統(tǒng),該計算機系統(tǒng)是存儲系統(tǒng)30在系統(tǒng)控制器20不包括奇偶校驗運算功能的情況下的應(yīng)用的示例。
      [0264]圖44示出與示例3有關(guān)的計算機系統(tǒng)的配置的示例。在這一示例的計算機系統(tǒng)中,已經(jīng)被指派與存儲系統(tǒng)30的單元相同的標號的單元表示與存儲系統(tǒng)30的單元相同或者等效的單元。這一示例的計算機系統(tǒng)包括主機計算機41a、主機計算機41b和耦合到主機計算機41b的多個FMPK 50。例如經(jīng)由LAN(局域網(wǎng))2耦合主機計算機41a和主機計算機41b。
      [0265]主機計算機41a包括主機控制器42a和耦合到主機控制器42a的多個FMPK 50。主機控制器42a包括用于耦合到通信網(wǎng)絡(luò)、比如LAN 2的NIC(網(wǎng)絡(luò)接口卡)13、存儲器12、CPU 11和緩沖器26。
      [0266]主機計算機41b包括用于耦合到通信網(wǎng)絡(luò)、比如LAN 2的NIC13、用于耦合到FMPK50的HBA (主機總線適配器)15、存儲器12、CPU 11和緩沖器26。
      [0267]在主機控制器42a和主機計算機41b中,存儲器12存儲用于控制FMPK 50的程序和各種類型的信息。CPU 11根據(jù)基于在存儲器12中存儲的信息執(zhí)行程序來實現(xiàn)各種類型的功能。主機控制器42a和主機計算機41b中的每個部件可以使用耦合到它本身的多個FMPK 50來執(zhí)行RAID控制。
      [0268]主機控制器42a或者主機計算機41b之一可以經(jīng)由LAN 2執(zhí)行向另一個部件的1請求或者可以執(zhí)行向它的自有FMPK 50的1請求。
      [0269]在這一示例中,系統(tǒng)控制器20可以是主機控制器42a或者主機計算機41b的方面。
      [0270]主機控制器42a和主機計算機41b中的每個對應(yīng)于用于判決奇偶校驗運算實現(xiàn)裝置的方法1300的情況#3或者情況#4。
      [0271]示例 4
      [0272]接著將說明第三計算機系統(tǒng),該第三計算機系統(tǒng)是存儲系統(tǒng)30在系統(tǒng)控制器20包括奇偶校驗運算功能的情況下的應(yīng)用的示例。
      [0273]圖45示出與示例4有關(guān)的計算機系統(tǒng)的配置的示例。在這一示例的計算機系統(tǒng)中,已經(jīng)被指派與示例3的計算機系統(tǒng)的單元相同的標號的單元表示與示例3的計算機系統(tǒng)的單元相同或者等效的單元。這一示例的計算機系統(tǒng)包括主機計算機41c、主機計算機41d和耦合到主機計算機41d的多個FMPK 50。例如經(jīng)由通信網(wǎng)絡(luò)、例如LAN 2耦合主機計算機41c和主機計算機41d。
      [0274]主機計算機41c包括主機控制器42c和耦合到主機控制器42c的多個FMPK 50。主機控制器42c除了主機控制器42a的單元之外還包括奇偶校驗電路25。
      [0275]主機計算機41d除了主機計算機41b的單元之外還包括奇偶校驗電路25。
      [0276]在主機計算機42c和主機計算機41d中,存儲器12存儲用于控制FMPK 50的程序和各種類型的信息。CPU 11根據(jù)基于在存儲器12中存儲的信息執(zhí)行程序來實現(xiàn)各種類型的功能。主機控制器42c和主機計算機41d中的每個可以使用耦合到它本身的多個FMPK50來執(zhí)行RAID控制。
      [0277]主機控制器42c或者主機計算機41d之一可以經(jīng)由LAN 2執(zhí)行向彼此的1請求或者可以執(zhí)行向它的自有FMPK 50的設(shè)備控制器60的1請求。
      [0278]主機控制器42a和主機計算機41b中的每個與用于判決奇偶校驗運算實現(xiàn)裝置的方法1300的情況#1或者情況#2對應(yīng)。
      [0279]在這一示例中,系統(tǒng)控制器20可以是主機控制器42c或者主機計算機41d的方面。
      [0280]計算機系統(tǒng)可以是上文描述的示例中的任何示例的單元的組合。包括奇偶校驗運算功能的系統(tǒng)控制器20和不包括奇偶校驗運算功能的系統(tǒng)控制器20可以在單個計算機系統(tǒng)中共存。
      [0281]根據(jù)上文描述的相應(yīng)示例,可以制止在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送。這使得有可能增強存儲系統(tǒng)30的速度。例如表達數(shù)據(jù)傳送為數(shù)據(jù)傳送數(shù)目或者為傳送的數(shù)據(jù)量。
      [0282]根據(jù)上文描述的相應(yīng)示例,除了抑制在系統(tǒng)控制器20與設(shè)備控制器60之間的數(shù)據(jù)傳送之外,本發(fā)明也可以減少在設(shè)備控制器60中使用的易失性存儲器數(shù)量。
      [0283]可以切換在系統(tǒng)控制器20的操作中的相應(yīng)過程的序列。例如可以切換1402和1403。也可以切換在設(shè)備控制器60的操作中的相應(yīng)過程的序列。例如可以切換3703和3704。
      [0284]標號列表
      [0285]10主機計算機
      [0286]20系統(tǒng)控制器
      [0287]25奇偶校驗電路
      [0288]26緩沖器
      [0289]30存儲系統(tǒng)
      [0290]41a、41b、41c、41d 主機計算機
      [0291]42a,42c主機控制器
      [0292]50FMPK (閃存封裝)
      [0293]55FM (閃存)
      [0294]60:設(shè)備控制器
      [0295]65:奇偶校驗電路
      [0296]66:緩沖器
      【權(quán)利要求】
      1.一種存儲系統(tǒng),包括: 第一控制器;以及 配置RAID的多個存儲設(shè)備,所述多個存儲設(shè)備中的每個存儲設(shè)備包括一個或者多個非易失性存儲器芯片和耦合到所述非易失性存儲器芯片的第二控制器,所述非易失性存儲器芯片提供其中存儲有來自主機計算機的數(shù)據(jù)的存儲空間, 其中當所述第一控制器從所述主機計算機接收到用于將第一數(shù)據(jù)更新成第二數(shù)據(jù)的更新請求時, 所述存儲設(shè)備中的第一存儲設(shè)備中的所述第二控制器被配置為在所述第一存儲設(shè)備的所述存儲空間中的、與其中已經(jīng)存儲有所述第一數(shù)據(jù)的區(qū)域不同的區(qū)域中存儲所述第二數(shù)據(jù);生成將所述第一數(shù)據(jù)和所述第二數(shù)據(jù)關(guān)聯(lián)的信息;并且基于所述第一數(shù)據(jù)和所述第二數(shù)據(jù)生成中間奇偶校驗, 其中所述存儲設(shè)備中的、存儲與所述第一數(shù)據(jù)對應(yīng)的第一奇偶校驗的第二存儲設(shè)備中的所述第二控制器被配置為接收所述中間奇偶校驗、基于所述第一奇偶校驗和所述中間奇偶校驗生成第二奇偶校驗、并且在所述第二存儲設(shè)備的所述存儲空間中的區(qū)域中存儲所述第二奇偶校驗, 其中所述第一存儲設(shè)備中的所述第二控制器被配置為在所述第二奇偶校驗被存儲于所述第二存儲設(shè)備的所述存儲空間中的所述區(qū)域中之后刪除所述信息,并且設(shè)置其中已經(jīng)存儲有所述第一數(shù)據(jù)的所述區(qū)域作為擦除目標區(qū)域。
      2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng), 其中所述第一控制器被配置為向所述第一存儲設(shè)備中的所述第二控制器發(fā)送所述中間奇偶校驗的生成請求, 其中所述第一存儲設(shè)備中的所述第二控制器被配置為響應(yīng)于所述生成請求而生成所述中間奇偶校驗,并且向所述第一控制器發(fā)送生成的所述中間奇偶校驗。
      3.根據(jù)權(quán)利要求2所述的存儲系統(tǒng), 其中所述第一控制器被配置為向所述第二存儲設(shè)備中的所述第二控制器發(fā)送利用所述中間奇偶校驗生成所述第二奇偶校驗的生成請求, 其中所述第二存儲設(shè)備中的所述第二控制器被配置為在所述第二存儲設(shè)備的所述存儲空間中的所述區(qū)域中存儲所述第二奇偶校驗,并且向所述第一控制器發(fā)送完成通知。
      4.根據(jù)權(quán)利要求3所述的存儲系統(tǒng), 其中如果未在預定時間內(nèi)接收到所述完成通知,則所述第一控制器被配置為向所述第一存儲設(shè)備中的所述第二控制器重發(fā)所述中間奇偶校驗的所述生成請求,并且向所述第二存儲設(shè)備中的所述第二控制器重發(fā)利用響應(yīng)于重發(fā)的所述生成請求而生成的所述中間奇偶校驗生成所述第二奇偶校驗的所述生成請求。
      5.根據(jù)權(quán)利要求4所述的存儲系統(tǒng), 其中如果所述更新請求的I/O特性是順序?qū)懭?,則所述第一控制器被配置為基于所述更新請求的寫入數(shù)據(jù)生成所述第二奇偶校驗而不發(fā)出所述中間奇偶校驗和所述第二奇偶校驗的所述生成請求,并且向所述存儲設(shè)備發(fā)送所述第二奇偶校驗或者所述寫入數(shù)據(jù)的一部分, 其中所述存儲設(shè)備中的每個存儲設(shè)備的所述第二控制器被配置為在其所述存儲空間中的區(qū)域中存儲接收到的所述第二奇偶校驗或者接收到的所述寫入數(shù)據(jù)的所述一部分。
      6.一種用于存儲系統(tǒng)的方法,所述存儲系統(tǒng)包括第一控制器和配置RAID的多個存儲設(shè)備,所述多個存儲設(shè)備中的每個存儲設(shè)備包括一個或者多個非易失性存儲器芯片和耦合到所述非易失性存儲器芯片的第二控制器,所述非易失性存儲器芯片提供其中存儲有來自主機計算機的數(shù)據(jù)的存儲空間,所述方法包括: 在所述第一控制器中,從所述主機計算機接收用于將第一數(shù)據(jù)更新成第二數(shù)據(jù)的更新請求;并且向所述存儲設(shè)備中的第一存儲設(shè)備中的所述第二控制器發(fā)送所述第二數(shù)據(jù), 在所述第一存儲設(shè)備中的所述第二控制器處,在所述第一存儲設(shè)備的所述存儲空間中的、與其中已經(jīng)存儲有所述第一數(shù)據(jù)的區(qū)域不同的區(qū)域中存儲所述第二數(shù)據(jù);生成將所述第一數(shù)據(jù)和所述第二數(shù)據(jù)關(guān)聯(lián)的信息;并且基于所述第一數(shù)據(jù)和所述第二數(shù)據(jù)生成中間奇偶校驗, 在所述存儲設(shè)備中的、存儲與所述第一數(shù)據(jù)對應(yīng)的第一奇偶校驗的第二存儲設(shè)備中的所述第二控制器處,接收所述中間奇偶校驗;基于所述第一奇偶校驗和所述中間奇偶校驗生成第二奇偶校驗;并且在所述第二存儲設(shè)備的所述存儲空間中的區(qū)域中存儲所述第二奇偶校驗, 在所述第一存儲設(shè)備中的所述第二控制器處,在所述第二奇偶校驗被存儲于所述第二存儲設(shè)備的所述存儲區(qū)域中之后刪除所述信息;并且設(shè)置其中已經(jīng)存儲有所述第一數(shù)據(jù)的所述區(qū)域作為擦除目標區(qū)域。
      7.根據(jù)權(quán)利要求6所述的方法,還包括: 在所述第一控制器處,向所述第一存儲設(shè)備中的所述第二控制器發(fā)送所述中間奇偶校驗的生成請求, 在所述第一存儲設(shè)備中的所述第二控制器處,響應(yīng)于所述生成請求而生成所述中間奇偶校驗,并且向所述第一控制器發(fā)送生成的所述中間奇偶校驗。
      8.根據(jù)權(quán)利要求7所述的方法,還包括: 在所述第一控制器處,向所述第二存儲設(shè)備中的所述第二控制器發(fā)送利用基于所述第一控制器的所述中間奇偶校驗生成所述第二奇偶校驗的生成請求, 在所述第二存儲設(shè)備中的所述第二控制器處,在所述第二存儲設(shè)備的所述存儲空間中的所述區(qū)域中存儲所述第二奇偶校驗;并且向所述第一控制器發(fā)送完成通知。
      9.根據(jù)權(quán)利要求8所述的方法,還包括: 如果未在預定時間內(nèi)接收到所述完成通知,則在所述第一控制器處向所述第一存儲設(shè)備中的所述第二控制器重發(fā)所述中間奇偶校驗的所述生成請求;并且向所述第二存儲設(shè)備中的所述第二控制器重發(fā)利用響應(yīng)于重發(fā)的所述生成請求而生成的所述中間奇偶校驗的生成述第二奇偶校驗的所述生成請求。
      10.根據(jù)權(quán)利要求9所述的方法,還包括: 如果所述更新請求的I/o特性是順序?qū)懭耄瑒t在所述第一控制器處從所述更新請求的寫入數(shù)據(jù)生成所述第二奇偶校驗而不發(fā)出所述第二奇偶校驗的所述生成請求;并且向所述存儲設(shè)備發(fā)送所述第二奇偶校驗或者發(fā)送所述寫入數(shù)據(jù)的一部分, 在所述存儲設(shè)備中的每個存儲設(shè)備的所述第二控制器處,在其所述存儲空間中的區(qū)域中存儲接收到的所述第二奇偶校驗或者接收到的所述寫入數(shù)據(jù)的所述一部分。
      【文檔編號】G06F11/10GK104246707SQ201280072490
      【公開日】2014年12月24日 申請日期:2012年4月27日 優(yōu)先權(quán)日:2012年4月27日
      【發(fā)明者】上原剛, 本間繁雄, 登川譽史行 申請人:株式會社日立制作所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1