專利名稱:使用優(yōu)先級確定是否對指向存儲器的輸入/輸出(i/o)請求進(jìn)行排隊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種方法、系統(tǒng)和產(chǎn)品,用于使用優(yōu)先級確定是否對指向存儲器的輸 入/輸出(I/O)請求進(jìn)行排隊。
背景技術(shù):
存儲協(xié)議可以指定這樣的條件,在此條件下應(yīng)用程序分配優(yōu)先級給應(yīng)用程序?yàn)榇?儲裝置生成的輸入/輸出(I/O)請求,以便當(dāng)確定如何管理I/O請求時,處理I/O請求的控 制器或者服務(wù)器可以利用該優(yōu)先級。近期對小型計算機(jī)系統(tǒng)接口(SCSI)的增強(qiáng)允許主機(jī) 應(yīng)用通過優(yōu)先級值指定I/O傳送中任務(wù)的相對的調(diào)度重要性。對具有不同任務(wù)優(yōu)先級的一 組任務(wù)的處理將使得具有較高優(yōu)先級的任務(wù)的子集總計(in aggregate)比在相同的條件 (但是其中所有的任務(wù)優(yōu)先級相等)下遞交(submit)同一組任務(wù)的情況下的相同子集更快 地返回狀態(tài)。在本技術(shù)領(lǐng)域中,需要用于利用分配給I/O請求的優(yōu)先級來改進(jìn)對指向公共存儲 器的I/O請求的處理的改進(jìn)的技術(shù)。
發(fā)明內(nèi)容
提供了一種方法、系統(tǒng)、產(chǎn)品以及計算機(jī)程序,用于使用優(yōu)先級確定是否對指向存 儲器的輸入/輸出(I/O)請求進(jìn)行排隊。在本發(fā)明的優(yōu)選實(shí)施例中,對指向存儲器的并發(fā) 請求的最大數(shù)目進(jìn)行測定(measure)。所測定的并發(fā)請求的最大數(shù)目被用于確定針對所指 定的優(yōu)先級的閾值。響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目沒有超過所確 定的針對所指定的優(yōu)先級的閾值,隨后的指向存儲器的具有所指定的優(yōu)先級的請求被允許 繼續(xù)進(jìn)行(proceed)。隨后的指向存儲器的具有比指定的優(yōu)先級高的優(yōu)先級的請求被允許 繼續(xù)進(jìn)行。響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過總的閾值,隨后的 指向存儲器的具有所指定的優(yōu)先級的請求被排入隊列中。在另一實(shí)施例中,做出用以對具有指定的優(yōu)先級的請求進(jìn)行排隊的指示,并且做 出用以不對具有比指定的優(yōu)先級高至少一個優(yōu)先級的請求進(jìn)行排隊的指示。接收指向存儲 器的具有優(yōu)先級的請求。響應(yīng)于確定沒有用以對具有接收到的請求的優(yōu)先級的請求進(jìn)行排 隊的指示,此請求被傳送到存儲器。響應(yīng)于確定用以對具有接收到的請求的優(yōu)先級的請求 進(jìn)行排隊的指示,以及響應(yīng)于確定具有接收到的請求優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過接 收到的請求的優(yōu)先級的閾值,將接收到的請求排入隊列中。在另一實(shí)施例中,響應(yīng)于確定對具有接收到的優(yōu)先級的請求進(jìn)行排隊的指示,以 及響應(yīng)于確定具有接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目沒有超過接收到的請求 的優(yōu)先級的閾值,接收到的請求被傳送到存儲器。在另一實(shí)施例中,確定在先前測定周期(period)期間接收的請求的最高優(yōu)先級。 做出對針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的請求進(jìn)行排隊的指示,并且做出不對針對每個比所確定的最高優(yōu)先級高的優(yōu)先級的請求進(jìn)行排隊指示。所測定的并發(fā)請求的最 大數(shù)目被用于確定每個比所確定的最高優(yōu)先級低的優(yōu)先級的閾值。在另一實(shí)施例中,測定并發(fā)請求的最大數(shù)目包括測定針對每個優(yōu)先級的并發(fā)請求 的最大數(shù)目。在另一實(shí)施例中,在測定周期期間,對并發(fā)請求的最大數(shù)目進(jìn)行測定。測定針對每 個優(yōu)先級的并發(fā)請求的最大數(shù)目包括響應(yīng)于在測定周期期間接收到針對一個優(yōu)先級中的 請求,遞增(increment)針對該一個優(yōu)先級的并發(fā)請求的數(shù)目;以及響應(yīng)于在測定周期期 間接收到針對一個優(yōu)先級中的請求,遞減(decrement)針對該一個優(yōu)先級的并發(fā)請求的數(shù) 目。針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括在測定周期期間測定的針對每個優(yōu)先級的 并發(fā)請求的最大數(shù)目。在另一實(shí)施例中,使用所測定的并發(fā)請求的最大數(shù)目確定所指定的優(yōu)先級的閾值 包括使用所述優(yōu)先級的并發(fā)請求的最大數(shù)目確定所述優(yōu)先級的閾值,所述優(yōu)先級的請求 將被排隊。在另一實(shí)施例中,基于針對每個指定的優(yōu)先級而允許的請求的最小數(shù)目,進(jìn)一步 確定優(yōu)先級閾值。在另一實(shí)施例中,在完成的測定周期期間,測定針對每個優(yōu)先級的并發(fā)請求的最 大數(shù)目。在每個完成的測定周期之后,調(diào)整用于排隊的優(yōu)先級的閾值。在另一實(shí)施例中,使用所測定的并發(fā)請求的最大數(shù)目確定指定的優(yōu)先級的閾值包 括基于針對至少兩個優(yōu)先級而觀測到的并發(fā)請求的最大數(shù)目、以及針對所述至少兩個優(yōu) 先級而允許的請求的最小數(shù)目之中的最小值,確定每個優(yōu)先級的閾值。在另一實(shí)施例中,接收到具有指定的優(yōu)先級的請求完成的確認(rèn) (acknowledgment)。響應(yīng)于接收到確認(rèn),關(guān)于具有指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目是 否低于指定的優(yōu)先級的閾值而進(jìn)行確定。響應(yīng)于確定具有指定的優(yōu)先級的并發(fā)請求的當(dāng)前 數(shù)目低于指定的優(yōu)先級的閾值,至少一個具有指定的優(yōu)先級的排隊的請求被處理。
現(xiàn)在將參考如以下圖中圖示的優(yōu)選實(shí)施例,僅僅通過舉例來描述本發(fā)明圖1圖示了計算環(huán)境的實(shí)施例。圖2圖示了用于管理I/O請求的管理信息的實(shí)施例。圖3圖示了用于確定是否指示對指定的優(yōu)先級的I/O請求進(jìn)行排隊的操作的實(shí)施 例。圖4圖示了用于確定是否對接收到的I/O請求進(jìn)行排隊的操作的實(shí)施例。圖5圖示了用于處理I/O請求完成的確認(rèn)的操作的實(shí)施例。
具體實(shí)施例方式圖1圖示了實(shí)施本發(fā)明優(yōu)選實(shí)施例的各方面的計算環(huán)境。一個或多個主機(jī)2每個 包括一個或者多個應(yīng)用4,所述應(yīng)用4生成通過服務(wù)器8到存儲器6的輸入/輸出(I/O)請 求。應(yīng)用4(諸如數(shù)據(jù)庫應(yīng)用、商業(yè)應(yīng)用等)可以為發(fā)送給服務(wù)器8的I/O請求分配優(yōu)先級 等級。所述優(yōu)先級可以指定數(shù)字或者其他優(yōu)先級值,其是優(yōu)先級方案的一部分。這樣,不同主機(jī)2上的不同應(yīng)用4可以使用相同的優(yōu)先級指派(designation)協(xié)議,此協(xié)議可以被指 定作為工業(yè)標(biāo)準(zhǔn)的一部分。主機(jī)2可以經(jīng)由網(wǎng)絡(luò)10 (諸如局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)絡(luò)(SAN)、廣域網(wǎng)(WAN)、 無線網(wǎng)絡(luò)等)與服務(wù)器8進(jìn)行通信?;蛘?,主機(jī)2可以通過諸如外設(shè)組件互連接口(PCI) 總線的總線接口與服務(wù)器8進(jìn)行通信。主機(jī)2、存儲器6以及服務(wù)器8可以被容納在分開 的機(jī)器中,或者包含在同一個機(jī)器中,經(jīng)由一個或者多個總線接口連接。服務(wù)器8可以包括 本領(lǐng)域中已知的適合的存儲管理系統(tǒng),諸如存儲控制器、服務(wù)器、企業(yè)存儲服務(wù)器等。存儲 器6可以包括本領(lǐng)域中已知的適合的存儲系統(tǒng),諸如直接存取存儲裝置(DASD)、簡單磁盤 捆綁(JBOD)、獨(dú)立冗余磁盤陣列(RAID)、虛擬裝置、磁帶存儲器、光盤存儲器或者本領(lǐng)域中 已知的任何其他存儲系統(tǒng)。主機(jī)2可以包括本領(lǐng)域中已知的任何合適的計算裝置,諸如工 作站、桌面型計算機(jī)、服務(wù)器、大型機(jī)、手持計算機(jī)、電話裝置等。主機(jī)2包含生成I/O請求 的應(yīng)用程序。服務(wù)器8包括處理器12 (或者多個處理器)以及由一個或者多個易失性存儲裝置 和/或非易失性存儲裝置構(gòu)成的存儲器14。該存儲器包含高速緩存16,用于緩沖指向存 儲器6的I/O請求以及數(shù)據(jù)更新;I/O管理器18,其管理來自主機(jī)2的指向存儲器6的I/O 請求;中優(yōu)先級隊列20 ;低優(yōu)先級隊列22 ;以及I/O管理信息24,其被I/O管理器18用于 確定是將I/O請求排入隊列20和22,還是允許請求繼續(xù)進(jìn)行。I/O管理器18可以在加載到存儲器14中的軟件中實(shí)施,所述軟件由處理器12執(zhí) 行?;蛘撸琁/O管理器18可以在服務(wù)器8中設(shè)置的硬件芯片中實(shí)施。圖2圖示了管理信息24的實(shí)施例,其可以包含對于當(dāng)前管理周期時間間隔而測定 的、針對每個優(yōu)先級等級的并發(fā)未決(outstanding) I/O請求的最大數(shù)目。因此,在管理周 期期間,記錄針對每個優(yōu)先級等級(例如高、中、低)的在不同時間的未決的并發(fā)請求的數(shù) 目,以便在此管理周期的結(jié)尾,能夠?yàn)槊總€優(yōu)先級等級確定在管理周期期間的并發(fā)請求的 最大數(shù)目。并發(fā)請求的數(shù)目包括接收到的沒有完成的(即,對于磁盤而未決的或者被排隊 的)I/O請求的數(shù)目。當(dāng)在管理時間間隔期間接收到的未決并發(fā)低優(yōu)先級請求56的當(dāng)前數(shù) 目超過作為并發(fā)低優(yōu)先級I/O請求的最大數(shù)目的低優(yōu)先級閾值54時,低優(yōu)先級隊列指示符 52指示I/O管理器18是否對在管理時間間隔期間接收到的低優(yōu)先級請求進(jìn)行排隊。當(dāng)在 管理時間間隔期間接收到的未決并發(fā)中優(yōu)先級請求62的當(dāng)前數(shù)目超過I/O請求的中優(yōu)先 級閾值60時,中優(yōu)先級隊列指示符58指示I/O管理器18是否對在管理時間間隔期間接收 到的中優(yōu)先級請求進(jìn)行排隊。在可替代的實(shí)施例中,不同的信息可以被維持(maintain)在 管理信息24中。在一個實(shí)施例中,低、中和高優(yōu)先級的指派可以對應(yīng)于由主機(jī)應(yīng)用4設(shè)置的單個 優(yōu)先級值或者優(yōu)先級值的范圍,如所述I/O管理器18所說明的。例如,I/O管理器18可以 將數(shù)字的優(yōu)先級值映射到一個低、中或者高優(yōu)先級類別。在另外的實(shí)施例中,可以有一個或 者多于兩個的優(yōu)先級隊列來對另外的優(yōu)先級等級的請求進(jìn)行排隊。在一個實(shí)施例中,可以在每個磁盤的基礎(chǔ)上維持對于圖2維持的信息和閾值。因 此,如果存儲器6包括多個互連的硬盤驅(qū)動器,則圖2的閾值將被乘以磁盤數(shù)目,以確定應(yīng) 用于多磁盤存儲器的閾值。圖3圖示了由I/O管理器18執(zhí)行的如下操作的實(shí)施例每個管理時間間隔更新I/0管理信息24,以基于在最近完成的管理時間間隔期間測定的并發(fā)I/O請求(即,低、中和 高)的最大數(shù)目,確定需要的對I/O請求進(jìn)行排隊的范圍。當(dāng)啟動了(在方框100)1/0處 理時,I/O管理器18啟動(在方框102)被設(shè)置為在諸如幾秒鐘的時間周期后期滿的管理 時間間隔,并且清除所有隊列指示符52和58。當(dāng)時間間隔期滿(在方框104)時,I/O管理 器18記錄(在方框106)區(qū)間數(shù)據(jù),其包含在先前完成的管理時間間隔期間的最高優(yōu)先級 (P)請求以及每個優(yōu)先級(例如,低、中和高)的高水位標(biāo)記(water mark) ( S卩,并發(fā)請求 的最大數(shù)目)。在管理時間周期期間,當(dāng)接收到具有任何優(yōu)先級的新請求時,I/O管理器18 遞增并發(fā)I/O請求的總數(shù),并且當(dāng)I/O請求已經(jīng)完成時,遞減并發(fā)I/O請求的總數(shù)。在管理 時間間隔期間的并發(fā)I/O請求的數(shù)目是作為在該時間周期期間未決的I/O請求的最大數(shù)目 的高水位標(biāo)記。I/O管理器為在上個管理間隔期間接收到的具有高于或者等于最大優(yōu)先級請求 (P)的任何隊列清除(在方框108)隊列指示符52和58。設(shè)置(在方框110)具有低于最 大優(yōu)先級請求(P)的優(yōu)先級的隊列指示符52和58以指示排隊。對于被設(shè)置了指示符的 每個隊列,I/O管理器18基于在上個管理間隔期間接收到的針對不同優(yōu)先級的最大并發(fā)請 求,調(diào)整(在方框112)允許的并發(fā)請求的閾值54和60。以下討論的方程(1)和(2)提供 了用于調(diào)整低優(yōu)先級閾值54和中優(yōu)先級閾值60的實(shí)施例。在對要被排隊的優(yōu)先級的閾值 進(jìn)行調(diào)整后,I/O管理器18通過返回至方框104以等待下個管理間隔的完成,啟動(在方 框114)對操作的附加重復(fù)(iteration)。通過圖3的操作,I/O管理器18在時間間隔完結(jié)時,確定是否對不同優(yōu)先級等級 的I/O請求進(jìn)行排隊,或者是否終止排隊并且完成處理任何先前排隊的I/O請求。此外,I/ 0管理器基于在先前的時間間隔期間接收到的針對每個優(yōu)先級等級的請求的最大數(shù)目,調(diào) 整將在下個測定周期期間排隊的每個優(yōu)先級等級的排隊閾值。為了調(diào)整排隊閾值,I/O管 理器18可以進(jìn)一步考慮如下討論的針對每個優(yōu)先級等級的允許的請求的最小數(shù)目。雖然 圖3示出了確定是否允許兩個優(yōu)先級等級(低和中)的排隊,但是確定和隊列指示符可以 被提供給多于兩個優(yōu)先級等級。圖4圖示了由I/O管理器18執(zhí)行的用于在管理時間間隔期間處理I/O請求的操 作的實(shí)施例。在接收到(在方框150)具有指定的優(yōu)先級(例如,低、中、高)的I/O請求 時,I/O管理器18遞增(在方框152)針對指定的優(yōu)先級56、62或者64的請求的數(shù)目。如 果(在方框154)所指定的優(yōu)先級為高,那么I/O請求被允許繼續(xù)進(jìn)行(在方框156)。如 果(在方框154)請求不是高優(yōu)先級,例如,低或者中,并且如果(在方框158)沒有為所指 定的優(yōu)先級(低或者中)設(shè)置(指示不排隊)優(yōu)先級隊列指示符52或者58,那么控制繼續(xù) 進(jìn)行到方框156以允許I/O請求繼續(xù)進(jìn)行。如果(在方框158)優(yōu)先級隊列指示符52或者 58被設(shè)置(指示對接收到的I/O請求而排隊),并且如果(在方框160)具有指定的優(yōu)先級 56或62的并發(fā)未決請求的數(shù)目超過所指定的優(yōu)先級的閾值54或者60,那么將所接收的I/ 0請求排入(在方框162)所指定的優(yōu)先級隊列20或22中。否則,如果(在方框160)具有 指定的優(yōu)先級56或62的并發(fā)未決請求的數(shù)目沒有超過所指定的優(yōu)先級的閾值54或者60, 那么I/O請求被允許繼續(xù)進(jìn)行。針對優(yōu)先級等級的并發(fā)I/O請求包括接收到的未完成的 或者排在優(yōu)先級等級隊列20和22中的I/O請求的數(shù)目。圖5圖示了由I/O管理器18執(zhí)行的用于處理相對于存儲器6已完成具有優(yōu)先級的I/O請求的確認(rèn)的操作的實(shí)施例。在接收到(在方框200)該確認(rèn)時,I/O管理器18遞 減(在方框202)針對已完成的請求的指定的優(yōu)先級的并發(fā)請求的數(shù)目。I/O管理器18可 以響應(yīng)于確定具有指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目低于指定的優(yōu)先級的閾值,進(jìn)一步 處理(在方框204)排隊的請求。排隊的請求可以被處理,直到再次到達(dá)針對所述優(yōu)先級等 級的并發(fā)請求的指定的優(yōu)先級的閾值為止。在一個實(shí)施例中,具有最高優(yōu)先級等級的請求總是被允許繼續(xù)進(jìn)行,并且關(guān)于是 否對低或者中優(yōu)先級請求以及這些請求的排隊閾值進(jìn)行排隊而做出確定。在可替代的實(shí)施 例中,高優(yōu)先級請求也可以接收磁盤服務(wù)。此外,可存在用于多于兩個優(yōu)先級的附加優(yōu)先級 等級隊列。在一個實(shí)施例中,為了確定低優(yōu)先級閾值54和中優(yōu)先級閾值60,可以使用以下的 數(shù)學(xué)方程U_hm = min((T_h+T_m), (HWM_h+HWM_m))(1)U_lh = min ((T_h+T_l),(HWM_h+min (T_l,HWM_1))) (2)在方程(1)和(2)中,T_h、T_m和T_1分別包括針對高、中以及低優(yōu)先級而允許的 并發(fā)請求的最小數(shù)目以避免匱乏(starvation),即,具有低優(yōu)先級的請求不被處理的情況。 在這些操作目標(biāo)之上的并發(fā)的中和低優(yōu)先級請求可以在現(xiàn)在給出的條件下經(jīng)受排隊。然 而,至少允許每個類型的最小數(shù)目的并發(fā)請求。在這個實(shí)施例的示例中,當(dāng)在每個磁盤的基 礎(chǔ)上表示時,數(shù)量T_h、T_m和T_1可以分別具有值2. 5、1. 0和0. 5。HWM_h包括在先前管理 周期期間測定的高優(yōu)先級請求的高水位標(biāo)記,其包括在先前管理周期期間觀測到的高優(yōu)先 級并發(fā)請求的最大數(shù)目。類似地,HWM_m和HWM_1分別包括在先前管理周期期間測定的中 和低優(yōu)先級請求的高水位標(biāo)記,其包括在先前管理周期期間觀測到的中和低并發(fā)請求的最 大數(shù)目。方程(1)計算出的數(shù)量U_hm包括高和中優(yōu)先級I/O的并發(fā)請求的分配。在方程 ⑴和⑵的實(shí)施例中,所述方法是對低優(yōu)先級請求進(jìn)行排隊,以便允許(accommodate)高 和中優(yōu)先級請求,直至(up to)被分配的等級。因此,在這個實(shí)施例中,低優(yōu)先級隊列的閾 值54被設(shè)置為T_sum-U_hm,此處T_sum被定義為T_h+T_m+T_l。更直觀地,此閾值設(shè)置的 實(shí)際結(jié)果(net effect)可以被描述如下經(jīng)受排隊的并發(fā)請求的總數(shù)被限制為T_sum的最 大值,如果這能夠通過設(shè)置關(guān)于接收磁盤服務(wù)的并發(fā)低優(yōu)先級請求的數(shù)目的不少于T_1的 閾值來實(shí)現(xiàn)。方程(2)計算出的數(shù)量U_lh包括高和低優(yōu)先級I/O的并發(fā)請求的分配。在方程 ⑴和⑵的實(shí)施例中,對中優(yōu)先級請求進(jìn)行排隊,以便允許高和低優(yōu)先級請求,直至被分 配的等級。因此,在這個實(shí)施例中,中優(yōu)先級隊列的閾值60被設(shè)置*T_Sum-U_lm。這樣,此 閾值設(shè)置的實(shí)際結(jié)果能夠被描述如下接收磁盤服務(wù)的并發(fā)請求的總數(shù)被限制為T_sum的 最大值,如果這能夠通過設(shè)置關(guān)于接收磁盤服務(wù)的并發(fā)低優(yōu)先級請求的數(shù)目的為T_1的閾 值、以及關(guān)于接收磁盤服務(wù)的并發(fā)中優(yōu)先級請求的數(shù)目的不少于T_m的閾值來實(shí)現(xiàn)。使用以上確定的數(shù)量U_lh和U_mh,并且如果P是在先前管理周期中觀測到的最高 優(yōu)先級請求,則關(guān)于對于每個優(yōu)先級等級如何繼續(xù)進(jìn)行的確定能夠被計算(對于Q = “高”、 “中”和“低”)如下如果Q >= P,那么不對并發(fā)磁盤請求進(jìn)行限制;
否則如果Q= “中”,那么限制并發(fā)磁盤請求的數(shù)目(在每個磁盤的基礎(chǔ)上)為乙 sum-U—hi ;否則如果Q= “低”,那么限制并發(fā)磁盤請求的數(shù)目(在每個磁盤的基礎(chǔ)上)為乙 sum-U—hmο通過以上方程,針對不同優(yōu)先級的并發(fā)請求的最大數(shù)目被用于確定每個優(yōu)先級的 排隊閾值。此外,針對每個優(yōu)先級而允許的請求的最小數(shù)目也可以在設(shè)置排隊閾值時被考 慮,以確保最小數(shù)目的針對每個優(yōu)先級的請求被處理。在以上實(shí)施例之一中,基于(1)針對 至少兩個優(yōu)先級而觀測到的并發(fā)請求的最大數(shù)目、以及(2)針對所述至少兩個優(yōu)先級而允 許的請求的最小數(shù)目的最小值,對每個優(yōu)先級閾值進(jìn)行調(diào)整??紤]到不同的因素,其他方程 也可以用于基于將針對不同優(yōu)先級的并發(fā)請求的最大數(shù)目維持在期望的范圍內(nèi),調(diào)整排隊 閾值。通過所描述的實(shí)施例,基于在先前管理時間間隔期間發(fā)生的諸如并發(fā)I/O請求的 總數(shù)的I/O活動(activity),關(guān)于是否對I/O請求進(jìn)行排隊而做出確定。在另外的實(shí)施例 中,對具有指定的優(yōu)先級的I/O請求進(jìn)行排隊的優(yōu)先級特定閾值可以被調(diào)整,以增加針對 指定的優(yōu)先級的排隊的數(shù)量,以減小低于閾值的I/O請求的總數(shù)。附加實(shí)施例細(xì)節(jié)所描述的操作可以被實(shí)施為使用標(biāo)準(zhǔn)編程和/或工程技術(shù)來制造軟件、固件、硬 件或者它們的任何組合的方法、設(shè)備或者產(chǎn)品。所描述的操作可以被實(shí)施為“計算機(jī)可讀存 儲介質(zhì)”中維持的代碼,其中處理器可以從計算機(jī)可讀存儲介質(zhì)讀取并且執(zhí)行所述代碼。計 算機(jī)可讀存儲介質(zhì)可以包括諸如磁存儲介質(zhì)(例如,硬盤驅(qū)動器、軟盤、磁帶等)、光存儲器 (CD_R0M、DVD、光盤等)、易失性和非易失性存儲裝置(例如,EEPROM、ROM、PROM、RAM、DRAM、 SRAM、閃存、固件、可編程邏輯等)等的存儲介質(zhì)。實(shí)施所描述的操作的代碼還可以在硬件 裝置(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)中實(shí)施的硬件 邏輯中實(shí)施。另外,實(shí)施所描述的操作的代碼可以在“傳送信號”中實(shí)施,其中傳送信號可 以通過空間或者通過傳送介質(zhì)(例如,光纖、銅線等)傳播。代碼或者邏輯被編碼在其中的 傳送信號還可以包括無線信號、衛(wèi)星傳送、無線電波、紅外信號、藍(lán)牙等?!爱a(chǎn)品”可以包括傳 送站和/或接收站,用于傳送和接收代碼或者邏輯被編碼在其中的傳送信號,其中在接收 和傳送站或裝置中,傳送信號中編碼的代碼或者邏輯可以被編碼并存儲在硬件或者計算機(jī) 可讀存儲介質(zhì)中?!爱a(chǎn)品”包括其中可以實(shí)施代碼或邏輯的裝置,諸如計算機(jī)可讀存儲介質(zhì)、 硬件裝置、和/或傳送器或接收器。本領(lǐng)域的技術(shù)人員將意識到可以在不背離本發(fā)明的范 疇的情況下對此配置進(jìn)行很多修改,以及所述產(chǎn)品可以包括本領(lǐng)域中已知的適當(dāng)?shù)男畔⒊?載介質(zhì)。在所描述的實(shí)施例中,為存取共享存儲器中的存儲地址的處理而改變存取參數(shù)。 在可替代的實(shí)施例中,可以為除了存儲地址(諸如存儲裝置中的地址)外的計算機(jī)資源以 及其它計算機(jī)資源監(jiān)控存取模式。術(shù)語“一實(shí)施例”、“實(shí)施例”、“多個實(shí)施例”、“該實(shí)施例”、“所述實(shí)施例”、“ 一個或 者多個實(shí)施例”、“一些實(shí)施例”以及“一個實(shí)施例”意味著“本發(fā)明的一個或多個(而不是 全部)實(shí)施例”,除非另外明確地指定。術(shù)語“包含”、“包括”、“具有”和其變型意味著“包含但不限于”,除非另外明確地指定。對項的列舉的列表不意味著所述項中的任何或全部互相排斥,除非另外明確地指定。術(shù)語“所述”表示“一個或者多個”,除非另外明確地指定?;ハ嗤ㄐ诺难b置不需要處于持續(xù)的互相通信中,除非另外明確地指定。另外,互相 通信的裝置可以通過一個或者多個媒介物(intermediary)直接或者間接地通信。具有多個互相通信的組件的實(shí)施例的描述不意味著要求所有這樣的組件。相反 地,多種可選組件被描述以說明本發(fā)明的各種可能的實(shí)施例。此外,雖然處理步驟、方法步驟、算法等可以按順序的次序進(jìn)行描述,但是這些處 理、方法和算法可以被配置為以交替的次序工作。換句話說,可以進(jìn)行描述的步驟的任何序 列或者次序不一定指示以該次序執(zhí)行步驟的要求。這里描述的處理步驟可以以任何實(shí)際的 次序執(zhí)行。此外,某些步驟可以被同時執(zhí)行。當(dāng)這里描述單個裝置或者產(chǎn)品時,將易顯然的是可以使用多于一個的裝置/產(chǎn) 品(無論它們是否協(xié)作)來替代單個裝置/產(chǎn)品。類似地,在這里描述多于一個裝置或者 產(chǎn)品的情況下(無論它們是否協(xié)作),將易顯然的是可以使用單個裝置/產(chǎn)品來替代多于 一個的裝置或者產(chǎn)品,或者可以使用不同數(shù)目的裝置/產(chǎn)品來替代所示數(shù)目的裝置或者程 序。裝置的功能性和/或特征可以被不被明確地描述為具有這些功能性/特征的一個或者 多個其它裝置而可替代地包含。因此,本發(fā)明的其他實(shí)施例不需要包含所述設(shè)備本身。圖3、4和5所圖示的操作示出了以特定次序發(fā)生的特定事件。在可替代的實(shí)施例 中,特定操作可以不同的次序執(zhí)行、修改或者移除。此外,步驟可以被添加到以上描述的邏 輯中,并且仍然符合所描述的實(shí)施例。此外,這里描述的操作可以順序地發(fā)生,或者可以并 行地處理特定操作。此外,可以通過單個處理單元或者通過分布的處理單元,來執(zhí)行操作。為了說明和描述的目的,已經(jīng)給出了前面對本發(fā)明的多個實(shí)施例的描述。其并非 意在窮盡的或?qū)⒈景l(fā)明限于公開的精確形式。依據(jù)以上教導(dǎo),很多修改和變型是可能的。其 意在并非通過此詳細(xì)的描述、而是通過此處所附權(quán)利要求來限制本發(fā)明的范圍。以上詳述、 示例和數(shù)據(jù)提供了對本發(fā)明的組成的制造和使用的完整描述。因?yàn)榭梢栽诓槐畴x本發(fā)明的 精神和范圍的情況下進(jìn)行本發(fā)明的多個實(shí)施例,所以本發(fā)明存在于所附的權(quán)利要求中。
權(quán)利要求
一種方法,包括測定指向存儲器的并發(fā)請求的最大數(shù)目;使用所測定的并發(fā)請求的最大數(shù)目來確定針對所指定的優(yōu)先級的閾值;響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目不超過所確定的針對所指定的優(yōu)先級的閾值,允許隨后的指向所述存儲器的具有所指定的優(yōu)先級的請求繼續(xù)進(jìn)行;允許隨后的指向所述存儲器的具有比所指定的優(yōu)先級高的優(yōu)先級的請求繼續(xù)進(jìn)行;并且響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過總的閾值,將隨后的指向所述存儲器的具有所指定的優(yōu)先級的請求排入隊列中。
2.如權(quán)利要求1所述的方法,還包括指示對具有所指定的優(yōu)先級的請求進(jìn)行排隊;指示不對具有比所指定的優(yōu)先級高至少一個優(yōu)先級的請求進(jìn)行排隊;接收指向所述存儲器的具有優(yōu)先級的請求;響應(yīng)于確定沒有用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,將所述 請求傳送到所述存儲器;并且響應(yīng)于確定用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于 確定具有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過針對所接收到的請求的優(yōu) 先級的閾值,將所接收到的請求排入所述隊列中。
3.如權(quán)利要求2所述的方法,還包括響應(yīng)于確定用以對具有所接收到的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于確定具 有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目沒有超過所接收到的請求的優(yōu)先級的 閾值,將所接收到的請求傳送到所述存儲器。
4.如任何上述權(quán)利要求所述的方法,還包括 確定在先前測定周期期間接收到的請求的最高優(yōu)先級;指示對針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的請求進(jìn)行排隊;并且 指示不對針對每個比所確定的最高優(yōu)先級高的優(yōu)先級的請求進(jìn)行排隊,其中所測定的 并發(fā)請求的最大數(shù)目被用于確定針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的閾值。
5.如任何上述權(quán)利要求所述的方法,其中測定所述并發(fā)請求的最大數(shù)目包括測定針 對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
6.如權(quán)利要求5所述的方法,其中在測定周期期間測定所述并發(fā)請求的最大數(shù)目,并 且其中,測定針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞增針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目;并且響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞減針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目,其中針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括在所述測定周期期間 測定的針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
7.如權(quán)利要求5所述的方法,其中使用所測定的并發(fā)請求的最大數(shù)目來確定針對所指 定的優(yōu)先級的閾值包括使用針對所述優(yōu)先級的并發(fā)請求的最大數(shù)目來確定針對其請求將 被排隊的優(yōu)先級的閾值。
8.如權(quán)利要求7所述的方法,其中基于針對每個所指定的優(yōu)先級而允許的請求的最小 數(shù)目,進(jìn)一步確定所述優(yōu)先級的閾值。
9.如權(quán)利要求7所述的方法,其中在完成的測定周期期間測定針對每個優(yōu)先級的并發(fā) 請求的最大數(shù)目,并且其中在每個完成的測定周期后調(diào)整針對用以排隊的優(yōu)先級的閾值。
10.如權(quán)利要求5所述的方法,其中使用所測定的并發(fā)請求的最大數(shù)目來確定所指定 的優(yōu)先級的閾值包括基于針對至少兩個優(yōu)先級而觀測到的并發(fā)請求的最大數(shù)目以及針對 所述至少兩個優(yōu)先級而允許的請求的最小數(shù)目之中的最小值,確定每個優(yōu)先級的閾值。
11.如任何上述權(quán)利要求所述的方法,還包括 接收具有所指定的優(yōu)先級的請求完成的確認(rèn);響應(yīng)于接收到所述確認(rèn),確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目是否低于所 指定的優(yōu)先級的閾值;并且響應(yīng)于確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目低于所指定的優(yōu)先級的閾值, 處理至少一個具有所指定的優(yōu)先級的排隊的請求。
12.—種與存儲器通信的系統(tǒng),包括輸入/輸出(I/O)管理器,被執(zhí)行以進(jìn)行操作,所述操作包括 測定指向所述存儲器的并發(fā)請求的最大數(shù)目;使用所測定的并發(fā)請求的最大數(shù)目來確定針對所指定的優(yōu)先級的閾值; 響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目不超過所確定的針對所指定 的優(yōu)先級的閾值,允許隨后的指向所述存儲器的具有所指定的優(yōu)先級的請求繼續(xù)進(jìn)行; 允許隨后的指向所述存儲器的具有比所指定的優(yōu)先級高的優(yōu)先級的請求繼續(xù)進(jìn)行;并且響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過總的閾值,將隨后的指向 所述存儲器的具有所指定的優(yōu)先級的請求排入隊列中。
13.如權(quán)利要求12所述的系統(tǒng),其中所述操作還包括 指示對具有所指定的優(yōu)先級的請求進(jìn)行排隊;指示不對具有比所指定的優(yōu)先級高至少一個優(yōu)先級的請求進(jìn)行排隊; 接收指向所述存儲器的具有優(yōu)先級的請求;響應(yīng)于確定沒有用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,將所述 請求傳送到所述存儲器;并且響應(yīng)于確定用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于 確定具有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過針對所接收到的請求的優(yōu) 先級的閾值,將所接收到的請求排入所述隊列中。
14.如權(quán)利要求13所述的系統(tǒng),其中所述操作還包括響應(yīng)于確定用以對具有所接收到的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于確定具 有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目沒有超過所接收到的請求的優(yōu)先級的 閾值,將所接收到的請求傳送到所述存儲器。
15.如權(quán)利要求12到14中的任何一項所述的系統(tǒng),其中所述操作還包括 確定在先前測定周期期間接收到的請求的最高優(yōu)先級;指示對針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的請求進(jìn)行排隊;并且指示不對針對每個比所確定的最高優(yōu)先級高的優(yōu)先級的請求進(jìn)行排隊,其中所測定的 并發(fā)請求的最大數(shù)目被用于確定針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的閾值。
16.如權(quán)利要求12到15中的任何一項所述的系統(tǒng),其中測定所述并發(fā)請求的最大數(shù)目 包括測定針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
17.如權(quán)利要求16所述的系統(tǒng),其中在測定周期期間測定所述并發(fā)請求的最大數(shù)目, 并且其中,測定針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞增針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目;并且響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞減針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目,其中針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括在所述測定周期期間 測定的針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
18.如權(quán)利要求16所述的系統(tǒng),其中使用所測定的并發(fā)請求的最大數(shù)目來確定針對所 指定的優(yōu)先級的閾值包括使用針對所述優(yōu)先級的并發(fā)請求的最大數(shù)目來確定針對其請求 將被排隊的優(yōu)先級的閾值。
19.如權(quán)利要求18所述的系統(tǒng),其中基于針對每個所指定的優(yōu)先級而允許的請求的最 小數(shù)目,進(jìn)一步確定所述優(yōu)先級閾值。
20.如權(quán)利要求18所述的系統(tǒng),其中在完成的測定周期期間測定針對每個優(yōu)先級的 并發(fā)請求的最大數(shù)目,并且其中在每個完成的測定周期后調(diào)整針對用以排隊的優(yōu)先級的閾 值。
21.如權(quán)利要求16所述的系統(tǒng),其中使用所測定的并發(fā)請求的最大數(shù)目來確定所指定 的優(yōu)先級的閾值包括基于針對至少兩個優(yōu)先級而觀測到的并發(fā)請求的最大數(shù)目以及針對 所述至少兩個優(yōu)先級而允許的請求的最小數(shù)目之中的最小值,確定每個優(yōu)先級的閾值。
22.如權(quán)利要求12到21中的任何一項所述的系統(tǒng),其中所述操作還包括 接收具有所指定的優(yōu)先級的請求完成的確認(rèn);響應(yīng)于接收到所述確認(rèn),確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目是否低于所 指定的優(yōu)先級閾值;并且響應(yīng)于確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目低于所指定的優(yōu)先級閾值,處 理至少一個具有所指定的優(yōu)先級的排隊的請求。
23.一種實(shí)施代碼以與存儲器通信并進(jìn)行操作的產(chǎn)品,所述操作包括 測定指向所述存儲器的并發(fā)請求的最大數(shù)目;使用所測定的并發(fā)請求的最大數(shù)目來確定針對所指定的優(yōu)先級的閾值; 響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目不超過所確定的針對所指定 的優(yōu)先級的閾值,允許隨后的指向所述存儲器的具有所指定的優(yōu)先級的請求繼續(xù)進(jìn)行; 允許隨后的指向所述存儲器的具有比所指定的優(yōu)先級高的優(yōu)先級的請求繼續(xù)進(jìn)行;并且響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過總的閾值,將隨后的指向 所述存儲器的具有所指定的優(yōu)先級的請求排入隊列中。
24.如權(quán)利要求23所述的產(chǎn)品,其中所述操作還包括 指示對具有所指定的優(yōu)先級的請求進(jìn)行排隊;指示不對具有比所指定的優(yōu)先級高至少一個優(yōu)先級的請求進(jìn)行排隊;接收指向所述存儲器的具有優(yōu)先級的請求;響應(yīng)于確定沒有用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,將所述 請求傳送到所述存儲器;并且響應(yīng)于確定用以對具有所接收到的請求的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于 確定具有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過針對所接收到的請求的優(yōu) 先級的閾值,將所接收到的請求排入所述隊列中。
25.如權(quán)利要求24所述的產(chǎn)品,其中所述操作還包括響應(yīng)于確定用以對具有所接收到的優(yōu)先級的請求進(jìn)行排隊的指示,以及響應(yīng)于確定具 有所接收到的請求的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目沒有超過所接收到的請求的優(yōu)先級的 閾值,將所接收到的請求傳送到所述存儲器。
26.如權(quán)利要求23到25中的任何一項所述的產(chǎn)品,其中所述操作還包括確定在先前測定周期期間接收到的請求的最高優(yōu)先級;指示對針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的請求進(jìn)行排隊;并且指示不對針對每個比所確定的最高優(yōu)先級高的優(yōu)先級的請求進(jìn)行排隊,其中所測定的 并發(fā)請求的最大數(shù)目被用于確定針對每個比所確定的最高優(yōu)先級低的優(yōu)先級的閾值。
27.如權(quán)利要求23到26中的任何一項所述的產(chǎn)品,其中測定所述并發(fā)請求的最大數(shù)目 包括測定針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
28.如權(quán)利要求27所述的產(chǎn)品,其中在測定周期期間測定所述并發(fā)請求的最大數(shù)目, 并且其中,測定針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞增針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目;并且響應(yīng)于在所述測定周期期間接收到針對一個優(yōu)先級的請求,遞減針對所述一個優(yōu)先級 的并發(fā)請求的數(shù)目,其中針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目包括在所述測定周期期間 測定的針對每個優(yōu)先級的并發(fā)請求的最大數(shù)目。
29.如權(quán)利要求27所述的產(chǎn)品,其中使用所測定的并發(fā)請求的最大數(shù)目來確定針對所 指定的優(yōu)先級的閾值包括使用針對所述優(yōu)先級的并發(fā)請求的最大數(shù)目來確定針對其請求 將被排隊的優(yōu)先級的閾值。
30.如權(quán)利要求29所述的產(chǎn)品,其中基于針對每個所指定的優(yōu)先級而允許的請求的最 小數(shù)目,進(jìn)一步確定所述優(yōu)先級閾值。
31.如權(quán)利要求29所述的產(chǎn)品,其中在完成的測定周期期間測定針對每個優(yōu)先級的 并發(fā)請求的最大數(shù)目,并且其中在每個完成的測定周期后調(diào)整針對用以排隊的優(yōu)先級的閾 值。
32.如權(quán)利要求27所述的產(chǎn)品,其中使用所測定的并發(fā)請求的最大數(shù)目來確定所指定 的優(yōu)先級的閾值包括基于針對至少兩個優(yōu)先級而觀測到的并發(fā)請求的最大數(shù)目以及針對 所述至少兩個優(yōu)先級而允許的請求的最小數(shù)目之中的最小值,確定每個優(yōu)先級的閾值。
33.如任何權(quán)利要求23到32中的任何一項所述的產(chǎn)品,其中所述操作還包括接收具有所指定的優(yōu)先級的請求完成的確認(rèn);響應(yīng)于接收到所述確認(rèn),確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目是否低于所指定的優(yōu)先級的閾值;并且響應(yīng)于確定具有所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目低于所指定的優(yōu)先級的閾值, 處理至少一個具有所指定的優(yōu)先級的排隊的請求。
34. 一種計算機(jī)程序,包括計算機(jī)可實(shí)施現(xiàn)的指令,所述指令用于實(shí)現(xiàn)根據(jù)權(quán)利要求1 到11中的任何一項所述的方法的步驟。
全文摘要
提供了一種方法、系統(tǒng)、產(chǎn)品以及計算機(jī)程序,用于使用優(yōu)先級確定是否對指向存儲器的輸入/輸出(I/O)請求進(jìn)行排隊。測定指向存儲器的并發(fā)請求的最大數(shù)目。所測定的并發(fā)請求的最大數(shù)目被用于確定針對指定的優(yōu)先級的閾值。響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目不超過所確定的指定的優(yōu)先級的閾值,允許隨后的指向存儲器的具有指定的優(yōu)先級的請求繼續(xù)進(jìn)行。允許隨后的指向所述存儲器的具有比所指定的優(yōu)先級高的優(yōu)先級的請求繼續(xù)進(jìn)行。響應(yīng)于確定針對所指定的優(yōu)先級的并發(fā)請求的當(dāng)前數(shù)目超過總的閾值,將隨后的指向所述存儲器的具有所指定的優(yōu)先級的請求排入隊列中。
文檔編號G06F13/16GK101981539SQ200980110957
公開日2011年2月23日 申請日期2009年3月26日 優(yōu)先權(quán)日2008年3月31日
發(fā)明者布魯斯·麥克納特, 馬修·J·卡洛斯 申請人:國際商業(yè)機(jī)器公司