技術(shù)領(lǐng)域
本發(fā)明的實(shí)施方式涉及磁盤裝置以及執(zhí)行同步化指令的方法。
背景技術(shù):
近年的磁盤裝置中,為了從主機(jī)裝置(主機(jī))向該磁盤裝置的訪問的高速化,例如具備被稱作盤高速緩存(disk cache)的高速緩沖器(cache buffer)。高速緩沖器用于存儲由來自主機(jī)的寫入指令所指定的數(shù)據(jù)(寫入數(shù)據(jù))以及根據(jù)來自主機(jī)的讀取指令從盤讀取的數(shù)據(jù)。
這樣的磁盤裝置的控制器根據(jù)寫入數(shù)據(jù)向高速緩沖器的存儲而向主機(jī)報告與寫入指令相關(guān)的狀態(tài)??刂破髋c寫入指令的執(zhí)行非同步地執(zhí)行下述動作,該動作是將寫入高速緩沖器的寫入數(shù)據(jù)(即,寫入高速緩存數(shù)據(jù)(write cache data))寫入該寫入數(shù)據(jù)應(yīng)該被寫入的盤上的位置(location)的動作(所謂的回寫動作)。因此,通常在高速緩沖器存在未寫入(反映)盤的寫入高速緩存數(shù)據(jù)。
因此,近年的主機(jī)能夠向控制器發(fā)出用于將這樣的寫入高速緩存數(shù)據(jù)強(qiáng)制寫入盤的同步化指令??刂破髋c同步化指令的接受相應(yīng)地執(zhí)行該同步化指令所指定的處理(同步化指令處理)。但是,在高速緩沖器內(nèi)例如存在需要隨機(jī)訪問的大量的寫入高速緩存數(shù)據(jù)的情況下,同步化指令處理所需時間長。在該情況下,同步化指令的執(zhí)行的完成變遲。因此,要求縮短同步化指令處理所需的時間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施方式提供能夠縮短同步化指令處理所需的時間的磁盤裝置以及執(zhí)行同步化指令的方法。
實(shí)施方式的磁盤裝置包括盤、易失性存儲器以及控制器。所述盤包括轉(zhuǎn)移保存區(qū)域和用戶數(shù)據(jù)區(qū)域。所述易失性存儲器包括高速緩存區(qū)域和高速緩存管理區(qū)域。所述高速緩存區(qū)域用于存儲由寫入指令指定向所述用戶數(shù)據(jù)區(qū)域?qū)懭氲膶懭霐?shù)據(jù)作為寫入高速緩存數(shù)據(jù)。所述高速緩存管理區(qū)域用于存儲與所述寫入高速緩存數(shù)據(jù)相關(guān)的管理記錄。所述控制器根據(jù)同步化指令將由所述管理記錄所示的未寫入所述用戶數(shù)據(jù)區(qū)域的寫入高速緩存數(shù)據(jù)寫入所述轉(zhuǎn)移保存區(qū)域。
附圖說明
圖1是表示實(shí)施方式的磁盤裝置的典型的結(jié)構(gòu)的框圖。
圖2是表示該實(shí)施方式中的同步化指令處理的典型的步驟的流程圖。
圖3是用于說明同步化指令處理的圖。
圖4是表示該實(shí)施方式中的、以高速緩存管理記錄為單位執(zhí)行的回寫處理的典型的步驟的流程圖。
圖5是表示該實(shí)施方式中的寫入指令處理的典型的步驟的流程圖。
圖6是表示該實(shí)施方式中的讀取指令處理的典型的步驟的流程圖。
圖7是表示該實(shí)施方式中的電源接通時的處理的典型的步驟的流程圖。
具體實(shí)施方式
圖1是表示實(shí)施方式的磁盤裝置的典型的構(gòu)成的框圖。磁盤裝置也稱作硬盤驅(qū)動器(HDD)。因此,在以下的說明中,將磁盤裝置記作HDD。圖1所示的HDD包括頭〃盤組件(HDA)11、控制器12、閃速ROM(FROM閃速只讀存儲器)13以及動態(tài)RAM(DRAM:動態(tài)隨機(jī)存取存儲器)14。
HDA11包括盤110。盤110例如是在其一面具備磁記錄數(shù)據(jù)的記錄面 的記錄介質(zhì)。即,盤110具有存儲區(qū)域111。HDA11還包括磁頭、主軸馬達(dá)以及致動器等周知的要素。但上述要素在圖1中被省略。
控制器12例如使用被稱作system-on-a-chip(SOC:片上系統(tǒng))的大規(guī)模集成電路(LSI)實(shí)現(xiàn),所述system-on-a-chip通過多個元件集成于單一芯片而成??刂破?2包括主機(jī)接口控制器(以下,稱作HIF控制器)121、盤接口控制器(以下,稱作DIF控制器)122、高速緩存控制器123、讀取/寫入(R/W)通道124、CPU125以及靜態(tài)RAM(SRAM)126。
HIF控制器121經(jīng)由主機(jī)接口20與主機(jī)連接。HIF控制器121接受從主機(jī)傳送的指令(寫入指令、讀取指令等)。另外,HIF控制器121控制主機(jī)與高速緩存控制器123之間的數(shù)據(jù)傳送。
DIF控制器122控制高速緩存控制器123與R/W通道124之間的數(shù)據(jù)傳送。高速緩存控制器123控制HIF控制器121與DRAM14之間的數(shù)據(jù)傳送以及DIF控制器122與DRAM14之間的數(shù)據(jù)傳送。
R/W通道124處理與讀取/寫入相關(guān)聯(lián)的信號。R/W通道124利用模-數(shù)轉(zhuǎn)換器將再現(xiàn)信號(讀取信號)轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù),從數(shù)字?jǐn)?shù)據(jù)譯出讀取數(shù)據(jù)。另外,R/W通道124從數(shù)字?jǐn)?shù)據(jù)抽出磁頭定位所需的伺服數(shù)據(jù)。另外,R/W通道124對寫入數(shù)據(jù)進(jìn)行編碼。
CPU125作為圖1所示的HDD的主控制器而發(fā)揮作用。CPU125根據(jù)控制程序控制HDD內(nèi)的至少一部分要素。該至少一部分包括各控制器121~123。在本實(shí)施方式中,控制程序預(yù)先存儲于盤110的特定區(qū)域。但控制程序也可以預(yù)先存儲于FROM13。
SRAM126是易失性存儲器。SRAM126的存儲區(qū)域的一部分用作用于存儲高速緩存管理表127的高速緩存管理區(qū)域。
FROM13是能夠重寫的非易失性存儲器。在FROM13的存儲區(qū)域的一部分預(yù)先存儲初始程序的加載程序(IPL)。CPU125例如在電源被供給到HDD后執(zhí)行IPL,由此將存儲于盤110的控制程序的至少一部分加載于SRAM126或DRAM14。
DRAM14是比SRAM126低速的易失性存儲器。在本實(shí)施方式中, DRAM14的存儲容量比SRAM126的存儲容量大。DRAM14的存儲區(qū)域的一部分用作高速緩存區(qū)域、即高速緩沖器(cache buffer)(以下,稱作高速緩存(cache))140。高速緩存140用于將由主機(jī)傳送來的寫入數(shù)據(jù)和從盤110讀取出的讀取數(shù)據(jù)作為寫入高速緩存數(shù)據(jù)和讀取高速緩存數(shù)據(jù)進(jìn)行存儲。
此外,DRAM14的存儲區(qū)域的另一部分也可以用于存儲高速緩存管理表127。同樣,SRAM126的存儲區(qū)域的另一部分也可以用作高速緩存140。另外,也可以將各DRAM14和SRAM126的存儲區(qū)域視為1個易失性存儲器的存儲區(qū)域的一部分。
盤110的存儲區(qū)域111的一部分用作轉(zhuǎn)移保存區(qū)域112,該存儲區(qū)域111的另一部分用作用戶數(shù)據(jù)區(qū)域113。轉(zhuǎn)移保存區(qū)域112例如是用戶無法使用的系統(tǒng)區(qū)域的一部分,用作高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)的轉(zhuǎn)移保存目的地。用戶數(shù)據(jù)區(qū)域113例如用于存儲由來自主機(jī)的寫入指令指定的寫入數(shù)據(jù)。表示存儲該寫入數(shù)據(jù)的用戶數(shù)據(jù)區(qū)域113內(nèi)的物理位置的地址(即,物理地址)與由寫入指令指定的邏輯地址(更詳細(xì)而言,邏輯存儲塊地址LBA)對應(yīng)。
接著,參照圖2和圖3,對本實(shí)施方式的同步化指令處理進(jìn)行說明。圖2是表示相同步化指令處理的典型的步驟的流程圖,圖3是用于說明同步化指令處理的圖。
首先,假設(shè)從主機(jī)經(jīng)由主機(jī)接口20向圖1所示的HDD送出同步化指令。同步化指令指示將高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)(例如,未寫入盤110的寫入高速緩存數(shù)據(jù))強(qiáng)制性地寫入盤110。在本實(shí)施方式中,主機(jī)接口20是小型計(jì)算機(jī)系統(tǒng)接口(small computer system interface(SCSI))。在該情況下,作為同步化指令,使用同步化高速緩存(SYNCHRONIZE CACHE)指令。此外,主機(jī)接口20也可以是SCSI以外的接口。根據(jù)主機(jī)接口20的種類的不同,作為同步化指令,也可以使用閃速高速緩存指令。
從主機(jī)向HDD送出的同步化指令被HIF控制器121接受。接受到的 同步化指令被傳遞到CPU125。于是,CPU125與DIF控制器122以及高速緩存控制器123協(xié)同地像以下這樣執(zhí)行同步化指令處理。
首先,CPU125參照高速緩存管理表127(B101)。高速緩存管理表127用于保持高速緩存管理記錄。在圖3所示的例子中,包括高速緩存管理記錄CMRi的高速緩存管理記錄CMR1~CMRn保持于高速緩存管理表127的n表列值(entry)。為了簡化說明,設(shè)全部的高速緩存管理記錄CMR1~CMRn根據(jù)來自主機(jī)的寫入指令WCMD1~WCMDn而生成。即,設(shè)高速緩存管理記錄CMR1~CMRn用于管理存儲于高速緩存140的寫入高速緩存數(shù)據(jù)WCD1~WCDn。
高速緩存管理記錄CMRi包括字段(field)301~307。字段301用于保持寫入高速緩存標(biāo)志。寫入高速緩存標(biāo)志在有效的狀態(tài)下表示寫入高速緩存數(shù)據(jù)WCDi應(yīng)該寫入盤110(的用戶數(shù)據(jù)區(qū)域113)內(nèi)的本來應(yīng)該存儲的位置(以下,稱作正常位置)。在高速緩存管理記錄CMRi存儲于高速緩存管理表127的時刻,對字段301設(shè)置有效的寫入高速緩存標(biāo)志。正常位置的地址(物理地址)通過周知的地址變換表而與由寫入指令WCMDi所包含的開始LBA和存儲塊數(shù)(m)所指定的邏輯寫入范圍相關(guān)聯(lián)。即,正常位置由寫入指令WCMDi間接地指定。邏輯的寫入范圍的結(jié)束LBA由“開始LBA+m-1”的運(yùn)算而算出。
字段302、303以及304分別用于保持開始LBA、結(jié)束LBA以及存儲塊數(shù)。此外,高速緩存管理記錄CMRi也可以不包括字段303以及304中的任一方。
字段305用于保持轉(zhuǎn)移保存完成標(biāo)志。轉(zhuǎn)移保存完成標(biāo)志在有效的狀態(tài)下表示接受到同步化指令的時刻的寫入高速緩存數(shù)據(jù)(例如,寫入高速緩存數(shù)據(jù)WCD1~WCDn)全部轉(zhuǎn)移保存于盤110的轉(zhuǎn)移保存區(qū)域112。在高速緩存管理記錄CMRi存儲于高速緩存管理表127的時刻,在字段305沒有設(shè)置有效的轉(zhuǎn)移保存完成標(biāo)志。
字段306用于保持寫入高速緩存數(shù)據(jù)WCDi轉(zhuǎn)移保存的轉(zhuǎn)移保存區(qū)域112內(nèi)的位置的地址(物理地址)即轉(zhuǎn)移保存目的地地址。在高速緩存管 理記錄CMRi存儲于高速緩存管理表127的時刻,在字段306沒有設(shè)置轉(zhuǎn)移保存目的地地址。字段307用于保持被分配于寫入指令WCMDi的指令接受編號。指令接受編號與高速緩存管理記錄的生成相應(yīng)地增加(increment)。
除高速緩存管理記錄CMRi以外的高速緩存管理記錄CMR1~CMRn的構(gòu)造也與高速緩存管理記錄CMRi的構(gòu)造同樣。即,高速緩存管理記錄CMR1~CMRn分別包括字段301~307。
在本實(shí)施方式中,設(shè)為依次接受寫入指令WCMD1~WCMDn。即,高速緩存管理記錄CMR1~CMRn內(nèi)的指令接受編號的順序與寫入指令WCMD1~WCMDn的接受順序一致。
此外,在圖3所示的高速緩存管理記錄CMRi中,省略了用于高速緩存指針信息的字段。高速緩存指針信息表示存儲有寫入高速緩存數(shù)據(jù)WCDi的高速緩存140內(nèi)的位置。
在此,返回到圖2的流程圖,CPU125基于參照高速緩存管理表127(B101)判定是否存在應(yīng)該轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)(B102)。若存在設(shè)置了寫入高速緩存標(biāo)志、但沒有設(shè)置轉(zhuǎn)移保存完成標(biāo)志的高速緩存管理記錄(以下,稱作目標(biāo)高速緩存管理記錄),則CPU125判定為存在應(yīng)該轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)(B102的是)。在本實(shí)施方式中,圖3所示的高速緩存管理記錄CMR1~CMRn作為目標(biāo)高速緩存管理記錄被檢測。
在該情況下,CPU125如圖3中箭頭311所示那樣基于全部的(目標(biāo))高速緩存管理記錄CMR1~CMRn取得(生成)與應(yīng)該轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)相關(guān)的高速緩存管理信息312(B103)。高速緩存管理信息312例如包括高速緩存管理記錄CMR1~CMRn各自的字段301~307的內(nèi)容作為分別與高速緩存管理記錄CMR1~CMRn對應(yīng)的要素。
CPU125在取得高速緩存管理信息312的情況下,將高速緩存管理記錄CMR1~CMRn按照指令接受編號的升序排序。由此,高速緩存管理信息312中的分別與高速緩存管理記錄CMR1~CMRn對應(yīng)的要素的排列與 指令接受編號的順序一致。
另外,CPU125決定寫入高速緩存數(shù)據(jù)WCD1~WCDn的轉(zhuǎn)移保存目的地的地址Y1~Yn。轉(zhuǎn)移保存目的地地址Y1~Yn基于后述的轉(zhuǎn)移保存管理信息314的數(shù)據(jù)長度和各寫入高速緩存數(shù)據(jù)WCD1~WCDn的數(shù)據(jù)長度決定。轉(zhuǎn)移保存管理信息314的數(shù)據(jù)長度基于高速緩存管理信息312的數(shù)據(jù)長度決定。各寫入高速緩存數(shù)據(jù)WCD1~WCDn的數(shù)據(jù)長度基于各高速緩存管理記錄CMR1~CMRn所包含的開始LBA和結(jié)束LBA(或存儲塊數(shù))決定。
所決定的轉(zhuǎn)移保存目的地地址Y1~Yn被設(shè)定于高速緩存管理表127內(nèi)的各高速緩存管理記錄CMR1~CMRn的字段306和高速緩存管理信息312中的分別與高速緩存管理記錄CMR1~CMRn對應(yīng)的要素的字段306。此外,CPU125也可以在高速緩存管理表127內(nèi)的各高速緩存管理記錄CMR1~CMRn的字段306設(shè)定轉(zhuǎn)移保存目的地地址Y1~Yn后,取得高速緩存管理信息312。另外,高速緩存管理信息312也可以不包括各高速緩存管理記錄CMR1~CMRn的字段306的內(nèi)容。
接著,CPU125如圖3中箭頭313所示那樣基于高速緩存管理信息312制作轉(zhuǎn)移保存管理信息314(B104)。轉(zhuǎn)移保存管理信息314如圖3所示,除了包括高速緩存管理信息312以外,還包括分別設(shè)置有(有效的)轉(zhuǎn)移保存區(qū)域標(biāo)志和當(dāng)前指令接受編號的字段315和316。因此,轉(zhuǎn)移保存管理信息314的數(shù)據(jù)長度與通過在高速緩存管理信息312的數(shù)據(jù)長度上加上字段315和316的數(shù)據(jù)長度而得到的長度一致。
轉(zhuǎn)移保存區(qū)域標(biāo)志在有效的狀態(tài)下表示盤110的轉(zhuǎn)移保存區(qū)域112內(nèi)的數(shù)據(jù)有效。當(dāng)前指令接受編號表示同步化指令處理開始時的最新的指令接受編號。在本實(shí)施方式中,當(dāng)前指令接受編號與高速緩存管理記錄CMRn內(nèi)的指令接受編號一致。
接著,CPU125向高速緩存控制器123要求轉(zhuǎn)移保存管理信息314的轉(zhuǎn)移保存。于是,如圖3中箭頭317所示,高速緩存控制器123(與DIF控制器122協(xié)同地)從轉(zhuǎn)移保存區(qū)域112的起始位置X起寫入轉(zhuǎn)移保存管 理信息314(B105)。在此,如圖3所示,設(shè)為將轉(zhuǎn)移保存管理信息314寫入從轉(zhuǎn)移保存區(qū)域112的位置X到Y(jié)1為止的位置。
接著,如圖3中箭頭318_1所示,高速緩存控制器123將與最舊的指令接受編號相關(guān)聯(lián)的高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)WCD1寫入從轉(zhuǎn)移保存區(qū)域112的位置Y1到Y(jié)2為止的位置(B106)。接著,高速緩存控制器123判定是否還存在應(yīng)該轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)(B107)。
如圖3的示例,若仍然存在應(yīng)該轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)(B107的是),則如圖3中箭頭318_2所示,高速緩存控制器123接著將與舊的指令接受編號相關(guān)聯(lián)的高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)WCD2寫入從轉(zhuǎn)移保存區(qū)域112的位置Y2到Y(jié)3為止的位置(B106)。
這樣,高速緩存控制器123在寫入轉(zhuǎn)移保存管理信息314之后,將寫入高速緩存數(shù)據(jù)WCD1~WCDn依次連續(xù)地寫入轉(zhuǎn)移保存區(qū)域112內(nèi)。由此,高速緩存控制器123能夠在依照來自主機(jī)的同步化指令的同步化指令處理中,將寫入高速緩存數(shù)據(jù)WCD1~WCDn迅速地轉(zhuǎn)移保存于盤110。即,能夠短時間地執(zhí)行同步化指令處理。因此,向HDD供給的電源在同步化指令處理的中途突然切斷的概率低,即使在該HDD不具備備用電源的情況下,也能夠保障同步化指令的接受時刻的寫入高速緩存的內(nèi)容。
相對于此,與本實(shí)施方式不同,在同步化指令處理中,設(shè)為將寫入高速緩存數(shù)據(jù)WCD1~WCDn寫入盤110的用戶數(shù)據(jù)區(qū)域113內(nèi)的正常位置。在該情況下,由于產(chǎn)生寫入高速緩存數(shù)據(jù)WCD1~WCDn的隨機(jī)寫入(訪問),因此,同步化指令處理所需時間長。該傾向例如在高速緩存140的容量增大并且在該高速緩存140內(nèi)存在需要隨機(jī)訪問的大量寫入高速緩存數(shù)據(jù)的情況下變得更顯著。在該情況下,向HDD供給的電源在同步化指令處理的中途突然切斷的概率變高,若該HDD不具備備用電源,則難以保障同步化指令的接受時刻的寫入高速緩存的內(nèi)容。
寫入高速緩存數(shù)據(jù)WCD1~WCDn全部轉(zhuǎn)移保存的結(jié)果,B107的判定變?yōu)榉?。在該情況下,高速緩存控制器123將依照同步化指令進(jìn)行的轉(zhuǎn)移保存動作的完成通知給CPU125。
于是,CPU125分別對高速緩存管理表127內(nèi)的高速緩存管理記錄CMR1~CMRn各自的字段305設(shè)置轉(zhuǎn)移保存完成標(biāo)志(B108)。然后,CPU125進(jìn)入到B109。另一方面,在前述的B102的判定為否的情況下,CPU125跳過B103~B108而進(jìn)入到B109。在B109中,CPU125將與同步化指令的執(zhí)行相關(guān)的狀態(tài)通過HIF控制器121報告給主機(jī)。由此,CPU125結(jié)束同步化指令處理。
接著,關(guān)于本實(shí)施方式中的回寫處理,參照圖4進(jìn)行說明。圖4是表示以高速緩存管理記錄為單位執(zhí)行的回寫處理的典型的步驟的流程圖。本實(shí)施方式中的回寫處理是指用于將轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)寫入用戶數(shù)據(jù)區(qū)域113內(nèi)的正常位置的處理。回寫處理例如在與同步化指令的執(zhí)行相關(guān)的狀態(tài)的報告后以高速緩存管理記錄為單位在任意定時反復(fù)執(zhí)行。
首先,CPU125從高速緩存管理表127內(nèi)的高速緩存管理記錄CMR1~CMRn選擇與本次應(yīng)寫入用戶數(shù)據(jù)區(qū)域113的寫入高速緩存數(shù)據(jù)相關(guān)的1個高速緩存管理記錄(B201)。B201中選擇的候選是高速緩存管理記錄CMR1~CMRn中設(shè)置有寫入高速緩存標(biāo)志的高速緩存管理記錄。
以下,詳細(xì)說明B201。設(shè)當(dāng)前高速緩存管理記錄CMR1~CMRn均設(shè)置有寫入高速緩存標(biāo)志。在該情況下,CPU125對高速緩存管理記錄CMR1~CMRn中的指令接受編號進(jìn)行比較,例如選擇包括最舊的(小的)指令接受編號的高速緩存管理記錄。即,對于每次回寫處理,CPU125從在該時刻設(shè)置有寫入高速緩存標(biāo)志的高速緩存管理記錄之中選擇包括最舊的指令接受編號的高速緩存管理記錄。
這樣,在本實(shí)施方式中,按照指令接受編號的順序選擇高速緩存管理記錄CMR1~CMRn。由此,在多個高速緩存管理記錄所示的寫入范圍重疊的情況下,能夠防止新的寫入高速緩存數(shù)據(jù)(寫入數(shù)據(jù))被舊的寫入高速緩存數(shù)據(jù)更新。
此外,也可以與指令接受編號無關(guān)地選擇寫入范圍沒有重復(fù)的高速緩存管理記錄。例如,也可以按照能夠最適地訪問這樣的高速緩存管理記錄 所示的寫入范圍的順序來選擇該高速緩存管理記錄。能夠最適地訪問的順序例如是指使為了切換寫入范圍而產(chǎn)生的查找動作所需的時間(以及旋轉(zhuǎn)等待時間)最短化的順序。
在此,設(shè)在B201中選擇了高速緩存管理記錄CMRi。在該情況下,CPU125將由高速緩存管理記錄CMRi管理的高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)WCDi寫入用戶數(shù)據(jù)區(qū)域113內(nèi)的正常位置(B202)。該動作(即,回寫動作)與高速緩存控制器123和DIF控制器122協(xié)同地執(zhí)行。
接著,CPU125清除高速緩存管理記錄CMRi內(nèi)的寫入高速緩存標(biāo)志(B203)。接著,CPU125判定已轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的全部寫入高速緩存數(shù)據(jù)WCD1~WCDn向用戶數(shù)據(jù)區(qū)域113的寫入是否完成(B204)。在如本實(shí)施方式這樣按照指令接受編號的順序選擇高速緩存管理記錄的情況下,CPU125在高速緩存數(shù)據(jù)WCDn寫入用戶數(shù)據(jù)區(qū)域113的時刻,判定為全部寫入高速緩存數(shù)據(jù)WCD1~WCDn向用戶數(shù)據(jù)區(qū)域113的寫入完成。此外,CPU125也可以基于高速緩存管理記錄CMR1~CMRn各自的寫入高速緩存標(biāo)志是否均被清除來執(zhí)行該判定。
若B204的判定為是,則轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)變?yōu)闊o用。在該情況下,CPU125為了使轉(zhuǎn)移保存區(qū)域112內(nèi)的寫入高速緩存數(shù)據(jù)無效化而清除寫入轉(zhuǎn)移保存區(qū)域112的轉(zhuǎn)移保存管理信息314中的轉(zhuǎn)移保存區(qū)域標(biāo)志(B205)。然后,CPU125結(jié)束回寫處理。相對于此,若B204的判定為否,則CPU125跳過B205并結(jié)束回寫處理。
在此,設(shè)為在已轉(zhuǎn)移保存的全部寫入高速緩存數(shù)據(jù)向用戶數(shù)據(jù)區(qū)域113的寫入完成之前,HIF控制器121從主機(jī)接受新的同步化指令。在該情況下,CPU125選擇存儲于當(dāng)前高速緩存管理表127的高速緩存管理記錄中的與尚未轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)相關(guān)的全部高速緩存管理記錄。即,CPU125選擇從之前的同步化指令的接受時刻到新的同步化指令的接受時刻為止的期間存儲于高速緩存管理表127的全部高速緩存管理記錄。
接著,CPU125基于所選擇的高速緩存管理記錄生成與前述的高速緩 存管理信息312相當(dāng)?shù)男碌母咚倬彺婀芾硇畔ⅰ2⑶?,CPU125將新的高速緩存管理信息和所選擇的高速緩存管理記錄所示的寫入高速緩存數(shù)據(jù)在轉(zhuǎn)移保存區(qū)域112中從接在寫入高速緩存數(shù)據(jù)WCDn所轉(zhuǎn)移保存的位置之后的位置依次進(jìn)行寫入。
接著,關(guān)于本實(shí)施方式中的寫入指令處理,參照圖5進(jìn)行說明。圖5是表示寫入指令處理的典型的步驟的流程圖。設(shè)當(dāng)前HIF控制器121從主機(jī)接受到向HDD送出的寫入指令WCMD并將該寫入指令WCMD傳遞給了CPU125。此時,設(shè)轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)向用戶數(shù)據(jù)區(qū)域113的寫入未完成。即,在存儲于轉(zhuǎn)移保存區(qū)域112的轉(zhuǎn)移保存管理信息314設(shè)置有轉(zhuǎn)移保存區(qū)域標(biāo)志。
CPU125依照寫入指令WCMD以如下方式執(zhí)行寫入指令處理。首先,CPU125向高速緩存控制器123要求對由寫入指令WCMD所指定的寫入數(shù)據(jù)WD進(jìn)行高速緩沖。于是,高速緩存控制器123將寫入數(shù)據(jù)WD作為寫入高速緩存數(shù)據(jù)WCD存儲于高速緩存140(B301)。
CPU125將寫入指令WCMD所指定的寫入范圍(邏輯的寫入范圍)與轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)的LBA范圍進(jìn)行比較(B302)。轉(zhuǎn)移保存寫入高速緩存數(shù)據(jù)的LBA范圍例如由從寫入轉(zhuǎn)移保存區(qū)域112的轉(zhuǎn)移保存管理信息所包含的、高速緩存管理記錄CMR1~CMRn分別抽出的開始LBA和結(jié)束LBA(或存儲塊數(shù))表示。
接著,CPU125基于比較的結(jié)果判定是否存在與寫入范圍重疊的LBA范圍(B303)。若B303的判定為是,則CPU125向高速緩存控制器123要求重疊的范圍的轉(zhuǎn)移保存寫入高速緩存數(shù)據(jù)的更新。
于是,高速緩存控制器123與DIF控制器122協(xié)同地按照如下方式執(zhí)行B304。首先,高速緩存控制器123從寫入數(shù)據(jù)WD抽出重疊的范圍的寫入數(shù)據(jù)WDp。然后,高速緩存控制器123通過DIF控制器122,對轉(zhuǎn)移保存區(qū)域112中的重疊的范圍的寫入高速緩存數(shù)據(jù)覆寫寫入數(shù)據(jù)WDp。即,DIF控制器122將轉(zhuǎn)移保存區(qū)域112中的重疊的范圍的寫入高速緩存數(shù)據(jù)更新為寫入數(shù)據(jù)WDp。
接著,高速緩存控制器123制作與寫入高速緩存數(shù)據(jù)WCD相關(guān)的高速緩存管理記錄CMR,并將該高速緩存管理記錄CMR存儲于高速緩存管理表127(B305)。該B305在B303的判定為否的情況下也執(zhí)行。在執(zhí)行B305時,CPU125將與寫入指令WCMD的執(zhí)行相關(guān)的狀態(tài)報告給主機(jī)(B306),并結(jié)束寫入指令處理。
上述的寫入指令處理以已轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)向用戶數(shù)據(jù)區(qū)域113的寫入未完成的情況為前提。若已轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)向用戶數(shù)據(jù)區(qū)域113的寫入已完成,則雖在圖5的流程圖中進(jìn)行了省略,但在B301之后執(zhí)行B305。
接著,關(guān)于本實(shí)施方式中的讀指令處理,參照圖6進(jìn)行說明。圖6是表示讀指令處理的典型的步驟的流程圖。設(shè)當(dāng)前CPU125執(zhí)行來自主機(jī)的讀取指令RCMD。即,設(shè)HIF控制器121接受從主機(jī)向HDD送出的讀取指令RCMD并將該讀取指令RCMD傳遞給了CPU125。
CPU125依照讀指令RCMD以如下方式執(zhí)行讀指令處理。首先,CPU125基于高速緩存管理表127判定由讀取指令RCMD所指定的數(shù)據(jù)是否存在于高速緩存140(B401)。若B401的判定為是,則CPU125向高速緩存控制器123指示從高速緩存140讀取所指定的數(shù)據(jù)。于是,高速緩存控制器123從高速緩存140讀取所指定的數(shù)據(jù),由HIF控制器121將該讀取出的數(shù)據(jù)傳送給主機(jī)(B402)。
相對于此,若B401的判定為否,則CPU125向高速緩存控制器123要求從盤110讀取所指定的數(shù)據(jù)。于是,高速緩存控制器123與DIF控制器122協(xié)同地從盤110的用戶數(shù)據(jù)區(qū)域113讀取所指定的數(shù)據(jù),由HIF控制器121將該讀取數(shù)據(jù)傳送給主機(jī)(B403)。另外,高速緩存控制器123將讀取數(shù)據(jù)存儲于高速緩存140。CPU125將與存儲于高速緩存140的讀取數(shù)據(jù)相關(guān)的高速緩存管理記錄存儲于高速緩存管理表127。
在此,設(shè)向HDD供給的電源突然切斷。設(shè)此時轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)向用戶數(shù)據(jù)區(qū)域113的寫入未完成。設(shè)之后接入了電源。于是,與電源接入相應(yīng)地,電源接入時的處理開始。以下, 關(guān)于本實(shí)施方式中的電源接入時的處理(更詳細(xì)而言,與轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的寫入高速緩存數(shù)據(jù)相關(guān)的電源接入時的處理),參照圖7的流程圖進(jìn)行說明。圖7是表示電源接入時的處理的典型的步驟的流程圖。
首先,CPU125與高速緩存控制器123以及DIF控制器122協(xié)同地從盤110的轉(zhuǎn)移保存區(qū)域112讀取轉(zhuǎn)移保存管理信息314(B501)。接著CPU125基于在所讀取的轉(zhuǎn)移保存管理信息314中是否設(shè)置了轉(zhuǎn)移保存區(qū)域標(biāo)志,來判定在轉(zhuǎn)移保存區(qū)域112是否存在有效的寫入高速緩存數(shù)據(jù)(B502)。
若在轉(zhuǎn)移保存管理信息314中設(shè)置有轉(zhuǎn)移保存區(qū)域標(biāo)志,則CPU125判定為在轉(zhuǎn)移保存區(qū)域112存在有效的寫入高速緩存數(shù)據(jù)(B502的是)。在該情況下,CPU125向高速緩存控制器123要求將轉(zhuǎn)移保存區(qū)域112內(nèi)的寫入高速緩存數(shù)據(jù)存儲于高速緩存140。
于是,高速緩存控制器123與DIF控制器122協(xié)同地以如下方式執(zhí)行B503。首先,高速緩存控制器123基于轉(zhuǎn)移保存管理信息314,通過DIF控制器122依次讀取轉(zhuǎn)移保存于轉(zhuǎn)移保存區(qū)域112的全部寫入高速緩存數(shù)據(jù)WCD1~WCDn。接著,高速緩存控制器123將所讀取的寫入高速緩存數(shù)據(jù)WCD1~WCDn存儲于高速緩存140。
另一方面,CPU125基于轉(zhuǎn)移保存管理信息314中的高速緩存管理信息312生成與所讀取的寫入高速緩存數(shù)據(jù)WCD1~WCDn相關(guān)的高速緩存管理記錄CMR1~CMRn。然后,CPU125將所生成的高速緩存管理記錄CMR1~CMRn存儲于高速緩存管理表127。
于是,高速緩存控制器123基于所生成的高速緩存管理記錄CMR1~CMRn,通過DIF控制器122將存儲于高速緩存140的全部寫入高速緩存數(shù)據(jù)WCD1~WCDn寫入用戶數(shù)據(jù)區(qū)域113(B504)。如上所述,高速緩存管理記錄CMR1~CMRn基于高速緩存管理信息312生成。因此,B504與基于高速緩存管理信息312的執(zhí)行等價。在B504中,高速緩存控制器123每當(dāng)寫入高速緩存數(shù)據(jù)寫入用戶數(shù)據(jù)區(qū)域113時,清除對應(yīng)的高速緩存管理記錄內(nèi)的寫入高速緩存標(biāo)志。
若全部寫入高速緩存數(shù)據(jù)CMR1~CMRn寫入用戶數(shù)據(jù)區(qū)域113,則CPU125清除轉(zhuǎn)移保存區(qū)域112內(nèi)的轉(zhuǎn)移保存管理信息314中的轉(zhuǎn)移保存管理標(biāo)志(B505)。然后,CPU125結(jié)束電源接入時的處理。相對于此,在B502的判定為否的情況下,CPU125立即結(jié)束電源接入時的處理。
根據(jù)本實(shí)施方式,即使在全部已轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)WCD1~WCDn向用戶數(shù)據(jù)區(qū)域113的寫入完成之前電源切斷,也能夠基于轉(zhuǎn)移保存區(qū)域112內(nèi)的信息復(fù)原高速緩存140內(nèi)的寫入高速緩存數(shù)據(jù)WCD1~WCDn和高速緩存管理表127內(nèi)的高速緩存管理記錄CMR1~CMRn。即,根據(jù)本實(shí)施方式,即使HDD不具有備用電源,也能夠保障電源即將切斷之前的高速緩存140和高速緩存管理表127內(nèi)的數(shù)據(jù)。
<變形例>
接著,說明所述實(shí)施方式的變形例。在所述實(shí)施方式中,CPU125在回寫動作(圖4的B202)中將寫入高速緩存數(shù)據(jù)WCDi寫入了用戶數(shù)據(jù)區(qū)域113的情況下,僅清除高速緩存管理記錄CMRi內(nèi)的寫入高速緩存標(biāo)志(圖4的B203)。但是,在本變形例中,CPU125不僅清除高速緩存管理記錄CMRi內(nèi)的寫入高速緩存標(biāo)志,還清除轉(zhuǎn)移保存管理信息314所包含的、從高速緩存管理記錄CMRi抽出的寫入高速緩存標(biāo)志。
在本變形例中,設(shè)已轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)WCD1~WCDn按照對應(yīng)的指令接受編號的順序?qū)懭朕D(zhuǎn)移保存區(qū)域112。在此,設(shè)與向用戶數(shù)據(jù)區(qū)域113的寫入高速緩存數(shù)據(jù)WCDi的寫入(B202)相應(yīng)地,CPU125清除從轉(zhuǎn)移保存管理信息314所包含的高速緩存管理記錄CMRi抽出的寫入高速緩存標(biāo)志。并且,設(shè)僅隨其后電源切斷。即,設(shè)在已轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)WCD1~WCDn中的寫入高速緩存數(shù)據(jù)WCDi+1、WCDi+2、…、WCDn被寫入用戶數(shù)據(jù)區(qū)域113之前,電源切斷。
在這樣的情況下,本變形例中的CPU125在電源接入時的處理的最初,從起始開始參照轉(zhuǎn)移保存區(qū)域112內(nèi)的轉(zhuǎn)移保存管理信息314。然后,CPU125搜尋被設(shè)置的寫入高速緩存標(biāo)志。在此,從高速緩存管理記錄CMRi+1抽出的寫入高速緩存標(biāo)志被最初檢測到。
于是,高速緩存控制器123通過與圖7的B503相當(dāng)?shù)奶幚矶鴮⑥D(zhuǎn)移保存區(qū)域112內(nèi)的寫入高速緩存數(shù)據(jù)WCD1~WCDn存儲于高速緩存140。另外,高速緩存控制器123通過與圖7的B504相當(dāng)?shù)奶幚矶ㄟ^DIF控制器122將寫入高速緩存數(shù)據(jù)WCDi+1、WCDi+2、…、WCDn寫入用戶數(shù)據(jù)區(qū)域113。
根據(jù)本變形例,在全部已轉(zhuǎn)移保存的寫入高速緩存數(shù)據(jù)WCD1~WCDn向用戶數(shù)據(jù)區(qū)域113的寫入完成之前電源切斷了的情況下,能夠?qū)㈦娫唇尤霑r的處理所需的時間縮短得比所述實(shí)施方式短。但是,回寫處理所需的時間變得比所述實(shí)施方式長。
根據(jù)以上說明的至少1個實(shí)施方式,能夠縮短同步化指令處理所需的時間。
說明了本發(fā)明的幾個實(shí)施方式,但上述實(shí)施方式是作為例子而提出的,并不是想要限定發(fā)明的范圍。上述新穎的實(shí)施方式能夠以其他各種方式實(shí)施,能夠在不脫離發(fā)明的主旨的范圍進(jìn)行各種省略、置換、變更。上述實(shí)施方式及其變形包含于發(fā)明的范圍、主旨,并且包含于與權(quán)力要求書記載的發(fā)明及其均等的范圍。