(57)【要約】【課題】  優先度を用いて、記憶装置に送出された入出力（Ｉ／Ｏ）要求をキューに入れるか否かを決定するための方法、システム、および製造品を提供する。【解決手段】  記憶装置に送出された並行要求の最大数を測定する。測定した並行要求の最大数を用いて、指定した優先度についての閾値を決定する。指定した優先度についての並行要求の現在の数が、指定した優先度についての決定した閾値を超えないことの判定に応答して、記憶装置に送出された指定した優先度の後続の要求を前進させることを可能とする。指定した優先度よりも高い優先度を有する記憶装置に送出された後続の要求を前進させることを可能とする。指定した優先度についての並行要求の現在の数が全体的な閾値を超えることの判定に応答して、指定した優先度を有する記憶装置に送出された後続の要求をキューに入れる。【選択図】  図４
2011520165.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に送出された並行要求の最大数を測定するステップと、
前記測定した並行要求の最大数を用いて指定した優先度についての閾値を決定するステップと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とするステップと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とするステップと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れるステップと、
を含む、方法。
【請求項２】
前記指定した優先度の前記要求をキューに入れることを指示するステップと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示するステップと、
前記記憶装置に送出された優先度の要求を受信するステップと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信するステップと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れるステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信するステップを更に含む、請求項２に記載の方法。
【請求項４】
前の測定期間中に受信した最も高い優先度の要求を決定するステップと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示するステップと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示するステップであって、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定する、ステップと、
を更に含む、前出の請求項のいずれかに記載の方法。
【請求項５】
前記並行要求の最大数を測定するステップは、各優先度について前記並行要求の最大数を測定することを含む、前出の請求項のいずれかに記載の方法。
【請求項６】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定するステップが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項５に記載の方法。
【請求項７】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定するステップが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項５に記載の方法。
【請求項８】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項７に記載の方法。
【請求項９】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項７に記載の方法。
【請求項１０】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定するステップが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項５に記載の方法。
【請求項１１】
前記指定した優先度の要求が完了したことの確認を受信するステップと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定するステップと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理するステップと、
を更に含む、前出の請求項のいずれかに記載の方法。
【請求項１２】
記憶装置と連通しているシステムであって、
動作を行うように実行される入出力（Ｉ／Ｏ）マネージャを含み、前記動作が、
前記記憶装置に送出された並行要求の最大数を測定することと、
前記測定した並行要求の最大数を用いて指定した優先度についての閾値を決定することと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とすることと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とすることと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れることと、
を含む、システム。
【請求項１３】
前記動作が、
前記指定した優先度の前記要求をキューに入れることを指示することと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示することと、
前記記憶装置に送出された優先度の要求を受信することと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信することと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れることと、
を更に含む、請求項１２に記載のシステム。
【請求項１４】
前記動作が、
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信することを更に含む、請求項１３に記載のシステム。
【請求項１５】
前記動作が、
前の測定期間中に受信した最も高い優先度の要求を決定することと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示することと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示し、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定することと、
を更に含む、請求項１２から１４のいずれかに記載のシステム。
【請求項１６】
前記並行要求の最大数を測定することは、各優先度について前記並行要求の最大数を測定することを含む、請求項１２から１５のいずれかに記載のシステム。
【請求項１７】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定することが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項１６に記載のシステム。
【請求項１８】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項１６に記載のシステム。
【請求項１９】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項１８に記載のシステム。
【請求項２０】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項１８に記載のシステム。
【請求項２１】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項１６に記載のシステム。
【請求項２２】
前記動作が、
前記指定した優先度の要求が完了したことの確認を受信することと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定することと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理することと、
を更に含む、請求項１２から２１のいずれかに記載のシステム。
【請求項２３】
記憶装置と連通し、動作を実行するためのコードを実施する製造品であって、前記動作が、
前記記憶装置に送出された並行要求の最大数を測定することと、
前記測定した並行要求の最大数を用いて指定した優先度についての閾値を決定することと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とすることと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とすることと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れることと、
を含む、製造品。
【請求項２４】
前記動作が、
前記指定した優先度の前記要求をキューに入れることを指示することと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示することと、
前記記憶装置に送出された優先度の要求を受信することと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信することと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れることと、
を更に含む、請求項２３に記載の製造品。
【請求項２５】
前記動作が、
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信することを更に含む、請求項２４に記載の製造品。
【請求項２６】
前記動作が、
前の測定期間中に受信した最も高い優先度の要求を決定することと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示することと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示し、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定することと、
を更に含む、請求項２３から２５のいずれかに記載の製造品。
【請求項２７】
前記並行要求の最大数を測定することは、各優先度について前記並行要求の最大数を測定することを含む、請求項２３から２６のいずれかに記載の製造品。
【請求項２８】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定することが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項２７に記載の製造品。
【請求項２９】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項２７に記載の製造品。
【請求項３０】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項２９に記載の製造品。
【請求項３１】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項２９に記載の製造品。
【請求項３２】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項２７に記載の製造品。
【請求項３３】
前記動作が、
前記指定した優先度の要求が完了したことの確認を受信することと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定することと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理することと、
を更に含む、請求項２３から３２のいずれかに記載の製造品。
【請求項３４】
請求項１から１１のいずれかに記載の方法の前記ステップを実行するためのコンピュータ実施可能命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先度を用いて、記憶装置に送出された入出力（Ｉ／Ｏ）要求をキューに入れるか否かを決定するための方法、システム、および製造品に関する。
【背景技術】
【０００２】
記憶プロトコルが指定することができる条件のもとで、アプリケーション・プログラムは、アプリケーション・プログラムが記憶デバイスに対して発生する入出力（Ｉ／Ｏ）要求に優先度を割り当て、Ｉ／Ｏ要求を処理するコントローラまたはサーバが、Ｉ／Ｏ要求をどのように管理するかを決定する際に、この優先度を利用することができるようになっている。最近のＳＣＳＩ（Small Computer System Interface）の機能向上によって、ホスト・アプリケーションは、Ｉ／Ｏ伝送におけるタスクの相対的なスケジューリング重要度を優先度値により指定することができる。異なるタスク優先度を有するタスク集合を処理する場合、より高い優先度を有するタスクのサブセットは、同じタスク集合が同じ条件のもとであるが全て等しいタスク優先度で提示された場合の同じサブセットよりも、全体として早くステータスを戻すことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
当技術分野において、Ｉ／Ｏ要求に割り当てた優先度を用いて、共通の記憶装置に送出されたＩ／Ｏ要求の処理を改善するための、改良された技法が必要とされている。
【課題を解決するための手段】
【０００４】
優先度を用いて、記憶装置に送出された入出力（Ｉ／Ｏ）要求をキューに入れるか否かを決定するための方法、システム、および製造品を提供する。本発明の一実施形態においては、記憶装置に送出された並行要求の最大数を測定する。測定した並行要求の最大数を用いて、指定した優先度についての閾値を決定する。指定した優先度についての並行要求の現在の数が、指定した優先度についての決定した閾値を超えないことの判定に応答して、記憶装置に送出された指定した優先度の後続の要求を前進させることを可能とする。指定した優先度よりも高い優先度を有する記憶装置に送出された後続の要求を前進させることを可能とする。指定した優先度についての並行要求の現在の数が全体的な閾値を超えることの判定に応答して、指定した優先度を有する記憶装置に送出された後続の要求をキューに入れる。
【０００５】
更に別の実施形態においては、指定した優先度の前記要求をキューに入れることを指示し、指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示する。記憶装置に送出された優先度の要求を受信する。受信した要求の優先度を有する要求をキューに入れることの指示がないことの判定に応答して、記憶装置に要求を送信する。受信した要求の優先度の要求をキューに入れることの指示に応答して、および、受信した要求の優先度の並行現要求数が受信した要求の優先度についての閾値を超えることの判定に応答して、受信した要求をキューに入れる。
【０００６】
更に別の実施形態では、受信した優先度の要求をキューに入れることの指示の判定に応答して、および、受信した要求の優先度の並行要求の現在の数が受信した要求の優先度の閾値を超えないことの判定に応答して、受信した要求を記憶装置に送信する。
【０００７】
更に別の実施形態では、前の測定期間中に受信した最も高い優先度の要求を決定する。決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示し、決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示する。測定した並行要求の最大数を用いて決定した最も高い優先度よりも低い各優先度の閾値を決定する。
【０００８】
更に別の実施形態では、並行要求の最大数を測定するステップは、各優先度について並行要求の最大数を測定することを含む。
【０００９】
更に別の実施形態では、並行要求の最大数は測定期間中に測定される。各優先度について並行要求の最大数を測定するステップは、測定期間中に優先度についての要求を受信したことに応答して優先度の１つについての並行要求数を増分することと、測定期間中に優先度についての要求を受信したことに応答して優先度の１つについての並行要求数を減分することと、を含む。各優先度についての並行要求の最大数は、測定期間中に測定された各優先度についての並行要求の最大数を含む。
【００１０】
更に別の実施形態では、測定した並行要求の最大数を用いて指定した優先度についての閾値を決定するステップは、優先度についての並行要求の最大数を用いて、要求をキューに入れる優先度についての閾値を決定することを含む。
【００１１】
更に別の実施形態では、優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される。
【００１２】
更に別の実施形態では、各優先度についての並行要求の最大数が、完了した測定期間中に測定される。各完了した測定期間後に、キューに入れる優先度の閾値が調節される。
【００１３】
更に別の実施形態では、測定した並行要求の最大数を用いて指定した優先度についての閾値を決定するステップは、優先度の少なくとも２つについて観察された並行要求の最大数および優先度の少なくとも２つについて可能な要求の最小数の最小値に基づいて各優先度閾値を決定することを含む。
【００１４】
更に別の実施形態では、指定した優先度の要求が完了したことの確認を受信する。確認の受信に応答して、指定した優先度の並行要求の現在の数が指定した優先度閾値よりも小さいか否かを判定する。指定した優先度の並行要求の現在の数が指定した優先度閾値よりも小さいことの判定に応答して、指定した優先度の少なくとも１つのキューに入れた要求を処理する。
【００１５】
これより、本発明について、以下の図面に示すような好適な実施形態を参照して、一例としてのみ説明する。
【図面の簡単な説明】
【００１６】
【図１】コンピューティング環境の実施形態を示す。
【図２】Ｉ／Ｏ要求を管理するための実施形態の管理情報を示す。
【図３】指定した優先度についてのＩ／Ｏ要求のキュー作成（queuing）を指示するか否かを決定するための動作の実施形態を示す。
【図４】受信したＩ／Ｏ要求をキューに入れるか否かを決定するための動作の実施形態を示す。
【図５】Ｉ／Ｏ要求が完了したことの確認を処理するための動作の実施形態を示す。
【発明を実施するための形態】
【００１７】
図１は、本発明の好適な実施形態の態様を実施するコンピューティング環境を示す。１つ以上のホスト２は各々、１つ以上のアプリケーション４を含み、これがサーバ８を介して記憶装置６に対する入出力（Ｉ／Ｏ）要求を発生する。データベース・アプリケーション、ビジネス・アプリケーション等のアプリケーション４は、サーバ８に送信したＩ／Ｏ要求に優先度レベルを割り当てることができる。優先度は、優先度スキームの一部である数字または他の優先度値を指定することができる。このように、異なるホスト２上の異なるアプリケーション４は、同一の優先度指定プロトコルを用いることができ、これは業界標準の一部として指定することができる。
【００１８】
ホスト２は、ローカル・エリア・ネットワーク（ＬＡＮ）、記憶エリア・ネットワーク（ＳＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ネットワーク等のネットワーク１０を介して、サーバ８と通信を行うことができる。あるいは、ホスト２は、ＰＣＩ（Peripheral Component Interconnect）バス等のバス・インタフェース上でサーバ８と通信を行うことも可能である。ホスト２、記憶装置６、およびサーバ８は、別個の機械に収容することができ、または１つ以上のバス・インタフェースを介して接続する同一の機械に含むことができる。サーバ８は、記憶コントローラ、サーバ、企業の記憶サーバ等、当技術分野において既知の適切な記憶管理システムを含むことができる。記憶装置６は、直接アクセス記憶装置（ＤＡＳＤ：Direct Access Storage Device）、ＪＢＯＤ（Just a Bunch of Disks）、ＲＡＩＤ（Redundant Array of Independent Disks）、仮想化デバイス、テープ記憶装置、光ディスク記憶装置、または当技術分野において既知のいずれかの記憶システム等、当技術分野において既知の適切な記憶システムを含むことができる。ホスト２は、ワークステーション、デスクトップ・コンピュータ、サーバ、メインフレーム、ハンドヘルド・コンピュータ、電話デバイス等、当技術分野において既知のいずれかの適切なコンピューティング・デバイスを含むことができる。ホスト２は、Ｉ／Ｏ要求を発生するアプリケーション・プログラムを含む。
【００１９】
サーバ８は、プロセッサ１２（または多数のプロセッサ）と、１つ以上の揮発性メモリ・デバイスまたは不揮発性メモリ・デバイスあるいはその両方から成るメモリ１４と、を含む。メモリは、記憶装置６に送出されるＩ／Ｏ要求およびデータ更新をバッファするためのキャッシュ１６と、記憶装置６に送出されるホスト２からのＩ／Ｏ要求を管理するＩ／Ｏマネージャ・プログラム１８と、中優先度キュー２０と、低優先度キュー２２と、Ｉ／Ｏマネージャ１８によって用いられてキュー２０および２２におけるＩ／Ｏ要求をキューに入れるかまたは要求を前進させるかを決定するためのＩ／Ｏ管理情報２４と、を含む。
【００２０】
Ｉ／Ｏマネージャ１８は、メモリ１４にロードされプロセッサ１２によって実行されるソフトウェアにおいて実施することができる。あるいは、Ｉ／Ｏマネージャ１８は、サーバ８内のハードウエア・チップ・セットにおいて実施することも可能である。
【００２１】
図２は、管理情報２４の一実施形態を示す。これは、現在の管理時間期間間隔に測定された各優先度レベルの並行未処理Ｉ／Ｏ要求の最大数を含むことができる。このため、管理期間中、各優先度レベル（例えば高、中、低）ごとに異なる時点で未処理の並行要求数を記録し、管理期間の終了時に、各優先度レベルごとに管理期間中の並行要求の最大数を決定することができる。並行要求数は、完了していない、すなわちディスクに対して未処理またはキューに入っている、受信済みのＩ／Ｏ要求の数を含む。低優先度キュー・インジケータ５２は、管理時間間隔中に受信した未処理並列低優先度要求の現在の数５６が並列低優先度Ｉ／Ｏ要求の最大数の低優先度閾値５４を超えた場合に、Ｉ／Ｏマネージャ１８が管理時間間隔中に受信した低優先度要求をキューに入れるか否かを示す。中優先度キュー・インジケータ５８は、管理時間間隔中に受信した未処理並列中優先度要求の現在の数６２がＩ／Ｏ要求の中優先度閾値６０を超えた場合に、Ｉ／Ｏマネージャ１８が管理時間間隔中に受信した中優先度要求をキューに入れるか否かを示す。代替的な実施形態においては、管理情報２４において異なる情報を維持することができる。
【００２２】
一実施形態においては、低、中、および高優先度の指定は、Ｉ／Ｏマネージャ１８によって解釈されるようにホスト・アプリケーション４によって設定された単一の優先度値またはある範囲の優先度値に対応することができる。例えば、Ｉ／Ｏマネージャ１８は、１つの低、中、または高優先度の分類に対して、数値優先度値をマッピングすることができる。更に別の実施形態においては、更に別の優先度レベルについて要求をキューに入れるために、１つまたは３つ以上の優先度キューがある場合もある。
【００２３】
一実施形態において、図２で維持される情報および閾値は、ディスクごとに維持することができる。このため、記憶装置６が多数の相互接続されたハード・ディスク・ドライブを含む場合、図２の閾値をディスク数で乗算して、マルチディスク記憶装置に適用する閾値を決定する。
【００２４】
図３は、管理時間間隔ごとにＩ／Ｏ管理情報２４を更新して、最も最近完了した管理時間間隔中に測定した並列Ｉ／Ｏ要求（すなわち低、中、および高）の最大数に基づいて、どの程度Ｉ／Ｏ要求のキュー作成が必要であるかを判定するための、Ｉ／Ｏマネージャ１８によって実行される動作の実施形態を示す。（ブロック１００において）Ｉ／Ｏ処理を開始すると、Ｉ／Ｏマネージャ１８は、（ブロック１０２において）数秒等の時間期間の後に終わるように設定した管理時間間隔を開始し、全てのキュー・インジケータ５２および５８をクリアする。（ブロック１０４において）時間間隔が終わると、Ｉ／Ｏマネージャ１８は、前に完了した管理時間間隔中の最も高い優先度（Ｐ）要求および各優先度ごとの（例えば低、中、高）最高水準（high water marks）（すなわち最大数並列要求）を含む間隔データを（ブロック１０６において）記録する。管理時間期間中に、Ｉ／Ｏマネージャ１８は、いずれかの優先度の新しい要求を受信した場合には並列Ｉ／Ｏ要求の合計数を増分し、Ｉ／Ｏ要求が完了した場合には並列Ｉ／Ｏ要求の合計数を減分する。管理時間間隔中の並列Ｉ／Ｏ要求数は、時間期間中の未処理のＩ／Ｏ要求の最大数の最高水準である。
【００２５】
Ｉ／Ｏマネージャは、前回の管理間隔中に受信した最大優先度要求（Ｐ）以上の優先度を有するいずれかのキューについてキュー・インジケータ５２および５８を（ブロック１０８において）クリアする。最大優先度要求（Ｐ）よりも低い優先度のキュー・インジケータ５２および５８は、（ブロック１１０において）キュー作成を示すように設定される。インジケータが設定された各キューごとに、Ｉ／Ｏマネージャ１８は、前回の管理間隔中に受信した異なる優先度の最大並行要求に基づいて並行可能要求についての閾値５４および６０を（ブロック１１２において）調節する。下に論じる式（１）および（２）は、低優先度閾値５４および中優先度閾値６０を調節するための実施形態を与える。キューに入れる優先度の閾値を調節した後、Ｉ／Ｏマネージャ１８は、（ブロック１１４において）動作の更に別の反復を開始し、ブロック１０４に戻って次の管理間隔の完了を待つ。
【００２６】
図３の動作により、Ｉ／Ｏマネージャ１８は、時間間隔の完了時に、異なる優先度レベルのＩ／Ｏ要求をキューに入れるか、またはキュー入れをやめていずれかの以前にキューに入れたＩ／Ｏ要求の処理を完了するかを決定する。更に、Ｉ／Ｏマネージャは、前の時間期間中に各優先度レベルで受信した要求の最大数に基づいて、次の管理期間中にキューに入れる各優先度レベルのキュー閾値を調節する。キュー作成閾値を調節するために、Ｉ／Ｏマネージャ１８は、更に、以下に論じるように各優先度レベルの可能要求の最小数を考慮することができる。図３は、２つの優先度レベルすなわち低および中のためのキュー作成を可能とするか否かの決定を示すが、この決定およびキュー・インジケータは３つ以上の優先度レベルについて与えることができる。
【００２７】
図４は、管理時間間隔中にＩ／Ｏ要求を処理するためにＩ／Ｏマネージャ１８が実行する動作の実施形態を示す。指定した優先度（例えば低、中、高）のＩ／Ｏ要求を（ブロック１５０において）受信すると、Ｉ／Ｏマネージャ１８は、（ブロック１５２において）指定した優先度の要求数５６、６２、または６４を増分する。（ブロック１５４において）指定した優先度が高である場合、（ブロック１５６において）Ｉ／Ｏ要求は前進することができる。（ブロック１５４において）要求が高優先度でなく、例えば低または中である場合、および（ブロック１５８において）優先度キュー・インジケータ５２または５８が指定した優先度（中、低）について設定されていない（キューに入れないことを示す）場合、制御はブロック１５６に進んでＩ／Ｏ要求を前進させることができる。（ブロック１５８において）優先度キュー・インジケータ５２または５８が設定されている（受信Ｉ／Ｏ要求のキュー入れを示す）場合、および（ブロック１６０において）指定した優先度の並行未処理要求数５６または６２が指定した優先度閾値５４または６０を超えている場合、受信Ｉ／Ｏ要求は（ブロック１６２において）指定した優先度キュー２０または２２に入れられる。その他の場合（ブロック１６０において）、指定した優先度の並行未処理要求数５６または６２が指定した優先度閾値５４または６０を超えない場合、Ｉ／Ｏ要求は前進することができる。優先度レベルの並行Ｉ／Ｏ要求は、完了していないかまたは優先度レベル・キュー２０または２２に入れられた受信Ｉ／Ｏ要求数を含む。
【００２８】
図５は、記憶装置６に対する優先度のＩ／Ｏ要求が完了したことの確認を処理するためにＩ／Ｏマネージャ１８によって実行される動作の実施形態を示す。（ブロック２００において）確認を受信すると、Ｉ／Ｏマネージャ１８は（ブロック２０２において）完了した要求の指定優先度について並行要求数を減分する。Ｉ／Ｏマネージャ１８は、更に、指定優先度の並行要求現在数が指定優先度閾値よりも小さいことの判定に応答して、キューに入れた要求を（ブロック２０４において）処理することができる。キューに入れた要求は、優先度レベルについての並行要求の指定優先度閾値に再び達するまで、処理することができる。
【００２９】
一実施形態においては、最も高い優先度レベルの要求は常に前進することができ、低または中の優先度要求をキューに入れるか否か、およびそれらの要求のキュー作成閾値を判定する。代替的な実施形態においては、高い優先度要求は、ディスク・サービスを受信している場合がある。更に、３つ以上の優先度のために追加の優先度レベル・キューがある場合がある。
【００３０】
一実施形態においては、低優先度閾値５４および中優先度閾値６０を決定するために、以下の数式（１）および（２）を用いることができる。
【００３１】
Ｕ＿ｈｍ  ＝  ｍｉｎ（（Ｔ＿ｈ＋Ｔ＿ｍ），（ＨＷＭ＿ｈ＋ＨＷＭ＿ｍ））    （１）
Ｕ＿ｌｍ  ＝  ｍｉｎ（（Ｔ＿ｈ＋Ｔ＿ｌ），（ＨＷＭ＿ｈ＋ｍｉｎ（Ｔ＿ｌ，ＨＷＭ＿ｌ）））    （２）
【００３２】
式（１）および（２）において、Ｔ＿ｈ、Ｔ＿ｍ、およびＴ＿ｌは、それぞれ高、中、および低の優先度について可能な並行要求の最小数を含み、枯渇（starvation）すなわち低優先度の要求を処理しない状況を回避する。これらの動作ターゲット上の並行の中および低優先度要求は、現在提示している条件のもとでキュー作成することができる。しかしながら、少なくとも、各タイプの並行要求の最小数が許可される。この実施形態の例において、量Ｔ＿ｈ、Ｔ＿ｍ、およびＴ＿ｌは、ディスクごとに表現された場合、それぞれ２．５、１．０、および０．５の値を有する場合がある。ＨＷＭ＿ｈは、以前の管理期間中に測定した高優先度の要求の最高水準を含み、これは、以前の管理期間中に観察した高優先度並行要求の最大数を含む。同様に、ＨＷＭ＿ｍおよびＨＷＭ＿ｍは、それぞれ、以前の管理期間中に測定した中および低優先度の要求の最高水準を含み、これは、以前の管理期間中に観察した中および低並行要求の最大数を含む。
【００３３】
式（１）において計算した量Ｕ＿ｈｍは、高および中優先度Ｉ／Ｏの並行要求の割り当てを含む。式（１）および（２）の実施形態では、この手法は、割り当てたレベルまで、高および中優先度の要求に対応するように、低優先度要求をキューに入れることである。このため、この実施形態においては、低優先度キューの閾値５４はＴ＿ｓｕｍ−Ｕ＿ｈｍに設定される。ここで、Ｔ＿ｓｕｍは、Ｔ＿ｈ＋Ｔ＿ｍ＋Ｔ＿ｌと定義される。更に直観的には、この閾値設定の最終効果は以下のように説明することができる。すなわち、キュー作成される並行要求の合計数は、Ｔ＿ｓｕｍの最大値に制約されるが、これは、ディスク・サービスを受信する並行低優先度要求の数にＴ＿ｌ以上の閾値を設定することによって実行可能である場合である。
【００３４】
式（２）において計算される量Ｕ＿ｌｈは、高および低優先度Ｉ／Ｏの並行要求の割り当てを含む。式（１）および（２）の実施形態では、割り当てたレベルまで、高および低優先度の要求に対応するように、中優先度要求をキューに入れる。このため、この実施形態においては、中優先度キューの閾値６０はＴ＿ｓｕｍ−Ｕ＿ｌｍに設定される。このように、この閾値設定の最終効果は以下のように説明することができる。すなわち、ディスク・サービスを受信する並行要求の合計数はＴ＿ｓｕｍの最大値に制約されるが、これは、ディスク・サービスを受信する並行低優先度要求の数にＴ＿ｌの閾値を設定し、ディスク・サービスを受信する並行中優先度要求の数にＴ＿ｍ以上の閾値を設定することによって実行可能な場合である。
【００３５】
上述のＵ＿ｌｈおよびＵ＿ｍｈの量を用いて、更に、Ｐが、前の管理期間において観察された最も高い優先度要求である場合、各優先度レベルごとにどのように前進するかの決定は、Ｑ＝「高」、「中」、および「低」について以下のように計算することができる。
【００３６】
Ｑ≧Ｐならば、並行ディスク要求に制限は加えない。
または、Ｑ＝「中」の場合、並行ディスク要求の数を（ディスクごとに）Ｔ＿ｓｕｍ−Ｕ＿ｈｌに制限する。
または、Ｑ＝「低」の場合、並行ディスク要求の数を（ディスクごとに）Ｔ＿ｓｕｍ−Ｕ＿ｈｍに制限する。
【００３７】
上の式を用いて、異なる優先度についての並行要求の最大数を用いて、各優先度ごとのキュー作成閾値を決定する。更に、キュー作成閾値を設定する際に、各優先度ごとに可能とする要求の最小数も考慮して、各優先度ごとに要求の最小数を処理することを保証する。上述の実施形態の一つでは、（１）優先度の少なくとも２つについて観察した並行要求の最大数、および（２）優先度の少なくとも２つについて可能とした要求の最小数、の最小値に基づいて、各優先度閾値を調節する。また、異なるファクタを考慮して他の式を用いて、キュー作成閾値を調節し、異なる優先度の並行要求の最大数を所望の範囲内に維持することができる。
【００３８】
前述の実施形態によって、以前の管理時間間隔中に発生した並行Ｉ／Ｏ要求の合計数等、Ｉ／Ｏアクティビティに基づいてＩ／Ｏ要求をキューに入れるか否かを判定する。更に別の実施形態においては、指定優先度のＩ／Ｏ要求をキューに入れる優先度特定閾値を調節して、指定優先度のキュー作成量を増大させて、閾値未満のＩ／Ｏ要求の合計数を減らすことができる。
【００３９】
追加の実施形態の詳細
記載した動作は、標準的なプログラミングまたはエンジニアリングあるいはその両方の技法を用いて、ソフトウェア、ファームウェア、ハードウェア、またはそのいずれかの組み合わせを生成するための方法、装置、または製造品として実施することができる。記載した動作は、「コンピュータ読み取り可能記憶媒体」において維持されるコードとして実施することができ、この場合、プロセッサがコンピュータ記憶読み取り可能媒体からコードを読み取り実行することができる。コンピュータ読み取り可能記憶媒体は、磁気記憶媒体（例えばハード・ディスク・ドライブ、フレキシブル・ディスク、テープ等）、光記憶装置（ＣＤ−ＲＯＭ、ＤＶＤ、光ディスク等）、揮発性および不揮発性メモリ・デバイス（例えばＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、ファームウェア、プログラマブル論理等）等の記憶媒体を含むことができる。記載した動作を実施するコードは、更に、ハードウェア・デバイス（たとえば集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）で実施されるハードウェア論理において実施可能である。更に、記載した動作を実施するコードは、「伝送信号」において実施可能であり、この場合、伝送信号は、空間を介して、または光ファイバ、導線等の伝送媒体を介して伝搬することができる。コードまたは論理が符号化されている伝送信号は、更に、無線信号、衛星伝送、無線波、赤外線信号、Bluetooth等を含むことができる。「製造品」は、コードまたは論理が符号化されている伝送信号を送信および受信するための送信局または受信局あるいはその両方を含むことができ、この場合、伝送信号において符号化されているコードまたは論理は、受信および送信局またはデバイスにおいてハードウェアまたはコンピュータ読み取り可能記憶媒体において復号し記憶することができる。「製造品」は、コードまたは論理を実施することができるコンピュータ読み取り可能記憶媒体、ハードウェア・デバイス、または伝送送信局もしくは受信局あるいはそれら全て等のデバイスを含む。本発明の範囲から逸脱することなくこの構成に多くの変更を行うことができ、製造品は当技術分野において既知の適切な情報搬送媒体を含むことができることは、当業者には認められよう。
【００４０】
記載した実施形態において、アクセス・パラメータは、共有メモリにおけるメモリ・アドレスに対するプロセス・アクセスのために変更する。代替的な実施形態においては、記憶デバイスおよび他のコンピュータ・リソースにおけるアドレス等、メモリ・アドレス以外のコンピュータ・リソースについて、アクセス・パターンを監視することができる。
【００４１】
「一実施形態」、「実施形態」、「複数の実施形態」、「この実施形態」、「これらの実施形態」、「１つ以上の実施形態」、「いくつかの実施形態」、および「１つの実施形態」という言葉は、特に指定しない限り、「本発明（複数の本発明）」の１つ以上（であるが全てではない）実施形態」を意味する。
【００４２】
「含む」、「備える」、「有する」という言葉およびその変形は、特に指定しない限り、「〜を含むがそれに限定されない」という意味である。
【００４３】
アイテムの列挙されたリストは、特に指定しない限り、アイテムのいずれかまたは全てが相互に排他的であることを示さない。
【００４４】
「１つの」、および「この」という言葉は、特に指定しない限り、「１つ以上の」を意味する。
【００４５】
相互に連通しているデバイスは、特に指定しない限り、相互に連続的に連通する必要はない。更に、相互に連通しているデバイスは、直接的にまたは１つ以上の仲介物を介して間接的に連通することができる。
【００４６】
相互に連通しているいくつかのコンポーネントを用いる実施形態の説明は、かかる全てのコンポーネントが必須であることを示さない。逆に、本発明の可能な実施形態の多様性を示すために、様々な任意のコンポーネントが記載される。
【００４７】
更に、プロセス・ステップ、方法ステップ、アルゴリズム等を連続した順序で記載することができるが、かかるプロセス、方法、およびアルゴリズムは、他の順序で機能するように構成することができる。換言すると、記載することができるステップのいずれかのシーケンスまたは順序は、これらのステップをその順序で実施する必要性を必ずしも示すものではない。本明細書において記載するプロセスのステップは、他のいずれかの実施で実行可能である。更に、いくつかのステップは同時に実行することも可能である。
【００４８】
本明細書において単一のデバイスまたは物品を記載する場合、単一のデバイス／物品の代わりに２つ以上のデバイス／物品（それらが協働するか否かには関わらず）を使用可能であることは容易に明らかであろう。同様に、本明細書において２つ以上のデバイスまたは物品を記載する場合（それらが協働するか否かには関わらず）、２つ以上のデバイスまたは物品の代わりに単一のデバイス／物品を使用可能であること、または示したデバイスまたはプログラムの数の代わりに異なる数のデバイス／物品を使用可能であることは明らかであろう。あるいは、デバイスの機能性または特徴あるいはその両方は、かかる機能／特徴を有すると明示的に記載していない１つ以上の他のデバイスによって具現化することができる。このため、本発明の他の実施形態は、デバイス自体を含む必要はない。
【００４９】
図３、図４、および図５に示した動作は、ある順序で発生するいくつかのイベントを示す。代替的な実施形態においては、いくつかの動作は異なる順序で実行されるか、変更されるか、または除去される場合がある。更に、上述の論理にステップを追加し、記載した実施形態に適合させることができる。更に、本明細書において記載した動作は、連続的に実行することができ、または、いくつかの動作は並行して処理することも可能である。更に、動作は、単一の処理ユニットによってまたは分散型の処理ユニットによって実行することができる。
【００５０】
本発明の様々な実施形態の前述の説明は、例示および記載の目的のために提示した。網羅的であることや、本発明を開示した形態そのものに限定することは、意図していない。上述の教示に鑑み、多くの変更および変形を行うことができる。本発明の範囲は、この詳細な説明によってではなく添付の特許請求の範囲によって限定することが意図される。上述の明細、例示、およびデータは、製造の完全な説明および本発明の構成の使用を与える。本発明の多くの実施形態は、本発明の精神および範囲から逸脱することなく実行可能であるので、本発明は添付の特許請求の範囲に存するものである。
【図１】
2011520165.tif 000003
【図２】
2011520165.tif 000004
【図３】
2011520165.tif 000005
【図４】
2011520165.tif 000006
【図５】
2011520165.tif 000007
【手続補正書】
【提出日】平成22年12月29日(2010.12.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶装置に送出された優先度についての並行要求の複数の最大数を測定するステップと、
前記測定した並行要求の複数の最大数を用いて指定した優先度についての閾値を決定するステップと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とするステップと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とするステップと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れるステップと、
を含む、方法。
【請求項２】
前記指定した優先度の前記要求をキューに入れることを指示するステップと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示するステップと、
前記記憶装置に送出された優先度の要求を受信するステップと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信するステップと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れるステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信するステップを更に含む、請求項２に記載の方法。
【請求項４】
前の測定期間中に受信した最も高い優先度の要求を決定するステップと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示するステップと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示するステップであって、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定する、ステップと、
を更に含む、前出の請求項のいずれかに記載の方法。
【請求項５】
前記並行要求の最大数を測定するステップは、各優先度について前記並行要求の最大数を測定することを含む、前出の請求項のいずれかに記載の方法。
【請求項６】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定するステップが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項５に記載の方法。
【請求項７】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定するステップが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項５に記載の方法。
【請求項８】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項７に記載の方法。
【請求項９】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項７に記載の方法。
【請求項１０】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定するステップが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項５に記載の方法。
【請求項１１】
前記指定した優先度の要求が完了したことの確認を受信するステップと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定するステップと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理するステップと、
を更に含む、前出の請求項のいずれかに記載の方法。
【請求項１２】
記憶装置と連通しているシステムであって、
動作を行うように実行される入出力（Ｉ／Ｏ）マネージャを含み、前記動作が、
前記記憶装置に送出された並行要求の複数の最大数を測定することと、
前記測定した並行要求の複数の最大数を用いて指定した優先度についての閾値を決定することと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とすることと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とすることと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れることと、
を含む、システム。
【請求項１３】
前記動作が、
前記指定した優先度の前記要求をキューに入れることを指示することと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示することと、
前記記憶装置に送出された優先度の要求を受信することと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信することと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れることと、
を更に含む、請求項１２に記載のシステム。
【請求項１４】
前記動作が、
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信することを更に含む、請求項１３に記載のシステム。
【請求項１５】
前記動作が、
前の測定期間中に受信した最も高い優先度の要求を決定することと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示することと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示し、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定することと、
を更に含む、請求項１２から１４のいずれかに記載のシステム。
【請求項１６】
前記並行要求の最大数を測定することは、各優先度について前記並行要求の最大数を測定することを含む、請求項１２から１５のいずれかに記載のシステム。
【請求項１７】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定することが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項１６に記載のシステム。
【請求項１８】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項１６に記載のシステム。
【請求項１９】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項１８に記載のシステム。
【請求項２０】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項１８に記載のシステム。
【請求項２１】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項１６に記載のシステム。
【請求項２２】
前記動作が、
前記指定した優先度の要求が完了したことの確認を受信することと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定することと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理することと、
を更に含む、請求項１２から２１のいずれかに記載のシステム。
【請求項２３】
記憶装置と連通し、動作を実行するためのコードを実施する製造品であって、前記動作が、
前記記憶装置に送出された並行要求の複数の最大数を測定することと、
前記測定した並行要求の複数の最大数を用いて指定した優先度についての閾値を決定することと、
前記指定した優先度についての並行要求の現在の数が、前記指定した優先度についての前記決定した閾値を超えないことの判定に応答して、前記記憶装置に送出された前記指定した優先度の後続の要求を前進させることを可能とすることと、
前記指定した優先度よりも高い優先度を有する前記記憶装置に送出された後続の要求を前進させることを可能とすることと、
前記指定した優先度についての並行要求の前記現在の数が全体的な閾値を超えることの判定に応答して、前記指定した優先度を有する前記記憶装置に送出された後続の要求をキューに入れることと、
を含む、製造品。
【請求項２４】
前記動作が、
前記指定した優先度の前記要求をキューに入れることを指示することと、
前記指定した優先度よりも少なくとも１つ高い優先度の要求をキューに入れないことを指示することと、
前記記憶装置に送出された優先度の要求を受信することと、
前記受信した要求の前記優先度を有する要求をキューに入れることの指示がないことの判定に応答して、前記記憶装置に前記要求を送信することと、
前記受信した要求の前記優先度の要求をキューに入れることの前記指示に応答して、および、前記受信した要求の前記優先度の並行現要求数が前記受信した要求の前記優先度についての閾値を超えることの判定に応答して、前記受信した要求を前記キューに入れることと、
を更に含む、請求項２３に記載の製造品。
【請求項２５】
前記動作が、
前記受信した優先度の要求をキューに入れることの前記指示の判定に応答して、および、前記受信した要求の前記優先度の並行要求の前記現在の数が前記受信した要求の前記優先度の前記閾値を超えないことの判定に応答して、前記受信した要求を前記記憶装置に送信することを更に含む、請求項２４に記載の製造品。
【請求項２６】
前記動作が、
前の測定期間中に受信した最も高い優先度の要求を決定することと、
前記決定した最も高い優先度よりも低い各優先度の要求をキューに入れることを指示することと、
前記決定した最も高い優先度よりも高い各優先度の要求をキューに入れないことを指示し、前記測定した並行要求の最大数を用いて前記決定した最も高い優先度よりも低い各優先度の前記閾値を決定することと、
を更に含む、請求項２３から２５のいずれかに記載の製造品。
【請求項２７】
前記並行要求の最大数を測定することは、各優先度について前記並行要求の最大数を測定することを含む、請求項２３から２６のいずれかに記載の製造品。
【請求項２８】
前記並行要求の最大数は測定期間中に測定され、各優先度について前記並行要求の最大数を測定することが、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を増分することと、
前記測定期間中に前記優先度についての要求を受信したことに応答して前記優先度の１つについての並行要求数を減分し、各優先度についての前記並行要求の最大数が、前記測定期間中に測定された各優先度についての前記並行要求の最大数を含むことと、
を含む、請求項２７に記載の製造品。
【請求項２９】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度についての前記並行要求の最大数を用いて、要求をキューに入れる前記優先度についての前記閾値を決定することを含む、請求項２７に記載の製造品。
【請求項３０】
前記優先度閾値が、更に、各指定した優先度について可能とされる要求の最小数に基づいて決定される、請求項２９に記載の製造品。
【請求項３１】
各優先度についての前記並行要求の最大数が完了した測定期間中に測定され、各完了した測定期間後にキューに入れる前記優先度の前記閾値が調節される、請求項２９に記載の製造品。
【請求項３２】
前記測定した並行要求の最大数を用いて前記指定した優先度についての前記閾値を決定することが、前記優先度の少なくとも２つについて観察された前記並行要求の最大数および前記優先度の前記少なくとも２つについて可能な前記要求の最小数の最小値に基づいて各優先度閾値を決定することを含む、請求項２７に記載の製造品。
【請求項３３】
前記動作が、
前記指定した優先度の要求が完了したことの確認を受信することと、
前記確認の受信に応答して、前記指定した優先度の並行要求の前記現在の数が前記指定した優先度閾値よりも小さいか否かを判定することと、
前記指定した優先度の並行要求の現在の数が前記指定した優先度閾値よりも小さいことの判定に応答して、前記指定した優先度の少なくとも１つのキューに入れた要求を処理することと、
を更に含む、請求項２３から３２のいずれかに記載の製造品。
【請求項３４】
請求項１から１１のいずれかに記載の方法の前記ステップをコンピュータに実行させるコンピュータ・プログラム。
【国際調査報告】
2011520165.tif 000008
2011520165.tif 000009