JP2005115600A - 情報処理装置及び方法 - Google Patents

情報処理装置及び方法 Download PDF

Info

Publication number
JP2005115600A
JP2005115600A JP2003347942A JP2003347942A JP2005115600A JP 2005115600 A JP2005115600 A JP 2005115600A JP 2003347942 A JP2003347942 A JP 2003347942A JP 2003347942 A JP2003347942 A JP 2003347942A JP 2005115600 A JP2005115600 A JP 2005115600A
Authority
JP
Japan
Prior art keywords
information
processing
request
command
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003347942A
Other languages
English (en)
Inventor
Misako Tamura
美佐子 田村
Hisaharu Takeuchi
久治 竹内
Noboru Furuumi
昇 古海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003347942A priority Critical patent/JP2005115600A/ja
Priority to US10/803,204 priority patent/US7039728B2/en
Publication of JP2005115600A publication Critical patent/JP2005115600A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 複数の情報セットの処理に要する処理時間長の平均に関する値を小さくする。
【解決手段】
情報処理装置(10)は、1以上の情報要素を有する情報セットを発行する1又は複数の情報セットソース(20)から情報セットの各々に含まれる情報要素を受信する受信手段(101)と、受信された情報要素の処理を行う情報処理手段(102)と、受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、2以上の情報セット又は複数の情報要素の処理手順を決定するものであって、2以上の情報セットの処理時間長の平均に関する値が、複数の情報要素又は2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、受信順序とは異なる処理手順を決定する決定手段(102)とを備え、その決定された処理手順に基づいて複数の情報要素の処理を開始する。
【選択図】図1

Description

本発明は、1以上の情報要素を有する情報セットを処理するための技術に関し、具体的には、例えば、ESCON或いはFICON等のプロトコルに従って外部装置から受信するI/O要求を処理するための技術に関する。
1以上の情報要素を有する情報セットとして、例えば、コマンド又はデータである1以上のコマンド要素を有するコマンド要素セットがある。具体的な例としては、ESCON(Enterprise
Systems Connection)の通信プロトコルの下でやり取りされるコマンド要素セットであって、CCWチェインと呼ばれるものがある。
CCWチェインは、例えば、パーソナルコンピュータ等の上位装置と、データ記憶装置及びそれの記憶制御装置を持つ記憶システム(例えばRAID(Redundant Array of Independent Inexpensive Disks)システム)とがESCONプロトコルに基づいて接続されている場合、上位装置から記憶システムに対して発行されるI/O要求である。
I/O要求には、例えば、データ記憶装置からデータをリードするためのリードコマンドを含むもの(つまりリード要求)と、データ記憶装置に対しデータをライトするためのライトコマンドを含むもの(つまりライト要求)とがある。記憶システムにおける記憶制御装置は、キャッシュメモリを有しており、そのキャッシュメモリを介して、上位装置とデータ記憶装置との間でデータのリード及びライトが行われる。具体的に言えば、例えば、記憶制御装置は、上位装置からリード要求を受けた場合、リード要求において求められているリード要求データがキャッシュメモリに存在すれば(キャッシュヒットすれば)、そのリード要求データを上位装置に送信し、一方、それがキャッシュメモリに無ければ(キャッシュミスすれば)、データ記憶装置にアクセスしてリード要求データをリードしそれをキャッシュメモリに格納する処理(以下、これを「ステージング処理」と言う)を行ってから、そのリード要求データを上位装置に送信する。また、記憶制御装置は、ライト要求を受けた場合、そのライト要求に対応するキャッシュメモリ領域にターゲットデータが存在すれば(キャッシュヒットすれば)、そのライト要求に従うライト要求データをそのキャッシュメモリ領域に上書きし、その後、そのデータをデータ記憶装置に格納し、一方、上記ターゲットデータがキャッシュメモリ領域に無ければ(キャッシュミスすれば)、データ記憶装置にアクセスしてターゲットデータをリードしそれをキャッシュメモリ領域に格納するステージング処理を行ってから、そのライト要求データを上記キャッシュメモリに領域に上書きし、その後、その上書きしたデータをデータ記憶装置に送信する。
記憶制御装置は、I/O要求について一連の処理が完了したら、ESCONプロトコルに従い、処理が完了した旨を表す終了通知を上位装置に送信する。
このような記憶制御装置の性能を評価するための一つの評価項目として、上位装置がI/O要求を発行してからそれの終了通知を受けるまでの時間(以下、「I/Oレスポンスタイム」と言う)の長さというものがある。通常、I/Oレスポンスタイムが短いほど、記憶制御装置の性能が良いとされる。一つのI/O要求についてのI/Oレスポンスタイムは、一般に、キャッシュミスしたときはキャッシュヒットしたときに比べて長くなる。なぜなら、キャッシュメモリへのアクセスにかかる時間に比べて、磁気ディスクに代表されるデータ記憶装置へのアクセスにかかる時間の方が長いためである。
このレスポンスタイムの短縮を図るための技術として、例えば、特許文献1(特開2002−140233号公報)に開示されている技術がある。この技術によれば、例えば、記憶制御装置は、上位装置から受領した複数のI/O要求のうち、キャッシュヒットするI/O要求については、上位装置に対するデータ転送を実行し、キャッシュミスするI/O要求については、対象データをデータ記憶装置からキャッシュメモリに読み出す処理と、上位装置に対するデータ転送とを並行して実行する。この結果、複数のI/O要求の処理に対する記憶制御装置から上位装置への終了通知順序が、上位装置からのI/O要求受領順序とは異なる場合がある。
特開2002−140233号公報
ところで、上述したI/Oレスポンスタイムの長さに基づいて記憶制御装置の能力を評価する際、発行された複数のI/O要求のI/Oレスポンスタイムの平均(以下、「平均レスポンスタイム」と言う)についての考察が必要であると考えられる。なぜなら、例えば、記憶制御装置が、上位装置から第1と第2のI/O要求を受信している場合、第1のI/O要求についてはI/Oレスポンスタイムが短くても、第2のI/O要求についてはI/Oレスポンスタイムが大分長くなってしまうのならば、全体として短いI/Oレスポンスタイムを提供したことにはならないからである。上述した特許文献1に開示の技術では、平均レスポンスタイムを考慮した処理は行われていない。
上述した問題点は、上記のようなI/O要求に限らず、1以上の情報要素を持つ情報セットを受信し処理する他の装置にも存在し得る。また、その装置の能力を評価する際の評価項目として、平均レスポンスタイムに限らず、他の複数の処理に要する平均の処理時間長も有り得る。
従って、本発明の目的は、複数の情報セットの処理に要する処理時間長の平均に関する値を小さくすることができるようにすることにある。
本発明に従う情報処理装置は、1以上の情報要素を有する情報セットを発行する1又は複数の情報セットソースから前記情報セットの各々に含まれる情報要素を受信する受信手段と、前記受信された情報要素の処理を行う情報処理手段と、受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上の情報セット又は前記複数の情報要素の処理手順を決定するものであって、前記2以上の情報セットの処理時間長の平均に関する値が、前記複数の情報要素又は前記2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定する決定手段とを備え、前記情報処理手段は、前記決定された処理手順に基づいて、前記未処理又は処理中の複数の情報要素の処理を開始する。
ここで、「情報要素」とは、情報セットに含まれる情報の要素であって、所定の単位、例えばフレーム単位で送受信される要素であり、具体例としては、コマンド又はデータである。
また、「情報セット」とは、1以上の上記情報要素を含んだ情報要素グループであり、例えば、1以上のコマンド及び1以上のデータのうち少なくとも一方を含むコマンドデータセットである。また、情報セットに含まれる1以上の情報要素は、例えば、所定の順番でシーケンシャルに処理される必要があり、そのように処理されることで、1つの情報セットについての処理が完了するようになっている。そのため、例えば、決定手段が、2以上の情報セット或いは上記複数の情報要素の処理手順を決定する際、本来は第1の情報要素よりも後に処理される第2の情報要素が第1の情報要素よりも先に処理されるような処理手順を決定することはない。
また、「2以上の情報セットの処理時間長の平均に関する値」とは、その2以上の処理時間長の平均値、或いは、その平均値から取得可能な値(例えば合計値)である。
また、前記2以上の情報セットの各々についての「処理時間長」は、例えば、所定時点(例えば現時点)からその情報セットについての処理の完了に関する時点までの時間長である。「処理の完了に関する時点」とは、例えば、処理完了を意味する終了通知を情報処理装置が情報セットソースに送信した時点、その終了通知を情報セットソースが受信しそれを認識した時点、その終了通知に応答して情報処理装置が所定の応答信号を送信した時点、又は、その応答信号を情報処理装置が受信し認識した時点のいずれかである。
本発明に従う情報処理装置は、ハードウェア、ソフトウェア及びそれらの組合せのうちの少なくとも1つにより構築することが可能である。ソフトウェア及びそれとハードウェアの組合せでその情報処理装置を構築する場合、そのソフトウェアのためのコンピュータプログラムは、ディスク型ストレージや半導体メモリなどのプログラム記憶媒体を通じて、或いはインターネット等の通信ネットワークを通じてコンピュータにインストール又はロードすることができ、それにより、上述の情報処理装置を構築することができる。
本発明に従う情報処理装置は、受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、それら2以上の情報セットの処理時間長の平均に関する値が、複数の情報要素又は2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、受信順序とは異なる処理手順を決定し、それに基づいて、上記未処理又は処理中の複数の情報要素の処理が開始される。これにより、2以上の情報セットの処理時間長の平均に関する値を、単に処理対象の受信順序に従って処理されるときの値以下にすることができる。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本発明の一実施形態に係る情報処理装置が適用された記憶システムの全体構成を示す。
本実施形態における記憶システムには、1又は複数台の記憶装置60と、記憶制御装置10とが備えられる。
記憶装置60は、データを記憶することができる装置であり、例えば、複数のハードディスクをそれぞれ備えた複数のディスクドライブ600、600、・・・をアレイ状に有するハードディスク群である(従って、この記憶システムは、いわゆるRAID(Redundant
Array of Independent Inexpensive Disks)システムである)。この記憶装置60の複数のディスクドライブ600、600、・・・における物理的な記憶領域上には、論理的な記憶領域である複数の論理ボリューム(Logical
Unit)を設定することができる。
記憶制御装置10は、接続ポート100、103と、チャネル制御部101,104と、IO要求バッファ109、110と、コマンド制御部102、105と、サービスプロセッサ50と、共有メモリ106と、キャッシュメモリ108と、ディスク制御部107とを備えている。
接続ポート100、103は、パーソナルコンピュータ等の1又は複数の外部装置が記憶制御装置10に対し通信可能に接続するためのポートである。例えば、接続ポート100には、上位装置20が通信可能に接続され、別の接続ポート103には、ダイレクタ70を経由して上位装置30及び上位装置40と通信可能に接続される。これにより、記憶制御装置10は、各上位装置20、30、40から発行されたI/O要求(入出力要求)を接続ポート100又は103を介して受信することができる。
チャネル制御部101及び104は実質的に機能が同じなので101について代表的に説明する。チャネル制御部101は、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができ、上位にある接続ポート100に接続されている上位装置20と通信可能に接続される。チャネル制御部101は、上位装置20から受けたI/O要求を、自分の下位に備えられているコマンド制御部102がアクセス可能なI/O要求バッファ109に格納する。また、チャネル制御部101は、上位装置20から受けたI/O要求に基づくデータを上位装置20に送信したり上位装置20から受信したりする。
I/O要求バッファ109及び110は実質的に機能が同じなので109について代表的に説明する。I/O要求バッファ109は、自分の上位に備えられているチャネル制御部101が上位装置20から受信したI/O要求を記憶することができるバッファであって、所定の内部メモリ(例えばRAM又はSDRAM等)上に確保されたものである。
コマンド制御部102及び105は実質的に機能が同じなので102について代表的に説明する。コマンド制御部102は、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができ、上位に備えられているIO要求バッファ109に格納されているI/O要求を読出し、そのI/O要求に従う処理を行なう。
サービスプロセッサ50は、所定のデータソース(例えば外付式のハードディスク装置或いは可搬型の不揮発性メモリ)又はユーザから記憶制御装置10に種々の情報をするための入力処理装置であり、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができる。具体的には、例えば、サービスプロセッサ50は、操作パネル等のユーザインターフェースであり、そのユーザインタフェースを介して、ユーザが、所定の情報、一例として、記憶制御装置10の保守に関する作業指示に関する情報、各種制御パラメータ、各種のチューニングパラメータ、及び後述する性能情報テーブル1060に関する情報を入力する。このサービスプロセッサ50から入力された各種情報は共有メモリ106に格納され、記憶制御装置10内の各制御部102、107等から必要に応じて参照又は更新される。
共有メモリ106は、例えば、不揮発性の半導体メモリ(例えばEEPROM)或いはハードディスクに仮想的に設けられたメモリであり、コマンド制御部102、105やディスク制御部107により共有されるものである。この共有メモリ106には、後述する性能情報テーブル1060と統計情報テーブル1061とが用意される(性能情報テーブル1060と統計情報テーブル1061の更新方法及び使用方法については後述する)。また、この共有メモリ106には、他の所定情報、例えば、I/O要求の処理に必要な制御テーブルが用意される。制御テーブルは、例えば、1以上の記憶装置60上における物理的又は論理的な記憶領域(以下、「データ記憶領域」と言う)毎に用意されるものであり、各制御テーブルには、キャッシュメモリ108に構築された1又は複数の仮想記憶領域(以下、「キャッシュスロット」と言う)のアドレスや、データ記憶領域のアドレスや、I/O要求の種別(例えば、リードとライトのどちらを要求するものか)等が記録される。キャッシュメモリ108上のキャッシュスロットや、各データ記憶領域に対するデータの読出しや書込みは、そのデータ記憶領域に対応した制御テーブルに記録されている情報に基づいて行なわれる。なお、I/O要求には、所定の情報(例えば、データ記憶領域のアドレス)が含まれており、その情報から、そのI/O要求の処理のときに使用する制御テーブルを特定することができるようになっている。
キャッシュメモリ108は、例えば、揮発性又は不揮発性の半導体メモリ(例えば、SRAM又はEEPROM)であり、コマンド制御部102、105やディスク制御部107により共有されるメモリである。キャッシュメモリ108には、記憶装置60からリードされたデータ、又は記憶装置60にライトするデータが一時的に格納される。具体的には、例えば、キャッシュメモリ108には、所定の制御部(例えばコマンド制御部102、105)によって、一つのデータ記憶領域(例えば論理ボリューム)に対して一つのキャッシュスロットが設定され、そのキャッシュスロットには、そのキャッシュスロットに対応しているデータ記憶領域にライトされるデータ、又は、そのデータ記憶領域からリードされたデータが一時的に格納される。この記憶システムでは、リードされたデータ又はライトされるデータは、常に、このキャッシュメモリ108を介して、コマンド制御部102、105とディスク制御部107との間で受け渡される。
ディスク制御部107は、各記憶装置60毎に備えられており、その対応している記憶装置60を制御するものである。例えば、ディスク制御部107は、共有メモリ106上の制御テーブルに基づいて、1以上の記憶装置60におけるデータ記憶領域(例えばターゲットの論理ボリューム)に対してデータの読出し又は書込みを行なう。また、ディスク制御部107は、例えば、論理アドレスを物理アドレスに変換することにより、論理ボリュームに対するI/O要求を物理ディスクへのI/O要求に変換することができても良い。
以上が、本実施形態における記憶システムについての概略的な説明である。なお、図示しないが、記憶制御装置10には、例えば、コマンド制御部102、105と、ディスク制御部107と、共有メモリ106と、キャッシュメモリ108とを相互に通信可能に接続するスイッチング制御部が備えられる。スイッチング制御部は、例えば、高速スイッチング動作によりデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。コマンド制御部102、105と、ディスク制御部107と、共有メモリ106と、キャッシュメモリ108との間のデータやコマンドの授受は、図示しないスイッチング制御部を介して行われる。
以下、上述した記憶システムにおけるI/O要求の処理流れの概要を、上位装置20がI/O要求を発行した場合を例に採り説明する。なお、その説明では、発行されたI/O要求がリード要求を示す場合とライト要求を示す場合とに分けて説明する。
(1)I/O要求がリード要求を示す場合。
上位装置20から発行されたI/O要求を、接続ポート100を介してチャネル制御部101が受信し、チャネル制御部101が、そのI/O要求をI/O要求バッファ109に格納する。コマンド制御部102は、その格納されたI/O要求を読出し、そのI/O要求とそれから特定される制御テーブルとに基づいて、そのI/O要求においてリード要求されているデータ(以下、「リード要求データ」と言う)がキャッシュメモリ108に存在するか否かの判別を行う。
その判別の結果が肯定的の場合、すなわち、リード要求データがキャッシュメモリ108に存在する場合(キャッシュヒットした場合)、コマンド制御部102は、キャッシュメモリ108からリード要求データを取得し、そのリード要求データを、チャネル制御部101を介して上位装置20に送信する。
一方、上記判別の結果が否定的の場合、すなわち、リード要求データがキャッシュメモリ108に存在しない場合(キャッシュミスした場合)、コマンド制御部102は、記憶装置60内のリード要求データをいったんキャッシュメモリ108にリードすることをドライブ制御部107に指示する。それにより、ディスク制御部107によって、記憶装置60からリード要求データがリードされてキャッシュメモリ108に格納されたならば、コマンド制御部102は、そのリード要求データをキャッシュメモリ108から取得して上位装置20に送信する。なお、この処理において、記憶装置60内のリード要求データをキャッシュメモリ108にリードする処理の間、上位装置20と記憶制御装置10との間の接続は切り離される。このように、キャッシュミスが起きた場合、リード要求データをキャッシュメモリ108にリードする処理にかかる時間と、切り離されている上位装置20に記憶制御装置10が再接続するのにかかる時間だけ、キャッシュヒットした場合にくらべて性能の劣化が生じる。
(2)I/O要求がライト要求を示す場合。
上位装置20から、ライト対象のデータ(以下、「ライト要求データ」と言う)を含んだI/O要求を、接続ポート100を介してチャネル制御部101が受信し、チャネル制御部101が、そのI/O要求をI/O要求バッファ109に格納する。コマンド制御部102は、その格納されたI/O要求を読出し、そのI/O要求とそれから特定される制御テーブルとに基づいて、キャッシュメモリ108上の所定のキャッシュスロットにデータが存在するか否かの判別を行う。
その判別の結果が肯定的の場合、すなわち、データが所定のキャッシュスロットに存在する場合(キャッシュヒットした場合)、コマンド制御部102は、上記読み出したI/O要求に含まれているライト要求データを、上記所定のキャッシュスロット内のデータに上書きする。
一方、上記判別の結果が否定的の場合、すなわち、データが所定のキャッシュスロットに存在しない場合(キャッシュミスした場合)、コマンド制御部102は、上記読み出したI/O要求から特定されるデータ記憶領域からデータをいったんキャッシュメモリ108にリードすることをドライブ制御部107に指示する。それにより、ディスク制御部107によって、そのデータ記憶領域からデータがリードされて所定のキャッシュスロットに格納されたならば、コマンド制御部102は、上記所定のキャッシュスロットに格納されたデータに、上記読み出したI/O要求に含まれているライト要求データを上書きする。
このようにして、キャッシュメモリ108にライト要求データが書き込まれたときは、当該ライト要求は終了したものとして、記憶制御装置10から上位装置20に終了報告が返される。なお、キャッシュメモリ108にライト要求データが書き込まれた時点では、一般に、そのデータは記憶装置60内のドライブ600、600、…には反映されておらず、万が一、記憶制御装置10の障害等によりキャッシュメモリ108上のデータが喪失した場合、データロストが発生してしまうが、このようなデータロストの回避のため、本実施形態の記憶制御装置10において、キャッシュメモリ108内のドライブ未反映データの2重化が行われても良いし、キャッシュメモリ108が不揮発性メモリであっても良い。
以上が、本実施形態の記憶システムにおけるI/O要求の処理流れの概要である。
以下、本実施形態の記憶システムについて、主要な部分について詳細に説明する。まず、その主要な部分の理解を助けるための説明を行う。
上位装置20、30、40と記憶制御装置10との間は、所定の通信プロトコル、例えば、或るI/O要求の入出力通信フレームと別のI/O要求の入出力通信フレームとが混在して通信を行うことができるような通信プロトコルが実装されたI/Oインターフェースにより接続されている。その通信プロトコルは、例えば、データ又はコマンドの送信と応答といったインターロックを取ってから次のデータ又はコマンドが送信されるようなシーケンシャルな通信が行われる通信プロトコル(一例として、ESCON(Enterprise Systems Connection)プロトコル)であっても良いし、インターロックを取らずに上位装置がパイプライン的にデータ又はコマンドを送信することができる通信プロトコル(一例として、FICON(FIbre CONnection)プロトコル、或いはFC-SB2プロトコル(FIBRE
CHANNEL Single-Byte Command Code Sets-2 Mapping Protocol))であっても良い。このような通信プロトコルの下で、上位装置20、30、40から発行されたI/O要求の処理が行われるときには、I/O要求に含まれるコマンド又はデータや、そのコマンド又はデータに対する応答は、フレームという形式で、上位装置20、30、40と記憶制御装置10との間でやり取りされる。
I/O要求は、記憶装置60内のデータの読み取り(READ)及び記憶装置60内へのデータの書き込み(WRITE)等を要求するためのものであり、上述した種類の通信プロトコル(例えばFC-SB2プロトコル)の下では,I/O要求は、CCW(チャネル・コマンド・ワード)チェインと呼ばれるコマンドセットである。
CCWチェインには、少なくとも1種類以上のコマンド要素が含まれており、具体的には、例えば、Define Extent(以下「DX」と表記)、Locate Record(以下「LOC」と表記)、リードコマンド、ライトコマンド等がある。DXコマンドは、レコードと呼ばれるI/O要求の対象データへのアクセス可否情報やアクセスモード等を指定するコマンドであり、I/O要求が発行されるときに初めに送信されるコマンドである。LOCコマンドは、I/O要求対象レコードの記憶装置60上の位置(例えばデータ記憶領域のアドレス)を示すシリンダ番号/トラック番号/レコード番号などの情報を示す。
図2を参照して、このCCWチェイン(I/O要求)に対する処理流れの具体例を説明する。
この例では、データのリードやライトはレコードと呼ばれる単位で行われ、レコードが複数個集まって、トラックという単位が構成される。そして、この例では、上位装置20から、或るトラックのレコード1、レコード2、レコード3をライトするライトコマンドが含まれたI/O要求70が発行されたものとする。そのため、I/O要求70は、コマンドが連結した形のコマンドチェインとして発行され、そのコマンドチェイン70は、define extent/locate data/write(R1)/write(R2)/write(R3)である。このコマンドチェイン70において、define
extent/locate dataまでのコマンドが、記憶装置60内のドライブ内におけるデータの位置付け命令であり、write(Rn:N=1,2,3)コマンドが、ライト要求データのライト命令である。
まず、上位装置20から記憶制御装置10へ、コマンドチェインに含まれる1以上のコマンド又はデータのうちの初めのコマンド(define extent)のフレームが発行される。その後、当該コマンドを受け付けた記憶制御装置10から、そのコマンドの応答として、コマンドレスポンスフレームが返却される。FC-SB2プロトコル等によれば、このコマンドレスポンスフレームを待つことなく、上位装置20は当該コマンドのパラメータデータをデータフレームとして送信することできるが、本例では、コマンドレスポンス、データの順序で記す。このパラメータデータを上位装置20から受けた記憶制御装置10は、上述したdefine extentコマンドに対する処理を実行する。
次に、上位装置20からは、次のコマンド「locate record」やデータのフレームが発行され、記憶制御装置10は、そのコマンドやデータについての処理を実行する。この二つのコマンド「define
extent」及び「locate record」により、ライト要求データの格納位置情報が分かり、記憶制御装置10では、キャッシュヒットかキャッシュミスかの判定が行われる。以下、キャッシュヒットの場合を例に採り記述する。
上位装置20から、ライトレコードコマンドが送信される。続いてライト要求データであるレコード1のデータがデータフレームとして上位装置20から送信される。記憶制御装置10は、その更新データをキャッシュメモリ108に書き込む。同様に、記憶制御装置10は、レコード2及びレコード3についてのライトレコードコマンド及びライト要求データを受信し、それらについてもキャッシュメモリ108に書き込む。
レコード3についての更新データがキャッシュメモリ108(或いは記憶装置60における所定のデータ記憶領域)に書き込まれた後、記憶制御装置10は、I/O要求70についての処理が完了した旨を意味するステータスフレームを、上記コマンド発行元の上位装置20に送信する。ステータスフレームを受信した上位装置20は、ステータスフレームを受信したことの応答を意味するステータスアクセプトフレームを送信する。
以上が、I/O処理70の処理についての流れである。なお、このI/O要求70についての処理は、記憶制御装置10が当該ステータスアクセプトフレームを受信した時点で終了したこととなる。また、I/O要求70についてのI/Oレスポンスタイム72は、上位装置20がI/O要求70を発行した時点から上記ステータスフレームを受信したことを認識した時点までの時間長である。また、図2は、I/O要求がデータのライトを要求するものである場合のデータ通信のフローであるが、I/O要求がデータのリードを要求するものである場合は、リード要求データの送信方向がライト要求データの送信方向と逆となる。また、図2は、キャッシュヒットした場合のフローであるが、キャッシュミスした場合は、記憶制御装置10は上位装置20に一旦接続の切離しを要求し、記憶装置60からキャッシュメモリ108へのデータの読み込みが完了した時点で、記憶制御装置10が上位装置20に再接続を要求することを除いては概ね同様のフローとなる。
さて、次に、複数のI/O要求がある場合のレスポンスタイムについて考察する。
記憶制御装置10が上位装置20からのI/O要求を受け付け、要求に応じた処理を行なう際に複数のI/Oを多重で処理する場合、各々の処理を行なうスケジュールにより接続ポートの稼働率、プロセッサの稼働率を上げることが可能であり、その結果、単位時間あたりに処理可能なI/O数は複数のI/O要求を混在させずに一つ一つ処理した場合に比べて向上すると考えられる。しかし、一方で、多重処理された複数のI/O要求それぞれに対するレスポンスタイムに着目すると、それぞれのI/Oを多重処理せずに1つのI/O要求ずつ処理を行なった方が、レスポンスタイムは短くなる場合がある。このケースの一例を図示したのが図3である。
この図3では、2つのI/O要求[1]、[2]を、[1][2]の順に1つのI/O要求ずつ処理をシーケンシャルに行った場合と、2つのI/O要求のフレームを混在させて行った場合をモデル化している。この図3によれば、シーケンシャルに実行しているケースに比べ、2つのI/O要求のフレームを混在しているケースでは、プロセッサ(例えばコマンド制御部102又は105を含むプロセッサ)の空き時間が少なく、そのプロセッサや接続ポート100、103の稼働率は上がる。しかし、I/O要求[1]のレスポンスタイムについて着目すると、[1][2]の順序で1つのI/O要求ずつ処理をシーケンシャルに行った方が短くなっている。
このように、或る一つのI/O要求[1]の処理中に違うI/O要求[2]のフレームをすきまなく混在させ、また、双方向にフレームの送受信を行なうことによって、処理可能なI/O要求の数を増進できることが期待できる。しかし、複数のI/O要求の処理を行なうとはいえ、各I/O要求に含まれるコマンド単位或いはデータ単位で見れば、単一のI/O要求の処理の場合と実質的に変わらない。ただし、複数のI/O要求に対するフレームの各々が混在して送受信可能であるため、接続ポート100、103の空き時間を縮小させることは可能である。これにより、単位時間当りに処理可能なI/O要求の総数は、単一のI/O要求処理しか行えないプロトコルに比べて向上することが期待できる。しかし、同じコマンドからなるひとつのI/O要求に着目して、単一I/O処理プロトコルと多重I/O処理プロトコル両方で処理した場合のレスポンスタイムについて考えると、前述した図3に示すような結果を得ることができる。すなわち、同じコマンドからなる一つのI/O要求においては、単一I/O処理プロトコルによって処理された場合のレスポンスタイムの方が、多重I/O処理プロトコルによって処理された場合のレスポンスタイムより短くなる。勿論、どんなケースでも図3に例示した結果が同じとなるわけではないが、一般に多重の度合いが高い設定になるほど、ひとつのI/O要求に着目したI/Oレスポンスタイムの劣化が見られる。しかし、多重I/O処理では、ポートおよび処理プロセッサの稼働率が単一I/O処理に比べて向上することから、単位時間に処理可能なI/O要求の数は多くなり、システムにおけるスループット性能はこちらの方が優れている。つまり、情報処理システムにおける性能を測るものさしとして、I/Oレスポンスタイムの短縮とスループットの向上という2つが挙げられるであろうが、どちらを重視するかはシステム構成、運用形態などによってまちまちであり、特にバッチ処理かオンライン処理かが重要である。例えば、前者の場合はスループット重視、後者の場合はI/Oレスポンスタイムが重視される。本実施形態では、このI/Oレスポンスタイムについて、複数のI/O要求の平均レスポンスタイムに着目している。
なお、I/Oレスポンスタイムとは、前述したように、上位装置がI/O要求を発行してからそれの終了通知を受けるまでの時間長であるが、詳細には、図4からわかるように、(1)上位装置がI/O要求を発行してから記憶制御装置に到着するまでの時間長、(2)記憶制御装置においてI/O要求の処理が待ち状態になっている時間長、(3)記憶制御装置においてI/O要求が処理されている時間長、及び(4)記憶制御装置が終了通知を発行してから上位装置が受信するまでの時間長の合計である。
さて、次に、複数のI/O要求の平均レスポンスタイムについて考察し、その内容の一例を図4に示す。なお、この例では、I/O要求[3]、[4]、[5]が、上位装置20から略同時に発行されたと仮定する。そして、3つのI/O要求は、それぞれ3つのコマンドa、b、cからなるものとする。すなわち、I/O要求[3]は、コマンド[3]-a、[3]-b、[3]-cを含んでおり、I/O要求[4]、[5]についても実質的に同様であるものとする。また、図4に例示したケースでは、全てのコマンドa、b、cについて、処理にかかる時間が同一であるものとする。各コマンドの実行にかかる時間をTcとする。そのため、全てのI/O要求は3つのコマンドa、b、cから成るので、各I/O要求毎の処理に要する処理時間長は3Tcである。また、説明を分かりやすくするために、あるI/O要求が有するコマンドの処理が終了してから別のI/O要求が持つコマンドの処理を開始する際のオーバーヘッド(つまり、処理対象のI/O要求を切り替える際のオーバーヘッド)は省略することとする。
この図4に示すように、ケース『3−A』では、I/O要求[3]、I/O要求[4]、I/O要求[5]の順序で処理が行われる。この場合、3つのI/O要求[3]、[4]、[5]のI/Oレスポンスタイムは、それぞれ、3Tc、6Tc、9Tcとなる。従って、3つのI/O要求[3]、[4]、[5]についての平均レスポンスタイムは6Tcとなる。
一方、同図において、ケース『3−B』では、I/O要求[3]のコマンド[3]-a、I/O要求[4]のコマンド[4]-a、I/O要求[5]のコマンド[5]-a、I/O要求[3]のコマンド[3]-b、I/O要求[4]のコマンド[4]-b、I/O要求[5]のコマンド[5]-b、I/O要求[3]のコマンド[3]-c、I/O要求[4]のコマンド[4]-c、I/O要求[5]のコマンド[5]-cの順で処理が行われる。着目すべき点は、各I/O要求についてのI/Oレスポンスタイムである。3つのI/O要求の処理が終了する時刻はケース『3−A』と同じであるにもかかわらず、それぞれのI/Oレスポンスタイムは、I/O要求[3]については7Tc、I/O要求[4]については8Tc、I/O要求[5]については9Tcとなり、それ故、それら3つのI/O要求の平均レスポンスタイムは、8Tcとなる。
なお、上記の説明では、平均レスポンスタイムについて考察した内容を理解し易くするため、処理対象のI/O要求の切り替え等に伴うオーバーヘッドは省略したが、このオーバーヘッドを加味すると、ケース『3−A』とケース『3−B』の平均レスポンスタイムの差はさらに顕著になると考えられる。図4の例は、複数のI/O要求のコマンド処理を混在させることにより、平均レスポンスタイムが劣化してしまう場合のモデルである。
次に、複数のI/O要求の処理を行う場合、その実行順序による平均レスポンスタイムの違いについて、図5を使用して説明する。図5では、I/O要求[6]、[7]を例に説明する。なお、この例では、I/O要求[6]は、I/O要求[7]に比べて2倍の処理時間長がかかるものと仮定し、それ故、I/O要求[6]、[7]の処理にかかる処理時間長をそれぞれ2T、Tであるものとする。また、この例では、図4を参照して説明した例と同様、I/O要求は上位装置20より略同時に発行されたものとし、且つ、理解の容易化のため、処理対象のI/O要求の切り替え等に伴うオーバーヘッドは省略する。
ケース『4−A』では、I/O要求[6]、I/O要求[7]の順序で処理が実行される。このため、2つのI/O要求の平均レスポンスタイムは、2.5Tである。
一方、ケース『4−B』では、I/O要求[7]、I/O要求[6]の順序で処理が実行される。このため、2つのI/O要求の平均レスポンスタイムは2Tとなり、ケース『4−A』における順序でI/O要求の処理が行われた場合よりも、平均レスポンスタイムは向上する。
以上、I/O要求のレスポンスタイムの幾つかの例について説明した。1つ目の例、すなわち、図3を参照して説明した例では、複数のI/O要求のコマンド/フレーム処理を混在させることで、プロセッサ(例えばコマンド制御部102又は105を有するプロセッサ)の稼動効率が上がり、スループットの向上が望める反面、1つのI/O要求に着目するとレスポンスタイムが劣化する場合があることを示した。2つ目の例、すなわち、図4を参照して説明した例では、複数のI/O要求の平均レスポンスタイムに着目し、I/O要求を一つずつシーケンシャルに実行した場合と、複数I/O要求のコマンド/フレーム処理を混在させた場合とで、平均レスポンスタイムが異なる場合があることを示した。3つ目の例、すなわち、図5を参照して説明した例では、2つ目の例と同様、複数のI/O要求の平均レスポンスタイムに着目しているが、複数のI/O要求のコマンド/フレームの混在ではなく、複数のI/O要求の実行順序によって平均レスポンスタイムが変動する例を示した。
以上の例から分かるように、2以上のI/O要求の平均レスポンスタイムは、2以上のI/O要求に含まれる複数のコマンド又はデータをどのような順番で処理するかによって異なる場合もあれば、2以上のI/O要求そのものをどのような順番で処理するかによって異なる場合もある。
以上が、本実施形態の主要な部分の理解を助けるための説明である。以下、本実施形態の主要な部分について説明する。なお、その説明では、上位装置20、30、40との間の通信プロトコルは、或るI/O要求の入出力通信フレームと別のI/O要求の入出力通信フレームとが混在して通信を行うことができる通信プロトコル、例えば、FC-SB2プロトコルで接続されているものとする。それ故、記憶制御装置10は、ESCONプロトコルと異なり、一つのI/O要求の処理の実行中に、上位装置と記憶制御装置10と間の論理的な接続パス(以下、「論理パス」と表記)を占有することをせず、同一論理パス上で同時に複数のデータ記憶領域(例えば論理ボリューム)に対するI/O要求の処理を実行することができる。また、上位装置20が、I/O要求中のライト又はリードコマンドを記憶制御装置10に送信後、記憶制御装置10からコマンド応答を待つことなく、待つ必要もなく、ライト要求データを送信することが可能であり、さらに、上位装置は、当該コマンドに対するステータスフレームを受信しなくても、次のコマンド処理に移り、別のI/O要求の発行が可能である。
図6は、記憶制御装置10の共有メモリ106に用意される性能情報テーブル1060を示す。
性能情報テーブル1060には、I/O要求に含まれているコマンド又はデータに関する複数のコマンド/データ属性の各々について、その属性を持つコマンド又はデータの処理に要すると期待される時間長に関する期待値が記録されている(期待値は、時間長それ自体を意味するものであっても良いし、その時間長に関する別の意味を表すものであっても良い)。この性能情報テーブル1060に記録される情報は、人間がサービスプロセッサ50を使用して入力した情報であっても良いし、記憶制御情報10が後述する統計情報に基づいて自動的に登録するものであっても良い。
性能情報テーブル1060には、コマンド処理時間サブテーブル1060Aと、データ転送処理時間サブテーブル1060Bとが含まれている。
コマンド処理時間サブテーブル1060Aには、I/O要求に含まれているコマンドに関する複数のコマンド属性(例えばコマンド種別)の各々について、その属性を持つコマンドの処理に要する期待値が記録されている。この期待値は、例えば、コマンドの処理を開始した時点からその処理が完了し所定の信号を上位装置に送信する時点までの時間長に関するものである。
データ転送処理時間サブテーブル1060Bには、I/O要求に含まれているデータに関する複数のデータ属性(例えば転送種別及び転送長)の各々について、その属性を持つコマンドの処理に要する期待値が記録されている。転送種別が「リード処理」であるデータについての期待値は、例えば、キャッシュメモリ108からデータをリードして上位装置に送信するまでの時間長に関するものである。また、転送種別が「ライト処理」であるデータについての期待値は、例えば、I/O要求バッファ110からデータを読出してキャッシュメモリ108にし、そのデータがキャッシュメモリ108から記憶装置60に格納されるまでの時間長に関するものである。
この図6に示した性能情報テーブル1060によれば、例えば、或るI/O要求が、リード要求であって、且つ、コマンド種別[1]のコマンドと、コマンド種別[2]のコマンドと、データ長aのデータとから構成されている場合は、そのI/O要求についての期待値の合計(換言すれば、そのI/O要求の処理にかかると予測される時間長)は、T1+T2+Taである。
以上が、性能情報テーブル1060についての説明である。なお、言うまでも無いが、性能情報テーブル1060に記録される情報の種類は、図6に示したものに限られない。例えば、情報性能テーブル1060には、キャッシュヒットしたときとキャッシュミスしたときとに分けて、種々の期待値が記録されていても良い。また、コマンド処理時間サブテーブル1060Aに記録されている期待値、或いは、データ転送処理時間サブテーブル1060Bにおいて転送種別が「リード処理」の期待値には、記憶制御装置10から送出されたデータが上位装置20、30又は40に到達するまでの時間長も含まれていても良い。その時間長は、上位装置20、30及び40の全てについて共通の値であっても良いし、上位装置20、30及び40毎に固有の値であっても良い。
次に、格別図示しないが、統計情報テーブル1061について説明する。
統計情報テーブル1061には、記憶制御装置10において過去に行われたI/O要求処理に関する履歴に基づく統計情報が格納される。統計情報としては、例えば、コマンド又はデータに関する複数の属性の各々について、処理にかかった時間長の統計(例えば平均)を含んだ情報がある。
この統計情報テーブル1061には、例えば、以下のような流れで統計情報が格納される。
例えば、記憶制御装置10における各構成要素(例えばコマンド制御部102及び105)は、I/O要求中のコマンド又はデータの処理が行われたときは、その都度又は所定のタイミングで(例えば定期的に)、そのコマンド又はデータに関する履歴を所定の履歴格納領域(例えば不揮発性のメモリ)に登録する。登録される履歴は、例えば、過去一定期間における履歴である。
記憶制御装置10における所定の構成要素(例えばチャネル制御部及びコマンド制御部を有する各マイクロプロセッサ)は、所定のタイミングで(例えば定期的に)、上記履歴格納領域に書かれている履歴情報に基づいて、例えば過去一定期間におけるI/O要求処理をトレースし、そのトレースの結果に基づいて、I/O要求中のコマンド又はデータの属性毎に、そのコマンド又はデータの処理にかかった時間長の統計値を統計情報テーブル1061に格納する。
なお、記憶制御装置10における所定の構成要素(例えばチャネル制御部及びコマンド制御部を有する各マイクロプロセッサ)は、この統計情報テーブル1061に格納された上記時間長に基づいて、適宜に(例えば定期的に)、性能情報テーブル60の内容を更新しても良い。具体的には、例えば、上記所定の構成要素は、この統計情報テーブル1061から各エントリ項目(コマンド又はデータ属性)に対応した時間長を読出し、性能情報テーブル60上のそのエントリ項目に対応した期待値に、上記読み出した時間長を上書きすることで、性能情報テーブル1060の内容を更新しても良い。
次に、図7を参照してI/O要求バッファ109及び110について説明する。109及び110は、構成的には実質的に同一なので、I/O要求バッファ109について代表的に説明する。
I/O要求バッファ109は、I/O要求処理を行うプロセッサ(具体的には、チャネル制御部101及びコマンド制御部102を含むプロセッサ)のバッファであり、同一のプロセッサ内にあるチャネル制御部102およびコマンド制御部102よりアクセス可能である。このI/O要求バッファ109には、N個のI/O要求の各々について、バッファ領域が用意されており、各I/O要求のコマンド又はデータフレームは、そのI/O要求に対応したバッファ領域に格納することができるようになっている。また、I/O要求バッファ109には、現在このバッファ109に登録されているI/O要求の数を表すI/O要求数情報を登録することができるようになっている。また、このI/O要求バッファ109には、各I/O要求毎に、実行順序情報(例えば、処理される順位を表す情報)を登録することができるようになっている。
なお、I/O要求バッファ109の形態は、この図7に例示したように、I/O要求毎にバッファ領域が用意される形態に限られない。例えば、I/O要求バッファ109は、チャネル制御部101が受け付けたコマンド又はデータフレームが、どのI/O要求に含まれるものであるかに関わらず、先着順に格納される形態(例えばFIFOの形態)でも良い。
上位装置20は、特定の通信プロトコルの下、発行する各I/O要求について、初めから或いは所定のコマンド(例えばlocate recordコマンド)に対する応答を受けた以後、そのI/O要求に含まれるコマンド又はデータを任意のタイミングで任意の数だけ記憶制御装置10に送信することができる。そのため、I/O要求バッファ109には、各I/O要求について、未処理状態のデータ又はコマンドが1つしか存在しない場合もあれば、2つ以上存在する場合もある。
チャネル制御部101は、当該バッファ109の空きサイズや領域等を管理しており、上位装置20から最新のI/O要求を受けたときは、未だ何らコマンド又はデータが格納されていないバッファ領域にそのI/O要求中のコマンド又はデータを格納し、一方、受信済みのI/O要求における新たなコマンド又はデータフレームを受信したときは、そのI/O要求に対応したバッファ領域にそのコマンド又はデータフレームを追加する。また、チャネル制御部101は、I/O要求バッファ109に登録されているI/O要求の数を把握し、それを表すI/O要求数情報をそのバッファ109に登録する。また、チャネル制御部101は、その登録されているI/O要求の数が変化する都度に、バッファ109に登録されているI/O要求数情報を更新する。また、チャネル制御部101は、バッファ109に残すべきデータや消去すべきデータを管理しても良い。具体的には、例えば、チャネル制御部101は、最後まで処理が完了していない(例えば、処理終了を意味するステータスフレームが送信されていない或いはそれに対する応答を受信していない)I/O要求については、たとえ処理済みのコマンドやデータがあっても消去せず、全ての処理が完了した段階で、そのI/O要求に含まれているコマンド及びデータを全て消去するようにしても良い。このように、I/O要求に含まれるデータやコマンドはそれについての処理が完了するまでバッファ109に残るので、後述するように、I/O要求単位で後述の要求処理順序を決定することができる。
コマンド制御部102は、後に詳述する方法で、上位装置20から受信した2以上のI/O要求をどのような順序で処理するか(或いは、2以上のI/O要求に含まれる複数のデータ又はコマンドをどのような順序で処理するか)を決定する。そして、コマンド制御部102は、決定した順序(以下、「要求処理順序」と言う)に基づき、各I/O要求の実行順序情報(例えば処理順位)をI/O要求バッファ109(つまり、コマンド制御部102を持つマイクロプロセッサの内部メモリ)に登録することで、その決定された要求処理順序で、バッファ109に存在するI/O要求(或いはそれに含まれるコマンド又はデータ)の処理を行う。
要求処理順序を決定する方法としては、様々な方法が考えられる。以下、図8以降を参照して、要求処理順序の決定方法の例について説明する。
図8は、コマンド制御部102が、第1の要求処理順序決定方法でI/O要求の処理順序を決定するときの処理流れの概要を示す。
コマンド制御部102は、I/O要求処理を開始した場合(ステップS81)、I/O要求バッファ109を参照し、そこにI/O要求が存在すれば(S82でY)、実行すべき(或いは処理可能な)I/O要求の数をチェックする(S83)。なお、「実行すべき(或いは処理可能な)I/O要求」とは、例えば、自分が有する全てのデータ又はコマンドがバッファ109に登録されており、且つ、それら全てのデータ又はコマンドのうち少なくとも1つのデータ又はコマンドが未処理の状態になったI/O要求である。
さて、S83の結果、実行すべきものとして存在するI/O要求の個数がK個未満(K≧2)である場合(S83でN)、コマンド制御部102は、バッファ109内のそのI/O要求を実行する(S88)。
一方、S83の結果、実行すべきものとして存在するI/O要求の個数がK個以上Q個以下である場合(S83でY)、コマンド制御部102は、バッファ109内にある先着M個(K≦M≦Q)のI/O要求の各々について、そのI/O要求に含まれるコマンド及びデータの属性と、性能情報テーブル1060(及び/又は統計情報テーブル1061)とに基づき、I/Oレスポンスタイムの期待値の合計を算出、換言すれば、各I/O要求のI/Oレスポンスタイムを予測する(S84)。そして、コマンド制御部102は、各I/O要求について算出された期待値の合計に基づいて、M個のI/O要求の平均レスポンスタイムが好適な平均レスポンスタイムになるものを識別し、識別された平均レスポンスタイムを得ることができるような、I/O要求の要求処理順序を決定する(S85)。コマンド制御部102は、決定した要求処理順序に基づいて、M個のI/O要求の各々の処理順位をI/O要求バッファ109に登録する。そして、コマンド制御部102は、M個のI/O要求を、その登録した処理順位で実行するための処理を開始し(S86)、M個のI/O要求について処理が終れば終了となる(S87)。
なお、この図8に示した処理流れにおいて、例えば、上記実行すべきI/O要求の数がQ個に達した時点で、S81が開始されても良い。また、上記K及びQの値は、例えば、予め変更不能に或いは変更可能に決められておくパラメータである。K及びQの値がより大きくなると、処理手順のスケジューリング対象となるI/O要求の数が増えるので、M個のI/O要求の平均レスポンスタイムをより小さくすることが可能となるが、その反面、I/O実行順序を決定するためのオーバーヘッドが大きくなる。
さて、図9は、図8の処理流れで示したS85における要求順序決定の一例を示す。
コマンド制御部102は、M個のI/O要求について算出したM個の期待値合計のうち、最大のものと最小のものとを比較する(S851)。
S851の比較の結果、上記最大と最小との差が所定の閾値S1より大きい場合(S851でY)、コマンド制御部102は、M個のI/O要求の要求処理順序を、I/Oレスポンスタイムの期待値合計が小さい順序に決定し、決定した順序をI/O要求バッファ109に書込む(S852)。
一方、S851の比較の結果、上記最大と最小との差が所定の閾値S1以下の場合(S851でN)、コマンド制御部102は、M個のI/O要求の要求処理順序を、それの受付順(例えば、Define
Extentコマンドの受信順)と同じ順序に決定し、決定した順序をI/O要求バッファ109に書込む(S853)。
S852又はS853の処理が終ると、S85の終了となる(S854)。
なお、上述した説明において、所定の閾値S1は、例えば、予め変更可能に又は変更不可能に設定されるパラメータである。また、この閾値S1を設定せずに、上記M個の期待値合計のうち第1の期待値合計と第2の期待値合計と間の単なる大小関係だけで、要求処理順序をどのようにするかを制御するようにすれば、M個のI/O要求の要求処理順序についてきめ細かい制御が可能となるが、I/O要求の要求処理順序を、I/O要求の受付順序(例えば、Define
Extentコマンドの受信順序)とは違う順序に入れ替えることにより発生するオーバーヘッドを考慮に入れると、例えば、閾値S1を適切な値に設定し、I/Oレスポンスタイムの期待値合計がある範囲に収まる複数のI/O要求に関しては、I/O要求を受け付けた順序で実行することにより、前記のオーバーヘッドを削減することが可能になる。別の言い方をすれば、例えば、I/Oレスポンスタイムの期待値合計が所定の範囲内にある2以上のI/O要求については、それら2以上のI/O要求の受付順序と同じ順序で処理が行われるようにし、一方、I/Oレスポンスタイムの期待値合計が所定の範囲外にある別の2以上のI/O要求については、それら別の2以上のI/O要求の要求処理順序は、I/Oレスポンスタイムの期待値合計が小さい順序に決定されても良い。
以上が、第1の要求処理順序決定方法に基づくコマンド制御部102の処理流れである。次に、図10以降を参照して、第2の要求処理順序決定方法に基づくコマンド制御部102の処理流れについて説明する。
図10は、コマンド制御部102が、第2の要求処理順序決定方法でI/O要求の処理順序を決定するときの処理流れの概要を示す。
コマンド制御部102は、或るI/O要求に対する処理を開始する(S101)。そして、コマンド制御部102は、当該I/O要求を開始した時刻をタイムスタンプとして記憶(例えば、バッファ109に記録)する。
次に、コマンド制御部102は、当該I/O要求の処理を開始してから経過した時間をチェックする(S102)。このS102の処理は、所定のタイミング(例えば或る一定の周期)で行う。
S102のチェックの結果、上記経過時間が予め定義されている経過時間閾値S2以下の場合は(S102でY)、コマンド制御部102は、当該I/O要求の処理を続行する(S106)。
一方、S102のチェックの結果、上記経過時間が閾値S2を超えている場合(S103でN)、コマンド制御部102は、当該I/O処理を続行するか、或いは、他のI/O要求に処理を切り替えるかを判定する(S103)。別の言い方をすれば、コマンド制御部102は、現在処理中のI/O要求よりも直ちに処理することが望ましい別のI/O要求が存在するか否かをチェックする。
S103において、処理を切り替えないと判定された場合は(S103でN)、コマンド制御部102は、現在実行中のI/O要求処理を続行する。
一方、S103において、処理を切り替えると判定した場合(S103でY)、コマンド制御部102は、処理を切り替えて実行するI/O要求の要求処理順序を決定する(S104)。この要求処理順序は、例えば、図8及び図9を参照して説明した方法と同様に、実行すべきM個のI/O要求のレスポンスタイムの期待値合計を算出し、算出されたM個の期待値合計が小さい順に、上記M個のI/O要求の要求処理順序を決定することができる。
その後、コマンド制御部104は、決定した要求処理順序に従って、実行すべき複数のI/O要求についての処理を開始する(S105)。
以上が、第2の要求処理順序決定方法に基づくコマンド制御部102の処理流れの概要である。なお、この流れにおいて、閾値S2は、一つのI/O要求を続けて処理する時間長の閾値である。
記憶制御装置10において、処理完了までに比較的長い時間を要する第1のI/O要求の処理中に、比較的短い時間で処理することが期待できる第2のI/O要求を受けた場合、第1のI/O要求の処理を長時間行うと、前述した3つ目の考察から分かるように、第1及び第2のI/O要求の平均レスポンスタイムが劣化してしまう。
そこで、それを避けるため、第2の要求処理順序決定方法では、I/O要求の処理が開始されてからの経過時間の閾値S2を設け、その経過時間が閾値S2を越えた場合、コマンド制御部102によって、現在処理中のI/O要求よりも直ちに処理することが望ましい別のI/O要求が存在するか否かのチェックが行われる。これにより、長い処理時間を要する第1のI/O要求のために、処理時間が短くて済む第2のI/O要求のI/Oレスポンスタイムが劣化することを回避し、且つ、第1及び第2のI/O要求の平均レスポンスタイムが劣化することも回避する。
図11は、図10に示した処理流れにおけるS103の具体的な処理流れを示す。
コマンド制御部102は、I/O要求バッファ109内に、処理待ち状態のI/O要求があるか否かをチェックし、処理待ち状態のI/O要求が格納されていれば、性能情報テーブル1060(及び/又は統計情報テーブル1061)を用いて、当該1以上のI/O要求についてのI/Oレスポンスタイムの期待値合計を算出し、算出された期待値合計のうち、I/O要求バッファ109内に予め設定される閾値S3より小さい期待値合計を持つI/O要求があるか否かを判定する(S1031)。
S1031において、閾値S3より小さな期待値合計となったI/O要求がある場合(S1031でY)、コマンド制御部102は、そのI/O要求を、要求処理順序を決定する際の要素となるI/O要求として選択し(S1032)、S103を終える(S1033)。
一方、S1031において、I/O要求バッファ109内に処理待ち状態のI/O要求が無い場合、又は、上記閾値S3より小さな期待値合計となったI/O要求が無い場合、コマンド制御部102は、S103において、別のI/O要求の処理に切り替えはしないと決定して、S103を終える(S1033)。
なお、この処理流れにおいて、閾値S3とは予め設定される閾値である。現在実行中のI/O処理が閾値S2を越える処理時間がかかっているとはいえ、やみくもに別のI/O要求に切り替えても、平均レスポンスタイムの短縮化は必ずしも図れない。現在実行中のI/O処理が閾値S2を超え、別のI/O要求の処理を切り替える場合、この切り替えたI/O要求の処理がある程度短い処理で終了する場合にのみ、複数のI/O要求の平均レスポンスタイムを向上させる目的にかなうと考えられる。そこで、図11を参照して説明した方法によって、現在実行中のI/O要求処理を別のI/O要求処理に変えるか否かが判断される。
以上、上述した実施形態によれば、受信された2以上のI/O要求に含まれる複数のコマンド要素(コマンド又はデータ)に基づいて、それら2以上のI/O要求の平均レスポンスタイムが、複数のコマンド要素又は2以上のI/O要求をそれの受信順序に従って処理するときの値以下になるような、受信順序とは異なる処理手順が決定され、それに基づいて、上記複数のコマンド要素の処理が開始される。これにより、2以上のI/O要求の平均レスポンスタイムを、単にそれらの受信順序に従って処理されるときの平均レスポンスタイムよりも短くすることができる。
なお、上述した説明では、上位装置20から発行されたI/O要求を受信するチャネル制御部101、I/O要求バッファ109及びコマンド制御部102について詳細に説明したが、他のチャネル制御部104、I/O要求バッファ110及びコマンド制御部105も実質的に同様に機能する。
また、上述した実施形態において、例えば、コマンド制御部102は、様々なタイミングで(例えば、キャッシュヒットしたとき及びキャッシュミスしたときの少なくとも一方のときに)、要求処理順序を決定(或いは変更)する処理を開始しても良い。
また、上述した実施形態において、所定の種々の値(例えば、K、Q、及び閾値S1〜S3の少なくとも一つ)は、処理対象のI/O要求の切り替えの際のタイムロス等の種々の情報に基づいて適切な値に設定される。また、その値は、例えば、一旦設定されて記憶制御装置10が起動した後は、変更が不可能であっても良いし、或いは、記憶制御装置10内でのチューニング等によって変更が可能であっても良い。
また、上述した実施形態において、例えば、要求処理順序を決定する、記憶制御装置10における構成要素は、コマンド制御部102、105に限らず他の構成要素が行っても良い。
また、上述した実施形態において、例えば、コマンド制御部102は、或るI/O要求の処理中に、他のI/O要求の処理に切り替えるか否かの判断を行うときは、その或るI/O要求については、それの処理完了までにかかると推測される残りの時間長に基づいて、上記判断が行われても良い。また、例えば、要求処理順序の決定が行われるときには、その残りの時間長に基づいて、当該決定が行われても良い。なお、その残り時間長は、例えば、コマンド制御部102が、処理中のI/O要求において、未処理の1以上のコマンド要素の属性に基づいて1以上のコマンド要素の期待値合計を算出することで求めても良い。
また、上述した実施形態では、I/O要求単位で処理手順が決定され、I/O要求単位で一つの処理が行われるが、例えば、それに代えて、I/O要求のコマンド要素単位で処理順序が決定されてコマンド要素の処理が行われても良い。具体的には、例えば、第1のI/O要求に、第1及び第2のコマンド要素が含まれていて、第2のI/O要求に、第3及び第4のコマンド要素が含まれている場合、上記実施形態では、第1及び第2のコマンド要素の処理が行われてから、第3及び第4のコマンド要素が行われるが、この変形例では、第1、第3、第2、第4の順でコマンド要素が処理されるような要求処理順序が決定されても良い。この方式は、2つ目の考察からすれば、平均レスポンスタイムの向上につながりにくいこともあるが、例えば、或るI/O要求について処理時間長が膨大なコマンド要素の処理中に、他のI/O要求について処理時間が極小のコマンド要素を受信した場合、その極小のコマンド要素を先に処理してしまった方が、平均レスポンスタイムを短縮化することができる。
なお、この変形例における更なる変形例として、情報セット単位(例えばI/O要求単位)で要求処理順序を決定する第1の情報処理モードと、情報要素単位(例えばコマンド要素単位)で要求処理順序を決定する第2の情報処理モードとがあり、これら2つの情報処理モードが、所定のモード選択方法に基づいて選択的に使用されても良い。具体的には、例えば、情報セットを発行する上位装置20が記憶制御装置10に所望の情報処理モードを通知することで、記憶制御装置10が、その上位装置に対してはその通知された情報処理モードに基づいて要求処理順序を決定するようにしても良い。また、例えば、コマンド制御部102は、バッファ109に、全ての情報要素(コマンド要素)が記録された情報セット(I/O要求)が複数個ある場合には、その複数の情報セットについては情報セット単位で処理順序を決定し、一部の情報要素しか記録されていない別の情報セットが複数個ある場合には、その複数の別の情報セットについては情報要素単位で処理順序が決定されても良い。また、例えば、記憶制御装置10は、処理対象のI/O要求の切り替えの際にロスする時間長情報等、平均レスポンスタイムの向上に関わる有用な種々を情報を記憶しておき、その情報に基づいて、任意タイミングで(例えば、或る情報セット又は或る情報要素の処理を開始してから一定時間を経過したとき)、且つ、任意の要求処理手順決定方法で、2以上の情報セット又はそれらに含まれる複数の情報要素の要求処理手順を決定しても良い。なお、情報要素単位で要求処理順序が決定された場合には、各情報要素毎に、順位がバッファ109に記録されても良い。また、決定される要求処理手順は、例えば、情報セット又は情報要素の受信順序とは異なる順序であって、その受信順序のときの平均レスポンスタイムよりも短い平均レスポンスタイムになる順序である。
以上、本発明の好適な実施形態及び変形例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、上記期待値は、レスポンスタイムの期待値ではなく、記憶制御装置10において行われる処理に要する時間長の期待値であっても良い。また、インターロックを取らずに上位装置がパイプライン的にデータ又はコマンドを送信することができる通信プロトコル(一例としてFC-SB2プロトコル)は、別の言い方をすれば、例えば、上位装置と記憶サブシステム(記憶装置60及び記憶制御装置10を含むシステム)とが、記憶サブシステム側からの応答とは非同期に、上位装置が複数のコマンド及びデータのチェーンで構成されるI/O要求を記憶システムに対して発行することができるプロトコルである。
また、例えば、本発明の第1の好適な実施形態では、前記決定手段は、前記複数の情報要素に基づいて、前記2以上の情報セットの各々について、処理に要すると期待される時間長に関する期待値を取得し(例えば算出し)、前記取得された期待値に基づいて、前記処理手順を決定する。
また、例えば、本発明の第2の好適な実施形態では、上記第1の好適な実施形態において、情報処理装置は、情報要素に関する複数の情報要素属性の各々について、その情報要素属性を持つ情報要素の処理に要すると期待される時間長に関するサブ期待値を表すサブ期待値情報を記憶するサブ期待値記憶手段を更に備える。この場合、前記決定手段が、前記複数の情報要素の各々の情報要素属性と、前記記憶されているサブ期待値情報とに基づいて、前記複数の情報要素の各々についての前記サブ期待値を取得し、前記取得されたサブ期待値を用いて、前記2以上の情報セットの各々についての前記期待値を取得する。なお、「情報要素属性」には、例えば、情報要素の種類、データサイズ及び発行元のうちの少なくとも1つが含まれる。
また、例えば、本発明の第3の好適な実施形態では、上記第2の好適な実施形態において、前記決定手段は、前記取得されたサブ期待値が小さい情報要素又は情報セットほど早い順番で処理されるような前記処理手順を決定する。
また、例えば、本発明の第4の好適な実施形態では、上記第1の好適な実施形態において、前記決定手段は、前記情報処理手段によって過去に処理された情報要素の属性とその情報要素の処理に要した時間長との履歴に関する情報に基づいて、前記2以上の情報セットの各々についての前記期待値を取得する。
また、例えば、本発明の第5の好適な実施形態では、前記決定手段は、前記複数の情報要素についての複数通りの処理手順にそれぞれ対応した複数通りの前記平均に関する値のうち最小の値となるような処理手順を決定する。
また、例えば、本発明の第6の好適な実施形態では、前記決定手段は、前記2以上の情報セットについて、前記処理時間長の最小と最大との差分を取得し、前記差分が所定値以上である場合に、前記処理手順を決定する処理を実行する。
また、例えば、本発明の第7の好適な実施形態では、前記複数の情報要素に、前記情報処理手段によって処理中の情報要素が含まれているときは、前記決定手段は、その情報要素の処理に要する処理時間長のうちの残りの時間長に基づいて、前記処理手順を決定する。
また、例えば、本発明の第8の好適な実施形態では、情報処理装置は、前記情報セットについての処理が完了する場合に、その処理が終了したことを意味する終了信号をその情報セットの発行元の情報セットソースに送信する終了信号送信手段を更に備える。この場合、前記情報セットについての前記処理時間長は、前記情報セットソースが前記情報セットを発行してから前記終了信号を受信するまでのレスポンスタイムに関する時間長である。
また、例えば、本発明の第9の好適な実施形態では、前記決定手段は、前記受信された2以上の情報セットについての受信状況が所定の状況である場合に(例えば、受信した情報セットの数が所定の数以上である場合に)、前記処理手順を決定する処理を実行する。なお、その場合でなければ、例えば、前記決定手段は、前記情報処理手段が、現在処理中の情報セット又は情報要素の処理を継続して実行する、或いは、受信した順序で情報セット又は情報要素の処理を行うようにする。
また、例えば、本発明の第10の好適な実施形態では、前記決定手段は、前記情報セット又は前記情報要素についての処理が開始されてから所定時点までの経過時間長を把握し、前記経過時間長が一定の時間長を超えたときに、前記処理手順を決定する処理を実行する。具体的には、例えば、前記決定手段は、上記経過時間長が前期一定の時間長を超えた1又は複数の情報セット又は2以上の情報要素について上記期待値を取得し、取得した期待値に、所定の閾値より小さい期待値がある場合には、前記処理手順を決定する処理を実行する。なお、それらの条件を満たさない場合、例えば、前記決定手段は、前記情報処理手段が、現在処理中の情報セット又は情報要素の処理を継続して実行する、或いは、受信した順序で情報セット又は情報要素の処理を行うようにする。
また、例えば、本発明の第11の好適な実施形態では、情報処理装置は、物理的又は論理的な1又は複数の記憶デバイスと通信可能に接続することができる。受信手段は、1以上の情報要素を有するI/O要求を発行する1又は複数のI/O要求ソースから前記I/O要求の各々に含まれる情報要素を受信する。情報処理手段は、前記受信されたI/O要求に含まれている情報要素に基づいて、前記記憶デバイスからデータをリードしI/O要求ソースに送信する、又は、前記I/O要求ソースからのデータを前記記憶デバイスにライトする処理を行う。決定手段は、受信された2以上のI/O要求に含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上のI/O要求又は前記複数の情報要素の処理手順を決定するものであって、前記2以上のI/O要求のレスポンスタイムの平均に関する値が、前記複数の情報要素又は前記2以上のI/O要求をそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定する。
本発明の一実施形態に係る情報処理装置が適用された記憶システムの全体構成を示す。 ライトI/O要求に対する処理シーケンスの一例。 複数I/O要求の処理におけるレスポンスタイムの第1の考察。 複数I/O要求の処理におけるレスポンスタイムの第2の考察(平均レスポンスタイムの考察)。 複数I/O要求の処理におけるレスポンスタイムの第3の考察(平均レスポンスタイム)。 共有メモリ106における情報性能テーブル1060の一例。 I/O要求バッファ109を示す図。 コマンド制御部102が、第1の要求処理順序決定方法でI/O要求の処理順序を決定するときの処理流れの概要を示す。 図8の処理流れで示したS85における要求順序決定の一例を示す。 コマンド制御部102が、第2の要求処理順序決定方法でI/O要求の処理順序を決定するときの処理流れの概要を示す。 図10に示した処理流れにおけるS103の具体的な処理流れを示す。
符号の説明
10…記憶制御装置
20…上位装置
30…上位装置
40…上位装置
50…サービスプロセッサ
60…記憶装置
70…ダイレクタ
100、103…ポート
101、104…チャネル制御部
102、105…コマンド制御部
109、110…I/O要求バッファ
106…共有メモリ
107…ディスク制御部
108…キャッシュ制御部
600、601…ドライブ
1060…性能情報テーブル
1061…統計情報テーブル

Claims (14)

  1. 1以上の情報要素を有する情報セットを発行する1又は複数の情報セットソースから前記情報セットの各々に含まれる情報要素を受信する受信手段と、
    前記受信された情報要素の処理を行う情報処理手段と、
    受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上の情報セット又は前記複数の情報要素の処理手順を決定するものであって、前記2以上の情報セットの処理時間長の平均に関する値が、前記複数の情報要素又は前記2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定する決定手段と
    を備え、前記情報処理手段は、前記決定された処理手順に基づいて、前記未処理又は処理中の複数の情報要素の処理を開始する、
    情報処理装置。
  2. 前記決定手段は、前記複数の情報要素に基づいて、前記2以上の情報セットの各々について、処理に要すると期待される時間長に関する期待値を取得し、前記取得された期待値に基づいて、前記処理手順を決定する、
    請求項1記載の情報処理装置。
  3. 情報要素に関する複数の情報要素属性の各々について、その情報要素属性を持つ情報要素の処理に要すると期待される時間長に関するサブ期待値を表すサブ期待値情報を記憶するサブ期待値記憶手段を更に備え、
    前記決定手段が、前記複数の情報要素の各々の情報要素属性と、前記記憶されているサブ期待値情報とに基づいて、前記複数の情報要素の各々についての前記サブ期待値を取得し、前記取得されたサブ期待値を用いて、前記2以上の情報セットの各々についての前記期待値を取得する、
    請求項2記載の情報処理装置。
  4. 前記決定手段は、前記取得されたサブ期待値が小さい情報要素又は情報セットほど早い順番で処理されるような前記処理手順を決定する、
    請求項3記載の情報処理装置。
  5. 前記決定手段は、前記情報処理手段によって過去に処理された情報要素の属性とその情報要素の処理に要した時間長との履歴に関する情報に基づいて、前記2以上の情報セットの各々についての前記期待値を取得する、
    請求項2記載の情報処理装置。
  6. 前記決定手段は、前記複数の情報要素についての複数通りの前記処理手順にそれぞれ対応した複数通りの前記平均に関する値のうち最小の値となるような前記処理手順を決定する、
    請求項1記載の情報処理装置。
  7. 前記決定手段は、前記2以上の情報セットについて、前記処理時間長の最小と最大との差分を取得し、前記差分が所定値以上である場合に、前記処理手順を決定する処理を実行する、
    請求項1記載の情報処理装置。
  8. 前記複数の情報要素に、前記情報処理手段によって処理中の情報要素が含まれているときは、前記決定手段は、その情報要素の処理に要する処理時間長のうちの残りの時間長に基づいて、前記処理手順を決定する、
    請求項1記載の情報処理装置。
  9. 前記情報セットについての処理が完了する場合に、その処理が終了したことを意味する終了信号をその情報セットの発行元の情報セットソースに送信する終了信号送信手段を更に備え、
    前記情報セットについての前記処理時間長は、前記情報セットソースが前記情報セットを発行してから前記終了信号を受信するまでのレスポンスタイムに関する時間長である、
    請求項1記載の情報処理装置。
  10. 前記決定手段は、前記受信された2以上の情報セットの受信状況が所定の状況である場合に、前記処理手順を決定する処理を実行する、
    請求項1記載の情報処理装置。
  11. 前記決定手段は、前記情報セット又は前記情報要素についての処理が開始されてから所定時点までの経過時間長を把握し、前記経過時間長が一定の時間長を超えたときに、前記処理手順を決定する処理を実行する、
    請求項1記載の情報処理装置。
  12. 物理的又は論理的な1又は複数の記憶デバイスに接続することができる記憶制御装置であって、
    1以上の情報要素を有するI/O要求を発行する1又は複数のI/O要求ソースから前記I/O要求の各々に含まれる情報要素を受信する受信手段と、
    前記受信されたI/O要求に含まれている情報要素に基づいて、前記記憶デバイスからデータをリードしI/O要求ソースに送信する、又は、前記I/O要求ソースからのデータを前記記憶デバイスにライトする処理を行う情報処理手段と、
    受信された2以上のI/O要求に含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上のI/O要求又は前記複数の情報要素の処理手順を決定するものであって、前記2以上のI/O要求のレスポンスタイムの平均に関する値が、前記複数の情報要素又は前記2以上のI/O要求をそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定する、
    請求項1記載の情報処理装置。
  13. 1以上の情報要素を有する情報セットを発行する1又は複数の情報セットソースから前記情報セットの各々に含まれる情報要素を受信するステップと、
    前記受信された情報要素の処理を行うステップと、
    受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上の情報セット又は前記複数の情報要素の処理手順を決定するものであって、前記2以上の情報セットのレスポンスタイムの平均に関する値が、前記複数の情報要素又は前記2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定するステップと
    を有し、前記処理を行うステップでは、前記決定された要素処理手順に基づいて、前記未処理又は処理中の複数の情報要素の処理を開始する、
    情報処理方法。
  14. 1以上の情報要素を有する情報セットを発行する1又は複数の情報セットソースから前記情報セットの各々に含まれる情報要素を受信するステップと、
    前記受信された情報要素の処理を行うステップと、
    受信された2以上の情報セットに含まれる未処理又は処理中の複数の情報要素に基づいて、前記2以上の情報セット又は前記複数の情報要素の処理手順を決定するものであって、前記2以上の情報セットのレスポンスタイムの平均に関する値が、前記複数の情報要素又は前記2以上の情報セットをそれの受信順序に従って処理するときの値以下になるような、前記受信順序とは異なる前記処理手順を決定するステップと
    をコンピュータに実行させるためのコンピュータ読取可能なコンピュータプログラムであって、
    前記処理を行うステップでは、前記決定された要素処理手順に基づいて、前記未処理又は処理中の複数の情報要素の処理を開始する、
    コンピュータプログラム。
JP2003347942A 2003-10-07 2003-10-07 情報処理装置及び方法 Pending JP2005115600A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003347942A JP2005115600A (ja) 2003-10-07 2003-10-07 情報処理装置及び方法
US10/803,204 US7039728B2 (en) 2003-10-07 2004-03-17 Information processing device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003347942A JP2005115600A (ja) 2003-10-07 2003-10-07 情報処理装置及び方法

Publications (1)

Publication Number Publication Date
JP2005115600A true JP2005115600A (ja) 2005-04-28

Family

ID=34386419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003347942A Pending JP2005115600A (ja) 2003-10-07 2003-10-07 情報処理装置及び方法

Country Status (2)

Country Link
US (1) US7039728B2 (ja)
JP (1) JP2005115600A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334778A (ja) * 2006-06-19 2007-12-27 Fujitsu Ltd 信号処理方法、信号処理プログラムおよび信号処理装置
JP2010512568A (ja) * 2006-12-06 2010-04-22 フリン,デイビッド 高容量不揮発性ストレージ用のキャッシュとしてのソリッドステートストレージのための装置、システム、及び方法
JP2010097526A (ja) * 2008-10-20 2010-04-30 Hitachi Ltd キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法
JP2011512588A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション I/o動作の状態を判別するコンピュータ・プログラム、装置、及び方法(i/o動作の状態を判別するコンピュータ・コマンド及び応答)
JP2013502001A (ja) * 2009-08-11 2013-01-17 マーベル ワールド トレード リミテッド 不揮発性メモリからのデータ読み出し用コントローラ
JP2017033501A (ja) * 2015-08-06 2017-02-09 株式会社東芝 記憶装置および制御方法
WO2018123051A1 (ja) * 2016-12-28 2018-07-05 株式会社日立製作所 情報処理システム及び方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112208A1 (en) * 2004-11-22 2006-05-25 International Business Machines Corporation Interrupt thresholding for SMT and multi processor systems
US7721061B1 (en) * 2005-06-22 2010-05-18 Hewlett-Packard Development Company, L.P. Method of predicting response time for storage request
JP4391548B2 (ja) * 2007-04-20 2009-12-24 株式会社メディアロジック デバイスドライバ
US8078674B2 (en) * 2007-05-10 2011-12-13 International Business Machines Corporation Server device operating in response to received request
WO2013005322A1 (ja) * 2011-07-06 2013-01-10 富士通株式会社 制御端末、および制御方法
US9268495B2 (en) * 2013-03-15 2016-02-23 Apple Inc. Managing I/O priorities
US9772959B2 (en) 2014-05-30 2017-09-26 Apple Inc. I/O scheduling
US10379747B2 (en) * 2015-12-21 2019-08-13 Western Digital Technologies, Inc. Automated latency monitoring
US10581745B2 (en) * 2017-12-11 2020-03-03 International Business Machines Corporation Dynamic throttling thresholds
US10642519B2 (en) 2018-04-06 2020-05-05 Western Digital Technologies, Inc. Intelligent SAS phy connection management
KR20200054004A (ko) * 2018-11-09 2020-05-19 삼성전자주식회사 호스트와 통신을 수행하는 전자 장치 및 그 동작 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34801A (en) * 1862-03-25 Improvement in coffee-boilers
US15654A (en) * 1856-09-02 Improvement in plows
US215878A (en) * 1879-05-27 Improvement in microscopes
JPH0833867B2 (ja) 1989-06-06 1996-03-29 富士通株式会社 記憶制御監視方式
US5339449A (en) * 1989-06-30 1994-08-16 Digital Equipment Corporation System and method for reducing storage channels in disk systems
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
US5638537A (en) 1993-01-29 1997-06-10 Mitsubishi Denki Kabushiki Kaisha Cache system with access mode determination for prioritizing accesses to cache memory
JP3474646B2 (ja) 1994-09-01 2003-12-08 富士通株式会社 入出力制御装置及び入出力制御方法
JPH08225689A (ja) * 1994-12-21 1996-09-03 Sumitomo Chem Co Ltd 延伸フィルム用ポリプロピレン系樹脂組成物およびその延伸フィルム
US5761531A (en) * 1995-06-30 1998-06-02 Fujitsu Limited Input/output control apparatus and method for transfering track data from cache module to channel unit during the staging of the data track from device adapter
US5761515A (en) * 1996-03-14 1998-06-02 International Business Machines Corporation Branch on cache hit/miss for compiler-assisted miss delay tolerance
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
US6311256B2 (en) * 1997-06-30 2001-10-30 Emc Corporation Command insertion and reordering at the same storage controller
US6115646A (en) * 1997-12-18 2000-09-05 Nortel Networks Limited Dynamic and generic process automation system
JP3700438B2 (ja) * 1999-01-06 2005-09-28 株式会社日立製作所 計算機システム
JP3623697B2 (ja) * 1999-07-29 2005-02-23 富士通株式会社 ディスク・タイムシェアリング装置及び方法
US6434631B1 (en) * 1999-10-15 2002-08-13 Lucent Technologies Inc. Method and system for providing computer storage access with quality of service guarantees
US6898665B1 (en) * 2000-01-11 2005-05-24 International Business Machines Corporation System and method for profiling access to disk drive commands based on a dual servo mode model
JP4068798B2 (ja) 2000-10-31 2008-03-26 株式会社日立製作所 記憶サブシステム及びi/oインタフェースの制御方法ならびに情報処理システム
JP2003316523A (ja) * 2002-04-12 2003-11-07 Internatl Business Mach Corp <Ibm> データ記憶装置、実行コマンドの選択方法およびデータ処理方法
JP4255699B2 (ja) 2003-01-20 2009-04-15 株式会社日立製作所 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
US7225293B2 (en) * 2003-06-16 2007-05-29 Hitachi Global Storage Technologies Netherlands B.V. Method, system, and program for executing input/output requests
US7010654B2 (en) * 2003-07-24 2006-03-07 International Business Machines Corporation Methods and systems for re-ordering commands to access memory

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334778A (ja) * 2006-06-19 2007-12-27 Fujitsu Ltd 信号処理方法、信号処理プログラムおよび信号処理装置
JP2010512568A (ja) * 2006-12-06 2010-04-22 フリン,デイビッド 高容量不揮発性ストレージ用のキャッシュとしてのソリッドステートストレージのための装置、システム、及び方法
JP2011512588A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション I/o動作の状態を判別するコンピュータ・プログラム、装置、及び方法(i/o動作の状態を判別するコンピュータ・コマンド及び応答)
JP2010097526A (ja) * 2008-10-20 2010-04-30 Hitachi Ltd キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法
JP2013502001A (ja) * 2009-08-11 2013-01-17 マーベル ワールド トレード リミテッド 不揮発性メモリからのデータ読み出し用コントローラ
JP2017033501A (ja) * 2015-08-06 2017-02-09 株式会社東芝 記憶装置および制御方法
US10152280B2 (en) 2015-08-06 2018-12-11 Toshiba Memory Corporation Storage device and control method
WO2018123051A1 (ja) * 2016-12-28 2018-07-05 株式会社日立製作所 情報処理システム及び方法
US10749942B2 (en) 2016-12-28 2020-08-18 Hitachi, Ltd. Information processing system and method

Also Published As

Publication number Publication date
US7039728B2 (en) 2006-05-02
US20050076162A1 (en) 2005-04-07

Similar Documents

Publication Publication Date Title
JP2005115600A (ja) 情報処理装置及び方法
US10649667B2 (en) Mitigating GC effect in a RAID configuration
US9244617B2 (en) Scheduling requests in a solid state memory device
KR101378270B1 (ko) Sas 확장기를 포함하는 저장 시스템에서 데이터 판독을 가능하게 하기 위한 방법, 시스템 및 sas 확장기 디바이스
US7162550B2 (en) Method, system, and program for managing requests to an Input/Output device
US11397675B2 (en) Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection
CN101038532B (zh) 数据存储装置及其方法
US10402114B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program
JP2004185349A (ja) ジャーナルログを利用した更新データ書込方法
JP2007072988A (ja) ディスクアレイ装置及びデータ移動方法並びにプログラム
US9400603B2 (en) Implementing enhanced performance flash memory devices
US8161234B2 (en) Dynamically switching command types to a mass storage drive
CN104978362A (zh) 分布式文件***的数据迁移方法、装置及元数据服务器
US10592148B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium
EP3879393A1 (en) Data processing method, controller, storage device and storage system
US9465745B2 (en) Managing access commands by multiple level caching
JP2008225558A (ja) データ中継集積回路、データ中継装置およびデータ中継方法
US20030172229A1 (en) Systems and methods for detecting and compensating for runt block data transfers
JP6199782B2 (ja) 計算機システム
JP2007501473A (ja) メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置
JP2021135538A (ja) ストレージ制御装置及びストレージ制御プログラム
KR102264544B1 (ko) 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
US11262834B1 (en) Data processing system and method for monitoring system properties
US10608670B2 (en) Control device, method and non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060811

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091215