專利名稱:命令排程裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明公開(kāi)了一種儲(chǔ)存系統(tǒng)及其方法,特別是關(guān)于一種排程裝置及其方 法,針對(duì)若干個(gè)主機(jī)系統(tǒng)傳送至一儲(chǔ)存系統(tǒng)的若干個(gè)命令進(jìn)行排程,使得該主 機(jī)系統(tǒng)能夠快速且有效率地存取該儲(chǔ)存系統(tǒng)的儲(chǔ)存單元。
背暈技術(shù)
圖1為先前技術(shù)中主機(jī)系統(tǒng)(host system)100透過(guò)網(wǎng)絡(luò)存取連接至一遠(yuǎn)程儲(chǔ) 存系統(tǒng)104之儲(chǔ)存單元102之系統(tǒng)示意圖。
上述存取該儲(chǔ)存單元102的系統(tǒng)包括一主機(jī)系統(tǒng)100、 一遠(yuǎn)程儲(chǔ)存系統(tǒng) (remote storage system)104以及連接于該遠(yuǎn)程儲(chǔ)存系統(tǒng)104的儲(chǔ)存單元102。該 主機(jī)系統(tǒng)100利用設(shè)置于該主機(jī)系統(tǒng)100的一網(wǎng)絡(luò)適配卡(未圖標(biāo)),并且以遠(yuǎn) 程方式讀取儲(chǔ)存于該儲(chǔ)存單元102的數(shù)據(jù)或是將數(shù)據(jù)寫入至該儲(chǔ)存單元102。 該儲(chǔ)存單元102為硬盤驅(qū)動(dòng)器(hard disk drive, HDD)、光驅(qū)(CD-ROM)、軟式磁 盤驅(qū)動(dòng)器(floppy drive)或是其它種類的儲(chǔ)存裝置。
由于該儲(chǔ)存單元102無(wú)法直接連接于該主機(jī)系統(tǒng)100,因此會(huì)有逾時(shí) (time-out)的問(wèn)題產(chǎn)生,亦即當(dāng)該主機(jī)系統(tǒng)100傳送命令至遠(yuǎn)程的儲(chǔ)存系統(tǒng)104 并且等待該儲(chǔ)存系統(tǒng)104的響應(yīng)時(shí),存取該儲(chǔ)存單元102的命令之等待時(shí)間過(guò) 久,而且依據(jù)該命令以隨機(jī)(randomly)方式讀取/寫入該儲(chǔ)存單元102的地址, 以致于浪費(fèi)許多該儲(chǔ)存單元102的數(shù)據(jù)輸A/輸出時(shí)間。由于前述問(wèn)題,因此僅能由一使用者透過(guò)主機(jī)系統(tǒng)IOO來(lái)存取該遠(yuǎn)程儲(chǔ)存系統(tǒng)104的儲(chǔ)存單元102, 使用上受到相當(dāng)大的限制。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種排程裝置及其方法,用以對(duì)若干個(gè)命令進(jìn)行排 程,以降低這些命令產(chǎn)生逾時(shí)的問(wèn)題。
本發(fā)明的另一 目的在于提供一種排程裝置及其方法,用以對(duì)若干個(gè)命令進(jìn) 行排程,以降低儲(chǔ)存單元的數(shù)據(jù)輸入/輸出時(shí)間。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種排程裝置及其方法,該排程裝置透過(guò)一 網(wǎng)絡(luò)對(duì)若干個(gè)主機(jī)系統(tǒng)傳送至一儲(chǔ)存系統(tǒng)的若干個(gè)命令進(jìn)行排程,其中該主機(jī) 系統(tǒng)依據(jù)這些命令存取該儲(chǔ)存系統(tǒng)之一儲(chǔ)存單元,該排程裝置主要包括一命令 收集模塊、排序模塊以及命令執(zhí)行模塊。該命令收集模塊用以收集來(lái)自若干個(gè) 主機(jī)系統(tǒng)的若干個(gè)命令。排序模塊依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)收集到的命令進(jìn) 行排序,其中該儲(chǔ)存單元內(nèi)的若干個(gè)數(shù)據(jù)地址分別相關(guān)于若干個(gè)命令。命令執(zhí) 行模塊用以執(zhí)行排序后的若干個(gè)命令。
該命令收集模塊包括一命令時(shí)間戳記單元(commandtime stamp unit)、 一命 令隊(duì)列單元(command queue)以及條件觸發(fā)單元(condition trigger unit)。
命令時(shí)間戳記單元,用以記錄來(lái)自這些主機(jī)系統(tǒng)的這些命令之若干個(gè)到達(dá) 時(shí)間戳記(arrival time stamps)。亦即當(dāng)該命令收集模塊依序接收這些命令時(shí), 該命令時(shí)間戳記單元分別將每一命令標(biāo)印(stamp)出其到達(dá)的時(shí)間。命令隊(duì)列單 元用以使來(lái)自該命令時(shí)間戳記單元的這些命令形成一隊(duì)列。條件觸發(fā)單元,依 據(jù)若干個(gè)條件臨限值(condition thresholds),例如一命令配額(command quota)以及一時(shí)間片段(time slice)之其中一者,用以將該隊(duì)列內(nèi)的這些命令分成若干個(gè) 命令群組,其中該命令配額定義為這些命令所存取的一數(shù)據(jù)量(data amount), 且該時(shí)間片段定義為一時(shí)間區(qū)間(time interval)。
該條件觸發(fā)單元更包括一命令配額檢査單元(command quota checker)以及 一時(shí)間片段檢査單元(time slice checker),用以分別檢査上述之條件臨限值。該 命令配額檢査單元依據(jù)該命令配額,用以檢査這些命令所存取的該數(shù)據(jù)量,該 時(shí)間片段檢査單元依據(jù)該時(shí)間片段,用以檢査這些到達(dá)時(shí)間戳記的時(shí)間區(qū)間。 在一實(shí)施例中,當(dāng)上述兩個(gè)條件臨限值中的任意一個(gè)相符合時(shí),則將命令隊(duì)列 單元內(nèi)之命令分成若干個(gè)命令群組,并且將這些命令群組傳送至該排序模塊。
該命令群組儲(chǔ)存單元,用以儲(chǔ)存依序來(lái)自該條件觸發(fā)單元以及該排序模塊 的這些命令群組,其中每一命令群組至少包含一命令。該選取單元用以在該命 令群組儲(chǔ)存單元中選取這些命令群組。該解碼單元依據(jù)這些命令所存取的這些 數(shù)據(jù)地址,用以對(duì)一命令群組內(nèi)之命令進(jìn)行解碼。
該快取單元用以儲(chǔ)存相對(duì)應(yīng)于之前這些命令所存取的這些數(shù)據(jù)地址之?dāng)?shù) 據(jù)。當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些 數(shù)據(jù)地址相同時(shí),位于該快取單元內(nèi)的該先前存取數(shù)據(jù)直接傳送至這些主機(jī)系 統(tǒng)。當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些 數(shù)據(jù)地址不相同時(shí),該命令執(zhí)行單元執(zhí)行目前的這些命令,并且將相應(yīng)于目前 的這些命令的該數(shù)據(jù)傳送至該主機(jī)系統(tǒng)。而且當(dāng)目前的這些命令所存取的這些 數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址不相同時(shí),該命令執(zhí)行單元 利用相應(yīng)于該目前命令的該傳送數(shù)據(jù)來(lái)更新一快取單元。
本發(fā)明實(shí)施例中執(zhí)行儲(chǔ)存模擬裝置的存取方法包括下列步驟(1) 記錄來(lái)自這些主機(jī)系統(tǒng)的若干個(gè)命令之若干個(gè)到達(dá)時(shí)間戳記。
(2) 依據(jù)一命令配額以及一時(shí)間片段之其中一者,將該隊(duì)列內(nèi)的這些命令 分成若干個(gè)命令群組,其中該命令配額定義為這些命令所存取的一數(shù)據(jù)量,且 該時(shí)間片段定義為一時(shí)間區(qū)間。在一實(shí)施例中,當(dāng)上述兩個(gè)條件臨限值中的任 意一個(gè)相符合時(shí),則將命令隊(duì)列單元內(nèi)之命令分成若干個(gè)命令群組,并且將這 些命令群組傳送至該排序模塊。
(3) 依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)每一命令群組內(nèi)之命令進(jìn)行排序,其中這 些數(shù)據(jù)地址分別相關(guān)于這些命令。
(4) 依據(jù)這些命令所存取的這些數(shù)據(jù)地址,用以對(duì)一命令群組內(nèi)之命令進(jìn) 行解碼。
(5) 決定目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命令所存取 的這些數(shù)據(jù)地址是否相同。當(dāng)相同時(shí),直接傳送該之前存取的數(shù)據(jù)至這些主機(jī) 系統(tǒng)。當(dāng)不相同時(shí),執(zhí)行目前的這些命令。
以下結(jié)合附圖與實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。
附閨說(shuō)明
圖1為先前技術(shù)中主機(jī)系統(tǒng)透過(guò)網(wǎng)絡(luò)存取一遠(yuǎn)程儲(chǔ)存單元之示意圖,其中 該儲(chǔ)存單元連接于一儲(chǔ)存系統(tǒng)。
圖2為本發(fā)明實(shí)施例中具有一排程裝置之虛擬儲(chǔ)存系統(tǒng)之示意圖。 圖3為本發(fā)明實(shí)施例中圖2的排程裝置之命令收集模塊之示意圖。 圖4為本發(fā)明實(shí)施例中圖2的排程裝置之命令執(zhí)行模塊之示意圖。 圖5為本發(fā)明實(shí)施例中一命令隊(duì)列之示意圖,是將該命令隊(duì)列分割成若干個(gè)時(shí)間片段,以收集若干個(gè)命令。
圖6A-6B為本發(fā)明實(shí)施例中對(duì)一時(shí)間片段內(nèi)的命令進(jìn)行排序之示意圖。 圖7為本發(fā)明實(shí)施例中執(zhí)行該排程裝置的方法之流程圖。
具體實(shí)施例方式
有關(guān)本發(fā)明的詳細(xì)說(shuō)明及技術(shù)內(nèi)容,現(xiàn)就結(jié)合
如下。以下實(shí)施例 的說(shuō)明是參考附加的圖示,用于例示本發(fā)明可用于實(shí)施的特定實(shí)施例。
圖2為本發(fā)明實(shí)施例中具有一排程裝置(scheduling apparatus)202之虛擬儲(chǔ) 存系統(tǒng)200之示意圖。該虛擬儲(chǔ)存系統(tǒng)200主要包括一排程裝置202以及若干 個(gè)儲(chǔ)存模擬裝置(E1 E4, 204a 204d),排程裝置202透過(guò)網(wǎng)絡(luò)耦接儲(chǔ)存系統(tǒng)206 至儲(chǔ)存模擬裝置(204a 204d),該儲(chǔ)存系統(tǒng)206至少設(shè)有一儲(chǔ)存單元208,此處 以一儲(chǔ)存單元208連接至該儲(chǔ)存系統(tǒng)206, 一個(gè)或若干個(gè)主機(jī)系統(tǒng)(H1 H4, 210a 210d)分別耦接至儲(chǔ)存模擬裝置(204a 204d)。該虛擬儲(chǔ)存系統(tǒng)200允許一 主機(jī)系統(tǒng)(亦即210a 210d其中之一)透過(guò)網(wǎng)絡(luò)控制或是存取該儲(chǔ)存單元208, 如同該儲(chǔ)存單元208直接連接于主機(jī)系統(tǒng)(210a 210d)—樣。較佳實(shí)施例中,該 虛擬儲(chǔ)存系統(tǒng)200允許幾個(gè)或是全部的主機(jī)系統(tǒng)(亦即210a 210d其中之一)控 制或是存取該儲(chǔ)存單元208。
本發(fā)明之排程裝置202是透過(guò)一網(wǎng)絡(luò)對(duì)若干個(gè)主機(jī)系統(tǒng)(210a 210d)傳送 至一儲(chǔ)存系統(tǒng)206之若干個(gè)命令進(jìn)行排程,以使主機(jī)系統(tǒng)(210a 210d)依據(jù)這些 命令存取該儲(chǔ)存系統(tǒng)206之儲(chǔ)存單元208,該排程裝置202包括一命令收集模 塊212、 一排序模塊214以及一命令執(zhí)行模塊216。該命令收集模塊212耦接 于該排序模塊214,且該排序模塊214耦接于該命令執(zhí)行模塊216。命令收集模塊212用以收集來(lái)自主機(jī)系統(tǒng)(210a 210d)的命令。排序模塊 214依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)來(lái)自該命令收集模塊212所收集到的命令進(jìn)行 排序,其中該儲(chǔ)存單元208內(nèi)的數(shù)據(jù)地址是相關(guān)于該命令。命令執(zhí)行模塊216 用以執(zhí)行自該排序模塊214排序后的命令。請(qǐng)配合圖2-4,該命令收集模塊212 以及該命令執(zhí)行模塊216將于后詳述。
儲(chǔ)存模擬裝置(204a 204d)用以分析來(lái)自主機(jī)系統(tǒng)(210a 210d)的命令,以 傳送特定型態(tài)的命令至該儲(chǔ)存系統(tǒng)206。舉例來(lái)說(shuō),該儲(chǔ)存模擬裝置(204a 204d) 是設(shè)計(jì)為僅傳送讀取命令(read command)以及寫入命令(write command)至該儲(chǔ) 存系統(tǒng)206,而且該儲(chǔ)存模擬裝置(204a 204d)進(jìn)一步模擬該儲(chǔ)存系統(tǒng)206之儲(chǔ) 存單元208,如同該儲(chǔ)存單元208直接連接于主機(jī)系統(tǒng)(210a 210d),使得主機(jī) 系統(tǒng)(210a 210d)能夠存取該儲(chǔ)存單元208。
圖3為本發(fā)明實(shí)施例中圖2的排程裝置202之命令收集模塊212之示意圖。 該命令收集模塊212包括一命令時(shí)間戳記單元(command time stamp unit)300、 一命令隊(duì)歹!j單元(pommand queue)302以及條件觸發(fā)單元(condition trigger unit)304。該命令時(shí)間戳記單元300透過(guò)網(wǎng)絡(luò)耦接于該儲(chǔ)存模擬裝置(204a 204d) 以及主機(jī)系統(tǒng)(210a 210d),該命令隊(duì)列單元302以及條件觸發(fā)單元304依序耦 接于該排序模塊214。
命令時(shí)間戳記單元300,用以記錄來(lái)自這些主機(jī)系統(tǒng)(210a 210d)的這些命 令之若千個(gè)到達(dá)時(shí)間戳記(arrival time stamps)。亦即當(dāng)該命令收集模塊212依 序接收這些命令時(shí),該命令時(shí)間戳記單元300將每一命令標(biāo)印(stamp)出其到達(dá) 的時(shí)間。命令隊(duì)列單元302,用以使來(lái)自該命令時(shí)間戳記單元300的這些命令 形成一隊(duì)列。條件觸發(fā)單元304,依據(jù)若干個(gè)條件臨限值(conditionthresholds),例如一命令配額(command quota)以及一時(shí)間片段(time slice)之其中一者,用以 將該命令隊(duì)列單元302內(nèi)的這些命令分成若干個(gè)命令群組,其中該命令配額定 義為這些命令所存取的一數(shù)據(jù)量(data amount),且該時(shí)間片段定義為一時(shí)間區(qū) 間(time interval) o
該條件觸發(fā)單元304更包括一命令配額檢査單元(command quota checker)304a以及一時(shí)間片段檢査單元(time slice checker"04b,用以分別檢查 上述之條件臨限值。該命令配額檢査單元304a依據(jù)該條件臨限值之命令配額, 用以檢査這些命令所存取的該數(shù)據(jù)量,該時(shí)間片段檢查單元304b依據(jù)該時(shí)間 片段條件臨限值,用以檢査這些到達(dá)時(shí)間戳記的時(shí)間區(qū)間。在一實(shí)施例中,當(dāng) 上述兩個(gè)條件臨限值中的任意一個(gè)相符合時(shí),則將命令隊(duì)列單元302內(nèi)之命令 分成若干個(gè)命令群組,并且將這些命令群組傳送至該排序模塊214。
圖4為本發(fā)明實(shí)施例中圖2的排程裝置202之命令執(zhí)行模塊216之示意圖。 該命令執(zhí)行模塊216更包括一命令群組儲(chǔ)存單元(command-group pool)400、 一 選取單元(pickerunit)402、一解碼單元(decoder)404、 一快取單元(cache unit)406 以及一命令執(zhí)行單元(command executer unit)408。該命令群組儲(chǔ)存單元400耦 接于該排序模塊214,命令執(zhí)行單元408透過(guò)網(wǎng)絡(luò)耦接于主機(jī)系統(tǒng)(210a 210d)。
將來(lái)自該排序模塊214的命令群組儲(chǔ)存于該命令群組儲(chǔ)存單元400,其中 每一命令群組至少包含一命令。該選取單元402用以選取在該命令群組儲(chǔ)存單 元400中這些命令群組其中之一。該解碼單元404依據(jù)這些命令所存取的這些 數(shù)據(jù)地址,用以對(duì)所選取命令群組內(nèi)之命令進(jìn)行解碼。
該快取單元406用以儲(chǔ)存相對(duì)應(yīng)于之前這些命令所存取的這些數(shù)據(jù)地址之 數(shù)據(jù)。當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址相同時(shí),直接傳送位于該快取單元406內(nèi)該之前存取的數(shù)據(jù)至這些 主機(jī)系統(tǒng)(210a 210d)。當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些 命令所存取的這些數(shù)據(jù)地址不相同時(shí),該命令執(zhí)行單元408執(zhí)行目前的這些命 令,并且將相應(yīng)于執(zhí)行目前的這些命令的該數(shù)據(jù)地址的該數(shù)據(jù)傳送至該主機(jī)系 統(tǒng)(210a 210d)。而且當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命 令所存取的這些數(shù)據(jù)地址不相同時(shí),該命令執(zhí)行單元408利用相應(yīng)于該目前命 令的該傳送數(shù)據(jù)來(lái)更新一快取單元406。
請(qǐng)參考圖2-3以及圖5,圖5為本發(fā)明實(shí)施例中一命令隊(duì)列(Q1)之示意圖, 是將該命令隊(duì)列分割成若干個(gè)時(shí)間片段,以收集若干個(gè)命令。命令收集模塊212 接收來(lái)自該主機(jī)系統(tǒng)(210a 210d)的命令,舉例來(lái)說(shuō),該命令收集模塊212依序 將相應(yīng)于這些到達(dá)時(shí)間戳記的命令#1至命令弁N儲(chǔ)存于命令隊(duì)列單元302的隊(duì) 列中,并且依據(jù)一時(shí)間片段(time slice),命令收集模塊212將這些到達(dá)時(shí)間戳 記分成若干個(gè)時(shí)間片段如"S11"、 "S12"及"S13",其中時(shí)間片段"S11"、 "S12" 及"S13"分別包括命令W至命令弁L、命令^(L+1)至命令^M、以及命令楓M+1) 至命令^N,其中"L"、 "M"及"N"例如是正整數(shù)。
在一實(shí)施例中,時(shí)間片段的區(qū)間是介于500微秒Ois)至1000微秒0is)之間。 另一實(shí)施例中,命令配額檢查單元304a用以收集該命令且每一命令所存取的 數(shù)據(jù)量是介于0.5 (kilo-bytes, kbs)至64 kbs之間,本發(fā)明所屬技術(shù)領(lǐng)域中具有 通常知識(shí)者應(yīng)注意的是任意的時(shí)間片段之區(qū)間以及數(shù)據(jù)量亦適用。因此執(zhí)行命 令之后,使得具有排程裝置202之虛擬儲(chǔ)存系統(tǒng)200有效地對(duì)若干個(gè)命令進(jìn)行 排序,以減少逾時(shí)(time-out)的問(wèn)題。在一實(shí)施例中,該主機(jī)系統(tǒng)(210a 210d) 的使用者數(shù)目是介于1至IO之間,時(shí)間片段的區(qū)間是由下列公式表示(1 +nxO.l)(時(shí)間單位,time unit),其中"n"表示使用者的數(shù)目;當(dāng)使用者的數(shù)目超過(guò) 一預(yù)定數(shù)目時(shí),例如10個(gè)人以上使用時(shí),則該時(shí)間片段的區(qū)間被設(shè)定為2(時(shí) 間單位)。此外,當(dāng)該主機(jī)系統(tǒng)(210a 210d)的使用者數(shù)目是介于1至IO之間時(shí), 該命令配額(command quota)是由下列公式表示(1 + n)(容量單位,bulk unit), 其中"n"表示使用者的數(shù)目;當(dāng)使用者的數(shù)目超過(guò)一預(yù)定數(shù)目時(shí),例如10個(gè)人 以上使用時(shí),則該命令配額被設(shè)定為ll(容量單位)。
參考圖2以及圖6A-6B,圖6A-6B為本發(fā)明實(shí)施例中對(duì)一時(shí)間片段內(nèi)的命 令進(jìn)行排序之示意圖。在圖6A中,根據(jù)到達(dá)時(shí)間戳記,四個(gè)命令在一時(shí)間片 段中,依序分別是主機(jī)系統(tǒng)210a(Hl)讀取地址"10"、主機(jī)系統(tǒng)210b(H2)讀 取地址"1000"、主機(jī)系統(tǒng)210a (Hl)讀取地址,,20"、以及主機(jī)系統(tǒng)210b (H2)讀 取地址"2000"。在圖6B中,根據(jù)存取的地址將該時(shí)間片段內(nèi)的命令進(jìn)行排序 之后,這些命令的順序如下所述主機(jī)系統(tǒng)210a(Hl)讀取地址"10"、主機(jī)系統(tǒng) 210a (Hl)讀取地址"20"、主機(jī)系統(tǒng)210b (H2)讀取地址"1000"、以及主機(jī)系統(tǒng) 210b (H2)讀取地址"2000"。
該命令執(zhí)行模塊216針對(duì)這些命令所存取的儲(chǔ)存單元208之地址進(jìn)行排 序,例如由圖6A至圖6B所示,用以依序地執(zhí)行排序后的這些命令,主要是 將相關(guān)于這些命令的地址依序安排,以減少儲(chǔ)存單元208讀寫頭隨機(jī)地變換位 置之問(wèn)題,因此本發(fā)明之具有排程裝置202的虛擬儲(chǔ)存系統(tǒng)200對(duì)若干個(gè)命令 進(jìn)行排序,以降低該儲(chǔ)存單元208的數(shù)據(jù)輸A/輸出時(shí)間。在一實(shí)施例中,這 些命令的這些數(shù)據(jù)地址是依據(jù)邏輯區(qū)塊尋址法(LBA)或是依據(jù)該儲(chǔ)存單元208 的實(shí)體地址進(jìn)行尋址。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識(shí)者應(yīng)注意的是,應(yīng) 用于儲(chǔ)存單元208(例如硬式磁盤驅(qū)動(dòng)器)邏輯區(qū)塊尋址法(LBA)是使用任意的比特?cái)?shù)(bitnumber)寬度,28比特寬度或是48比特寬度,或是具有更高的比特 寬度以適用于具高容量之儲(chǔ)存單元208。
參考圖2-4以及圖7,圖7為本發(fā)明實(shí)施例中執(zhí)行該排程裝置202的方法 流程圖,主要包括下列步驟
在步驟S700中,記錄來(lái)自這些主機(jī)系統(tǒng)(210a 210d)的若干個(gè)命令之若干 個(gè)到達(dá)時(shí)間戳記。
在步驟S702中,將這些命令于該命令隊(duì)列單元302中形成一隊(duì)列。
在步驟S704中,依據(jù)若干個(gè)條件臨限值,例如一命令配額以及一時(shí)間片 段之其中一者,將該隊(duì)列內(nèi)的這些命令分成若干個(gè)命令群組,其中該命令配額 定義為這些命令所存取的一數(shù)據(jù)量,且該時(shí)間片段定義為一時(shí)間區(qū)間。在一實(shí) 施例中,當(dāng)上述兩個(gè)條件臨限值中的任意一個(gè)相符合時(shí),將命令隊(duì)列單元302 內(nèi)之命令分成若干個(gè)命令群組,并且將這些命令群組傳送至該排序模塊214。
在步驟S706中,依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)每一命令群組內(nèi)之命令進(jìn)行 排序,其中這些數(shù)據(jù)地址相關(guān)于這些命令。
在步驟S708中,將這些命令群組儲(chǔ)存于一命令群組儲(chǔ)存單元400中。
在步驟S710中,從該命令群組儲(chǔ)存單元400中選取命令群組。
在步驟S712中,透過(guò)一解碼單元404依據(jù)這些命令所存取的這些數(shù)據(jù)地 址,用以對(duì)一命令群組內(nèi)之命令進(jìn)行解碼。
在步驟S714中,決定目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這 些命令所存取的這些數(shù)據(jù)地址是否相同。
在步驟S716中,當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些 命令所存取的這些數(shù)據(jù)地址相同時(shí),直接傳送位于該快取單元406內(nèi)該之前存取的數(shù)據(jù)至這些主機(jī)系統(tǒng)(210a 210d)。
在步驟S718中,當(dāng)目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些 命令所存取的這些數(shù)據(jù)地址不相同時(shí),執(zhí)行目前的這些命令(來(lái)自該解碼單元 404)。
在步驟S720中,將相應(yīng)于目前這些命令的該數(shù)據(jù)傳送至該主機(jī)系統(tǒng) (210a 210d)。
在步驟S722中,利用相應(yīng)于該目前命令的該傳送數(shù)據(jù)來(lái)更新快取單元
406。
雖然本發(fā)明已以實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域 的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種更動(dòng)與潤(rùn)飾,因此 本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求所界定者為準(zhǔn)。
權(quán)利要求
1、一種排程裝置,透過(guò)一網(wǎng)絡(luò)對(duì)若干個(gè)主機(jī)系統(tǒng)傳送至一儲(chǔ)存系統(tǒng)的若干個(gè)命令進(jìn)行排程,其中該主機(jī)系統(tǒng)依據(jù)這些命令存取該儲(chǔ)存系統(tǒng)的一儲(chǔ)存單元,其特征在于,該排程裝置包括一命令收集模塊,用以收集來(lái)自這些主機(jī)系統(tǒng)的這些命令;一排序模塊,依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)收集到的這些命令進(jìn)行排序,其中該儲(chǔ)存單元內(nèi)的這些數(shù)據(jù)地址分別相關(guān)于這些命令;以及一命令執(zhí)行模塊,用以執(zhí)行排序后的這些命令。
2、 如權(quán)利要求1所述的排程裝置,其特征在于,該命令收集模塊更包括-一命令時(shí)間戳記單元,用以記錄來(lái)自這些主機(jī)系統(tǒng)的這些命令之若干個(gè)到 達(dá)時(shí)間戳記;一命令隊(duì)列單元,用以使來(lái)自該命令時(shí)間戳記單元的這些命令形成一隊(duì) 列;以及—條件觸發(fā)單元,依據(jù)一命令配額(command quota)以及一時(shí)間片段(time slice)之其中一者,用以將該隊(duì)列內(nèi)的這些命令分成若干個(gè)命令群組,其中該命 令配額定義為這些命令所存取的一數(shù)據(jù)量,且該時(shí)間片段定義為一時(shí)間區(qū)間。
3、 如權(quán)利要求2所述的排程裝置,其特征在于,該條件觸發(fā)單元更包括:一命令配額檢査單元,依據(jù)該命令配額,用以檢査這些命令所存取的該數(shù) 據(jù)量;以及一時(shí)間片段檢査單元,依據(jù)該時(shí)間片段,用以檢查這些到達(dá)時(shí)間戳記的該時(shí)間區(qū)間。
4、 如權(quán)利要求2所述的排程裝置,其特征在于,該命令執(zhí)行模塊更包括 一命令群組儲(chǔ)存單元,用以儲(chǔ)存來(lái)自該條件觸發(fā)單元的這些命令群組; 一選取單元,用以在該命令群組儲(chǔ)存單元中選取這些命令群組其中之一 ;以及一解碼單元,依據(jù)這些命令所存取的這些數(shù)據(jù)地址,用以對(duì)一命令群組內(nèi) 的命令進(jìn)行解碼。
5、 如權(quán)利要求4所述的排程裝置,其特征在于,該命令執(zhí)行模塊更包括 一快取單元,用以儲(chǔ)存相對(duì)應(yīng)于之前這些命令所存取的這些數(shù)據(jù)地址之?dāng)?shù)據(jù);以及一命令執(zhí)行單元,用以執(zhí)行來(lái)自該解碼單元的這些命令。
6、 如權(quán)利要求5所述的排程裝置,其特征在于,當(dāng)目前的這些命令所存 取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址相同時(shí),位于該快 取單元內(nèi)的該先前存取數(shù)據(jù)直接傳送至該主機(jī)系統(tǒng)。
7、 如權(quán)利要求5所述的排程裝置,其特征在于,當(dāng)目前的這些命令所存 取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址不相同時(shí),該命令 執(zhí)行單元執(zhí)行目前的這些命令,并且將相應(yīng)于目前的這些命令的該數(shù)據(jù)傳送至 該主機(jī)系統(tǒng)。
8、 如權(quán)利要求1所述的排程裝置,其特征在于,這些命令的這些數(shù)據(jù)地 址是依據(jù)一邏輯區(qū)塊尋址法進(jìn)行尋址。
9、 一種排程方法,透過(guò)一網(wǎng)絡(luò)對(duì)若干個(gè)主機(jī)系統(tǒng)傳送至一儲(chǔ)存系統(tǒng)的若 干個(gè)命令進(jìn)行排程,其中該主機(jī)系統(tǒng)依據(jù)這些命令存取該儲(chǔ)存系統(tǒng)的一儲(chǔ)存單元,其特征在于,該排程方法包括下列步驟記錄來(lái)自這些主機(jī)系統(tǒng)的若干個(gè)命令之若干個(gè)到達(dá)時(shí)間戳記;依據(jù)一命令配額以及一時(shí)間片段之其中一者,將這些命令分成若干個(gè)命令 群組,其中該命令配額定義為這些命令所存取的一數(shù)據(jù)量,且該時(shí)間片段定義 為一時(shí)間區(qū)間;依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)每一命令群組內(nèi)的命令進(jìn)行排序,其中該這些 數(shù)據(jù)地址分別相關(guān)于這些命令;依據(jù)這些命令所存取的這些數(shù)據(jù)地址,用以對(duì)一命令群組內(nèi)的命令進(jìn)行解 碼;以及決定目前的這些命令所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的 這些數(shù)據(jù)地址是否相同。
10、 如權(quán)利要求9所述的排程方法,其特征在于,在記錄來(lái)自這些主機(jī)系 統(tǒng)的這些命令之這些到達(dá)時(shí)間戳記的步驟之后,更包括將這些命令形成一隊(duì) 列。
11、 如權(quán)利要求IO所述的排程方法,其特征在于,在依據(jù)這些數(shù)據(jù)地址 以對(duì)每一命令群組內(nèi)的命令進(jìn)行排序的歩驟之后,更包括儲(chǔ)存這些命令群組于 一命令群組儲(chǔ)存單元。
12、 如權(quán)利要求11所述的排程方法,其特征在于,在儲(chǔ)存這些命令群組 于該命令群組儲(chǔ)存單元的步驟之后,更包括從該命令群組儲(chǔ)存單元中選取這些 命令群組。
13、 如權(quán)利要求9所述的排程方法,其特征在于,在決定目前的這些命令 所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址是否相同之步驟中,當(dāng)相同時(shí),直接傳送該之前存取的數(shù)據(jù)至這些主機(jī)系統(tǒng)。
14、 如權(quán)利要求9所述的排程方法,其特征在于,在決定目前的這些命令 所存取的這些數(shù)據(jù)地址與之前的這些命令所存取的這些數(shù)據(jù)地址是否相同之 步驟中,當(dāng)不相同時(shí),執(zhí)行目前的這些命令。
15、 如權(quán)利要求14所述的排程方法,其特征在于,更包括將相應(yīng)于該執(zhí) 行目前命令的該數(shù)據(jù)地址的該數(shù)據(jù)傳送至這些主機(jī)系統(tǒng)。
16、 如權(quán)利要求15所述的排程方法,其特征在于,在將相應(yīng)于該執(zhí)行目 前命令的該數(shù)據(jù)地址的該數(shù)據(jù)傳送至這些主機(jī)系統(tǒng)的步驟之后,更包括利用相 應(yīng)于該目前命令的該傳送數(shù)據(jù)來(lái)更新一快取單元。
17、 如權(quán)利要求9所述的排程方法,其特征在于,這些命令的這些數(shù)據(jù)地 址是依據(jù)一邏輯區(qū)塊尋址法進(jìn)行尋址。
全文摘要
本發(fā)明公開(kāi)一種排程裝置及其方法,該排程裝置包括一命令收集模塊、一排序模塊以及一命令執(zhí)行模塊。該命令收集模塊用以收集來(lái)自若干個(gè)主機(jī)系統(tǒng)的若干個(gè)命令,該排序模塊依據(jù)若干個(gè)數(shù)據(jù)地址,以對(duì)收集到的命令進(jìn)行排序,其中這些數(shù)據(jù)地址位于一儲(chǔ)存單元內(nèi)且分別相關(guān)于這些命令,該命令執(zhí)行模塊用以執(zhí)行排序后的若干個(gè)命令。
文檔編號(hào)G06F9/30GK101464790SQ20081014480
公開(kāi)日2009年6月24日 申請(qǐng)日期2008年7月25日 優(yōu)先權(quán)日2007年12月19日
發(fā)明者劉建興, 林士能, 林志樺 申請(qǐng)人:宏正自動(dòng)科技股份有限公司