對邏輯地址和物理地址之間的映射進(jìn)行管理的存儲系統(tǒng)、存儲控制器及方法
【專利摘要】根據(jù)實(shí)施方式,在向第一組塊的訪問狀況為需要高速訪問的第一狀況、且所述第一組塊處于所述第一組塊的第一邏輯地址被映射到比第一存儲裝置低速且大容量的第二存儲裝置側(cè)的第一物理地址的第二狀態(tài)的情況下,存儲控制器的映射管理部將所述第一組塊從所述第二狀態(tài)變更為第三狀態(tài)。由此,所述第一邏輯地址被映射到所述第一存儲裝置側(cè)的第二物理地址及所述第二存儲裝置側(cè)的所述第一物理地址雙方。
【專利說明】對邏輯地址和物理地址之間的映射進(jìn)行管理的存儲系統(tǒng)、
存儲控制器及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施方式涉及對邏輯地址和物理地址之間的映射進(jìn)行管理的存儲系統(tǒng)、存儲控制器及方法。
【背景技術(shù)】
[0002]近年來,開發(fā)了具備訪問速度不同的第一及第二存儲裝置的存儲系統(tǒng)。在此,設(shè)第一存儲裝置為高速且小容量,第二存儲裝置與第一存儲裝置相比,為低速且大容量。存儲系統(tǒng)通過將第一存儲裝置(以下稱為高速存儲裝置)及第二存儲裝置(以下稱為低速存儲裝置)階層式地組合而實(shí)現(xiàn)。因此,存儲系統(tǒng)也稱為階層化存儲系統(tǒng)。
[0003]存儲系統(tǒng)還具備存儲控制器。存儲控制器根據(jù)來自主計算機(jī)(以下稱為主機(jī))的讀取請求或?qū)懭胝埱?,訪問高速存儲裝置或低速存儲裝置。一般來說,邏輯單元(即邏輯卷)分割為具有一定尺寸的多個數(shù)據(jù)塊加以管理。這樣的數(shù)據(jù)塊被稱為組塊(chunk)。邏輯單元指的是,由主機(jī)作為邏輯性的存儲驅(qū)動而識別的儲存區(qū)域。邏輯單元內(nèi)的組塊的集合中的、至少由主機(jī)利用的組塊的邏輯地址被映射到高速存儲裝置或低速存儲裝置的某一個的物理儲存區(qū)域的物理地址。即,由主機(jī)利用的組塊被映射到高速存儲裝置或低速存儲裝置的某一個。
[0004]存儲控制器按照每個組塊監(jiān)視向該組塊的訪問狀況。作為表示該訪問狀況的指標(biāo),通常使用以一定期間(監(jiān)視期間)內(nèi)的每個組塊的訪問頻率(使用頻率)或訪問數(shù)據(jù)量的總和為代表的訪問統(tǒng)計信息。
[0005]存儲控制器基于被分配了低速存儲裝置側(cè)的物理儲存區(qū)域的每個組塊的訪問狀況(訪問統(tǒng)計信息),選擇需要高速訪問的組塊。即,存儲控制器將訪問頻率較高或訪問數(shù)據(jù)量較多的組塊作為需要高速訪問的組塊而選擇。將這樣的需要高速訪問的組塊的訪問狀況稱為第一狀況。
[0006]在此,設(shè)基于第一監(jiān)視期間內(nèi)的每個組塊的訪問狀況而選擇了第一組塊。此外,設(shè)第一組塊的第一邏輯地址被映射到低速存儲裝置的第一物理儲存區(qū)域的第一物理地址。
[0007]這種情況下,存儲控制器為了實(shí)現(xiàn)向第一組塊的高速訪問,將第一組塊的映射狀態(tài)如下變更。即,存儲控制器將第一組塊的第一邏輯地址重新映射到高速存儲裝置的第二物理儲存區(qū)域的第二物理地址。即,存儲控制器將第一組塊的映射目的地從低速存儲裝置側(cè)變更為高速存儲裝置側(cè)。同時,存儲控制器將第一物理儲存區(qū)域的數(shù)據(jù)移動到第二物理儲存區(qū)域,然后將第一物理儲存區(qū)域釋放。以后,從主機(jī)請求向第一組塊的訪問的情況下,存儲控制器訪問第二物理儲存區(qū)域。由此,與重新映射前相比,能夠更高速地執(zhí)行向第一組塊的訪問請求(即,向訪問頻率較高或訪問數(shù)據(jù)量較多的組塊的訪問請求)。
[0008]此外,存儲控制器基于被分配了高速存儲裝置側(cè)的物理儲存區(qū)域的每個組塊的訪問狀況(訪問統(tǒng)計信息),選擇不需要高速訪問的組塊。即,存儲控制器將訪問頻率較低或訪問數(shù)據(jù)量較少的組塊作為不需要高速訪問的組塊而選擇。將這樣的不需要高速訪問的組塊的訪問狀況稱為第二狀況。
[0009]在此,設(shè)將第一組塊重新映射到高速存儲裝置側(cè)后,第一監(jiān)視期間接下來的第二監(jiān)視期間內(nèi)的第一組塊的訪問狀況從第二狀況變化為第一狀況。這種情況下,存儲控制器取得低速存儲裝置的第三物理儲存區(qū)域,將第一組塊的映射目的地再次變更為低速存儲裝置側(cè)。同時,存儲控制器將第二物理儲存區(qū)域的數(shù)據(jù)移動到第三物理儲存區(qū)域,然后將第二物理儲存區(qū)域釋放。以后,從主機(jī)請求向第一組塊的訪問的情況下,存儲控制器訪問第三物理儲存區(qū)域。
[0010]在先技術(shù)文獻(xiàn)
[0011]專利文獻(xiàn)
[0012]專利文獻(xiàn)1:日本特開2007-4710號公報
【發(fā)明內(nèi)容】
[0013]發(fā)明所要解決的技術(shù)課題
[0014]如上所述,每當(dāng)經(jīng)過監(jiān)視期間,選擇應(yīng)該被重新映射的組塊。但是,在第一監(jiān)視期間內(nèi)向第二組塊的訪問狀況在接下來的第二監(jiān)視期間內(nèi)未必相同。例如,設(shè)向第二組塊的訪問狀況處于第一狀況和第二狀況的邊界附近。在這樣的第二組塊中,頻繁執(zhí)行重新映射的可能性較高。即,第二組塊的映射狀態(tài)頻繁變更,從低速存儲裝置向高速存儲裝置的數(shù)據(jù)移動和從高速存儲裝置向低速存儲裝置的數(shù)據(jù)移動頻繁發(fā)生的可能性較高。將這樣的現(xiàn)象稱為狀態(tài)轉(zhuǎn)變的振動。
[0015]此外,通常處于第二狀況的第三組塊的訪問狀況例如僅在單一的監(jiān)視期間內(nèi)變化為第一狀況的情況下,也發(fā)生如下的映射狀態(tài)的轉(zhuǎn)變。即,也發(fā)生第三組塊暫時被映射到高速存儲裝置(更詳細(xì)地說,是高速存儲裝置的物理儲存區(qū)域)、然后再次被映射到低速存儲裝置的情況。相反,通常處于第一狀況的第四組塊的訪問狀況僅在單一的監(jiān)視期間內(nèi)變化為第二狀況的情況下,也發(fā)生如下的映射狀態(tài)的轉(zhuǎn)變。即,也發(fā)生第四組塊暫時被映射到低速存儲裝置、然后再次被映射到高速存儲裝置的情況。存儲控制器難以預(yù)測這些情況。
[0016]在映射狀態(tài)的轉(zhuǎn)變時,如上述那樣發(fā)生數(shù)據(jù)移動。即,對于成為映射狀態(tài)的轉(zhuǎn)變對象的組塊整體來說,發(fā)生從低速存儲裝置向高速存儲裝置的數(shù)據(jù)移動、或從高速存儲裝置向低速存儲裝置的數(shù)據(jù)移動。向高速存儲裝置的數(shù)據(jù)移動伴隨著從低速存儲裝置的數(shù)據(jù)讀取,向低速存儲裝置的數(shù)據(jù)移動伴隨著向低速存儲裝置的數(shù)據(jù)寫入。因此,在每個監(jiān)視期間內(nèi)執(zhí)行的映射狀態(tài)變更處理中,如果成為對象的組塊的數(shù)量變多,則向低速存儲裝置的訪問需要大量時間,整體的處理時間變長。
[0017]本發(fā)明所要解決的課題為,提供一種能夠縮短邏輯地址和物理地址之間的映射狀態(tài)的變更所需的處理時間的存儲系統(tǒng)、存儲控制器及方法。
[0018]解決課題所采用的技術(shù)手段
[0019]根據(jù)實(shí)施方式,存儲系統(tǒng)具備:第一存儲裝置、第二存儲裝置、以及存儲控制器。所述第二存儲裝置與所述第一存儲裝置相比,為低速且大容量。所述存儲控制器控制向所述第一存儲裝置的訪問及向所述第二存儲裝置的訪問。所述存儲控制器具備:映射管理部、地址變換部、訪問控制器。所述映射管理部對邏輯單元內(nèi)的第一尺寸的各組塊處于第一狀態(tài)、第二狀態(tài)或第三狀態(tài)中的哪個狀態(tài)進(jìn)行管理,所述第一狀態(tài)是,所述組塊的邏輯地址通過第一類型的映射信息被映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第二狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息被映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第三狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息被映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,并且通過第二類型的映射信息被映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址。所述地址變換部將來自主機(jī)裝置的讀取請求或?qū)懭胝埱笏付ǖ倪壿嫷刂罚儞Q為通過所述第一類型的映射信息而映射到的所述第一存儲裝置或所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址。所述訪問控制器基于所述變換后的物理地址,訪問所述第一存儲裝置或所述第二存儲裝置。所述映射管理部對所述邏輯單元內(nèi)的每個組塊監(jiān)視向該組塊的訪問狀況。在向第一組塊的訪問狀況為需要高速訪問的第一狀況、且所述第一組塊處于所述第二狀態(tài)的情況下,所述映射管理部將所述第一組塊從所述第二狀態(tài)變更為所述第三狀態(tài)。在從所述第二狀態(tài)變更為所述第三狀態(tài)后還繼續(xù)所述第一狀況的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài)。在從所述第二狀態(tài)變更為所述第三狀態(tài)后、向所述第一組塊的訪問狀況變化為不需要所述高速訪問的第二狀況的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài)。
【專利附圖】
【附圖說明】
[0020]圖1是表示實(shí)施方式的計算機(jī)系統(tǒng)的典型的硬件構(gòu)成的框圖。
[0021]圖2是主要示出圖1所示的存儲控制器的典型的功能構(gòu)成的框圖。
[0022]圖3是表示邏輯單元具備組塊的集合的例子的圖。
[0023]圖4是用于說明在該實(shí)施方式中應(yīng)用的3種映射狀態(tài)的例子的圖。
[0024]圖5是用于說明在該實(shí)施方式中應(yīng)用的3種映射狀態(tài)的例子的圖。
[0025]圖6是表示地址變換信息及位圖的數(shù)據(jù)構(gòu)造例的圖。
[0026]圖7是表示地址變換信息中包含的逆變換表的數(shù)據(jù)構(gòu)造例的圖。
[0027]圖8是表示轉(zhuǎn)變候選列表的數(shù)據(jù)構(gòu)造例的圖。
[0028]圖9是用于說明該實(shí)施方式中的讀取處理的典型順序的流程圖。
[0029]圖10是用于說明該實(shí)施方式中的寫入處理的典型順序的流程圖。
[0030]圖11是表示用于說明該實(shí)施方式中的映射狀態(tài)變更處理的典型順序的流程圖的一部分的圖。
[0031]圖12是表示用于說明該映射狀態(tài)變更處理的典型順序的流程圖的剩余部分的圖。
[0032]圖13是用于說明該實(shí)施方式中的第一狀態(tài)變更處理的典型順序的流程圖。
[0033]圖14是用于說明該實(shí)施方式中的第二狀態(tài)變更處理的典型順序的流程圖。
[0034]圖15是用于說明該實(shí)施方式中的第三狀態(tài)變更處理的典型順序的流程圖。
[0035]圖16是用于說明該實(shí)施方式中的第四狀態(tài)變更處理的典型順序的流程圖。
【具體實(shí)施方式】
[0036]以下,參照【專利附圖】
【附圖說明】各種實(shí)施方式。
[0037]圖1是表示實(shí)施方式的計算機(jī)系統(tǒng)的典型的硬件構(gòu)成的框圖。圖1所示的計算機(jī)系統(tǒng)包括存儲系統(tǒng)10及主計算機(jī)(以下稱為主機(jī))20。存儲系統(tǒng)10經(jīng)由主機(jī)接口總線30與主機(jī)20連接。在本實(shí)施方式中,主機(jī)接口總線30是光纖通道(FC)。但是,主機(jī)接口總線30也可以是小型計算機(jī)系統(tǒng)接口(SCSI)、串行連接SCSI (SAS)、因特網(wǎng)SCSI (iSCSI)、以太網(wǎng)(注冊商標(biāo))、或串行AT連接(SATA)這樣的FC以外的接口總線。
[0038]主機(jī)20是服務(wù)器或客戶個人計算機(jī)(客戶PC)這樣的物理計算機(jī)。在主機(jī)20內(nèi),用于訪問存儲系統(tǒng)10內(nèi)的數(shù)據(jù)的應(yīng)用程序進(jìn)行動作。按照該應(yīng)用程序,主機(jī)20經(jīng)由主機(jī)接口總線30利用存儲系統(tǒng)10。
[0039]存儲系統(tǒng)10具備:高速存儲裝置(第一存儲裝置)11、低速存儲裝置(第二存儲裝置)12、及存儲控制器13。高速存儲裝置11例如由高速且低容量的快閃存儲裝置構(gòu)成。低速存儲裝置12例如由比高速存儲裝置11低速且大容量的硬盤驅(qū)動(HDD)陣列裝置構(gòu)成。該HDD陣列裝置(即作為低速存儲裝置12使用的HDD陣列裝置)例如是具備多個HDD的RAID(Redundant Arrays of Inexpensive Disks或Redundant Arrays of Independent Disks:廉價冗余磁盤陣列或獨(dú)立磁盤冗余陣列)構(gòu)造的存儲裝置。
[0040]另一方面,快閃存儲裝置(即作為高速存儲裝置11使用的快閃存儲裝置)例如是具備搭載有多個快閃存儲器的存儲板的群的RAID構(gòu)造的存儲裝置。在本實(shí)施方式中,存儲板的各個群不具有與HDD之間的互換性。但是,也可以代替存儲板的各個群,而使用具有與HDD之間的互換性的固態(tài)驅(qū)動(SSD )。
[0041]高速存儲裝置11及低速存儲裝置12經(jīng)由存儲接口總線14與存儲控制器13連接。在本實(shí)施方式中,存儲接口總線14是FC (光纖通道)。但是,存儲接口總線14與主機(jī)接口總線30同樣,也可以是FC以外的接口總線。
[0042]存儲控制器13從主機(jī)20受理通過邏輯地址的指定而進(jìn)行的讀取請求或?qū)懭胝埱?。存儲控制?3通過地址變換功能將指定的邏輯地址變換為表示該邏輯地址被映射的存儲裝置內(nèi)的物理儲存區(qū)域的物理地址(更詳細(xì)地說,是存儲裝置的裝置編號及物理地址)。存儲控制器13基于該物理地址,訪問高速存儲裝置11或低速存儲裝置12。
[0043]存儲控制器13具備:CPU131、存儲器132及HDD133。CPU131按照保存在后述的控制程序區(qū)域132a中的控制程序的程序代碼,執(zhí)行存儲控制器13所請求的處理。
[0044]存儲器132例如是使用多個DRAM而構(gòu)成的易失性存儲器。存儲器132比高速存儲裝置11更加高速。HDD123是本地存儲裝置,用于保存后述的控制程序及地址變換信息。另外,也可以取代HDD123而使用搭載有多個快閃存儲器的存儲裝置。
[0045]存儲器132包括:控制程序區(qū)域132a、工作區(qū)域132b、高速緩存區(qū)域132c、地址變換信息區(qū)域132d及寫入位置信息區(qū)域132e??刂瞥绦騾^(qū)域132a用于保存由CPU131執(zhí)行的控制程序。該控制程序預(yù)先保存在HDD133中,在存儲控制器13啟動時從該HDD133加載到控制程序區(qū)域132a中。
[0046]工作區(qū)域132b用于保存在CPU131執(zhí)行控制程序時利用的臨時性數(shù)據(jù)。高速緩存區(qū)域132c作為用于臨時保存從高速存儲裝置11或低速存儲裝置12讀取的數(shù)據(jù)的高速緩存而使用。
[0047]地址變換信息區(qū)域132d用于保存地址變換信息。寫入位置信息區(qū)域132e用于保存寫入位置信息。地址變換信息及寫入位置信息留待后述。
[0048]在本實(shí)施方式中,存儲控制器13如圖1所示,與主機(jī)20獨(dú)立地配置。但是,存儲控制器13也可以內(nèi)置于主機(jī)20。這種情況下,存儲控制器13 (更詳細(xì)地說,是存儲控制器13的功能)也可以使用主機(jī)20所具有的操作系統(tǒng)(OS)的功能的一部分來實(shí)現(xiàn)。
[0049]此外,存儲控制器13也可以存在于在主機(jī)20的卡槽中安裝使用的卡中。此外,存儲控制器13的一部分也可以內(nèi)置于主機(jī)20,而該存儲控制器13的剩余部分存在于卡中。此外,主機(jī)20、存儲控制器13、高速存儲裝置11及低速存儲裝置12的一部分或全部也可以收納在I個殼體內(nèi)。
[0050]圖2是主要表示圖1所示的存儲控制器13的典型的功能構(gòu)成的框圖。存儲控制器13具備:邏輯單元管理部134、地址變換部135、訪問統(tǒng)計收集部136及訪問控制器137。在本實(shí)施方式中,上述功能要素134?137是通過由圖1所示的存儲控制器13的CPU131執(zhí)行控制程序來實(shí)現(xiàn)的軟件模塊。但是,功能要素134?137的一部分或全部也可以由硬件豐吳塊實(shí)現(xiàn)。
[0051]邏輯單元管理部134對I個以上的邏輯單元進(jìn)行管理。邏輯單元指的是,由主機(jī)20作為邏輯的存儲驅(qū)動而識別的儲存區(qū)域。在本實(shí)施方式中,為了簡化說明,設(shè)由邏輯單元管理部134管理I個邏輯單元LU (參照圖3)。邏輯單元管理部134將邏輯單元LU的儲存區(qū)域(更詳細(xì)地說,是邏輯儲存區(qū)域)整體分割為第一尺寸(例如4兆字節(jié))的組塊(更詳細(xì)地說,是邏輯組塊)CHK并管理。即,邏輯單元LU具備組塊CHK的集合。這種情況下,高速存儲裝置11及低速存儲裝置12的儲存區(qū)域整體也分割為與組塊CHK同一尺寸的物理儲存區(qū)域PSA加以管理。
[0052]圖3表示邏輯單元LU具備包含組塊CHKl?CHKlO的組塊CHK的集合的例子。在本實(shí)施方式中,設(shè)想存儲系統(tǒng)10作為以塊為單位被訪問的塊設(shè)備發(fā)揮功能的情況。因此,各組塊CHK分割為第二尺寸的塊加以管理。該第二尺寸是第一尺寸(4兆字節(jié))的η分之I(η為大于I的整數(shù))。在本實(shí)施方式中,第二尺寸為512字節(jié),因此η為8,192 (4兆字節(jié)/512字節(jié))。S卩,各組塊CHK具備8,192塊。
[0053]再次參照圖2。邏輯單元管理部134通過將高速存儲裝置11及低速存儲裝置12的儲存區(qū)域虛擬化,來定義(構(gòu)建)邏輯單元LU。在本實(shí)施方式中,邏輯單元LU比高速存儲裝置11及低速存儲裝置12的容量的總和更加大容量。邏輯單元LU也被稱為邏輯卷。以該邏輯單元LU為對象來執(zhí)行從利用存儲系統(tǒng)10的主機(jī)20這樣的裝置進(jìn)行的讀取/寫入。
[0054]邏輯單元管理部134包括映射管理部134a。映射管理部134a使用地址變換信息區(qū)域132d、寫入位置信息區(qū)域132e、及工作區(qū)域132b,管理邏輯單元LU內(nèi)的每個組塊CHK的映射狀態(tài)。組塊CHK被設(shè)定為第一狀態(tài)、第二狀態(tài)及第三狀態(tài)中的某一個狀態(tài)。
[0055]第一狀態(tài)指的是,組塊CHK的邏輯地址通過第一類型的映射信息MIa而被映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域的物理地址的狀態(tài)。在以后的說明中,將第一狀態(tài)稱為通常的高速狀態(tài)(或高速狀態(tài))。
[0056]第二狀態(tài)指的是,邏輯地址通過第一類型的映射信息MIa而被映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域的物理地址的狀態(tài)。在以后的說明中,將第二狀態(tài)稱為低速狀態(tài)。
[0057]第三狀態(tài)指的是,邏輯地址通過第一類型的映射信息MIa而被映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域的物理地址、且通過第二類型的映射信息MIb而被映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域的物理地址的狀態(tài)。在以后的說明中,將第三狀態(tài)稱為偽高速狀態(tài)。
[0058]映射管理部134a對于邏輯單元LU內(nèi)的每個組塊CHK,監(jiān)視向該組塊CHK的訪問狀況。更詳細(xì)地說,映射管理部134a通過參照訪問統(tǒng)計信息,監(jiān)視向各組塊CHK的訪問狀況。在本實(shí)施方式中,訪問統(tǒng)計信息是各組塊CHK的第一類型的映射信息MIa中包含的訪問計數(shù)器CNT的值。映射管理部134a基于向各組塊CHK的訪問狀況,變更該組塊CHK的映射狀態(tài)。
[0059]地址變換部135基于地址變換信息,將來自主機(jī)20的讀取請求或?qū)懭胝埱笏付ǖ倪壿嫷刂稬Aa變換為高速存儲裝置11或低速存儲裝置12的物理地址PAa(更詳細(xì)地說,是裝置編號DN及物理地址PAa )。
[0060]訪問統(tǒng)計收集部136收集表示向各組塊CHK的訪問狀況的訪問統(tǒng)計信息。如前述那樣,訪問統(tǒng)計信息是各組塊CHK的第一類型的映射信息MIa中包含的訪問計數(shù)器CNT(即,與組塊CHK對應(yīng)的訪問計數(shù)器CNT)的值。在此,將與組塊CHKt對應(yīng)的訪問計數(shù)器標(biāo)記為CNT_t。
[0061]在本實(shí)施方式中,訪問計數(shù)器CNT_t用于對向組塊CHKt的訪問次數(shù)進(jìn)行計數(shù)。更詳細(xì)地說,訪問計數(shù)器CNT_t用于將向組塊CHKt的讀取訪問及寫入訪問的雙方的次數(shù)作為訪問次數(shù)進(jìn)行計數(shù)。每當(dāng)開始了預(yù)先決定的訪問狀況的監(jiān)視期間,訪問計數(shù)器CNT_t被清除為初始值O。在本實(shí)施方式中,監(jiān)視期間是一定的。但是,監(jiān)視期間并不必須是一定的。這種情況下,將訪問計數(shù)器CNT_t的值按照監(jiān)視期間的長度進(jìn)行歸一化即可。
[0062]此外,訪問計數(shù)器CNT_t也可以用于對向組塊CHKt的訪問的數(shù)據(jù)量的總和、例如讀取訪問及寫入訪問的兩個訪問的數(shù)據(jù)量的總和進(jìn)行計數(shù)。
[0063]訪問控制器137基于從邏輯地址LAa變換來的物理地址PAa (裝置編號DN及物理地址PAa),訪問高速存儲裝置11或低速存儲裝置12。
[0064]存儲器132如圖1及圖2所示,具有工作區(qū)域132b、地址變換信息區(qū)域132d及寫入位置信息區(qū)域132e。工作區(qū)域132b的一部分區(qū)域如圖2所示,用于保存轉(zhuǎn)變候選列表CL。地址變換信息區(qū)域132d用于保存地址變換信息ATI。地址變換信息ATI如圖2所示,包含散列表HT、地址變換散列列表HL_0?HL_n-l、第二類型的映射信息MIb及逆變換表ITT。寫入位置信息區(qū)域132e用于保存寫入位置信息,該寫入位置信息是將數(shù)據(jù)被寫入的位置與各組塊相對應(yīng)地以塊為單位加以表示的信息。在本實(shí)施方式中,作為寫入位置信息而使用位圖BM。這些信息保存在HDD133中,例如在存儲系統(tǒng)10啟動時從HDD133加載到存儲器132中。此外,加載到存儲器132中的信息也可以適時地或在存儲系統(tǒng)10的電源切斷時保存到HDD133中。
[0065]圖4及圖5是用于說明在本實(shí)施方式中應(yīng)用的3種映射狀態(tài)的例子的圖。在圖4中,邏輯單元LU內(nèi)的組塊CHKl及CHK2處于通常的高速狀態(tài)。即,組塊CHKl及CHK2的邏輯地址被映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域PSAal及PSAa2的物理地址。該映射狀態(tài)(即通常的高速狀態(tài))使用第一類型的映射信息Mia加以管理。從主機(jī)20請求向組塊CHKl或CHK2的訪問的情況下,訪問控制器137訪問物理儲存區(qū)域PSAal或PSAa2。
[0066]此外,在圖4中,邏輯單元LU內(nèi)的組塊CHK3?CHK8處于低速狀態(tài)。S卩,組塊CHK3?CHK8的邏輯地址被映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAb3?PSAb8的物理地址。該映射狀態(tài)(即低速狀態(tài))使用第一類型的映射信息Mia加以管理。從主機(jī)20請求向組塊CHK3?CHK8的某一個組塊的訪問的情況下,訪問控制器137訪問物理儲存區(qū)域PSAb3?PSAb8中的對應(yīng)的物理儲存區(qū)域。
[0067]在現(xiàn)有技術(shù)中,各組塊所能夠取得的映射狀態(tài)是上述的高速狀態(tài)(第一狀態(tài))及低速狀態(tài)(第二狀態(tài))這2種。但是,在本實(shí)施方式中,作為各組塊所能夠取得的映射狀態(tài),除了高速狀態(tài)及低速狀態(tài)之外,如前述那樣,還存在作為第三狀態(tài)的偽高速狀態(tài)。
[0068]在圖4中,邏輯單元LU內(nèi)的組塊CHK9及CHKlO處于偽高速狀態(tài)。即,組塊CHK9及CHKlO的邏輯地址被映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域PSAa9及PSAalO,并且也被映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAb9及PSAblO。前者的映射狀態(tài)使用第一類型的映射信息Mia加以管理,后者的映射狀態(tài)使用第二類型的映射信息MIb加以管理。
[0069]這樣,組塊CHK9及CHKlO的映射狀態(tài)(偽高速狀態(tài))使用第一類型的映射信息MIa及第二類型的映射信息MIb加以管理。從這樣的映射可知,處于偽高速狀態(tài)的組塊CHK9及CHKlO的數(shù)據(jù)(實(shí)際數(shù)據(jù))存在于高速存儲裝置11及低速存儲裝置12雙方。
[0070]從主機(jī)20請求向處于偽高速狀態(tài)的組塊CHK9或CHKlO的訪問(讀取訪問或?qū)懭朐L問)的情況下,訪問控制器137訪問物理儲存區(qū)域PSAa9或PSAalO。由此,即使組塊CHK9或CHKlO是訪問頻率較高(或訪問數(shù)據(jù)量較多)的組塊,訪問控制器137也能夠高速地執(zhí)行向該組塊CHK9或CHKlO的訪問請求。
[0071]在此,例如設(shè)為請求向組塊CHKlO的寫入。該寫入請求并不一定是請求向組塊CHKlO整體的寫入。在此,在本實(shí)施方式中,寫入請求也可以想到請求向組塊CHKlO內(nèi)的一部分的區(qū)域的塊單位的寫入。具體地說,映射管理部134a對于包含在組塊中且被寫入(更新)數(shù)據(jù)的塊的位置,使用與該組塊建立了對應(yīng)的位圖BM (參照圖6)進(jìn)行管理。
[0072]接下來,設(shè)處于偽高速狀態(tài)的組塊CHK9及CHKlO的某一方的訪問頻率較高的狀態(tài)是暫時的。在此,設(shè)組塊CHKlO的訪問頻率較高的狀態(tài)是暫時的,該組塊CHKlO例如返回到訪問頻率較低的狀態(tài)。另一方面,設(shè)組塊CHK9的訪問頻率較高的狀態(tài)繼續(xù)。
[0073]這種情況下,映射管理部134a將組塊CHK9從偽高速狀態(tài)變更為通常的高速狀態(tài)。此外,映射管理部134a將組塊CHKlO從偽高速狀態(tài)變更為低速狀態(tài)。圖5是表示包括這時的組塊CHK9及CHKlO的映射狀態(tài)的、組塊CHKl?CHKlO的映射狀態(tài)的例子。
[0074]從圖5可知,組塊CHK9 (更詳細(xì)地說,是組塊CHK9的邏輯地址)僅映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域PSAa9(更詳細(xì)地說,是物理儲存區(qū)域PSAa9的物理地址)。該映射狀態(tài)使用第一類型的映射信息Mia加以管理。組塊CHK9映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAb9的狀態(tài)被解除。即,與組塊CHK9有關(guān)的第二類型的映射信息MIb被無效化。在此,需要注意的是,雖然組塊CHK9的映射狀態(tài)從偽高速狀態(tài)變更為通常的高速狀態(tài),但是在高速存儲裝置11及低速存儲裝置12之間不發(fā)生數(shù)據(jù)移動。
[0075]另一方面,組塊CHKlO僅映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAblO。該映射狀態(tài)使用第一類型的映射信息Mia加以管理。即,第一類型的映射信息MIa從將組塊CHKlO映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域PSAalO的狀態(tài),被更新為將組塊CHKlO映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAblO的狀態(tài)。這種情況下,與組塊CHKlO有關(guān)的第二類型的映射信息MIb被無效化。在此,需要注意的是,雖然組塊CHKlO的映射狀態(tài)從偽高速狀態(tài)變更為低速狀態(tài),但是在高速存儲裝置11及低速存儲裝置12之間不發(fā)生數(shù)據(jù)移動。
[0076]圖6表示地址變換信息ATI及位圖BM (寫入位置信息)的數(shù)據(jù)構(gòu)造例。地址變換信息ATI包括散列表HT及η個地址變換散列列表HL_0?HL_n_l。此外,地址變換信息ATI包括第二類型的映射信息MIb。地址變換信息ATI還包括逆變換表ITT。但是,逆變換表ITT在圖6中未示出。
[0077]散列表HT具有與分別不同的散列值HVO?HVn-1對應(yīng)的入口 ΕΝΤ_0?ENT_n_l。在本實(shí)施方式中,邏輯單元LU內(nèi)的全部組塊CHK的邏輯地址按照該邏輯地址的散列值而分類為η個組GO?Gn-1。組Gi (i = 0,1,…,n_l)是散列值為HVi (HVi = i)的邏輯地址的集合。散列表HT的入口 ENT_i (BP,與散列值HVi對應(yīng)的入口 ENT_i )保存指示地址變換散列列表HL_i的開頭的要素HLE的列表指針LPi。
[0078]地址變換散列列表!1_1的各要素(以下稱為散列列表要素)HLE具有字段Fl及F2。在散列列表要素HLE的字段Fl中設(shè)定有第一類型的映射信息Mia。在散列列表要素HLE的字段F2中設(shè)定有下一指針NPa。下一指針NPa指的是地址變換散列列表HL_i內(nèi)的下一散列列表要素HLE。但是,在地址變換散列列表HL_i內(nèi)的最后的散列列表要素HLE的字段F2中設(shè)定有表示不存在后續(xù)的散列列表要素HLE的NULL (即NPa = NULL)。
[0079]第一類型的映射信息MIa具有字段Fll?F15。在第一類型的映射信息MIa的字段Fll中設(shè)定有邏輯地址LAa。邏輯地址LAa是通過第一類型的映射信息MIa來管理映射狀態(tài)的組塊CHK的邏輯地址,屬于組Gi。
[0080]在第一類型的映射信息MIa的字段F12中設(shè)定有物理地址PAa。物理地址PAa表示組塊CHK的邏輯地址LAa被映射到的存儲裝置(高速存儲裝置11或低速存儲裝置12)內(nèi)的物理儲存區(qū)域PSA。在第一類型的映射信息MIa的字段F13中設(shè)定有裝置編號DN。裝置編號DN是用于識別對字段F13設(shè)定的物理地址PAa所示的物理儲存區(qū)域PSA所屬于的存儲裝置的識別符,是該存儲裝置固有的編號。即,裝置編號DN表示對字段Fll設(shè)定的邏輯地址LAa被映射到的存儲裝置。
[0081]在第一類型的映射信息MIa的字段F14中設(shè)定有映射信息指針MPb。映射信息指針MPb為有效(非NULL)的情況下,該有效的映射信息指針MPb指示第二類型的映射信息MIb。這種情況下,第一類型的映射信息MIa中包含的物理地址PAa表示高速存儲裝置11內(nèi)的物理儲存區(qū)域PSA (= PSAa)。在第一類型的映射信息MIa中包含的邏輯地址LAa不僅映射到高速存儲裝置11內(nèi)的物理儲存區(qū)域PSAa的物理地址PAa,還映射到低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAb的物理地址PAb的情況下,這樣的有效的映射信息指針MPb被設(shè)定到該第一類型的映射信息MIa的字段F14中。
[0082]在第一類型的映射信息MIa的字段F15中設(shè)定有訪問計數(shù)器CNT。訪問計數(shù)器CNT如前述那樣,用于對向基于第一類型的映射信息MIa被管理的組塊CHK (B卩,具有邏輯地址LAa的組塊CHK)的訪問次數(shù)進(jìn)行計數(shù)。這樣,第一類型的映射信息Mia包括邏輯地址LAa、物理地址PAa、裝置編號DN、映射信息指針MPb及訪問計數(shù)器CNT。
[0083]另一方面,第二類型的映射信息MIb具有字段F21及F22。如上述那樣,通過第一類型的映射信息MIa中包含的映射信息指針MPb指示第二類型的映射信息MIb。在第二類型的映射信息MIb (詳細(xì)地說,與第一類型的映射信息MIa建立了關(guān)聯(lián)的第二類型的映射信息MIb)的字段F21中設(shè)定有物理地址PAb。物理地址PAb表示第一類型的映射信息MIa所示的組塊CHK被映射到的低速存儲裝置12內(nèi)的物理儲存區(qū)域PSAb。
[0084]在第二類型的映射信息MIb的字段F22中設(shè)定有位圖指針BP。位圖指針BP表示位圖BM。位圖BM由與第一類型的映射信息MIa所示的組塊CHK中包含的塊的數(shù)8,192 (η=8,192) 一致的位的列構(gòu)成。即,位圖BM的大小為I千字節(jié)(8,192位)。位圖BM的各位用于記錄是否通過向組塊CHK內(nèi)的對應(yīng)的塊的數(shù)據(jù)寫入而將該塊的數(shù)據(jù)更新。S卩,位圖BM表示組塊CHK內(nèi)的數(shù)據(jù)被更新(寫入)的塊的位置(寫入位置)。
[0085]另外,也可以與本實(shí)施方式不同,第二類型的映射信息MIb包含在第一類型的映射信息MIa中。這種情況下,地址變換信息ATI需要與是否存在有效的第二類型的映射信息MIb無關(guān)地、按照每個第一類型的映射信息MIa具備用于第二類型的映射信息MIb的字段。因此,保存地址變換信息ATI所需的存儲器132的區(qū)域(即,地址變換信息區(qū)域132d)的尺寸變大。
[0086]因此,為了防止地址變換信息ATI的尺寸變大,也可以將第一類型的映射信息MIa的某個字段的未使用的I位(例如最上位的位)作為如下的標(biāo)志位來使用。該標(biāo)志位表示第一類型的映射信息MIa所示的組塊CHK的映射狀態(tài)是否處于偽高速狀態(tài)。這種情況下,第二類型的映射信息MIb與第一類型的映射信息MIa同樣地保存在散列列表中即可。
[0087]圖7表示地址變換信息ATI中包含的逆變換表ITT的數(shù)據(jù)構(gòu)造。圖7所示的逆變換表ITT具有N個入口。N表示例如包含在高速存儲裝置11中且具有與組塊CHK相同的尺寸的物理儲存區(qū)域PSA的數(shù)量。逆變換表ITT用于將N個物理儲存區(qū)域PSA的物理地址O?N-1與被映射到該物理地址O?N-1的組塊CHK的邏輯地址建立對應(yīng)地加以保存。在包含在逆變換表ITT中且與未被映射組塊CHK的物理地址建立了對應(yīng)的入口中,取代邏輯地址而設(shè)定有特定的值。在本實(shí)施方式中,該特定的值為負(fù)的值,例如一 I。
[0088]圖7所示的逆變換表ITT用于由地址變換部135將高速存儲裝置11的物理儲存區(qū)域PSA的物理地址高速地變換為邏輯地址(即逆變換)。通過該高速變換,能夠縮短用于變更映射狀態(tài)的后述的映射狀態(tài)變更處理的處理時間。
[0089]另外,由地址變換部135將高速存儲裝置11的物理地址變換為邏輯地址時并不是必須使用逆變換表ITT。S卩,地址變換部135通過搜索地址變換散列列表HL_i,也能夠?qū)⒏咚俅鎯ρb置11的物理地址變換為邏輯地址。但是,與使用逆變換表ITT的情況相比,變換速度降低。此外,地址變換信息ATI除了逆變換表ITT之外,也可以包括用于將低速存儲裝置12的物理地址變換為邏輯地址的逆變換表。
[0090]圖8表示轉(zhuǎn)變候選列表CL的數(shù)據(jù)構(gòu)造例。轉(zhuǎn)變候選列表CL用于將應(yīng)該從低速狀態(tài)變更為偽高速狀態(tài)的組塊CHK作為轉(zhuǎn)變候選加以保存。轉(zhuǎn)變候選列表CL包括列表指針LP、及該轉(zhuǎn)變候選列表CL的要素(以下稱為轉(zhuǎn)變候選列表要素)CLE的排列。列表指針LP指示轉(zhuǎn)變候選列表要素CLE的排列中的開頭的轉(zhuǎn)變候選列表要素CLE。
[0091]各轉(zhuǎn)變候選列表要素CLE具有字段F31及F32。在轉(zhuǎn)變候選列表要素CLE的字段F31中設(shè)定有下一指針NPc。下一指針NPc指示在包含該下一指針NPc的轉(zhuǎn)變候選列表要素CLE之后追加到轉(zhuǎn)變候選列表CL的轉(zhuǎn)變候選列表要素CLE。但是,在最后追加的轉(zhuǎn)變候選列表要素CLE的字段F31中,設(shè)定有表示不存在后續(xù)的轉(zhuǎn)變候選列表要素CLE的NULL (即NPc = NULL)。
[0092]在轉(zhuǎn)變候選列表要素CLE的字段F32中設(shè)定有映射信息指針MIPc。映射信息指針MIPc指示包含表示對應(yīng)的組塊的當(dāng)前的映射狀態(tài)的第一映射信息Mia在內(nèi)的散列列表要素HLE (參照圖6)。
[0093]在本實(shí)施方式中,在訪問處理(讀取處理或?qū)懭胩幚?中向當(dāng)前處于低速狀態(tài)的組塊CHK的訪問次數(shù)達(dá)到閾值(第一閾值)THl的情況下,映射管理部134a將該組塊CHK作為轉(zhuǎn)變候選而追加到轉(zhuǎn)變候選列表CL中。S卩,映射管理部134a將指示與轉(zhuǎn)變候選對應(yīng)的第一類型的映射信息MIa的轉(zhuǎn)變候選列表要素CLE追加到轉(zhuǎn)變候選列表CL中。
[0094]映射管理部134a在映射狀態(tài)變更處理(第一狀態(tài)變更處理)中僅通過參照轉(zhuǎn)變候選列表CL,就能夠簡單地確定應(yīng)該從低速狀態(tài)變更為偽高速狀態(tài)的組塊(轉(zhuǎn)變候選)。但是,并不是必須要有轉(zhuǎn)變候選列表CL。S卩,映射管理部134a通過搜索地址變換散列列表HL_i的散列列表要素HLE,也能夠確定應(yīng)該從低速狀態(tài)變更為偽高速狀態(tài)的組塊。即,映射管理部134a從地址變換散列列表HL_0?HL_n_l搜索訪問計數(shù)器CNT為閾值THl以上且映射信息指針MPb為NULL的第一類型的映射信息MIa即可。但是,低速存儲裝置12的儲存容量比高速存儲裝置11大,所以處于低速狀態(tài)的組塊的數(shù)量通常非常多。因此,與使用轉(zhuǎn)變候選列表CL的情況相比,搜索轉(zhuǎn)變候選所需的時間變長。
[0095]接著,參照圖9說明本實(shí)施方式中的讀取處理。圖9是用于說明讀取處理的典型順序的流程圖。現(xiàn)在設(shè)從主機(jī)20經(jīng)由主機(jī)接口總線30向存儲系統(tǒng)10發(fā)送指定數(shù)據(jù)讀取的讀取請求。并且,設(shè)存儲系統(tǒng)10的存儲控制器13接收來自主機(jī)20的讀取請求。在此,為了簡化說明,設(shè)由邏輯地址LAa_t指定的組塊CHKt (即對象組塊CHKt)的開頭的塊(即對象塊)的數(shù)據(jù)讀取是通過來自主機(jī)20的讀取請求而被請求的。這種情況下,表示對象塊在對象組塊CHKt內(nèi)的相對位置的偏移地址為O。
[0096]在以下的說明中,將與對象組塊CHKt有關(guān)的第一類型的映射信息標(biāo)記為MIa_t。此外,將包含在第一類型的映射信息MI_t中的物理地址及裝置編號分別標(biāo)記為PAa_t&DN_t。此外,將包含在第一類型的映射信息MI_t中的映射信息指針及訪問計數(shù)器分別標(biāo)記為MPb_t及CNT_t。此外,映射信息指針MPb_t為非NULL的情況下,將該映射信息指針MPb_t所指示的第二類型的映射信息標(biāo)記為MIb_t。此外,將包含在第二類型的映射信息MIb_t中的物理地址及位圖指針分別標(biāo)記為PAb_t及BP_t。此外,將位圖指針BP_t所指示的位圖標(biāo)記為BM_t。進(jìn)而,將對象組塊CHKt作為轉(zhuǎn)變候選來表示的轉(zhuǎn)變候選列表CL內(nèi)的轉(zhuǎn)變候選列表要素被標(biāo)記為CLE_t。
[0097]存儲控制器13的地址變換部135基于包含由來自主機(jī)20的讀取請求指定的對象塊在內(nèi)的對象組塊CHKt的邏輯地址LAa_t,計算該邏輯地址LAa_t的散列值HVx(步驟SI)。散列值HVx (HVx = X)是O?η-1中的某I個。
[0098]接下來,地址變換部135取得在與散列值HVx對應(yīng)的散列表HT的入口 ENT_x中設(shè)定的列表指針LPx(步驟S2)。在步驟S2中,地址變換部135從列表指針LPx所指示的地址變換散列列表HL_x檢索包含邏輯地址LAa_t的第一類型的映射信息MIa_t。由此,地址變換部135取得包含在第一類型的映射信息MIa_t中的物理地址PAa_t (更詳細(xì)地說,是物理地址PAa_t及裝置編號DN)。即,地址變換部135將邏輯地址LAa_t變換為物理地址PAa_to另外,在映射信息(地址變換信息)的搜索中,也可以代替地址變換散列列表HL_i,而使用例如平衡樹(balance tree)這樣的其他數(shù)據(jù)構(gòu)造。
[0099]訪問控制器137從物理地址PAa_t示出的高速存儲裝置11或低速存儲裝置12的物理儲存區(qū)域讀取數(shù)據(jù)(實(shí)際數(shù)據(jù))(步驟S3)。但是,對象塊不是對象組塊CHKt內(nèi)的開頭的情況下,地址變換部135需要如下計算數(shù)據(jù)被讀取的物理儲存區(qū)域的物理地址(對象物理地址)。地址變換部135將表示對象塊的對象組塊CHKt內(nèi)的相對位置的偏移地址與物理地址PAa_t相加。由此,計算出對象物理地址。此外,通過包含在第一類型的映射信息MIa_t中的裝置編號DN_t,示出應(yīng)該從高速存儲裝置11或低速存儲裝置12的哪個讀取數(shù)據(jù)。
[0100]執(zhí)行步驟S3后,訪問統(tǒng)計收集部136將包含在第一類型的映射信息MIa_t中的訪問計數(shù)器CNT_t增加I (步驟S4)。訪問計數(shù)器CNT_t增加I后,映射管理部134a通過將該訪問計數(shù)器CNT_t與閾值THl比較,判定該訪問計數(shù)器CNT_t的值CNT_t是否與閾值THl相等(步驟S5 )。訪問計數(shù)器CNT_t是使用第一類型的映射信息MIa_t來表示向映射狀態(tài)被管理的對象組塊CHKt的訪問狀況(訪問頻率)的訪問統(tǒng)計信息。因此,映射管理部134a將計數(shù)器值CNT_t與閾值THl比較,等價于監(jiān)視向?qū)ο蠼M塊CHKt的訪問狀況。
[0101]在計數(shù)器值CNT_t與閾值THl相等的情況下(步驟S5:是),映射管理部134a判定為向?qū)ο蠼M塊CHKt的訪問狀況是需要使用高速存儲裝置11的高速訪問的第一狀況。這種情況下,映射管理部134a判定在步驟S3中被讀取數(shù)據(jù)的存儲裝置是否為低速存儲裝置12(步驟S6)。S卩,映射管理部134a判定包含在第一類型的映射信息MIa_t中的裝置編號DN_t是否表示低速存儲裝置12。進(jìn)一步說明,映射管理部134a判定對象組塊CHKt的映射狀態(tài)是否處于低速狀態(tài)。
[0102]在被讀取數(shù)據(jù)的存儲裝置是低速存儲裝置12的情況下(步驟S6:是),映射管理部134a判定是否需要將處于第一狀況的對象組塊CHKt從低速狀態(tài)變更為偽高速狀態(tài)。這種情況下,映射管理部134a將對象組塊CHKt追加到轉(zhuǎn)變候選列表CL中(步驟S7)。S卩,映射管理部134a將設(shè)定有指示第一類型的映射信息MIa_t的映射信息指針MIPc_t的轉(zhuǎn)變候選列表要素CLE_t追加到轉(zhuǎn)變候選列表CL中。由此,讀取處理結(jié)束。
[0103]另一方面,在計數(shù)器值CNT_t與閾值THl不相等的情況下(步驟S5:否),映射管理部134a判定對象組塊CHKt是否已經(jīng)被追加轉(zhuǎn)變候選列表CL中、或者向該對象組塊CHKt的訪問狀況是不需要高速訪問的第二狀況。前者的情況下,計數(shù)器值CNT_t為閾值THl以上,后者的情況下,計數(shù)器值0階_丨低于閾值THl。這種情況下,讀取處理結(jié)束。此外,被讀取數(shù)據(jù)的存儲裝置不是低速存儲裝置12的情況下(步驟S6:否),讀取處理也結(jié)束。
[0104]接下來,參照圖10說明本實(shí)施方式中的寫入處理。圖10是用于說明寫入處理的典型順序的流程圖?,F(xiàn)在設(shè)從主機(jī)20經(jīng)由主機(jī)接口總線30向存儲系統(tǒng)10發(fā)送指定數(shù)據(jù)寫入的寫入請求。并且,設(shè)存儲系統(tǒng)10的存儲控制器13接收來自主機(jī)20的寫入請求。在此,為了簡化說明,設(shè)向由邏輯地址LAa_t指定的組塊CHKt (即對象組塊CHKt)的開頭的塊(即對象塊)的數(shù)據(jù)寫入是通過來自主機(jī)20的寫入請求而被請求的。
[0105]首先,存儲控制器13的地址變換部135通過執(zhí)行與前述的讀取處理中的步驟SI及S2相當(dāng)?shù)牟襟ESll及S12,來檢索包含邏輯地址LAa_t的第一類型的映射信息MIa_t。
[0106]地址變換部135基于該第一類型的映射信息MIa_t,將邏輯地址LAa_t變換為物理地址PAa_t。
[0107]訪問控制器137在物理地址PAa_t示出的高速存儲裝置11或低速存儲裝置12的物理儲存區(qū)域中寫入數(shù)據(jù)(實(shí)際數(shù)據(jù))(步驟S13)。但是,對象塊不是對象組塊CHKt內(nèi)的開頭的情況下,被寫入數(shù)據(jù)的物理儲存區(qū)域的物理地址如前述那樣,需要使用表示對象塊的對象組塊CHKt內(nèi)的相對位置的偏移地址來計算。執(zhí)行步驟S13后,訪問統(tǒng)計收集部136將包含在第一類型的映射信息MIa_t中的訪問計數(shù)器CNT_t增加I (步驟S14)。
[0108]另一方面,映射管理部134a判定第一類型的映射信息MIa_t中包含的映射信息指針MPb_t是否為非NULL (即有效)(步驟S15)。在映射信息指針MPb_t是非NULL的情況下(步驟S15:是),映射管理部134a進(jìn)入步驟S16。
[0109]在步驟S16中,映射管理部134a首先參照映射信息指針MPb_t所指示的第二類型的映射信息MIb_t,確定該第二類型的映射信息MIb_t中包含的位圖指針BP_t所指示的位圖BM_t。在步驟S16中,映射管理部134a還將包含在位圖BM_t中且與被寫入數(shù)據(jù)的塊的位置對應(yīng)的位設(shè)置為I。
[0110]映射管理部134a執(zhí)行步驟S16后,進(jìn)入步驟S17。此外,映射信息指針MPb_t為NULL的情況下(步驟S15:否),映射管理部134a跳過步驟S16而進(jìn)入步驟S17。在步驟S17中,映射管理部134a判定訪問計數(shù)器CNT_t的值CNT_t是否與閾值THl相等(步驟S17)。在計數(shù)器值CNT_t與閾值THl相等的情況下(步驟S17:是),映射管理部134a判定向?qū)ο蠼M塊CHKt的訪問狀況是需要使用高速存儲裝置11的高速訪問的第一狀況。這種情況下,映射管理部134a判定在步驟S13中被寫入數(shù)據(jù)的存儲裝置是否為低速存儲裝置12 (步驟S18)。
[0111]在被寫入數(shù)據(jù)的存儲裝置是低速存儲裝置12的情況下(步驟S18:是),映射管理部134a判定為需要將處于第一狀況的對象組塊CHKt從低速狀態(tài)變更為偽高速狀態(tài)。這種情況下,映射管理部134a將對象組塊CHKt追加到轉(zhuǎn)變候選列表CL中(步驟S19)。由此,寫入處理結(jié)束。
[0112]另一方面,在計數(shù)器值CNT_t與閾值THl不相等的情況下(步驟S17:否),映射管理部134a判定對象組塊CHKt是否已經(jīng)被追加到轉(zhuǎn)變候選列表CL中、或者向該對象組塊CHKt的訪問狀況是不需要高速訪問的第二狀況。這種情況下,寫入處理結(jié)束。此外,被寫入數(shù)據(jù)的存儲裝置不是低速存儲裝置12的情況下(步驟S18:否),寫入處理也結(jié)束。
[0113]在本實(shí)施方式中,第一類型的映射信息MIa_t中包含的訪問計數(shù)器CNT_t在讀取訪問及寫入訪問中被共通地使用。即,訪問計數(shù)器CNT_t無論讀取訪問還是寫入訪問,都對向組塊CHKt的訪問次數(shù)(訪問頻率)進(jìn)行計數(shù)。但是,第一類型的映射信息MIa_t例如也可以包括對向組塊CHKt的讀取訪問次數(shù)進(jìn)行計數(shù)的第一訪問計數(shù)器及對向該對應(yīng)的組塊CHK的寫入訪問次數(shù)進(jìn)行計數(shù)的第二訪問計數(shù)器。這種情況下,訪問統(tǒng)計收集部136對第一及第二訪問計數(shù)器的值分別賦予讀取訪問及寫入訪問所固有的權(quán)重,取得表示向組塊CHKt的訪問狀況的統(tǒng)計信息即可。此外,訪問計數(shù)器CNT_t也可以用于將向組塊CHKt的讀取訪問或?qū)懭朐L問的某一方的次數(shù)作為訪問次數(shù)來計數(shù)。這相當(dāng)于訪問計數(shù)器CNT_t (或第一及第二訪問計數(shù)器)用于對向組塊CHKt的訪問的數(shù)據(jù)量的總和進(jìn)行計數(shù)的情形。
[0114]接下來,參照圖11及圖12說明在本實(shí)施方式中用于變更組塊的映射狀態(tài)的映射狀態(tài)變更處理。圖11是用于說明映射狀態(tài)變更處理的典型順序的流程圖的一部分的圖,圖12是用于說明同一映射狀態(tài)變更處理的典型順序的流程圖的剩余部分的圖。
[0115]映射管理部134a每當(dāng)經(jīng)過預(yù)先決定的監(jiān)視期間,如下執(zhí)行圖11及圖12的流程圖所示的映射狀態(tài)變更處理。首先,映射管理部134a將變量j設(shè)定為初始值O (步驟S21)。變量j指示逆變換表ITT的第j個入口。逆變換表ITT的第j個入口與高速存儲裝置11的物理地址j (即,由物理地址j指定的物理儲存區(qū)域j)建立了對應(yīng)。
[0116]接下來,映射管理部134a通過參照逆變換表ITT的第j個入口,判定是否存在與高速存儲裝置11的物理儲存區(qū)域j對應(yīng)的組塊CHKx(步驟S22)。映射管理部134a基于在逆變換表ITT的第j個入口中是否設(shè)定有與物理地址j建立對應(yīng)且有效的邏輯地址LAa_x(即一 I以外的值),來執(zhí)行該判定。
[0117]在存在與高速存儲裝置11的物理儲存區(qū)域j對應(yīng)的組塊CHKx的情況下(步驟S22:是),映射管理部134a進(jìn)入步驟S23。在此,存在與物理儲存區(qū)域j對應(yīng)的組塊CHKx指的是,該組塊CHKx的邏輯地址LAa_x映射到該物理儲存區(qū)域j的物理地址j。這種情況下,組塊CHKx處于通常的高速狀態(tài)或偽高速狀態(tài)的某一方的狀態(tài)。
[0118]在此,在步驟S23中,映射管理部134a判定組塊CHKx是否處于偽高速狀態(tài)(步驟S23)。為了進(jìn)行該判定,映射管理部134a通過相當(dāng)于讀取處理中的步驟SI及S2或?qū)懭胩幚碇械牟襟ESll及S12的處理,來檢索包含組塊CHKx的邏輯地址LAa_x在內(nèi)的第一類型的映射信息MIa_x。然后,映射管理部134a在第一類型的映射信息MIa_x所包含的映射信息指針MPb_x為非NULL的情況下,判定為組塊CHKx處于偽高速狀態(tài)。
[0119]這樣,在組塊CHKx處于偽高速狀態(tài)的情況下(步驟S23:是),映射管理部134a進(jìn)入步驟S24。在步驟S24中,映射管理部134a判定第一類型的映射信息MIa_x所包含的訪問計數(shù)器CNT_x的值CNT_x是否小于閾值(第二閾值)TH2。閾值TH2小于閾值THl。
[0120]在計數(shù)器值CNT_x小于閾值TH2的情況下(步驟S24:是),映射管理部134a判定為雖然當(dāng)前組塊CHKx處于偽高速狀態(tài),但是向該組塊CHKx的訪問狀況處于不需要高速訪問的第二狀況。因此,映射管理部134a執(zhí)行用于將組塊CHKx從偽高速狀態(tài)變更為低速狀態(tài)的第四狀態(tài)變更處理(步驟S25)。關(guān)于該第四狀態(tài)變更處理的順序,在后文中說明。映射管理部134a執(zhí)行步驟S25后,進(jìn)入步驟S30。
[0121 ] 與此相對,在計數(shù)器值CNT_x不小于閾值TH2的情況下(步驟S24:否),映射管理部134a進(jìn)入步驟S28。在步驟S28中,映射管理部134a判定計數(shù)器值CNT_x是否為閾值THl以上(步驟S28)。
[0122]在計數(shù)器值CNT_x為閾值THl以上的情況下(步驟S28:是),映射管理部134a判定為向處于偽高速狀態(tài)的組塊CHKx的訪問狀況繼續(xù)為第二狀況。這種情況下,映射管理部134a執(zhí)行用于將組塊CHKx從偽高速狀態(tài)變更為通常的高速狀態(tài)的第三狀態(tài)變更處理(步驟S29)。關(guān)于該第三狀態(tài)變更處理的順序,在后文中說明。映射管理部134a執(zhí)行步驟S29后,進(jìn)入步驟S30。
[0123]與此相對,設(shè)計數(shù)器值CNT_x小于閾值THl (步驟S28:否)。在此,計數(shù)器值CNT_x為閾值TH2以上(步驟S24:否)。這樣,在計數(shù)器值CNT_x為閾值TH2以上(步驟S24:否)且小于閾值THl的情況下(步驟S28:否),管理部134a判定為向處于偽高速狀態(tài)的組塊CHKx的訪問狀況處于第三狀況。第三狀況指的是,向組塊CHKx的訪問狀況處于應(yīng)該保留是需要高速訪問還是不需要高速訪問的判定的狀況。因此,映射管理部134a為了將組塊CHKx維持為偽高速狀態(tài),將步驟S29跳過而進(jìn)入步驟S30。
[0124]另一方面,在組塊CHKx未處于偽高速狀態(tài)的情況下(步驟S23:否),映射管理部134a判定該組塊CHKx是否處于通常的高速狀態(tài)。這種情況下,映射管理部134a與步驟S24同樣,判定第一類型的映射信息MIa_x中包含的訪問計數(shù)器CNT_x的值CNT_x是否小于閾值TH2 (步驟S26)。
[0125]在計數(shù)器值CNT_x小于閾值TH2的情況下(步驟S26:是),映射管理部134a判定為組塊CHKx雖然處于通常的高速狀態(tài),但是向該組塊CHKx的訪問狀況處于不需要高速訪問的第二狀況。因此,映射管理部134a執(zhí)行用于將組塊CHKx從通常的高速狀態(tài)變更為偽高速狀態(tài)的第二狀態(tài)變更處理(步驟S27)。關(guān)于該第二狀態(tài)變更處理的順序,在后文中說明。映射管理部134a執(zhí)行步驟S27后,進(jìn)入步驟S30。
[0126]與此相對,在計數(shù)器值CNT_x不小于閾值TH2的情況下(步驟S26:否),映射管理部134a判定為向處于通常的高速狀態(tài)的組塊CHKx的訪問狀況繼續(xù)為第一狀況。這種情況下,映射管理部134a為了將組塊CHKx維持為通常的高速狀態(tài),將步驟S27跳過而進(jìn)入步驟S30。
[0127]在步驟S30中,映射管理部134a將變量j增加I (步驟S30)。接下來,映射管理部134a判定增加后的變量j是否與高速存儲裝置11的物理地址的最大值(N-1)+ 1、即N相等(步驟S31)。
[0128]在增加后的變量j與N不相等的情況下(步驟S31:否),映射管理部134a為了對高速存儲裝置11的下一物理地址(物理儲存區(qū)域)進(jìn)行處理而返回步驟S22。與此相對,在增加后的變量j與N相等的情況下(步驟S31:是),映射管理部134a判定為已經(jīng)對高速存儲裝置11的全部物理地址(物理儲存區(qū)域)進(jìn)行了處理。這種情況下,映射管理部134a為了將登記在轉(zhuǎn)變候選列表CL中的組塊CHK_t從低速狀態(tài)變更為偽高速狀態(tài),進(jìn)入步驟S32。
[0129]在步驟S32中,映射管理部134a為了參照轉(zhuǎn)變候選列表CL中的開頭的轉(zhuǎn)變候選列表要素CLE,對指示對象的轉(zhuǎn)變候選列表要素CLE的變量P設(shè)定列表指針LP(參照圖8)。映射管理部134a判定變量P (在此為P = LP)是否為NULL (步驟S33)。S卩,判定是否存在變量P指示的有效的轉(zhuǎn)變候選列表要素CLE。
[0130]在此,如圖8所示,設(shè)變量P ( P = LP)不是NULL (步驟S33:否)。這種情況下,存在變量P指示的轉(zhuǎn)變候選列表要素CLE,存在與該轉(zhuǎn)變候選列表要素CLE建立了對應(yīng)的第一類型的映射信息。設(shè)該第一類型的映射信息是與組塊CHK_t建立了對應(yīng)的第一類型的映射信息MIa_t。即,設(shè)登記在變量P所指示的轉(zhuǎn)變候選列表要素CLE中的轉(zhuǎn)變候選是組塊CHK_t。
[0131]這種情況下,映射管理部134a基于第一類型的映射信息MIa_t,執(zhí)行用于將對應(yīng)的轉(zhuǎn)變候選(組塊CHK_t)從低速狀態(tài)變更為偽高速狀態(tài)的第一狀態(tài)變更處理(步驟S34)。該第一狀態(tài)變更處理的順序留待后述。
[0132]映射管理部134a執(zhí)行步驟S34后,進(jìn)入步驟S35。這時,變量P指示在緊之前執(zhí)行的第一狀態(tài)變更處理(步驟S34)中使用的轉(zhuǎn)變候選列表要素CLE。映射管理部134a將變量P更新為該變量P當(dāng)前指示的轉(zhuǎn)變候選列表要素CLE中包含的下一指針NPc (步驟S35)。將該下一指針NPc標(biāo)記為NPc ( P )。S卩,映射管理部134a將變量p更新為NPc ( p )。映射管理部134a執(zhí)行步驟S35后,返回步驟S33。
[0133]這樣,映射管理部134a基于與轉(zhuǎn)變候選列表CL中的全部轉(zhuǎn)變候選列表要素CLE分別建立了對應(yīng)的第一類型的映射信息MIa_t,執(zhí)行用于將對應(yīng)的轉(zhuǎn)變候選(組塊CHK_t)從低速狀態(tài)變更為偽高速狀態(tài)的第一狀態(tài)變更處理。即,映射管理部134a以登記在轉(zhuǎn)變候選列表CL中的全部轉(zhuǎn)變候選為對象,執(zhí)行第一狀態(tài)變更處理。
[0134]在此,設(shè)以最后的轉(zhuǎn)變候選為對象執(zhí)行第一狀態(tài)變更處理(步驟S34)。這時,變量P指示轉(zhuǎn)變候選列表CL的最后的轉(zhuǎn)變候選列表要素CLE。映射管理部134a將該變量P更新為最后的轉(zhuǎn)變候選列表要素CLE中包含的下一指針NPc (即NPc (P))(步驟S35)。
[0135]最后的轉(zhuǎn)變候選列表要素CLE中包含的下一指針NPc ( P = NPc ( P ))為NULL (步驟S33:是)。這種情況下,判定為映射管理部134a以登記在轉(zhuǎn)變候選列表CL中的全部轉(zhuǎn)變候選為對象執(zhí)行了第一狀態(tài)變更處理。因此,映射管理部134a將轉(zhuǎn)變候選列表CL從工作區(qū)域132b刪除,并結(jié)束映射狀態(tài)變更處理。
[0136]接下來,參照圖13說明第一狀態(tài)變更處理的詳細(xì)情況。圖13是用于說明第一狀態(tài)變更處理的典型順序的流程圖。在此,設(shè)應(yīng)該從低速狀態(tài)變更為偽高速狀態(tài)的轉(zhuǎn)變候選為組塊CHK_t?;谂c變量P指示的轉(zhuǎn)變候選列表要素CLE建立了對應(yīng)的第一類型的映射信息MIa_t來確定組塊CHK_t。
[0137]第一類型的映射信息MIa_t包括邏輯地址LAa_t、物理地址PAa_t、裝置編號DV_t及映射信息指針MPb_t。在該例子中,裝置編號DV_t表示低速存儲裝置12。此外,映射信息指針MPb_t是無效映射信息指針(MPb_t = NULL)。即,組塊CHK_t處于低速狀態(tài),該組塊CHK_t的數(shù)據(jù)僅保存在低速存儲裝置12中。此外,設(shè)物理地址PAa_t為第一物理地址。
[0138]映射管理部134a從包含在高速存儲裝置11中且具有與組塊CHK_t同一尺寸的空閑物理儲存區(qū)域的集合中,選擇I個空閑物理儲存區(qū)域(步驟S41 )。即,映射管理部134a從高速存儲裝置11取得I個空閑物理儲存區(qū)域。設(shè)取得的物理儲存區(qū)域的物理地址為第二物理地址。
[0139]接下來,映射管理部134a將保存在由第一物理地址指定的低速存儲裝置12的物理儲存區(qū)域中的數(shù)據(jù)(即組塊CHK_t的數(shù)據(jù))復(fù)制到由第二物理地址指定的高速存儲裝置11的物理儲存區(qū)域(即,在步驟S41中取得的物理儲存區(qū)域)(步驟S42)。由此,組塊CHK_t的數(shù)據(jù)存在于高速存儲裝置11及低速存儲裝置12雙方。
[0140]接下來,映射管理部134a從存儲器132的寫入位置信息區(qū)域132e取得用于位圖BM_t的區(qū)域,該BM_t用于記錄被寫入(更新)了組塊CHK_t內(nèi)的數(shù)據(jù)后的的塊的位置(步驟
543)。映射管理部134a將取得的區(qū)域的全部位、即位圖BM_t的全部位清除為“O”(步驟
544)。
[0141]接下來,映射管理部134a從存儲器132的地址變換信息區(qū)域132d取得用于第二類型的映射信息MIb_t的區(qū)域(步驟S45)。然后,映射管理部134a將指示清除后的位圖BM_t的位圖指針BP_t設(shè)定到第二類型的映射信息MIb_t的字段F22中(步驟S46)。此外,映射管理部134a將與當(dāng)前組塊CHK_t的邏輯地址LAa_t相對應(yīng)地設(shè)定到第一類型的映射信息MIa_t的物理地址PAa_t (即第一物理地址)作為PAb_t,設(shè)定到第二類型的映射信息MIb_t中(步驟S47)。即,將第一物理地址設(shè)定到第二類型的映射信息MIb_t的字段F21中。
[0142]接下來,映射管理部134a將指示第二類型的映射信息MIb_t的映射信息指針MPb設(shè)定到第一類型的映射信息MIa_t的字段F14中(步驟S48)。S卩,映射管理部134a將包含在第一類型的映射信息MIa_t中的無效映射信息指針MPb_t (MPb_t = NULL)更新為指示第二類型的映射信息MIb_t的有效的映射信息指針MPb_t。
[0143]接下來,映射管理部134a將指定組塊CHK_t的數(shù)據(jù)被復(fù)制到的高速存儲裝置11的物理儲存區(qū)域的第二物理地址作為PAa_t設(shè)定到第一類型的映射信息MIa_t中(步驟S49)。即,將第二物理地址設(shè)定到第二類型的映射信息MIb_t的字段F21中。由此,組塊CHK_t從該組塊CHK_t的邏輯地址LAa_t僅映射到低速存儲裝置12側(cè)的第一物理地址的低速狀態(tài),轉(zhuǎn)變?yōu)樵撨壿嫷刂稬Aa_t映射到高速存儲裝置11側(cè)的第二物理地址及低速存儲裝置12側(cè)的第一物理地址雙方的偽高速狀態(tài)。
[0144]映射管理部134a還對與第二物理地址(B卩,組塊CHK_t的數(shù)據(jù)復(fù)制到的第二物理地址)建立了對應(yīng)的逆變換表ITT的入口設(shè)定組塊CHK_t的邏輯地址LAa_t(步驟S50)。由此,關(guān)于I個轉(zhuǎn)變候選(組塊CHK_t)的第一狀態(tài)變更處理結(jié)束。
[0145]在此,設(shè)從組塊CHK_t (即轉(zhuǎn)變?yōu)閭胃咚贍顟B(tài)的組塊CHK_t)的數(shù)據(jù)讀取或向組塊CHK_t的數(shù)據(jù)寫入,是從主機(jī)20向存儲控制器13請求的。這種情況下,從前述的讀取處理及寫入處理可知,基于與該組塊CHK_t建立了對應(yīng)的第一類型的映射信息Mia,來執(zhí)行從組塊CHK_t的數(shù)據(jù)讀取或向組塊CHK_t的數(shù)據(jù)寫入。S卩,組塊CHK_t的邏輯地址LAa_t映射到的高速存儲裝置11的第二物理地址所指定的物理儲存區(qū)域被訪問。由此,向處于偽高速狀態(tài)的組塊CHK_t的訪問和向處于通常的高速狀態(tài)的組塊的訪問同樣地高速化。
[0146]接下來,參照圖14說明第二狀態(tài)變更處理的詳細(xì)情況。圖14是用于說明第二狀態(tài)變更處理的典型順序的流程圖。在此,設(shè)應(yīng)該從通常的高速狀態(tài)變更為偽高速狀態(tài)的轉(zhuǎn)變候選是組塊CHKx。此外,設(shè)與組塊CHKx建立了對應(yīng)的第一類型的映射信息是MIa_x,該第一類型的映射信息MIa_x包括邏輯地址LAa_x、物理地址PAa_x、裝置編號DV_x及映射信息指針MPb_x。在該例子中,裝置編號DV_x表示高速存儲裝置11。此外,映射信息指針MPb_X是無效映射信息指針(MPb_x = NULL)。
[0147]映射管理部134a從包含在低速存儲裝置12中且具有與組塊CHKx同一尺寸的空閑物理儲存區(qū)域的集合中選擇I個空閑物理儲存區(qū)域(步驟S61)。S卩,映射管理部134a從低速存儲裝置12取得I個空閑物理儲存區(qū)域。設(shè)取得的物理儲存區(qū)域的物理地址為物理地址PAb_x。
[0148]接下來,映射管理部134a將保存在由物理地址PAa_x指定的高速存儲裝置11的物理儲存區(qū)域中的數(shù)據(jù)(即組塊CHKx的數(shù)據(jù))復(fù)制到由物理地址PAb_x指定的低速存儲裝置12的物理儲存區(qū)域(即,在步驟S61中取得的物理儲存區(qū)域)(步驟S62)。由此,組塊CHKx的數(shù)據(jù)存在于高速存儲裝置11及低速存儲裝置12雙方。
[0149]接下來,映射管理部134a從存儲器132的寫入位置信息區(qū)域132e取得用于位圖BM_x的區(qū)域,該位圖BM_x用于記錄組塊CHKx內(nèi)的數(shù)據(jù)被寫入的位置(步驟S63)。映射管理部134a將位圖BM_x的全部位清除為“O”(步驟S64)。
[0150]接下來,映射管理部134a從存儲器132的地址變換信息區(qū)域132d取得用于第二類型的映射信息MIb_x的區(qū)域(步驟S65)。然后,映射管理部134a將指示清除后的位圖BM_X的位圖指針BP_x設(shè)定到第二類型的映射信息MIb_x的字段F22中(步驟S66)。此外,映射管理部134a將指定組塊CHKx的數(shù)據(jù)復(fù)制到的低速存儲裝置12的物理儲存區(qū)域的物理地址PAb_x設(shè)定到第二類型的映射信息MIb_x的字段F21中(步驟S67)。
[0151]接下來,映射管理部134a將指示第二類型的映射信息MIb_x的映射信息指針MPb_X設(shè)定到第一類型的映射信息MIa_x的字段F14中(步驟S68)。S卩,映射管理部134a將包含在第一類型的映射信息MIa_x中的無效映射信息指針MPb_x (MPb_x = NULL)更新為指示第二類型的映射信息MIb_x的有效的映射信息指針MPb_x。由此,關(guān)于組塊CHKx的第二狀態(tài)變更處理結(jié)束。
[0152]接下來,參照圖15說明第三狀態(tài)變更處理的詳細(xì)情況。圖15是用于說明第三狀態(tài)變更處理的典型順序的流程圖。在此,設(shè)應(yīng)該從偽高速狀態(tài)變更為通常的高速狀態(tài)的轉(zhuǎn)變候選為組塊CHKx。此外,設(shè)與組塊CHKx建立了對應(yīng)的第一類型的映射信息為MIa_x,該第一類型的映射信息MIa_x包括邏輯地址LAa_x、物理地址PAa_x、裝置編號DV_x及映射信息指針MPb_x。在該例子中,裝置編號DV_x表示高速存儲裝置11。此外,映射信息指針MPb_X為非NULL (有效),指示第二類型的映射信息MIb_x。
[0153]首先,映射管理部134a將在第二類型的映射信息MIb_x中設(shè)定的物理地址PAb_x所指定的低速存儲裝置12側(cè)的物理儲存區(qū)域釋放(步驟S71)。接下來,映射管理部134a將在第二類型的映射信息MIb_x中設(shè)定的位圖指針BP_x所指示的位圖BM_x的區(qū)域釋放(步驟 S72)。
[0154]此外,映射管理部134a將第二類型的映射信息MIb_x的區(qū)域釋放(步驟S73)。接下來,映射管理部134a將第一類型的映射信息MIa_x中包含的有效的映射信息指針MPb_x更新為NULL (無效映射信息指針MPb_x)(步驟S74)。即,映射管理部134a在第一類型的映射信息MIa_x的字段F14中設(shè)定NULL。由此,關(guān)于組塊CHKx的第三狀態(tài)變更處理結(jié)束。
[0155]接下來,參照圖16說明第四狀態(tài)變更處理的詳細(xì)情況。圖16是用于說明第四狀態(tài)變更處理的典型順序的流程圖。在此,設(shè)應(yīng)該從偽高速狀態(tài)變更為低速狀態(tài)的轉(zhuǎn)變候選是組塊CHKx。此外,設(shè)與組塊CHKx建立了對應(yīng)的第一類型的映射信息為MIa_x,該第一類型的映射信息MIa_x包括邏輯地址LAa_x、物理地址PAa_x、裝置編號DV_x及映射信息指針MPb_x。在該例子中,裝置編號DV_x表示高速存儲裝置11。此外,映射信息指針MPb_x為非NULL (有效),指示第二類型的映射信息MIb_x。第二類型的映射信息MIb_x包括物理地址PAb_x及位圖指針BP_x。位圖指針BP_x指示位圖BM_x。
[0156]首先,映射管理部134a參照位圖指針BP_x所指示的位圖BM_x,檢索所有被設(shè)置為“ I ”的位(步驟S81 )。在步驟S81中,映射管理部134a確定包含在物理地址PAa_x所指定的高速存儲裝置11的物理儲存區(qū)域中且與檢索到的位對應(yīng)的全部塊。在步驟S81中,映射管理部134a將確定的全部塊(第一塊)的數(shù)據(jù)復(fù)制(反映)到物理地址PAb_x指定的低速存儲裝置12的物理儲存區(qū)域內(nèi)的對應(yīng)的塊(第二塊)中。由此,物理地址PAb_x指定的低速存儲裝置12的物理儲存區(qū)域的數(shù)據(jù)與物理地址PAa_x指定的高速存儲裝置11的物理儲存區(qū)域的數(shù)據(jù)一致。
[0157]接下來,映射管理部134a將當(dāng)前的物理地址PAb_x(g卩,在當(dāng)前第二類型的映射信息MIb_x中設(shè)定的物理地址PAb_x)作為PAa_x,設(shè)定到第一類型的映射信息MIa_x的字段F12中(步驟S82)。接下來,映射管理部134a將位圖BM_x的區(qū)域釋放(步驟S83),并且將第二類型的映射信息MIb_x的區(qū)域釋放(步驟S84)。
[0158]接下來,映射管理部134a將第一類型的映射信息MIa_x中包含的有效的映射信息指針MPb_x更新為NULL (無效映射信息指針MPb_x)(步驟S85)。S卩,映射管理部134a在第一類型的映射信息MIa_x的字段F14中設(shè)定NULL。然后,映射管理部134a在與物理地址PAa_x建立了對應(yīng)的逆變換表ITT的入口中設(shè)定無效值(一 I)(步驟S86)。由此,關(guān)于組塊CHKx的第四狀態(tài)變更處理結(jié)束。
[0159]將本實(shí)施方式中的上述動作和效果如下整理并示出。例如,設(shè)與第一組塊對應(yīng)的第一訪問計數(shù)器的值在第一監(jiān)視期間內(nèi)達(dá)到閾值THl (步驟S5或S17:是)。S卩,設(shè)在第一監(jiān)視期間內(nèi)向第一組塊的訪問次數(shù)(頻率)為閾值THl以上,處于需要高速訪問的第一狀況。而且,設(shè)第一組塊在第一監(jiān)視期間的開始時處于低速狀態(tài)(第二狀態(tài))(步驟S6或S18:是)。
[0160]這種情況下,如果是現(xiàn)有技術(shù),則第一組塊在第一監(jiān)視期間接下來的第二監(jiān)視期間開始之前,從低速狀態(tài)變更為高速狀態(tài)(相當(dāng)于本實(shí)施方式中的通常的高速狀態(tài))。在此,第一組塊的數(shù)據(jù)從低速存儲裝置12復(fù)制到高速存儲裝置11。這時,低速存儲裝置12側(cè)的數(shù)據(jù)被丟棄(無效化)。即,第一組塊的數(shù)據(jù)從低速存儲裝置12移動到高速存儲裝置11。
[0161]在此,設(shè)向第一組塊的訪問狀況通常處于不需要高速訪問的第二狀況,僅在第一監(jiān)視期間內(nèi)變化為需要高速訪問的第一狀況。這種情況下,在以往技術(shù)中,通常處于低速狀態(tài)的第一組塊只在第一監(jiān)視期間之后從低速狀態(tài)變更為高速狀態(tài),在接下來的第二監(jiān)視期間之后再次變更為低速狀態(tài)。
[0162]第一組塊的狀態(tài)像這樣轉(zhuǎn)變的情況下,伴隨著該狀態(tài)轉(zhuǎn)變的數(shù)據(jù)移動所需的向低速存儲裝置12的訪問,分別在從低速狀態(tài)向高速狀態(tài)轉(zhuǎn)變時和從高速狀態(tài)向低速狀態(tài)轉(zhuǎn)變時發(fā)生。這樣,由于伴隨著臨時的映射狀態(tài)的變更的數(shù)據(jù)移動,向低速存儲裝置12的訪問增加,這會導(dǎo)致每當(dāng)經(jīng)過監(jiān)視時間而進(jìn)行的映射狀態(tài)變更處理的效率降低。這樣的映射狀態(tài)變更處理的效率降低,在向第一組塊的訪問次數(shù)在閾值THl的附近和閾值TH2的附近的范圍內(nèi)變動的情況下也會發(fā)生。即,映射狀態(tài)變更處理的效率降低在映射狀態(tài)的轉(zhuǎn)變發(fā)生振動的情況下也會發(fā)生。為了防止該振動,如本實(shí)施方式中所應(yīng)用的那樣,可以想到使用2個閾值THl及TH2(TH2 < TH1)。閾值THl是用于判定是否將映射狀態(tài)向高速側(cè)變更的第一判定條件。閾值TH2是用于判定是否將映射狀態(tài)向低速側(cè)變更的第二判定條件。但是,若僅簡單應(yīng)用2個閾值THl及TH2,例如閾值THl及TH2之差較小的情況下,難以充分防止?fàn)顟B(tài)轉(zhuǎn)變的振動。相反,若閾值THl及TH2之差較大,則本來應(yīng)該變更本來映射狀態(tài)的組塊的映射狀態(tài)卻未變更的可能性變大。
[0163]相對于此,在本實(shí)施方式中,在根據(jù)第一監(jiān)視期間內(nèi)的訪問次數(shù)而判定為第一組塊的映射狀態(tài)應(yīng)該向例如高速側(cè)變更的情況下,該第一組塊在第一監(jiān)視期間之后從低速狀態(tài)變更為偽高速狀態(tài)(步驟S34)。在此,第一組塊的數(shù)據(jù)從低速存儲裝置12復(fù)制到高速存儲裝置11。這時,為了維持第一組塊被映射到低速存儲裝置12的第一物理儲存區(qū)域的狀態(tài),基于第一類型的映射信息(舊映射信息),設(shè)定第二類型的映射信息。此外,為了將第一組塊也映射到高速存儲裝置11側(cè),從高速存儲裝置11取得空閑的第二物理儲存區(qū)域。然后,第一類型的映射信息從將第一組塊映射到第一物理儲存區(qū)域的狀態(tài),更新為將該第一組塊映射到第二物理儲存區(qū)域的狀態(tài)。由此,第一組塊的數(shù)據(jù)存在于高速存儲裝置11及低速存儲裝置12雙方中。
[0164]因此,在本實(shí)施方式中,在第一組塊處于偽高速狀態(tài)的第二監(jiān)視期間內(nèi)沒有請求向該第一組塊的寫入的情況下,即使在該第二監(jiān)視期間之后從偽高速狀態(tài)變更為低速狀態(tài),也不會伴隨著該狀態(tài)轉(zhuǎn)變而發(fā)生向低速存儲裝置12的訪問。因此,根據(jù)本實(shí)施方式,第一組塊如“低速狀態(tài)一偽高速狀態(tài)一低速狀態(tài)”這樣轉(zhuǎn)變的情況下,與現(xiàn)有技術(shù)中的第一組塊如“低速狀態(tài)一高速狀態(tài)一低速狀態(tài)”這樣轉(zhuǎn)變的情況相比,能夠?qū)⑾虻退俅鎯ρb置12的訪問減少I次。即,根據(jù)本實(shí)施方式,能夠防止每當(dāng)經(jīng)過監(jiān)視期間而執(zhí)行的映射狀態(tài)變更處理的效率降低,減少該狀態(tài)變更處理對存儲系統(tǒng)10的運(yùn)用帶來的影響。
[0165]映射狀態(tài)變更處理通常在對存儲系統(tǒng)10的本來的運(yùn)用(通常的業(yè)務(wù))影響較小的時間帶(例如向存儲系統(tǒng)10的訪問較少的時間帶)進(jìn)行。因此,對存儲系統(tǒng)10的存儲控制器13來說,要求以短時間執(zhí)行映射狀態(tài)變更處理。本實(shí)施方式的上述效果能夠滿足這樣的要求。該效果在頻繁進(jìn)行映射狀態(tài)變更處理的情況下變得尤其顯著。
[0166]在本實(shí)施方式中,如前述那樣,被請求了向第一組塊的訪問的情況下,如果該第一組塊處于偽高速狀態(tài),則實(shí)際的訪問以高速存儲裝置11的第二物理儲存區(qū)域?yàn)閷ο蠖M(jìn)行。因此,如果在第一組塊處于偽高速狀態(tài)的期間請求了向該第一組塊的寫入,則實(shí)際數(shù)據(jù)僅被寫入高速存儲裝置11的第二物理儲存區(qū)域。由此,低速存儲裝置12的第一物理儲存區(qū)域的數(shù)據(jù)和高速存儲裝置11的第二物理儲存區(qū)域的數(shù)據(jù)不一致。
[0167]因此,在本實(shí)施方式中,在第一組塊處于偽高速狀態(tài)的監(jiān)視期間執(zhí)行向該第一組塊的寫入,并且在經(jīng)過了該監(jiān)視期間后該第一組塊從偽高速狀態(tài)變更為低速狀態(tài)的情況下(步驟S25),也發(fā)生向低速存儲裝置12的訪問。但是,在該訪問中,僅是在高速存儲裝置11的第二物理儲存區(qū)域中發(fā)送了寫入(更新)的塊的數(shù)據(jù)(更新數(shù)據(jù))被反映(寫入)到低速存儲裝置12的第一物理儲存區(qū)域的對應(yīng)的塊。該更新數(shù)據(jù)的反映之后,第一類型的映射信息從將第一組塊映射到第二物理儲存區(qū)域的狀態(tài)更新為將該第一組塊映射到第一物理儲存區(qū)域的狀態(tài),第二物理儲存區(qū)域的數(shù)據(jù)被丟棄(無效化)。
[0168]監(jiān)視期間經(jīng)過后,在第一組塊從偽高速狀態(tài)變更為低速狀態(tài)的狀況下,該監(jiān)視期間中的第一組塊的訪問次數(shù)較少,低于閾值TH2。這種情況下,期待在監(jiān)視期間內(nèi)應(yīng)該寫入第二物理儲存區(qū)域的塊的數(shù)量也較少。因此,使暫時轉(zhuǎn)變?yōu)閭胃咚贍顟B(tài)的第一組塊返回低速狀態(tài),因此,即使發(fā)生了向第一物理儲存區(qū)域的數(shù)據(jù)寫入,該數(shù)據(jù)的量也大幅削減。因此,伴隨著從偽高速狀態(tài)向低速狀態(tài)的變更的、向第一物理儲存區(qū)域的數(shù)據(jù)寫入所需的時間,與將第二物理儲存區(qū)域的全部塊(在此為8,192塊)的數(shù)據(jù)反映(寫入)到第一物理儲存區(qū)域的情況相比更短。這樣,根據(jù)本實(shí)施方式,向臨時從低速狀態(tài)變更為偽高速狀態(tài)的第一組塊的訪問次數(shù)在下一監(jiān)視期間變少的情況下,能夠使該第一組塊在短時間內(nèi)返回低速狀態(tài)。由此,處于偽高速狀態(tài)且訪問次數(shù)變少的第一組塊的存在能夠防止對存儲系統(tǒng)10整體的效率帶來不良影響。
[0169]此外,在本實(shí)施方式中,數(shù)據(jù)被寫入的第二物理儲存區(qū)域的塊位置使用位圖BM來管理。該位圖BM保存在比高速存儲裝置11更高速的存儲器132的寫入位置信息區(qū)域132e中。在本實(shí)施方式中,在請求了向第一組塊的寫入的情況下,如果該第一組塊處于偽高速狀態(tài),則實(shí)際數(shù)據(jù)被高速地寫入第二物理儲存區(qū)域。這時,為了記錄實(shí)際數(shù)據(jù)被寫入的第二物理儲存區(qū)域內(nèi)的塊的位置,在位圖BM的對應(yīng)的位中設(shè)置I。但是,該位操作在存儲器132上進(jìn)行。因此,在處于偽高速狀態(tài)的第一組塊中寫入數(shù)據(jù)時的性能,與在處于通常的高速狀態(tài)的組塊中寫入數(shù)據(jù)時的性能幾乎沒有差別。
[0170]位圖BM保存在存儲器132中的情況下,例如由于存儲系統(tǒng)10的電源的突然切斷,該位圖BM所示的寫入位置信息可能丟失。但是,實(shí)際數(shù)據(jù)自身殘留在高速存儲裝置11 (第二物理儲存區(qū)域)中。因此,寫入位置信息丟失的情況下,將第二物理儲存區(qū)域整體的數(shù)據(jù)復(fù)制到低速存儲裝置12 (第一物理儲存區(qū)域)中即可。
[0171]另外,設(shè)想在本實(shí)施方式中應(yīng)用的存儲系統(tǒng)10作為以塊為單位被訪問的塊設(shè)備發(fā)揮功能的情況。但是,存儲系統(tǒng)10也可以以文件為單位被訪問。這種情況下,為了由存儲控制器13 (訪問控制器137)記錄實(shí)際數(shù)據(jù)寫入的高速存儲裝置11的物理儲存區(qū)域內(nèi)的位置,并不是必須使用位圖。例如,存儲控制器13也可以使用表示物理儲存區(qū)域內(nèi)的數(shù)據(jù)被寫入的位置的偏移地址及該數(shù)據(jù)的組被依次記錄的寫入位置信息。
[0172]此外,在本實(shí)施方式中,如上述那樣向從低速狀態(tài)變更為偽高速狀態(tài)的第一組塊的訪問次數(shù)在第二監(jiān)視期間內(nèi)也為閾值THl以上的情況下(步驟S284:是),該第一組塊從偽高速狀態(tài)變更為通常的高速狀態(tài)(步驟S29)。為了進(jìn)行該變更,將第一組塊映射到第一物理儲存區(qū)域的狀態(tài)解除(無效化)即可,不需要數(shù)據(jù)的復(fù)制(移動)。因此,根據(jù)本實(shí)施方式,能夠在短時間內(nèi)從偽高速狀態(tài)向通常的高速狀態(tài)變更。在此,殘留在低速存儲裝置12 (第一物理儲存區(qū)域)中的數(shù)據(jù)和寫入位置信息被無效化。
[0173]接下來,設(shè)在第三監(jiān)視期間內(nèi)第一組塊處于通常的高速狀態(tài)(步驟S23:否),在該第三監(jiān)視期間內(nèi)向該第一組塊的訪問次數(shù)低于閾值TH2 (步驟S26:是)。這種情況下,如果是現(xiàn)有技術(shù),第一組塊在第三監(jiān)視期間之后從高速狀態(tài)變更為低速狀態(tài)。在此,第一組塊的數(shù)據(jù)從高速存儲裝置11復(fù)制到低速存儲裝置12。這時,高速存儲裝置11側(cè)的數(shù)據(jù)被丟棄。即,第一組塊的數(shù)據(jù)從高速存儲裝置11移動到低速存儲裝置12。
[0174]在此,設(shè)在第三監(jiān)視期間的接下來的第四監(jiān)視期間內(nèi)向第一組塊的訪問次數(shù)為閾值THl以上。這種情況下,如果是現(xiàn)有技術(shù),第一組塊在第四監(jiān)視期間之后從低速狀態(tài)再次變更為高速狀態(tài)。這時,低速存儲裝置12的數(shù)據(jù)移動到高速存儲裝置11。
[0175]與此相對,在本實(shí)施方式中,第一組塊在第三監(jiān)視期間之后從高速狀態(tài)(通常的高速狀態(tài))變更為偽高速狀態(tài)(步驟S27)。在此,從低速存儲裝置12取得空閑的第一物理儲存區(qū)域。然后,第一組塊的數(shù)據(jù)從高速存儲裝置11 (第二物理儲存區(qū)域)復(fù)制到低速存儲裝置12 (第一物理儲存區(qū)域)。這時,為了使第一組塊也映射到低速存儲裝置12的第一物理儲存區(qū)域,設(shè)定第二類型的映射信息。而且,在本實(shí)施方式中,維持第一組塊映射到高速存儲裝置11的第二物理儲存區(qū)域的狀態(tài)。S卩,第一組塊的數(shù)據(jù)存在于高速存儲裝置11及低速存儲裝置12雙方。
[0176]因此,根據(jù)本實(shí)施方式,在第四監(jiān)視期間內(nèi)向第一組塊的訪問次數(shù)成為閾值THl以上的情況下(步驟S28:是),不需要從低速存儲裝置12讀取數(shù)據(jù),就能夠在短時間內(nèi)將使第一組塊從偽高速狀態(tài)返回通常的高速狀態(tài)。
[0177]這樣,根據(jù)本實(shí)施方式,作為各組塊的狀態(tài),通過使用位于低速狀態(tài)和高速狀態(tài)之間的偽高速狀態(tài),與以往相比,能夠縮短與發(fā)生了預(yù)想之外的訪問數(shù)的變化或映射狀態(tài)的變更的振動的組塊的映射有關(guān)的處理時間。此外,根據(jù)本實(shí)施方式,處于低速狀態(tài)且預(yù)測為訪問數(shù)較多的組塊在短時間內(nèi)臨時變更為偽高速狀態(tài),如果預(yù)測為在該偽高速狀態(tài)下訪問數(shù)依然較多,則在短時間內(nèi)變更為高速狀態(tài)(通常的高速狀態(tài))。向處于偽高速狀態(tài)的組塊的訪問能夠與向處于通常的高速狀態(tài)的組塊的訪問同樣地進(jìn)行高速訪問。此外,即使向處于偽高速狀態(tài)的組塊的訪問狀況變化而應(yīng)該將該組塊變更為低速狀態(tài)的情況下,也能夠?qū)⒃摻M塊在短時間內(nèi)變更為低速狀態(tài)。因此,在本實(shí)施方式中應(yīng)用的狀態(tài)轉(zhuǎn)變的方法防止?fàn)顟B(tài)轉(zhuǎn)變的振動,因此與簡單地將從低速狀態(tài)向高速狀態(tài)的移動拖延的方法相比更加優(yōu)越。
[0178]同樣,根據(jù)本實(shí)施方式,預(yù)測為處于高速狀態(tài)(通常的高速狀態(tài))且訪問數(shù)較少的組塊,在短時間內(nèi)臨時變更為偽高速狀態(tài),如果預(yù)測為在該偽高速狀態(tài)下訪問數(shù)依然較少,則在短時間內(nèi)變更為低速狀態(tài)。此外,即使向處于偽高速狀態(tài)的組塊的訪問狀況變化而應(yīng)該將該組塊變更為通常的高速狀態(tài)的情況下,也能夠?qū)⒃摻M塊在短時間內(nèi)變更為通常的高速狀態(tài)。因此,在本實(shí)施方式中應(yīng)用的狀態(tài)轉(zhuǎn)變的方法防止?fàn)顟B(tài)轉(zhuǎn)變的振動,因此與簡單地將從高速狀態(tài)向低速狀態(tài)的移動拖延的方法相比更加優(yōu)越。
[0179]另外,在所述實(shí)施方式中,只要在高速存儲裝置11中存在空閑的物理儲存區(qū)域,登記在轉(zhuǎn)變候選列表CL中的組塊就全部從低速狀態(tài)變更為偽高速狀態(tài)。但是,登記在轉(zhuǎn)變候選列表CL中的全部組塊如下述那樣,并不是必須都變更為偽高速狀態(tài)。在此,將登記在轉(zhuǎn)變候選列表CL中的組塊群(即,應(yīng)該從低速狀態(tài)變更為偽高速狀態(tài)的候選群)稱為第一候選群。此外,將處于通常的高速狀態(tài)且訪問數(shù)低于閾值TH2的組塊群(即,應(yīng)該從通常的高速狀態(tài)變更為偽高速狀態(tài)的候選群)稱為第二候選群。此外,將處于偽高速狀態(tài)的群稱為第三候選群。
[0180]映射管理部134a將第一候選群按照向該第二候選群的訪問次數(shù)(或數(shù)據(jù)量的總和)從高到低地排序。此外,映射管理部134a將第二候選群按照向該第二候選群的訪問次數(shù)(或數(shù)據(jù)量的總和)從低到高地排序。映射管理部134a進(jìn)一步將第三候選群按照向該第三候選群的訪問次數(shù)(或數(shù)據(jù)量的總和)從低到高及從高到低地排序。這種情況下,按照訪問次數(shù)(或數(shù)據(jù)量的總和)從高到低地排序的候選群表示應(yīng)該從偽高速狀態(tài)變更為通常的高速狀態(tài)的候選的順序。與此相對,按照訪問次數(shù)(或數(shù)據(jù)量的總和)從低到高地排序的候選群表示應(yīng)該從偽高速狀態(tài)變更為低速狀態(tài)的候選的順序。
[0181]映射管理部134a基于上述排序的結(jié)果,從各個候選群的上位的候選起按順序決定映射狀態(tài)的轉(zhuǎn)變目標(biāo),使得處于通常的高速狀態(tài)的組塊的數(shù)量和處于偽高速狀態(tài)的組塊的數(shù)量的總和成為規(guī)定數(shù)量或進(jìn)入規(guī)定范圍的數(shù)量。即,映射管理部134a從各個候選群的上位的候選起按順序決定是轉(zhuǎn)變?yōu)橥ǔ5母咚贍顟B(tài)、偽高速狀態(tài)或低速狀態(tài)中的某個、還是維持當(dāng)前的狀態(tài)。由此,能夠?qū)⒂成涞奖鹊退俅鎯ρb置12更小容量的高速存儲裝置11的物理儲存區(qū)域中的組塊的數(shù)量收斂為規(guī)定數(shù)量或規(guī)定的范圍內(nèi)。
[0182]此外,在所述實(shí)施方式中,閾值THl及TH2固定為預(yù)先決定的值。但是,在映射狀態(tài)變更處理中,在應(yīng)該變更為更高速側(cè)的候選(組塊)的數(shù)量CNl與應(yīng)該變更為更低速側(cè)的候選(組塊)的數(shù)量CN2之間存在不平衡的情況下,也可以從下次的映射狀態(tài)變更處理開始,變更閾值THl及TH2。例如,可以在CNl及CN2之差的絕對值超過規(guī)定數(shù)α的情況下,變更閾值THl及ΤΗ2。例如,也可以將在第一監(jiān)視期間之后處于偽高速狀態(tài)的全部組塊的訪問數(shù)的最大值和最小值分別作為接下來的第二監(jiān)視期間中的新的閾值THl及ΤΗ2。
[0183]此外,在所述實(shí)施方式中,在映射狀態(tài)的變更的判定中使用2個閾值THl及ΤΗ2。但是,在映射狀態(tài)的變更的判定中也可以只使用I個閾值TH。這種情況下,映射管理部134a在向處于低速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)超過閾值TH的情況下,將該組塊變更為偽高速狀態(tài),在向處于偽高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)超過閾值TH的情況下,將該組塊變更為通常的高速狀態(tài)。此外,映射管理部134a在向處于通常的高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)低于閾值TH的情況下,將該組塊變更為偽高速狀態(tài),在向處于偽高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)低于閾值TH的情況下,將該組塊變更為低速狀態(tài)。
[0184]此外,在映射狀態(tài)的變更的判定中,除了閾值THl及TH2,也可以還使用閾值TH3及TH4。在此,閾值TH3大于閾值THl,閾值TH4小于閾值TH2。即,在閾值TH1、TH2、TH3及TH4之間存在如下關(guān)系:
[0185]TH4<TH2<TH1<TH3。
[0186]這種情況下,在向處于低速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)超過閾值THl的情況下,映射管理部134a判定為向該組塊的訪問狀況處于需要高速訪問的第一狀況。并且,映射管理部134a將該組塊變更為偽高速狀態(tài)。此外,在向處于偽高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)超過閾值TH3的情況下,映射管理部134a判定為在變更到偽高速狀態(tài)之后也繼續(xù)是第一狀況。并且,映射管理部134a將該組塊變更為通常的高速狀態(tài)。
[0187]此外,在向處于通常的高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)低于閾值TH2的情況下,映射管理部134a判定為向該組塊的訪問狀況處于不需要高速訪問的第二狀況。并且,映射管理部134a將該組塊變更為偽高速狀態(tài)。此外,在向處于偽高速狀態(tài)的組塊的訪問次數(shù)(或數(shù)據(jù)量的總和)低于閾值TH4的情況下,映射管理部134a判定為在變更到偽高速狀態(tài)之后也繼續(xù)是第二狀況。并且,映射管理部134a將該組塊變更為低速狀態(tài)。
[0188]根據(jù)以上說明的至少I個實(shí)施方式,能夠提供一種能夠縮短邏輯地址和物理地址之間的映射狀態(tài)的變更所需的處理時間的存儲系統(tǒng)、存儲控制器及方法。
[0189]以上說明了本發(fā)明的幾個實(shí)施方式,但是這些實(shí)施方式只是作為例子提出,不意圖限定發(fā)明的范圍。這些新的實(shí)施方式可以通過其他各種方式來實(shí)施,在不脫離發(fā)明的主旨的范圍內(nèi),可以進(jìn)行各種省略、置換、變更。這些實(shí)施方式及其變形包含在發(fā)明的范圍及主旨內(nèi),也包含在權(quán)利要求所記載的發(fā)明及其等價的范圍內(nèi)。
【權(quán)利要求】
1.一種存儲系統(tǒng),具備: 第一存儲裝置; 第二存儲裝置,與所述第一存儲裝置相比為低速且大容量;以及 存儲控制器,控制向所述第一存儲裝置的訪問及向所述第二存儲裝置的訪問; 所述存儲控制器具備: 映射管理部,對邏輯單元內(nèi)的第一尺寸的各組塊處于第一狀態(tài)、第二狀態(tài)或第三狀態(tài)中的哪個狀態(tài)進(jìn)行管理,所述第一狀態(tài)是,所述組塊的邏輯地址通過第一類型的映射信息映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第二狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第三狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,并且通過第二類型的映射信息映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址; 地址變換部,將來自主機(jī)裝置的讀取請求或?qū)懭胝埱笏付ǖ倪壿嫷刂?,變換為通過所述第一類型的映射信息而映射到的所述第一存儲裝置或所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址;以及 訪問控制器,基于變換后的所述物理地址,訪問所述第一存儲裝置或所述第二存儲裝置; 所述映射管理部對于所述邏輯單元內(nèi)的每個組塊,監(jiān)視向該組塊的訪問狀況, 在向第一組塊的訪問狀況為需要高速訪問的第一狀況、并且所述第一組塊處于所述第二狀態(tài)的情況下,所述映射管理部將所述第一組塊從所述第二狀態(tài)變更為所述第三狀態(tài), 在從所述第二狀態(tài)向所述第三狀態(tài)變更后所述第一狀況還繼續(xù)的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài), 在從所述第二狀態(tài)向所述第三狀態(tài)變更后、向所述第一組塊的訪問狀況變化為不需要所述高速訪問的第二狀況的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài)。
2.如權(quán)利要求1所述的存儲系統(tǒng),其中, 所述映射管理部為了將所述第一組塊從所述第二狀態(tài)變更為所述第三狀態(tài),將通過與所述第一組塊對應(yīng)的所述第一類型的第一映射信息被所述第一組塊的第一邏輯地址映射的第一物理地址所指定的所述第二存儲裝置內(nèi)的第一物理儲存區(qū)域的數(shù)據(jù),復(fù)制到新取得的所述第一存儲裝置內(nèi)的第二物理儲存區(qū)域,并且用所述第二物理儲存區(qū)域的第二物理地址置換在所述第一映射信息中設(shè)定的所述第一物理地址,并且將所述第一物理地址設(shè)定到與所述第一組塊對應(yīng)的所述第二類型的第二映射信息中。
3.如權(quán)利要求2所述的存儲系統(tǒng),其中, 在所述第一組塊處于所述第三狀態(tài)、并且通過第一寫入請求指定了向所述第一組塊的數(shù)據(jù)寫入的情況下,所述訪問控制器在所述第一物理儲存區(qū)域及所述第二物理儲存區(qū)域中的所述第二物理儲存區(qū)域中寫入實(shí)際數(shù)據(jù)。
4.如權(quán)利要求3所述的存儲系統(tǒng),其中, 所述映射管理部對于處于所述第三狀態(tài)的每個組塊,基于寫入位置信息,來管理由于寫入訪問而數(shù)據(jù)被變更的寫入位置, 在所述第一組塊處于所述第三狀態(tài)、并且按照向所述第一組塊的所述數(shù)據(jù)寫入的指定而在所述第二物理儲存區(qū)域中寫入了所述實(shí)際數(shù)據(jù)的情況下,所述映射管理部將表示數(shù)據(jù)被變更的寫入位置的信息追加到與所述第一組塊建立了對應(yīng)的第一寫入位置信息中, 所述映射管理部為了將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài),將所述第一寫入位置信息表示的所述第二物理儲存區(qū)域內(nèi)的變更后的數(shù)據(jù)反映到所述第一物理儲存區(qū)域中,并且用所述第二映射信息中設(shè)定的所述第一物理地址置換所述第一映射信息中設(shè)定的所述第二物理地址,并且將所述第二映射信息無效化,并且將用于所述第一寫入位置信息的第一儲存區(qū)域及所述第二物理儲存區(qū)域釋放。
5.如權(quán)利要求4所述的存儲系統(tǒng),其中, 所述映射管理部為了將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài),將所述第二映射信息無效化,并且將所述第一儲存區(qū)域及所述第一物理儲存區(qū)域釋放。
6.如權(quán)利要求4所述的存儲系統(tǒng),其中, 所述存儲控制器還具備比所述第一存儲裝置更高速的存儲器,該存儲器具有保存所述寫入位置信息的儲存區(qū)域。
7.如權(quán)利要求1所述的存儲系統(tǒng),其中, 在向所述第一組塊的訪問狀況為所述第二狀況、并且所述第一組塊處于所述第一狀態(tài)的情況下,所述映射管理部將所述第一組塊從所述第一狀態(tài)變更為所述第三狀態(tài), 在從所述第一狀態(tài)向所述第三狀態(tài)變更后所述第二狀況還繼續(xù)的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài), 在從所述第一狀態(tài)向所述第三狀態(tài)變更后、向所述第一組塊的訪問狀況變化為所述第一狀況的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài)。
8.如權(quán)利要求7所述的存儲系統(tǒng),其中, 所述映射管理部為了將所述第一組塊從所述第一狀態(tài)變更為所述第三狀態(tài),將通過與所述第一組塊對應(yīng)的所述第一類型的第一映射信息被所述第一組塊的第一邏輯地址映射的第二物理地址所指定的所述第一存儲裝置內(nèi)的第二物理儲存區(qū)域的數(shù)據(jù),復(fù)制到新取得的所述第二存儲裝置內(nèi)的第一物理儲存區(qū)域,并且將所述第一物理儲存區(qū)域的第一物理地址設(shè)定到與所述第一組塊對應(yīng)的所述第二類型的第二映射信息中。
9.如權(quán)利要求7所述的存儲系統(tǒng),其中, 還具備訪問計數(shù)器,所述訪問計數(shù)器按照每個所述組塊,對在監(jiān)視期間內(nèi)發(fā)生的向該組塊的訪問次數(shù)或數(shù)據(jù)量的總和進(jìn)行計數(shù), 所述映射管理部以所述監(jiān)視期間為單位,基于每個所述組塊的所述訪問計數(shù)器的值,判斷向該組塊的訪問狀況。
10.如權(quán)利要求9所述的存儲系統(tǒng),其中, 在與所述第一組塊對應(yīng)的第一訪問計數(shù)器的值大于閾值的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于所述第一狀況, 在所述第一訪問計數(shù)器的值小于所述閾值的情況下,所述映射管理部判斷為所述第一組塊處于所述第二狀況。
11.如權(quán)利要求9所述的存儲系統(tǒng),其中, 在與所述第一組塊對應(yīng)的第一訪問計數(shù)器的值大于第一閾值的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于所述第一狀況, 在所述第一訪問計數(shù)器的值小于比所述第一閾值小的第二閾值的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于所述第二狀況。
12.如權(quán)利要求11所述的存儲系統(tǒng),其中, 在所述第一訪問計數(shù)器的值處于所述第一閾值和所述第二閾值之間的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于第三狀況, 在向所述第一組塊的訪問狀況為所述第三狀況、并且所述第一組塊處于所述第三狀態(tài)的情況下,所述映射管理部將所述第一組塊維持為所述第三狀態(tài)。
13.如權(quán)利要求9所述的存儲系統(tǒng),其中, 在與所述第一組塊對應(yīng)的第一訪問計數(shù)器的值大于第一閾值的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于所述第一狀況, 在所述第一訪問計數(shù)器的值小于比所述第一閾值小的第二閾值的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于所述第二狀況, 在基于第一監(jiān)視期間中的所述第一訪問計數(shù)器的第一值而將所述第一組塊變更為所述第三狀態(tài)后、所述第一監(jiān)視期間接下來的第二監(jiān)視期間中的所述第一訪問計數(shù)器的第二值大于比所述第一閾值大的第三閾值的情況下,所述映射管理部判斷為所述第一狀況繼續(xù), 在基于第三監(jiān)視期間中的所述第一訪問計數(shù)器的第三值而將所述第一組塊變更為所述第三狀態(tài)后、所述第三監(jiān)視期間接下來的第四監(jiān)視期間中的所述第一訪問計數(shù)器的第四值小于比所述第二閾值小的第四閾值的情況下,所述映射管理部判斷為所述第二狀況繼續(xù)。
14.如權(quán)利要求13所述的存儲系統(tǒng),其中, 在所述第一訪問計數(shù)器的值處于所述第三閾值與所述第四閾值之間的情況下,所述映射管理部判斷為向所述第一組塊的訪問狀況處于第三狀況, 在向所述第一組塊的訪問狀況為所述第三狀況、并且所述第一組塊處于所述第三狀態(tài)的情況下,所述映射管理部將所述第一組塊維持為所述第三狀態(tài)。
15.一種存儲控制器,控制向第一存儲裝置的訪問、以及向比所述第一存儲裝置低速且大容量的第二存儲裝置的訪問,具備: 映射管理部,對邏輯單元內(nèi)的第一尺寸的各組塊處于第一狀態(tài)、第二狀態(tài)或第三狀態(tài)中的哪個狀態(tài)進(jìn)行管理,所述第一狀態(tài)是,所述組塊的邏輯地址通過第一類型的映射信息映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第二狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,所述第三狀態(tài)是,所述邏輯地址通過所述第一類型的映射信息映射到所述第一存儲裝置內(nèi)的物理儲存區(qū)域的物理地址,并且通過第二類型的映射信息映射到所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址; 地址變換部,將來自主機(jī)裝置的讀取請求或?qū)懭胝埱笏付ǖ倪壿嫷刂?,變換為通過所述第一類型的映射信息而映射到的所述第一存儲裝置或所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址;以及 訪問控制器,基于變換后的所述物理地址,訪問所述第一存儲裝置或所述第二存儲裝置; 所述映射管理部對于所述邏輯單元內(nèi)的每個組塊,監(jiān)視向該組塊的訪問狀況, 在向第一組塊的訪問狀況為需要高速訪問的第一狀況、并且所述第一組塊處于所述第二狀態(tài)的情況下,所述映射管理部將所述第一組塊從所述第二狀態(tài)變更為所述第三狀態(tài), 在從所述第二狀態(tài)向所述第三狀態(tài)變更后所述第一狀況還繼續(xù)的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài), 在從所述第二狀態(tài)向所述第三狀態(tài)變更后、向所述第一組塊的訪問狀況變化為不需要所述高速訪問的第二狀況的情況下,所述映射管理部將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài)。
16.一種方法,在存儲控制器中對邏輯地址和物理地址之間的映射進(jìn)行管理,該存儲控制器控制向第一存儲裝置的訪問、以及向比所述第一存儲裝置低速且大容量的第二存儲裝置的訪問,該方法為, 對于邏輯單元內(nèi)的第一尺寸的各組塊的每一個,監(jiān)視向該組塊的訪問狀況, 在向第一組塊的訪問狀況為需要高速訪問的第一狀況、并且所述第一組塊處于第一狀態(tài)、第二狀態(tài)或第三狀態(tài)中的所述第二狀態(tài)的情況下,將所述第一組塊從所述第二狀態(tài)變更為所述第三狀態(tài),所述第一狀態(tài)是,所述第一組塊的第一邏輯地址通過第一類型的第一映射信息映射到所述第一存儲裝置內(nèi)的第二物理儲存區(qū)域的第二物理地址,所述第二狀態(tài)是,所述第一邏輯地址通過所述第一映射信息映射到所述第二存儲裝置內(nèi)的第一物理儲存區(qū)域的第一物理地址,所述第三狀態(tài)是,所述第一邏輯地址通過所述第一映射信息映射到所述第二物理地址,并且通過第二類型的第二映射信息映射到所述第一物理地址, 在從所述第二狀態(tài)向所述第三狀態(tài)變更后所述第一狀況還繼續(xù)的情況下,將所述第一組塊從所述第三狀態(tài)變更為所述第一狀態(tài), 在從所述第二狀態(tài)向所述第三狀態(tài)變更后、向所述第一組塊的訪問狀況變化為不需要所述高速訪問的第二狀況的情況下,將所述第一組塊從所述第三狀態(tài)變更為所述第二狀態(tài), 將來自主機(jī)裝置的讀取請求或?qū)懭胝埱笏付ǖ倪壿嫷刂?,變換為通過所述第一類型的映射信息而映射到的所述第一存儲裝置或所述第二存儲裝置內(nèi)的物理儲存區(qū)域的物理地址, 基于變換后的所述物理地址,訪問所述第一存儲裝置或所述第二存儲裝置。
【文檔編號】G06F3/06GK104246721SQ201380000357
【公開日】2014年12月24日 申請日期:2013年3月29日 優(yōu)先權(quán)日:2013年3月29日
【發(fā)明者】中瀨史郎 申請人:株式會社東芝, 東芝解決方案株式會社