專利名稱:使用滑動(dòng)窗調(diào)度存取存儲(chǔ)裝置的請(qǐng)求的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)裝置,更特別地,涉及使用滑動(dòng)窗(sliding window) 調(diào)度存取存儲(chǔ)裝置請(qǐng)求的技術(shù)。
背景技術(shù):
數(shù)據(jù)存儲(chǔ)裝置包括硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)存儲(chǔ)裝置、固態(tài)存儲(chǔ)器裝置(如閃 存)等。將數(shù)據(jù)存儲(chǔ)裝置也稱為存儲(chǔ)裝置。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一些實(shí)施例,系統(tǒng)包括存儲(chǔ)裝置和調(diào)度裝置(scheduler )。 調(diào)度裝置確定存取存儲(chǔ)裝置的請(qǐng)求的截止期限是否落在第一和第二滑動(dòng)窗 內(nèi)。調(diào)度裝置以第一執(zhí)行次序發(fā)布位于第一滑動(dòng)窗中的請(qǐng)求并以第二執(zhí)行次 序發(fā)布位于第二滑動(dòng)窗中的請(qǐng)求。根據(jù)本發(fā)明的一些實(shí)施例,調(diào)度裝置確定 存取存儲(chǔ)裝置的請(qǐng)求是否落在第一、第二和第三滑動(dòng)窗內(nèi),并且調(diào)度裝置以 第三執(zhí)行次序發(fā)布位于第三滑動(dòng)窗中的請(qǐng)求。
根據(jù)本發(fā)明的一些實(shí)施例, 一種計(jì)算機(jī)系統(tǒng),包括用于優(yōu)化調(diào)度裝置的 代碼,其中將所述代碼存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,所述計(jì)算機(jī)系統(tǒng)包括用 于接收存取存儲(chǔ)裝置的請(qǐng)求的代碼;用于確定所述請(qǐng)求的截止期限是否落入 第 一和第二滑動(dòng)窗內(nèi)的代碼,其中所述第 一和第二滑動(dòng)窗隨著時(shí)間的前進(jìn)而
在時(shí)間上連續(xù)地向前移動(dòng);用于以第 一次序發(fā)布位于所述第 一滑動(dòng)窗中的第 一請(qǐng)求的代碼;以及用于以第二次序發(fā)布位于所述第二滑動(dòng)窗中的第二請(qǐng)求 的代碼。
根據(jù)本發(fā)明的一些實(shí)施例, 一種通過(guò)使用調(diào)度裝置來(lái)發(fā)布存取存儲(chǔ)裝置 的請(qǐng)求的方法,所述方法包括接收用于存取所述存儲(chǔ)裝置的請(qǐng)求;確定所 述請(qǐng)求的截止期限是否落入第一和第二滑動(dòng)窗內(nèi),所述第一和第二滑動(dòng)窗隨 著時(shí)間的前進(jìn)而在時(shí)間上連續(xù)地向前移動(dòng);以第一次序發(fā)布所述第一滑動(dòng)窗 中的第一請(qǐng)求;以及以第二次序發(fā)布所述第二滑動(dòng)窗中的第二請(qǐng)求。本發(fā)明包括用于才丸行在此描述的實(shí)施例的方法和系統(tǒng)。
當(dāng)考慮下面詳細(xì)的描述和附圖時(shí),本發(fā)明的各目標(biāo)、特征和優(yōu)點(diǎn)將變得明顯。
圖1是圖解可以實(shí)施本發(fā)明的技術(shù)的系統(tǒng)的框圖。
圖2根據(jù)本發(fā)明的實(shí)施例圖解了如何組織通信量混合器(traffic mixer )。 圖3A根據(jù)本發(fā)明的實(shí)施例圖解了由實(shí)時(shí)調(diào)度裝置使用以執(zhí)行實(shí)時(shí)讀和
寫(xiě)輸入/輸出(IO)請(qǐng)求的三種不同的調(diào)度窗。
圖3B根據(jù)本發(fā)明的另 一實(shí)施例圖解了由實(shí)時(shí)調(diào)度裝置使用以執(zhí)行實(shí)時(shí)
讀和寫(xiě)IO請(qǐng)求的三種調(diào)度窗的另一示例。
具體實(shí)施例方式
諸如數(shù)字視頻錄像機(jī)(DVR)、機(jī)頂盒(STB)和媒體網(wǎng)絡(luò)附加存儲(chǔ)裝置 (媒體NAS )之類的系統(tǒng)正在發(fā)展以支持諸如高清內(nèi)容、多流(multi-stream ) 能力和混合工作量之類的高級(jí)特征。這些特征將實(shí)時(shí)通信(如音頻/視頻(AV ) 通信)和非實(shí)時(shí)通信進(jìn)行組合。例如,基本的DVR功能性可以包括將實(shí)時(shí) AV流記錄到硬盤驅(qū)動(dòng)器,然后將AV流讀回用戶以便觀看。另夕卜,DVR、 STB 或媒體NAS裝置可以提供非實(shí)時(shí)功能和應(yīng)用,如電子節(jié)目指南、照片瀏覽、 網(wǎng)頁(yè)瀏覽、音樂(lè)播放列表管理、通用文件服務(wù)等。
諸如高清多區(qū)域(multi-room)數(shù)字視頻錄像機(jī)(DVR)之類的電子系 統(tǒng)能夠同時(shí)記錄來(lái)自多個(gè)源(如,線纜、衛(wèi)星或空中廣播調(diào)諧器)的數(shù)字內(nèi) 容,并且同時(shí)允許所存儲(chǔ)的內(nèi)容的本地回放以及其流通過(guò)家庭網(wǎng)絡(luò)(home network)至其他裝置。這些裝置的一些還提供其他類型的應(yīng)用,如數(shù)字照片 存儲(chǔ)和查看、因特網(wǎng)瀏覽、email游戲等。
然而,記錄和同時(shí)讀取高清視頻的多個(gè)流對(duì)系統(tǒng)硬盤驅(qū)動(dòng)器(HDD)和 操作系統(tǒng)存儲(chǔ)堆棧(文件系統(tǒng)和輸入/輸出調(diào)度裝置)放置了巨大的需求。所 要求的性能級(jí)別通常在原始設(shè)計(jì)目標(biāo)和通用存儲(chǔ)堆棧的使用目的之外。除了 引入了嚴(yán)格的性能限制之外,文件系統(tǒng)和輸入/輸出(IO)調(diào)度裝置不具有在 流應(yīng)用(如,播放電影)與最大努力任務(wù)(best-efforttask)(如,查看照片) 之間進(jìn)行區(qū)分的固有能力。結(jié)果,不能始終如一地保證時(shí)間臨界(time-critical)盤輸入和輸出(IO)請(qǐng)求的準(zhǔn)時(shí)處理,導(dǎo)致視頻記錄和回放的很差的服務(wù)質(zhì)量(QoS)。本發(fā)明的一些實(shí)施例通過(guò)對(duì)流文件管理使用不同的方法來(lái)減輕這些質(zhì)量 和可靠性問(wèn)題中的一些。本發(fā)明的特定實(shí)施例改進(jìn)了讀和寫(xiě)IO請(qǐng)求的調(diào)度。 如在下文中更詳細(xì)地描述的那樣,在一個(gè)實(shí)施例中,系統(tǒng)包括數(shù)據(jù)存儲(chǔ)裝置 和調(diào)度裝置。調(diào)度裝置可操作以接收具有截止期限的讀和寫(xiě)IO請(qǐng)求,然后將所述請(qǐng)求以高效的方式發(fā)布到數(shù)據(jù)存儲(chǔ)裝置。調(diào)度裝置可以確定每一個(gè)截止 期限是否落在調(diào)度窗內(nèi)??梢酝ㄟ^(guò)當(dāng)前時(shí)間和閾值時(shí)間來(lái)限定調(diào)度窗。調(diào)度 窗的這些參數(shù)至少部分地基于預(yù)測(cè)的請(qǐng)求完成時(shí)間。調(diào)度裝置將發(fā)布落在調(diào)度窗之后的10請(qǐng)求延遲到之后的時(shí)間,以便發(fā)布和完成具有落在調(diào)度窗內(nèi)的截止期限的、且由此具有更早的截止期限的緊急的10請(qǐng)求。延遲某些10請(qǐng)求的處理確保了調(diào)度裝置在IO請(qǐng)求各自的截止期限之前完成它們。如在下文中更詳細(xì)地描述的那樣,調(diào)度裝置可以分組多個(gè)IO請(qǐng)求,以便批量發(fā)布IO請(qǐng)求。批量發(fā)布IO請(qǐng)求增大了允許存儲(chǔ)裝置進(jìn)入功率節(jié)省狀態(tài)或執(zhí)行維持功能的空閑時(shí)間。盡管在數(shù)字視頻錄像機(jī)和硬盤驅(qū)動(dòng)器的情況下描述了在此公開(kāi)的本發(fā) 明,但是本發(fā)明可以應(yīng)用于其他類型的系統(tǒng),如機(jī)頂盒、數(shù)字監(jiān)視系統(tǒng)、視 頻編緝系統(tǒng)、多i某體網(wǎng)絡(luò)存儲(chǔ)裝置和其他類型的存儲(chǔ)裝置,并且仍然落在本 發(fā)明的精神和范圍之內(nèi)。圖1是圖解可以實(shí)施本發(fā)明的技術(shù)的系統(tǒng)的框圖。圖I所示的系統(tǒng)IOO 包括主機(jī)系統(tǒng)102,其包括處理器104和輸入/輸出(10)調(diào)度裝置106。系 統(tǒng)IOO還包括數(shù)據(jù)存儲(chǔ)裝置,如硬盤驅(qū)動(dòng)器108。主機(jī)系統(tǒng)102可以是DVR、 機(jī)頂盒或其他類型的計(jì)算機(jī)系統(tǒng),如嵌入式系統(tǒng)、最低限系統(tǒng)、手持裝置或 計(jì)算機(jī)等。雖然示出了 IO調(diào)度裝置106位于主機(jī)系統(tǒng)102上,但是IO調(diào)度 裝置106可以位于與主機(jī)系統(tǒng)102分離的任意合適的位置(如,在硬盤驅(qū)動(dòng) 器108等上)。輸入/輸出(10)調(diào)度裝置106位于操作系統(tǒng)層內(nèi),并且一般負(fù)責(zé)決定何 時(shí)向硬盤驅(qū)動(dòng)器108發(fā)布實(shí)時(shí)和非實(shí)時(shí)讀和寫(xiě)請(qǐng)求。在此也將讀和寫(xiě)請(qǐng)求稱 為10請(qǐng)求或簡(jiǎn)稱為請(qǐng)求。處理這些實(shí)時(shí)和非實(shí)時(shí)功能產(chǎn)生了去往和來(lái)自硬盤 驅(qū)動(dòng)器108的通信量。.在操作中,主機(jī)系統(tǒng)102經(jīng)由IO調(diào)度裝置106將IO請(qǐng)求發(fā)送到硬盤驅(qū)動(dòng)器108。 10調(diào)度裝置106可操作以接收來(lái)自處理器104的IO請(qǐng)求,并確定 每一個(gè)IO請(qǐng)求的截止期限。在一些實(shí)施例中,IO請(qǐng)求是用于存取硬盤驅(qū)動(dòng) 器108的。例如,IO請(qǐng)求包括用于從硬盤驅(qū)動(dòng)器108讀數(shù)據(jù)和向硬盤驅(qū)動(dòng)器 108寫(xiě)數(shù)據(jù)的指令。同樣地,IO調(diào)度裝置106可操作以向硬盤驅(qū)動(dòng)器108發(fā) 布10請(qǐng)求。然后硬盤驅(qū)動(dòng)器108執(zhí)行所請(qǐng)求的10請(qǐng)求。根據(jù)本發(fā)明的一些實(shí)施例,通信量混合器是實(shí)施為操作系統(tǒng)內(nèi)核模塊的 IO調(diào)度裝置。操作系統(tǒng)可以是例如Linux、 Windows、 VxWorks或任意其他 合適的操作系統(tǒng)。通過(guò)使用附于IO請(qǐng)求的截止期限信息,通信量混合器區(qū)分 并調(diào)度實(shí)時(shí)(RT)和最大努力(BE)請(qǐng)求,這確保了 RT請(qǐng)求在它們的截止 期限之前完成并最小化BE請(qǐng)求的處理等待時(shí)間。BE請(qǐng)求是非實(shí)時(shí)請(qǐng)求。RT 和BE請(qǐng)求包括讀請(qǐng)求和寫(xiě)請(qǐng)求。由于通信量混合器不是帶寬保留系統(tǒng),因此在請(qǐng)求到達(dá)或完成時(shí)動(dòng)態(tài)地 進(jìn)行IO調(diào)度決定。結(jié)果,可以超載具有RT通信量的系統(tǒng),并使實(shí)時(shí)調(diào)度失 敗。本發(fā)明的一些實(shí)施例通過(guò)在多個(gè)滑動(dòng)窗中執(zhí)行請(qǐng)求來(lái)解決該問(wèn)題,如下 面詳細(xì)描述的那樣。圖2根據(jù)本發(fā)明的實(shí)施例圖解了如何組織通信量混合器。至硬盤驅(qū)動(dòng)器 的所接收到的讀和寫(xiě)10請(qǐng)求首先通過(guò)允許進(jìn)入(admission )步驟201以確定 其類型。將具有附于其的截止期限的請(qǐng)求作為實(shí)時(shí)(RT)請(qǐng)求來(lái)對(duì)待。將所 有其他的請(qǐng)求作為最大努力(BE)請(qǐng)求來(lái)對(duì)待。對(duì)于RT請(qǐng)求,允許進(jìn)入步 驟201還將截止期限限制到最大值(如,20秒)。然后根據(jù)其類型來(lái)排隊(duì)請(qǐng)求。在步驟202排隊(duì)實(shí)時(shí)(RT)請(qǐng)求,而在步 驟203排隊(duì)最大努力(BE)請(qǐng)求。以執(zhí)行次序來(lái)維持突出的(outstanding) 最大努力(BE)請(qǐng)求的列表。執(zhí)行次序是可以最有效地(即,以最少量的時(shí) 間)執(zhí)行請(qǐng)求的次序。 一般而言,最有效的執(zhí)行次序根據(jù)硬盤驅(qū)動(dòng)器模型、 物理塊線路圖(layout)等而變化。通過(guò)使用示例硬盤驅(qū)動(dòng)器模型,執(zhí)行次序 可以是邏輯塊地址(LBA)(即,盤偏移)次序。在步驟202,將RT請(qǐng)求排隊(duì)為兩個(gè)不同的列表, 一個(gè)以執(zhí)行次序,而另 一個(gè)以截止期限次序。索引集合^61,..., _1和《《,...,、_1分別用于表示以邏輯 塊地址(LBA)次序(即執(zhí)行次序)和截止期限次序的Nr清求的序列。在步 驟205,如果以LBA次序來(lái)調(diào)度該集合,則通信量混合器204估計(jì)每一個(gè)RT 請(qǐng)求的服務(wù)時(shí)間,以及突出的RT請(qǐng)求的整個(gè)集合的服務(wù)時(shí)間。每一請(qǐng)求的估計(jì)的服務(wù)時(shí)間用于決定下面執(zhí)行的請(qǐng)求的類型(實(shí)時(shí)或最大努力)。如果以LBA次序調(diào)度突出的RT請(qǐng)求的集合,則也可以使用突出的RT請(qǐng)求的整個(gè)集 合的服務(wù)時(shí)間來(lái)決定下面執(zhí)行的請(qǐng)求的類型。 RT請(qǐng)求服務(wù)時(shí)間估計(jì)在步驟205,通信混和器204中的RT請(qǐng)求服務(wù)時(shí)間估計(jì)器(estimator) 使用盤模型來(lái)估計(jì)RT請(qǐng)求的服務(wù)時(shí)間。該盤模型基于硬盤驅(qū)動(dòng)器中盤的旋 轉(zhuǎn)時(shí)間段Tr、硬盤驅(qū)動(dòng)器的平均搜索時(shí)間Ts、硬盤驅(qū)動(dòng)器的最大和最小傳輸 速度Dtmax和Dtmin以及盤的最大LBALmax。該盤才莫型假定盤傳輸速度在 最大和最小速度之間線性變化。如下面的等式(1)所示的那樣來(lái)估計(jì)大小 S(R)和LBA地址L(R)的RT請(qǐng)求R的服務(wù)時(shí)間Tc(R)。乙在等式(l)中,對(duì)于讀請(qǐng)求來(lái)說(shuō)a等于l。項(xiàng)aTr/2表示硬盤驅(qū)動(dòng)器中 盤的平均旋轉(zhuǎn)等待時(shí)間。在寫(xiě)請(qǐng)求的情況下,a等于3,以便將盤的全部旋轉(zhuǎn) 時(shí)間添加到估計(jì)中,以說(shuō)明寫(xiě)請(qǐng)求的旋轉(zhuǎn)丟失(revolution miss )的較高概率。 卩通常為1,除非所估計(jì)的請(qǐng)求關(guān)于之前估計(jì)的一個(gè)請(qǐng)求是連續(xù)的,在這種情 況下,將|3設(shè)置為0以反映不存在頭搜索??梢允褂昧硪环N更精確的估計(jì)器 來(lái)代替上述估計(jì)器。上述估計(jì)器具有僅使用可以從盤規(guī)格(specification)容 易地獲得的、或直接測(cè)量的參數(shù)的小集合的優(yōu)點(diǎn)。在此描述的盤模型使低估 的概率足夠小。混合器策略當(dāng)僅存在一種類型的請(qǐng)求時(shí),那么選擇所述類型的請(qǐng)求作為用以執(zhí)行的 下一類型的請(qǐng)求。 一般而言,BE和RT請(qǐng)求二者均存在。當(dāng)BE和RT請(qǐng)求 二者均存在時(shí),通信量混合器204確定是否可以執(zhí)行最大努力請(qǐng)求,并關(guān)于 所有未決的RT請(qǐng)求仍然維持余量m。通信量混合器204通過(guò)跟蹤為了滿足 余量約束m而必須執(zhí)行RT請(qǐng)求的時(shí)間H來(lái)作出確定。時(shí)間H可以使用以下 所示的等式(2)來(lái)計(jì)算。州o,i,...,WrU、、(2)在等式(2)中,7^(《)表示請(qǐng)求氣的截止期限,其中氣是當(dāng)以執(zhí)行次序(即,以LBA次序)考慮RT請(qǐng)求時(shí)的第j個(gè)RT請(qǐng)求。此外,在等式(2) 中,Tc(^)是RT請(qǐng)求氣的估計(jì)處理(完成)時(shí)間。在當(dāng)前時(shí)間"如果H^,則RT請(qǐng)求的集合是可調(diào)度的。如果H-erc(i '),其中i '是隊(duì)列中的下一BE 請(qǐng)求,則執(zhí)行BE請(qǐng)求,并且RT請(qǐng)求仍然可調(diào)度。如果由于H-Krc(i ')而測(cè) 試失敗,則調(diào)度裝置開(kāi)始執(zhí)行RT請(qǐng)求。在每次接收或完成新的RT請(qǐng)求時(shí), 混合器均重新計(jì)算H。RT調(diào)度裝置策略在步驟207,實(shí)時(shí)(RT)調(diào)度裝置執(zhí)行RT請(qǐng)求。如果H大于等于當(dāng)前 時(shí)間f(即,H^),則實(shí)時(shí)(RT)調(diào)度裝置以LBA次序執(zhí)行請(qǐng)求。如果H々, 則RT調(diào)度裝置的策略取決于最早的請(qǐng)求&的截止期限。如果最早請(qǐng)求的截 止期限小于等于當(dāng)前時(shí)間(即,7^(&)^)(如,請(qǐng)求R錯(cuò)過(guò)了其截止期限),則不處理請(qǐng)求R,并使用超時(shí)錯(cuò)誤碼來(lái)將其標(biāo)記為失敗。如果最早請(qǐng)求的截 止期限小于等于當(dāng)前時(shí)間t加上參數(shù)e (即,r。(^。)^+e),則RT調(diào)度裝置以最早截止期限優(yōu)先(EDF)次序,執(zhí)行具有小于等于U+e)的截止期限的RT 請(qǐng)求的集合。參數(shù)e是可編程的。否則,對(duì)于每一請(qǐng)求將邏輯塊地址(LBA ) 次序施加于下面如公式(3)所示的RT請(qǐng)求的子集。 {/ /|rD(^rD(^。) + m} (3)圖3A根據(jù)本發(fā)明的實(shí)施例圖解了由實(shí)時(shí)調(diào)度裝置使用以執(zhí)行實(shí)時(shí)讀和 寫(xiě)IO請(qǐng)求的三種不同的調(diào)度窗。圖3A中所示的三種不同的調(diào)度窗是最早截 止期限優(yōu)先(EDF)窗、緊急情況LBA次序窗和正常情況LBA次序窗。只 有具有小于f+e的截止期限的實(shí)時(shí)請(qǐng)求被置于EDF窗中,其中f是當(dāng)前時(shí)間。 將具有最早截止期限r(nóng)。(&)加上服務(wù)質(zhì)量(QoS)約束余量m內(nèi)的截止期限的實(shí)時(shí)請(qǐng)求置于緊急LBA次序窗中。將可調(diào)度的實(shí)時(shí)請(qǐng)求的集合(即,具有 距離當(dāng)前時(shí)間t至少約束余量m的截止期限)置于正常情況LBA次序窗中。以LBA次序執(zhí)行處于緊急和正常LBA次序窗中的請(qǐng)求。LBA次序意味 著通過(guò)增大硬盤驅(qū)動(dòng)器或其他類型的數(shù)據(jù)存儲(chǔ)裝置上的LBA位置來(lái)排漆請(qǐng). 求。在特定時(shí)間間隔內(nèi)使用LBA次序可調(diào)度的IO請(qǐng)求的集合意味著通信量 混合器算法已經(jīng)確定具有落在所述時(shí)間間隔中的截止期限的請(qǐng)求將在不遲于 所述時(shí)間間隔的結(jié)束時(shí)完成。
如果發(fā)布具有足夠大截止期限的許多實(shí)時(shí)(RT)讀和寫(xiě)請(qǐng)求,則在一些 硬盤驅(qū)動(dòng)器中的IO調(diào)度裝置忽略所述請(qǐng)求直到經(jīng)過(guò)了足夠的時(shí)間為止,并且 截止期限變得足夠接近當(dāng)前時(shí)間。當(dāng)多個(gè)RT讀和寫(xiě)請(qǐng)求變得足夠接近當(dāng)前 時(shí)間時(shí),IO調(diào)度裝置可能突然面對(duì)在其截止期限之前不能被處理的多個(gè)請(qǐng)求。 如果正在服務(wù)具有幾乎同時(shí)的截止期限的幾個(gè)流,則可能產(chǎn)生這個(gè)問(wèn)題。
為了解決這個(gè)問(wèn)題,根據(jù)本發(fā)明的實(shí)施例,RT調(diào)度裝置確定每一個(gè)讀和 寫(xiě)請(qǐng)求是否落在三種不同的調(diào)度窗(在圖3A中將這三種不同的調(diào)度窗稱為 即時(shí)(EDF)、緊急LBA次序和正常LBA次序窗)的一個(gè)或多個(gè)內(nèi)。這三種 調(diào)度窗都隨著時(shí)間動(dòng)態(tài)地移動(dòng)。換言之,圖3A中所示的這三種調(diào)度窗(即 時(shí)、緊急和正常)都是每一個(gè)均隨著時(shí)間前進(jìn)而在時(shí)間上連續(xù)地向前移動(dòng)的 滑動(dòng)窗。例如,對(duì)于小值和大值T來(lái)說(shuō),如果時(shí)間增加了量T,則每一個(gè)即 時(shí)、緊急和正常窗的開(kāi)始和結(jié)尾均在時(shí)間上向前移動(dòng)了 T。
以最早截止期限優(yōu)先(EDF )次序盡快處理EDF窗中的所有RT請(qǐng)求。
由此,將EDF窗中具有最早截止期限的請(qǐng)求選擇為待執(zhí)行的下一請(qǐng)求。如果
在EDF窗中不存在請(qǐng)求,則使用更有效的LBA次序作為用于執(zhí)行緊急和正
常窗中的RT請(qǐng)求的調(diào)度策略,其中所考慮的請(qǐng)求的可變集合取決于最早請(qǐng)
求的截止期限。由此,如果在EDF窗中不存在請(qǐng)求,則以LBA次序執(zhí)行所
選擇的請(qǐng)求。特別地,如果最早請(qǐng)求處于在LBA次序正常窗中,則考慮所有
請(qǐng)求,以便以LBA次序執(zhí)行。如果最早請(qǐng)求處于LBA次序緊急窗中,則通
信量混合器可以決定僅以LBA次序執(zhí)行一些請(qǐng)求。甚至考慮具有大截止期限
的RT請(qǐng)求作為用于在RT調(diào)度裝置中調(diào)度的候選者。因此,RT調(diào)度裝置不
會(huì)變得被靠近其截止期限的大量RT請(qǐng)求所淹沒(méi)。在執(zhí)行每一個(gè)請(qǐng)求之后,
將所執(zhí)行的請(qǐng)求從滑動(dòng)窗移除。
圖3A示出了最早請(qǐng)求的截止期限7^(&)大于f+e但小于f+m的示例。
基于具有最早截止期限的請(qǐng)求來(lái)限定緊急LBA次序窗。因此,緊急LBA次
序窗基于關(guān)于當(dāng)前時(shí)間最早請(qǐng)求的截止期限何時(shí)出現(xiàn)而變化。兩個(gè)其他窗取決于當(dāng)前時(shí)間/以及參數(shù)e和w。
圖3B根據(jù)本發(fā)明的實(shí)施例圖解了由實(shí)時(shí)調(diào)度裝置使用以執(zhí)行實(shí)時(shí)讀和 寫(xiě)IO請(qǐng)求的三種滑動(dòng)窗的另一示例。圖3B中所示的三種滑動(dòng)窗與圖3A中 所示的三種滑動(dòng)窗相同。在圖3B中,緊急LBA次序窗與EDF窗重疊,因?yàn)?最早請(qǐng)求的截止期限r(nóng)。(&)小于從當(dāng)前時(shí)間f起的e (即,[(&)々+e)。
BE調(diào)度裝置策略
通過(guò)使用LBA次序策略,在步驟208由BE調(diào)度裝置確定最大努力(BE) 請(qǐng)求的執(zhí)行次序。根據(jù)該LBA次序策略,從執(zhí)行的最后請(qǐng)求(RT或BE)的 末端LBA開(kāi)始,以增大LBA次序來(lái)執(zhí)行BE請(qǐng)求。
由于可以中斷BE請(qǐng)求調(diào)度以處理RT請(qǐng)求,因此LBA變化可能不是單 調(diào)的,這潛在地導(dǎo)致BE請(qǐng)求不足。BE調(diào)度裝置通過(guò)在每次選擇BE請(qǐng)求時(shí) 減小最陳舊BE請(qǐng)求的齡期來(lái)解決該問(wèn)題。如果該請(qǐng)求的齡期變得低于使用 LBA次序選擇的BE請(qǐng)求的齡期,則在其位置選擇最陳舊的請(qǐng)求。
占空比最小化
將硬盤驅(qū)動(dòng)器的占空比限定為硬盤驅(qū)動(dòng)器忙于處理請(qǐng)求的時(shí)間的百分 比。在步驟206,通信量混合器中的占空比最小化(DCM)計(jì)時(shí)器即使在不 存在BE請(qǐng)求的情形下仍延遲RT請(qǐng)求的處理。該DCM延遲允許RT請(qǐng)求的 潛在累積,以便RT調(diào)度裝置可以關(guān)于請(qǐng)求的更大集合執(zhí)行LBA次序,這導(dǎo) 致由于請(qǐng)求之間減小的平均搜索距離而帶來(lái)的更好性能。通信量混合器等待 直到時(shí)何H為止,以開(kāi)始執(zhí)行RT請(qǐng)求。
通信量混合器204可以根據(jù)IO請(qǐng)求的截止期限將其分組為多個(gè)批。例如, 通信量混合器可以將具有落入特定調(diào)度窗內(nèi)的截止期限的IO請(qǐng)求分組為一 批。將該批中的IO請(qǐng)求在之前調(diào)度窗中的某一時(shí)間發(fā)布到硬盤驅(qū)動(dòng)器。在通 信量混合器發(fā)布一批IO請(qǐng)求之后,通信量混合器可以在調(diào)度窗結(jié)束之前發(fā)布 盡可能多的最大努力請(qǐng)求。如果在調(diào)度窗結(jié)束之前不再存在最大努力請(qǐng)求, 則通信量混合器可以開(kāi)始發(fā)布來(lái)自下一批的IO請(qǐng)求,或者可以維持硬盤驅(qū)動(dòng) 器空閑直到下一調(diào)度窗開(kāi)始為止。
通信量混合器204可以發(fā)布在包含這些IO請(qǐng)求的截止期限的調(diào)度窗之前 的調(diào)度窗中的每一批IO請(qǐng)求。根據(jù)花費(fèi)多長(zhǎng)時(shí)間執(zhí)行IO請(qǐng)求,發(fā)布之前調(diào) 度窗中的IO請(qǐng)求可能不足以保證所有IO請(qǐng)求均在其截止期限之前完成。本發(fā)明的一些實(shí)施例可以確定何時(shí)開(kāi)始發(fā)布給定批的IO請(qǐng)求以便確保所述批
內(nèi)的所有IO請(qǐng)求都滿足其各自的截止期限。截止期限可從短(如,100-200 毫秒)到中范圍(如,500-600毫秒),到長(zhǎng)(如,2秒)變化。在此公開(kāi)的 一些實(shí)施例關(guān)于引入的IO請(qǐng)求利用截止期限或優(yōu)先級(jí)。
為了改善調(diào)度行為,通信量混合器204可以利用自適應(yīng)硬盤驅(qū)動(dòng)器模型 以估計(jì)完成一個(gè)或多個(gè)IO請(qǐng)求所需的時(shí)間量。然后通信量混合器可以使用自 適應(yīng)硬盤驅(qū)動(dòng)器模型來(lái)確定通信量混合器應(yīng)該開(kāi)始給定批的IO請(qǐng)求的最近 時(shí)間。例如,當(dāng)所述批中最近的截止期限等于估計(jì)的所述批的完成時(shí)間加上 某一調(diào)度余量的時(shí)候,可以開(kāi)始一批IO請(qǐng)求。在一個(gè)實(shí)施例中,調(diào)度余量表 示通信量混合器加到請(qǐng)求完成時(shí)間或批完成時(shí)間估計(jì)上的額外的安全余量。 所測(cè)量的余量是實(shí)際請(qǐng)求完成時(shí)間或批完成時(shí)間與指定的請(qǐng)求截止期限或批 截止期限之間的差。
在一個(gè)實(shí)施例中,由自適應(yīng)硬盤驅(qū)動(dòng)器來(lái)確定所估計(jì)的用以完成批中所 有IO請(qǐng)求的服務(wù)時(shí)間,其中所估計(jì)的服務(wù)時(shí)間適合實(shí)際的硬盤驅(qū)動(dòng)器請(qǐng)求完 成時(shí)間。通信量混合器可以利用硬盤驅(qū)動(dòng)器的模型以估計(jì)請(qǐng)求完成時(shí)間,然 后適合實(shí)際請(qǐng)求完成時(shí)間或根據(jù)各個(gè)請(qǐng)求或多個(gè)批的請(qǐng)求所測(cè)量的余量。同 樣地, 一向過(guò)高估計(jì)或過(guò)低估計(jì)了請(qǐng)求完成時(shí)間的模型將變換時(shí)間以提供改 進(jìn)的估計(jì)。因此,如果花費(fèi)比預(yù)期更長(zhǎng)的時(shí)間來(lái)完成一批IO請(qǐng)求(即,測(cè)量 余量小于調(diào)度余量),則通信量混合器增大調(diào)度余量。相反,如果比硬盤驅(qū)動(dòng) 器模型估計(jì)的更快地完成一批請(qǐng)求(即,測(cè)量余量大于調(diào)度余量),則通信量 混合器減小調(diào)度余量。在同時(shí)待審的、共同轉(zhuǎn)讓給Molaro等人的、2007年8 月30日提交的美國(guó)專利申請(qǐng)序列號(hào)11/848,174 (將其全部?jī)?nèi)容通過(guò)引用的方 式合并在此)中描述了自適應(yīng)性IO調(diào)度裝置的進(jìn)一步細(xì)節(jié)。
為了說(shuō)明和描述的目的,已經(jīng)呈現(xiàn)了本發(fā)明的示例性實(shí)施例的前述描述。 并非旨在窮舉或?qū)⒈景l(fā)明限制到在此所公開(kāi)的示例。在一些情況下,可以采
用本發(fā)明的特征,而沒(méi)有所提出的其他特征的對(duì)應(yīng)使用。在不脫離本發(fā)明的 范圍的情況下,根據(jù)以上教導(dǎo),許多修改、改變和變化都是可能的。并非旨 在通過(guò)該詳細(xì)的描述來(lái)限制本發(fā)明的范圍。例如,可以使用硬件、軟件和包 含程序指令的計(jì)算機(jī)可讀介質(zhì)中之一或組合來(lái)實(shí)施本發(fā)明的實(shí)施例。可以將 由本發(fā)明的實(shí)施例實(shí)施的軟件和本發(fā)明的結(jié)果存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,如 存儲(chǔ)器、硬盤驅(qū)動(dòng)器、致密盤(CD)、數(shù)字視頻盤(DVD)或其他介質(zhì)。本發(fā)明的結(jié)果可以用于各種目的,如通過(guò)處理器執(zhí)行或處理、向用戶顯示、通 過(guò)網(wǎng)絡(luò)以信號(hào)的方式傳送等。
權(quán)利要求
1、一種系統(tǒng),包括存儲(chǔ)裝置;以及調(diào)度裝置,其確定用于存取所述存儲(chǔ)裝置的請(qǐng)求的截止期限是否落入第一和第二滑動(dòng)窗內(nèi),以及其中所述調(diào)度裝置以第一執(zhí)行次序發(fā)布位于所述第一滑動(dòng)窗中的請(qǐng)求并以第二執(zhí)行次序發(fā)布位于所述第二滑動(dòng)窗中的請(qǐng)求。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述第一滑動(dòng)窗中的請(qǐng)求由所述調(diào) 度裝置以所述第 一滑動(dòng)窗中請(qǐng)求的截止期限的次序來(lái)發(fā)布,其中首先執(zhí)行所 述第一滑動(dòng)窗中的請(qǐng)求的最早截止期限。
3、 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述第二滑動(dòng)窗中的請(qǐng)求由所述調(diào) 度裝置以邏輯塊地址的次序來(lái)發(fā)布。
4、 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述調(diào)度裝置確定用于存取所述存 儲(chǔ)裝置的請(qǐng)求的截止期限是否落入所迷第一、所述第二和第三滑動(dòng)窗內(nèi),并 且所述調(diào)度裝置以第三執(zhí)行次序發(fā)布位于所述第三滑動(dòng)窗中的請(qǐng)求。
5 、根據(jù)權(quán)利要求4所述的系統(tǒng),其中以增大所述存儲(chǔ)裝置上邏輯塊地址 位置的次序來(lái)執(zhí)行所述第二滑動(dòng)窗中的請(qǐng)求和所述第三滑動(dòng)窗中的請(qǐng)求。
6、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中如果對(duì)于至少一個(gè)請(qǐng)求的截止期限 落在時(shí)間閾值之后,則所述調(diào)度裝置在經(jīng)延遲的時(shí)間處發(fā)布所述至少一個(gè)請(qǐng)求。
7、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述第二滑動(dòng)窗在具有最早截止期 限的請(qǐng)求的截止期限處開(kāi)始。
8、 一種計(jì)算機(jī)系統(tǒng),包括用于優(yōu)化調(diào)度裝置的代碼,其中將所述代碼存 儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,所述計(jì)算機(jī)系統(tǒng)包括用于接收存取存儲(chǔ)裝置的請(qǐng)求的代碼;用于確定所述請(qǐng)求的截止期限是否落入第 一和第二滑動(dòng)窗內(nèi)的代碼,其 中所述第一和第二滑動(dòng)窗隨著時(shí)間的前進(jìn)而在時(shí)間上連續(xù)地向前移動(dòng); 用于以第 一次序發(fā)布位于所述第 一滑動(dòng)窗中的第 一請(qǐng)求的代碼;以及 用于以第二次序發(fā)布位于所述第二滑動(dòng)窗中的第二請(qǐng)求的代碼。
9、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其中用于以所述第一次序發(fā)布第一請(qǐng)求的代碼進(jìn)一步包括用于基于所迷第一請(qǐng)求的截止期限、以最早截止期 限第一次序發(fā)布所述第一請(qǐng)求的代碼。
10、 根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中用于以第二次序發(fā)布第二請(qǐng)求的代碼進(jìn)一 步包括用于以邏輯塊地址的次序發(fā)布所述第二請(qǐng)求的代碼。
11、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括 用于確定所述請(qǐng)求的截止期限是否落入第三滑動(dòng)窗內(nèi)的代碼,其中所述第三滑動(dòng)窗隨著時(shí)間的前進(jìn)在時(shí)間上連續(xù)地向前移動(dòng);以及 用于以第三次序發(fā)布所述第三滑動(dòng)窗中的第三請(qǐng)求的代碼。
12、 根據(jù)權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其中用于以所述第三次序發(fā)布 所述第三請(qǐng)求的代碼進(jìn)一步包括以增大硬盤驅(qū)動(dòng)器上的邏輯塊地址位置的次 序發(fā)布所述第三請(qǐng)求的代碼。
13、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括使用基于硬盤驅(qū)動(dòng)器中盤的旋轉(zhuǎn)時(shí)間段、硬盤驅(qū)動(dòng)器的平均搜索時(shí)間、 硬盤驅(qū)動(dòng)器的最大和最小傳輸速度以及盤的最大邏輯塊地址的模型來(lái)估計(jì)所 述請(qǐng)求的服務(wù)時(shí)間的代碼,其中所述請(qǐng)求的估計(jì)服務(wù)時(shí)間被用于決定下面是 執(zhí)行實(shí)時(shí)請(qǐng)求還是最大努力請(qǐng)求。
14、 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其中所述第二滑動(dòng)窗在具有最 早截止期限的請(qǐng)求的截止期限處開(kāi)始。
15、 一種通過(guò)使用調(diào)度裝置來(lái)發(fā)布存取存儲(chǔ)裝置的請(qǐng)求的方法,所述方 法包括接收用于存取所述存儲(chǔ)裝置的請(qǐng)求;確定所述請(qǐng)求的截止期限是否落入第一和第二滑動(dòng)窗內(nèi),所述第一和第 二滑動(dòng)窗隨著時(shí)間的前進(jìn)而在時(shí)間上連續(xù)地向前移動(dòng);以第一次序發(fā)布所述第一滑動(dòng)窗中的第一請(qǐng)求;以及 以第二次序發(fā)布所述第二滑動(dòng)窗中的第二請(qǐng)求。
16、 根據(jù)權(quán)利要求15所述的方法,其中以所述第一次序發(fā)布所述第一請(qǐng) 求進(jìn)一步包括基于所述第一請(qǐng)求的截止期限、以最早截止期限第一次序發(fā)布 所述第一請(qǐng)求。
17、 根據(jù)權(quán)利要求16所述的方法,其中以所述第二次序發(fā)布所述第二請(qǐng) 求進(jìn)一 步包括以邏輯塊地址的次序發(fā)布所述第二請(qǐng)求。
18、 根據(jù)權(quán)利要求15所述的方法,其中確定所述請(qǐng)求的截止期限是否落入第一和第二滑動(dòng)窗進(jìn)一步包括確定所述請(qǐng)求的截止期限是否落入所述第 一、所述第二和第三滑動(dòng)窗,所述第一、第二、第三滑動(dòng)窗隨著時(shí)間的前進(jìn)而在時(shí)間上連續(xù)地向前移動(dòng),其中所述方法進(jìn)一步包括 以第三次序發(fā)布位于所述第三滑動(dòng)窗中的第三請(qǐng)求。
19、 根據(jù)權(quán)利要求18所述的方法,其中以所述第三次序發(fā)布所述第三請(qǐng) 求進(jìn)一步包括以增大硬盤驅(qū)動(dòng)器上的邏輯塊地址位置的次序發(fā)布所述第三請(qǐng)求。
20、 根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其中所述第二滑動(dòng)窗在具有最 早截止期限的請(qǐng)求的截止期限處開(kāi)始。
全文摘要
公開(kāi)了使用滑動(dòng)窗調(diào)度存取存儲(chǔ)裝置請(qǐng)求的技術(shù)。一種系統(tǒng)包括存儲(chǔ)裝置和調(diào)度裝置。調(diào)度裝置確定存取存儲(chǔ)裝置的請(qǐng)求的截止期限是否落入第一和第二滑動(dòng)窗內(nèi)。調(diào)度裝置以第一執(zhí)行次序發(fā)布第一滑動(dòng)窗中的請(qǐng)求,并以第二執(zhí)行次序發(fā)布第二滑動(dòng)窗中的請(qǐng)求。
文檔編號(hào)G06F3/06GK101625629SQ200910140130
公開(kāi)日2010年1月13日 申請(qǐng)日期2009年7月8日 優(yōu)先權(quán)日2008年7月8日
發(fā)明者喬奇·坎佩洛德索扎, 唐納德·J·莫拉羅, 達(dá)米恩·C·D·勒莫爾 申請(qǐng)人:日立環(huán)球儲(chǔ)存科技荷蘭有限公司