JP3992952B2 - 記憶制御装置およびその運用方法 - Google Patents
記憶制御装置およびその運用方法 Download PDFInfo
- Publication number
- JP3992952B2 JP3992952B2 JP2001273932A JP2001273932A JP3992952B2 JP 3992952 B2 JP3992952 B2 JP 3992952B2 JP 2001273932 A JP2001273932 A JP 2001273932A JP 2001273932 A JP2001273932 A JP 2001273932A JP 3992952 B2 JP3992952 B2 JP 3992952B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- amount
- processor
- channel
- command
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
この発明は、全二重方式の通信路により上位処理装置と接続し、前記通信路を通じて受信したデータをデータ記憶手段に記憶管理する記憶制御装置に関し、とくに、前記通信路を効率よく利用するための技術に関する。
【0002】
【従来の技術】
メインフレームなどの上位処理装置と、ディスクアレイ装置などの記憶制御装置との間を結ぶ通信プロトコルとして、ファイバチャネルプロトコル(以下、「ファイバチャネル」と称する)が知られている(詳細はANSI(American National Standard for Information Technology)のFC−PH(Fibre Channel Physical and Signaling Protocol)を参照)。
【0003】
ファイバチャネルは、2ポート間の物理接続が基本であり、一対のファイバチャネルポートは、物理的には送受信2本(全二重方式)の通信路で相互に接続されている。この通信路を通じて行われるファイバチャネルにおける記憶制御装置と上位処理装置との間の通信は、フレームと呼ばれるデータ単位を基本として行われる。また、複数のフレームの束はシーケンスと呼び、さらに、シーケンスの束はエクスチェンジと呼ぶ。例えば、上位処理装置から記憶制御装置に対して行われるデータ読み出し命令(Read命令)に対応する一連の処理はエクスチェンジを単位として行われる。また、ファイバチャネルにおける上位処理装置と記憶制御装置との間の通信では、インターロックを取らずにコマンドやフレームを送受信することが可能である。
【0004】
図1に、ファイバチャネルの通信路により接続された記憶制御装置10と、これを利用する上位処理装置20とを備えて構成されるデータ処理システムの一例を示す。記憶制御装置10は、例えば、ディスクアレイ装置などであり、キャッシュメモリ11、ディスクユニットなどのデータ記憶手段12、CPUやメモリなどを主体として構成される。そして、記憶制御装置10は、上位処理装置20との間のデータ通信や処理対象となるデータのチャネルプロセサ13への割り当ておよび各種データやテーブルの管理や、チャネルプロセサ13への各種命令のキューの管理などを行うチャネル制御部14、チャネル制御部14から受信したフレームを切り分けて各フレームに対応する処理やキャッシュメモリ11を通じたデータ記憶手段12へのデータ転送制御を実行するチャネルプロセサ13などを備えている。一方、上位処理装置20は、例えば、メインフレームやオフコン、パーソナルコンピュータなどである。
【0005】
記憶制御装置10と上位処理装置20との間の通信において、記憶制御装置10は、受信したフレームの順に各フレームを処理するチャネルプロセサ13を割り当てる。また、この際にチャネルプロセサ13が使用中の場合には、使用されていないチャネルプロセサ13がそのフレームの処理用に割り当てられることになる。
【0006】
【発明が解決しようとする課題】
ところで、上位処理装置20から記憶制御装置10に送られてくるフレームに含まれるコマンドは、主としてデータ記憶手段12へのデータの書き込みを指示するWRITEコマンドと読み出しを指示するREADコマンドに大別され、これらコマンドに対応する処理に際しては、WRITEコマンドもしくはREADコマンドの一方の種類のコマンドのみを含んだフレームが連続して上位処理装置20から送られてきた場合や、書き込みや読み出しの対象となるデータ量が大きいなどの理由により、複数のチャネルプロセサ13の双方が同時にWRITEコマンドもしくはREADコマンドのどちらか一方の処理のみを行っている期間が生じることがあり、この期間中は全二重通信が有効に機能しないことになる。
【0007】
すなわち、例えば、チャネルプロセサ13が2つのみで構成されている場合には、前述した全二重方式の通信路のうち上位処理装置20から記憶制御装置10方向の通信路51(以下、「受信路」と称する)のみの通信負荷が高くなっているにもかかわらず、記憶制御装置10から上位処理装置20方向の通信路52(以下、「送信路」と称する)は殆ど利用されていないため、この期間中は全二重方式の通信路50が有効に機能しないことになる。
【0008】
本発明はこのような事情に鑑みてなされたもので、全二重方式の通信路を効率よく利用することができる記憶制御装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
この目的を達成するための、本発明の主たる発明は、上位処理装置から受信したデータをデータ記憶手段に管理する記憶制御装置であって、全二重方式の通信路を通じて前記上位処理装置と通信するチャネル制御部と、前記データ記憶手段に記憶されるデータを一時的に記憶するキャッシュメモリと、前記上位処理装置から送信されてくる書き込みコマンド、又は、読み出しコマンドに応じて、前記キャッシュメモリと前記データ記憶手段との間のデータ転送に関する処理を行う複数のチャネルプロセッサと、を有し、前記通信路を通じて前記上位処理装置に読み出されるデータのデータ量と、前記通信路を通じて前記上位処理装置から受信した、前記データ記憶手段に書き込まれるデータのデータ量との比に応じて、前記データ転送に関する処理を前記複数のチャネルプロセッサのうち負荷が少ない前記チャネルプロセッサに割り当てる第1の方式、又は、前記読み出しコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサ、もしくは、前記書き込みコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサを、前記複数のチャネルプロセッサのうちの一部の前記チャネルプロセッサに固定する第2の方式のうちのいずれの方式により行うかを選択することとする。
【0010】
具体的には、例えば、ファイバチャネルにより接続された上位処理装置と記憶制御装置との通信の場合であれば、前述のインターロックが不要であるというファイバチャネルの特徴を利用して、フレームに含まれているコマンドが前記データ記憶手段に対する書き込み命令であるのか、読み出し命令であるのかに応じてそのフレームが所属するエクスチェンジを処理するチャネルプロセサをエクスチェンジごとに割り当てる。これにより、全てのチャネルプロセサが同時に書き込みもしくは読み出しの一方の処理のみを実行する期間が減り、これにより全二重方式の通信路の送信路と受信路の負荷バランスの均一化が図られ、通信路を効率よく利用することが可能になる。
【0011】
【発明の実施の形態】
以下、本発明の一実施例によるデータ処理システムについて説明する。データ処理システムの構成は図1と同様であるので詳細な説明は省略し、以下では本発明の特徴的な部分を中心に説明する。また、説明の便宜のため、この実施例で説明する記憶制御装置10は、2つのチャネルプロセサ(以下、「CHP」と称する)13のみを備えるものとし、これらチャネルプロセサをCHP0、CHP1と称することとする。また、以下の説明では「WRITE」を「WR」と、「READ」を「RD」と、それぞれ略記する。
【0012】
記憶制御装置10のチャネル制御部14のメモリ上には、上位処理装置20との間のデータ通信や、データ記憶手段12に対するデータの読み書き処理などの、上位処理装置20から送られてくるコマンドに応じて行われる処理に利用される各種テーブルが記憶管理されている。図2はこのうちのエクスチェンジ管理テーブル200である。このテーブル200には、上位処理装置20との間の通信において生成されたエクスチェンジが管理されている。
【0013】
このテーブルのテーブル有効フラグ202には、該当のエクスチェンジが現在処理中であるかどうかを示すビットがセットされ、処理中のエクスチェンジについては「1」が、処理中でないエクスチェンジについては「0」がセットされる。デバイス番号203には、そのエクスチェンジの処理対象となるデータ記憶手段の記憶媒体(例えば、ディスクユニット)の識別番号がセットされる。CHP番号205には当該エクスチェンジの処理を行うCHPの番号がセットされる。また、通信領域ポインタ204には受信路51を通じて受信したフレームが格納されているメモリ上の物理アドレスが、OX−ID(Originator Exchange_ID)207には上位処理装置20側で割り当てられたエクスチェンジ番号がセットされ、S−ID(Source_ID)208には送信元のファイバチャネルのポートアドレスが、D−ID(Destination_ID)209には該当エクスチェンジの送信先となるファイバチャネルのポートアドレスが、それぞれセットされる。
【0014】
なお、以上の項目のうちテーブル有効フラグ以外の項目には、エクスチェンジが処理中である場合、すなわち、テーブル有効フラグが「1」の場合に値がセットされる。また、OX−ID207、S−ID208、D−ID209の値は、各エクスチェンジに一意に対応づけられ、例えば、上位処理装置20から連続してフレームが送られてきた場合に各フレームがどのエクスチェンジに所属しているか、フレームが先頭フレームであるか(エクスチェンジ管理テーブル200にフレームが登録されていない場合)といったことは、各フレームにセットされているOX−ID207、S−ID208、D−ID209に一致するエクスチェンジをエクスチェンジ管理テーブル200から調べることで把握できる。
【0015】
一方、図3は記憶制御装置10のメモリ上に記憶管理されているCHP割当処理管理テーブル300である。このテーブルのCHP割当処理実行フラグ301は、CHPの割当処理の実行制御に用いられる。このフラグの用途については後述する。
【0016】
受信WRコマンドデータ量カウンタ302および受信RDコマンドデータ量カウンタ303には、チャネル制御部14が上位処理装置20からコマンドを受信した場合に、WRコマンドもしくは、RDコマンドにより処理されたデータ量が加算される。また、送信RDコマンドデータ量カウンタ304には、上位処理装置20から記憶制御装置10に送信されたRDコマンドに応答して記憶制御装置10から上位処理装置20に送信されるデータ量がセットされ、CHP13から処理完了通知があり、あるエクスチェンジがエクスチェンジ管理テーブル200において無効化された際に値が加算される。
【0017】
CHP0データ量カウンタ305、およびCHP1データ量カウンタ306には、各CHP0,1が処理したデータのデータ量が加算される。RD/WRデータ比率閾値等の各種閾値307〜311は、後述するCHPの割り当て処理の実行制御のために利用されるものである。モニタリング実行間隔タイマ312、モニタリング実行間隔I/O数313は、記憶制御装置10が実行する各種ポーリング処理に際して参照されるパラメータである。また、モニタリング開始時刻314とモニタリング終了時刻315は、記憶制御装置10により処理されたデータのスループットを算出する場合に用いられる。I/O数カウンタ316は、I/O数でモニタリングするのに必要な情報であり、これには上位処理装置20から送られてきたI/O要求数が加算される。ワークエリア317は、各種計算やデータの一時的な保存などに利用される。
【0018】
図4は、チャネル制御部14のメモリ上に記憶管理されているRD/WRコマンドキュー管理テーブル401,410である。このテーブル401,410には、記憶制御装置20の処理対象となるRDコマンドもしくはWRコマンドのキューイング状態が、FIFO(First In First Out)方式で管理され、キューイング数を示すカウンタ402、先頭キューの格納アドレスを示すINポインタ403、末尾キューの格納アドレスを示すOUTポインタ404、キュー全体のデータサイズを管理するデータ転送量405、コマンドごとに対応するキュー管理情報406などが管理される。キュー管理情報406には、記憶制御装置20が割り当てたエクスチェンジ番号407とデータ転送量408、このエクスチェンジを実行するCHPの番号409などが記述されている。
【0019】
つぎに、図5に示すフローチャートとともに、記憶制御装置10と上位処理装置20との間の全二重方式の通信において記憶制御装置10が行う、CHPの割当処理について詳述する。
【0020】
全二重方式の通信路のうち受信路51を通じて上位処理装置20からフレームを受信した場合、記憶制御装置10は、まず、そのフレームが新たなエクスチェンジの起動先頭フレームであるかどうかを調べる(501,502)。ここでフレームが起動先頭フレームであった場合には、未使用のエクスチェンジ番号を利用してそのフレームに対応するフィールドをエクスチェンジ管理テーブル200に新たに登録する(503)。なお、フレームが起動先頭フレームでない場合の処理については後述する。
【0021】
つぎに記憶制御装置10は、前記フレームのフレーム制御フィールド(F_ControlField)を参照し、当該フレームの後続フレームの存在有無を調べる(507)。その結果、当該フレームが後続フレームを有する場合には、さらにこのフレームがRD/WRいずれかのコマンドを含むフレームであるかどうかを調べる(508)。なお、この調査は、例えば、記憶制御装置10内にあらかじめ登録しておいたコマンド一覧と、フレームのコマンド記述欄の内容を比較することで行う。
【0022】
この調査の結果、このフレームがコマンドも含んでいない場合(もしくは、コマンドを含んでいるかどうかを判断できない場合)には、記憶制御装置10は、当該フレームを通常のCHP割当方式、すなわち、受信したフレームの順に各フレームを処理するチャネルプロセサ13を割り当て、また、あるフレームの割り当てに際してチャネルプロセサ13が使用中である場合には、使用されていないチャネルプロセサ13にそのフレームの処理させるというCHP割当方式により当該フレームの処理を行う(510)。
【0023】
一方、前記フレームがRD/WRいずれかのコマンドを含むフレームである場合には、つぎのように処理が行われる。まず、フレームにWRコマンドが含まれていた場合、記憶制御装置10は、WRデータキュー管理テーブル410に当該フレームのエクスチェンジ番号とそのWRコマンドにより処理されるデータ量を登録する(511)。一方、当該フレームにRDコマンドが含まれていた場合には、記憶制御装置はRDデータキュー管理テーブル401に当該フレームのエクスチェンジ番号と、そのREADコマンドにより処理されるデータ量を登録する(512)。なお、これら各データキュー管理テーブル401,410への登録を行った場合には、各テーブルのカウンタ402およびOUTポインタ404に1を加算する。
【0024】
つぎに記憶制御装置10は、条件管理テーブルのCHP割当処理実行フラグ301の状態を調査する。ここでCHP割当処理実行フラグ301に「1」がセットされていた場合には、CHPの割当処理を行うかどうかを判断する処理に進み(513,514)、当該フレームにWRコマンドが含まれていた場合は、エクスチェンジ管理テーブル200の当該フレームが所属するエクスチェンジのCHP番号205の欄に、そのエクスチェンジにCHP0を割り当てたことを示す「0」をセットし(515)、また、CHP割当処理管理テーブル300のCHP0データ量カウンタ305に当該フレームのデータ量を加算し(516)、当該フレームの処理を行うため当該フレームについての処理に必要なデータをCHP0に転送する(519)。なお、フレームにRDコマンドが含まれていた場合も、以上のWRコマンドの場合と同じようにして処理が行われる(512,514,517,518)。
【0025】
一方、(513,514)の処理において、CHP割当処理実行フラグ301に「0」がセットされていた場合には、記憶制御装置10はコマンドの種類(WRコマンドであるかRDコマンドであるか)に応じたCHPの割当処理を行わず、その代わりにCHP割当処理管理テーブル300のCHP0データ量カウンタ305もしくはCHP1データ量カウンタ306の比率に基づいてCHPの割り当てを行う(521)。すなわち、この場合、記憶制御装置10は、CHP0データ量カウンタ305およびCHP1データ量カウンタ306の値を比較して、値の小さい方、すなわち、その時点で処理負荷の小さいCHPを当該フレームの処理用に割り当て、当該フレームの処理に必要なデータをそのCHPに転送する。
【0026】
つぎに、(502)の処理において、フレームが起動先頭コマンドでなかった場合には、まず、フレーム情報(OX−ID,S−ID、LPN番号、デバイス番号)をキーとした場合に該当するエクスチェンジをエクスチェンジ管理テーブル200から検索する。そして、検索したエクスチェンジのCHP番号205に既に値がセットされていれば、当該フレームの処理に必要なデータをその値に対応するCHPに送信する(516)。
【0027】
他方、CHP番号205に値がセットされていなかった場合、すなわち、そのフレームが所属するエクスチェンジにCHPが割り当てられていない場合には、(507)からの処理に進む。以上のようにして記憶制御装置10は受信したフレームをつぎつぎに処理していくことになる。
【0028】
つぎに、以上の処理をより具体的に説明すべく、上位処理装置20から記憶制御装置10に対し、DX/LOC/WRCKDからなる1CCW(Channel Command Word)チェーン(例えば、「IBM 3990/9390 Storage Control Reference」を参照)のフレームが送られてきた場合の処理について、再度、図5のフローチャートに従って説明する。
【0029】
記憶制御装置10は、DXコマンドを含んだフレームを受信すると、まず、このフレームが起動先頭コマンドフレームかどうかを判定する(508)。ここでDXコマンドはCCWチェーンの起動先頭コマンドであり、新たなエクスチェンジの起動先頭フレームであるので、記憶制御装置10はこのフレームに対応するエクスチェンジを、エクスチェンジ管理テーブル200に新規に登録する。
【0030】
つぎに記憶制御装置10は、前記フレームのフレーム制御フィールド(F_ControlField)を参照し、当該フレームの後続フレームの存在有無を調べる(507)。その結果、後続フレームを有する場合には、さらにこのフレームがRD/WRいずれかのコマンドを含むフレームであるかどうかを調べる(508)。ここでDXコマンドは、READ/WRITEいずれのコマンドでも無いため、記憶制御装置10は、当該フレームを通常のCHP割当方式により割り当てたCHPにより処理することになる(510)。
【0031】
つぎに、記憶制御装置10は、DXコマンドに引き続きCCWチェーンを構成するLOCコマンドを含むフレームを受信すると、このフレームが起動先頭コマンドであるかどうかを調べる(502)。ここでLOCコマンドが記載されたフレームは起動先頭コマンドで無いため、記憶制御装置10はこのフレームのフレーム情報(OX−ID,S−ID、LPN番号、デバイス番号)を用いてこのフレームに対応するエクスチェンジをエクスチェンジ管理テーブル200より検索する。そして、この場合には、前述のDXコマンドが記載されたフレームにより前記フレーム情報に対応するエクスチェンジが既にエクスチェンジ管理テーブル200に登録されているため、検索の結果、このエクスチェンジが検索されることになる。
【0032】
つぎに、記憶制御装置10は、検索されたエクスチェンジについて、当該エクスチェンジの処理用に既にCHPが割り当てられているかどうかを当該エクスチェンジのCHP番号205を参照して調べる(506)。ここでこのエクスチェンジには、まだCHPの割り当てがされていないので、(507)の処理において当該フレームの後続チェーンが存在するかどうかを調べる。ここでこのフレームには後続チェーン(WRCKDコマンドのフレーム)が存在するため、(508)の処理が実行される。そして、LOCコマンドは、そのオペレーションコードからWRITEコマンドであることを判定できるコマンドであるため、(510)の処理へと移行して、当該LOCコマンドをWRデータキュー管理テーブル410に登録し、また、エクスチェンジ管理テーブル200の当該フレームに対応するエクスチェンジのCHP番号205に「0」をセットする(511,513)。また、CHP0データ量カウンタ305に当該LOCコマンドの処理されるデータ量、例えば、当該コマンドによりディスクユニットに書き込まれるデータのデータ量を加算する。
【0033】
つぎに、上位処理装置20からWRCKDコマンドが記載されたフレームが送られてきた場合には、記憶制御装置10はこのフレームは起動先頭フレームでないため(502)、前述したLOCコマンドの場合と同様に当該フレームが所属するエクスチェンジ番号を検索する(505)。そして、この場合には、CHP番号205に既に値がセットされており、当該フレームが所属するエクスチェンジに既にCHPが割り当てられているため(506)、記憶制御装置10は当該コマンドの処理に必要なデータをそのCHP番号に対応するCHPに送信する。
【0034】
以上に説明したように、記憶制御装置10はフレームに含まれるコマンドがRDコマンドであるかWRコマンドであるかに応じてそのフレームが所属するエクスチェンジの処理を行うCHPを割り当てる。従って、CHP0,1の双方が同時にWRもしくはRDの一方の処理を行う期間が減って、全二重方式の通信路の受信路51と送信路52の負荷のバランスが不均一になる期間を減らすことができる。
【0035】
ところで、以上のようなCHPの割当方式を適用した場合でも、例えば、上位処理装置20からWRコマンドもしくはRDコマンドのいずれか一方のみを含むフレームが連続して送信されて長期間一方のCHPがその処理に占有されていたり、一のコマンドの処理対象となるデータのデータ量が大きい場合に前記の割当処理を実行してしまうと、かえって一方の通信路に負荷が片寄る結果となり、通信路の負荷のバランスが崩れてしまう可能性がある。そこで負荷分散をより徹底して行うようにするため、本発明の記憶制御装置10はさらに以下に示すような各種の機能を備えている。
【0036】
このうち第1の機能は、CHPの割当処理を行うかどうかを、上位処理装置20から送られてくるRDコマンドとWRコマンドのそれぞれにより処理されるデータ量の比率に応じて制御するようにしたものである。具体的には、図6に示すように、ポーリング処理などにより適宜なタイミングである一定期間におけるCHP割当処理管理テーブル300の受信WRコマンドデータ量カウンタ302と、受信RDコマンドデータ量カウンタ303の増分からRDコマンドとWRコマンドのそれぞれにより処理されたデータ量の比率を算出(602)し、この比率がCHP割当処理管理テーブル300のRD/WRデータ量比率閾値を超えた場合にはCHP割当処理管理テーブル300のCHP割当処理実行フラグ301に「0」をセットし(605)、RD/WRデータ量比率閾値以下の場合にはCHP割当処理実行フラグ301に「1」をセットする(604)。なお、図6の例では、ポーリング機能などにより以上の処理を実行するたびに、受信WRデータカウンタと、受信RDデータカウンタの内容を初期化している(607)。
【0037】
第2の機能は、各CHPのキューの状態に応じてCHP割当処理実行フラグを制御するようにしたものである。具体的には、ポーリング処理などにより一定期間ごともしくは処理データが一定数に達する度ごとなどの適宜なタイミングで、RD/WRコマンドキュー管理テーブル401,410から各CHP0,1にキューイングされているコマンドの数およびこれらコマンドの処理対象となるデータの全データ量を算出する。キューイングされているコマンド数はRD/WRコマンドキュー管理テーブル401,410のカウンタの値により把握される。また、全データ量は、データ転送量により把握される。RDコマンドおよびWRコマンドそれぞれのキューイング数の比率、RDコマンドおよびWRコマンドそれぞれのデータ転送量の比率を、それぞれCHP割当処理管理テーブル300のCHPキューデータ数比率閾値309、CHPキューデータ量比率閾値310と比較し、閾値を超えているかどうかに応じてCHP割当処理実行フラグ301を制御する。図7は以上の処理の一例を示すフローチャートである。
【0038】
第3の機能は、CHP割当処理管理テーブル300のCHP0,1データ量カウンタ305,306の比率に応じてCHP割当処理実行フラグ301を制御するようにしたものである。具体的には、一定時間毎にCHP0,1データ量カウンタ305,306の比率と、CHP割当処理管理テーブル300のCHPデータ比率閾値307とを比較し、閾値を超えているかどうかに応じてCHP割当処理実行フラグ301を制御する。図8にこの場合の処理の一例を示す。
【0039】
第4の機能は、WRコマンドとRDコマンドのそれぞれについて、記憶制御装置10が単位時間当たりに処理したデータ量(スループット)の比に応じてCHP割当処理実行フラグ301を制御するようにしたものである。ここでWRコマンドとRDコマンドそれぞれについてのスループットは、CHP割当処理管理テーブル300における受信WRコマンドデータ量カウンタ302および送信RDコマンドデータ量カウンタ304の変化率により算出する(901)。すなわち、図9に示すように、ある時刻におけるこれらカウンタ値とこれから単位時間経過後のこれらカウンタ値の差から単位時間当たりの処理データ量であるスループットを算出し(901〜903,907,908)、このようにして求めたスループットの比がCHP割当処理管理テーブル300のRD/WRスループット比率閾値311を超えているかどうかに応じてCHP割当処理実行フラグ304を制御する(904)。
【0040】
以上に説明した第1〜第4の機能によれば、上位処理装置20からWRコマンドもしくはRDコマンドのいずれか一方のみが記載されたフレームが連続して送られてきたり、一のコマンドの処理対象となるデータのデータ量が大きい場合における一方の通信路に負荷の片寄りを防ぐことが可能となり、フレームに含まれるコマンドの種類(RDコマンドもしくはWRコマンド)に応じてそのフレームを処理するCHPを割り当てることで、全二重通信における受信路と送信路の負荷分散を図る前述した仕組みをより一層効果的に機能させることが可能となる。なお、以上に説明した第1〜第4の機能は、全てを一度に適用しなければならない訳ではなく、このうちの1の機能のみを適用したり、いくつかの機能を選択して適用するようにしてもよい。
【0041】
また、以上に説明した第1〜第4の機能において、ポーリング処理の間隔を指定する数値、例えば、時間や処理データ数などの数値を、上位処理装置20や、記憶制御装置10に接続された運用管理端末などの外部装置から指定できるようにしてもよい。
【0042】
ところで、以上の実施例は、通信プロトコルがファイバチャネルプロトコルである場合について説明したが、上位処理装置20と2以上のチャネルプロセサを備えた記憶制御装置10が全二重方式で結ばれる構成を備えるデータ処理システムであれば、通信プロトコルの種類に限定されることなく適用することができる。
【0043】
以上の実施例は、記憶制御装置10が一つのチャネル制御部14に対し2つのCHP13を備えている場合について説明したが、一つのチャネル制御部14に対して3つ以上のCHP13を備えている場合にも適用できることはもちろんである。
【0044】
【発明の効果】
以上に説明したように、本発明の記憶制御装置によれば、全二重方式の通信路を効率よく利用することができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるデータ処理システムの概略構成を示す図である。
【図2】本発明の一実施例によるエクスチェンジ管理テーブルを示す図である。
【図3】本発明の一実施例によるCHP割当処理管理テーブルを示す図である。
【図4】本発明の一実施例によるRD/WRコマンドキュー管理テーブルを示す図である。
【図5】本発明の一実施例によるCHP割当処理を説明するフローチャートである。
【図6】本発明の一実施例による、CHP割当処理を行うかどうかを、RDコマンドとWRコマンドのそれぞれにより処理されるデータ量の比率に応じて制御する処理を説明するフローチャートである。
【図7】本発明の一実施例による、CHP割当処理を行うかどうかを、各CHPのキューの状態に応じてCHP割当処理実行フラグを制御する処理を説明するフローチャートである。
【図8】本発明の一実施例による、CHP割当処理を行うかどうかを、CHP0,1データ量カウンタの比率に応じて制御する処理を説明するフローチャートである。
【図9】本発明の一実施例による、CHP割当処理を行うかどうかを、WRコマンドとRDコマンドのそれぞれについて、記憶制御装置が単位時間当たりに処理したデータ量(スループット)の比に応じて制御する処理を説明するフローチャートである。
【符号の説明】
10 記憶制御装置
11 キャッシュメモリ
12 データ記憶手段
13 チャネルプロセサ
14 チャネル制御部
20 上位処理装置
51 受信路
52 送信路
Claims (6)
- 上位処理装置から受信したデータをデータ記憶手段に管理する記憶制御装置であって、
全二重方式の通信路を通じて前記上位処理装置と通信するチャネル制御部と、
前記データ記憶手段に記憶されるデータを一時的に記憶するキャッシュメモリと、
前記上位処理装置から送信されてくる書き込みコマンド、又は、読み出しコマンドに応じて、前記キャッシュメモリと前記データ記憶手段との間のデータ転送に関する処理を行う複数のチャネルプロセッサと、
を有し、
前記通信路を通じて前記上位処理装置に読み出されるデータのデータ量と、前記通信路を通じて前記上位処理装置から受信した、前記データ記憶手段に書き込まれるデータのデータ量との比に応じて、
前記データ転送に関する処理を、
前記複数のチャネルプロセッサのうち負荷が少ない前記チャネルプロセッサに割り当てる第1の方式、又は、
前記読み出しコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサ、もしくは、前記書き込みコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサを、前記複数のチャネルプロセッサのうちの一部の前記チャネルプロセッサに固定する第2の方式、
のうちのいずれの方式により行うかを選択すること
を特徴とする記憶制御装置。 - 請求項1に記載の記憶制御装置であって、
前記上位処理装置に読み出されるデータのデータ量を、前記チャネルプロセッサのデータキューにキューイングされている読み出しコマンドの処理対象となるデータ量に基づいて、
前記上位処理装置から受信した前記データ記憶手段に書き込まれるデータのデータ量を、前記チャネルプロセッサのデータキューにキューイングされている書き込みコマンドの処理対象となるデータ量に基づいて
それぞれ算出すること
を特徴とする記憶制御装置。 - 請求項1に記載の記憶制御装置であって、
前記上位処理装置に読み出されるデータのデータ量は、前記上位処理装置から受信した読み出しコマンドについて当該記憶制御装置が単位時間あたりに処理したデータ量であり、
前記上位処理装置から受信した前記データ記憶手段に書き込まれるデータのデータ量は、前記上位処理装置から受信した書き込みコマンドについて当該記憶制御装置が単位時間あたりに処理したデータ量であること
を特徴とする記憶制御装置。 - 全二重方式の通信路を通じて前記上位処理装置と通信するチャネル制御部と、
前記データ記憶手段に記憶されるデータを一時的に記憶するキャッシュメモリと、
前記上位処理装置から送信されてくる書き込みコマンド、又は、読み出しコマンドに応じて、前記キャッシュメモリと前記データ記憶手段との間のデータ転送に関する処理を行う複数のチャネルプロセッサと、を有し、
上位処理装置から受信したデータをデータ記憶手段に管理する記憶制御装置の運用方法であって、
前記記憶制御装置が、
前記通信路を通じて前記上位処理装置に読み出されるデータのデータ量と、前記通信路 を通じて前記上位処理装置から受信した、前記データ記憶手段に書き込まれるデータのデータ量との比に応じて、
前記データ転送に関する処理を、
前記複数のチャネルプロセッサのうち負荷が少ない前記チャネルプロセッサに割り当てる第1の方式、又は、
前記読み出しコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサ、もしくは、前記書き込みコマンドに応じた前記データ転送に関する処理を行う前記チャネルプロセッサを、前記複数のチャネルプロセッサのうちの一部の前記チャネルプロセッサに固定する第2の方式、
のうちのいずれの方式により行うかを選択すること
を特徴とする記憶制御装置の運用方法。 - 請求項4に記載の記憶制御装置の運用方法であって、
前記記憶制御装置は、
前記上位処理装置に読み出されるデータのデータ量を、前記チャネルプロセッサのデータキューにキューイングされている読み出しコマンドの処理対象となるデータ量に基づいて算出し、
前記上位処理装置から受信した前記データ記憶手段に書き込まれるデータのデータ量を、前記チャネルプロセッサのデータキューにキューイングされている書き込みコマンドの処理対象となるデータ量に基づいて算出すること
を特徴とする記憶制御装置の運用方法。 - 請求項4に記載の記憶制御装置の運用方法であって、
前記上位処理装置に読み出されるデータのデータ量は、前記上位処理装置から受信した読み出しコマンドについて前記記憶制御装置が単位時間あたりに処理したデータ量であり、
前記上位処理装置から受信した前記データ記憶手段に書き込まれるデータのデータ量は、前記上位処理装置から受信した書き込みコマンドについて前記記憶制御装置が単位時間あたりに処理したデータ量であること
を特徴とする記憶制御装置の運用方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001273932A JP3992952B2 (ja) | 2001-09-10 | 2001-09-10 | 記憶制御装置およびその運用方法 |
US10/241,206 US6922737B2 (en) | 2001-09-10 | 2002-09-10 | Storage control device and method for management of storage control device |
US11/067,245 US7373436B2 (en) | 2001-09-10 | 2005-02-24 | Storage control device and method for management of storage control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001273932A JP3992952B2 (ja) | 2001-09-10 | 2001-09-10 | 記憶制御装置およびその運用方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003085117A JP2003085117A (ja) | 2003-03-20 |
JP2003085117A5 JP2003085117A5 (ja) | 2005-05-26 |
JP3992952B2 true JP3992952B2 (ja) | 2007-10-17 |
Family
ID=19099073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001273932A Expired - Fee Related JP3992952B2 (ja) | 2001-09-10 | 2001-09-10 | 記憶制御装置およびその運用方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6922737B2 (ja) |
JP (1) | JP3992952B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080467A1 (en) * | 2004-08-26 | 2006-04-13 | Sensory Networks, Inc. | Apparatus and method for high performance data content processing |
US7752633B1 (en) * | 2005-03-14 | 2010-07-06 | Seven Networks, Inc. | Cross-platform event engine |
US7444478B2 (en) * | 2005-11-18 | 2008-10-28 | International Business Machines Corporation | Priority scheme for transmitting blocks of data |
US8677014B2 (en) * | 2006-11-27 | 2014-03-18 | Cisco Technology, Inc. | Fine granularity exchange level load balancing in a multiprocessor storage area network |
JP5593184B2 (ja) * | 2010-09-30 | 2014-09-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチパスを使用するシステム及び方法 |
US20130019053A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Flash controller hardware architecture for flash devices |
CN104969167B (zh) | 2013-05-31 | 2018-01-09 | 株式会社日立制作所 | 控制装置及控制方法 |
KR101519743B1 (ko) * | 2013-11-29 | 2015-05-12 | 엘에스산전 주식회사 | 직렬 통신용 양방향 패킷 전송 장애 극복 스위치 |
KR102370733B1 (ko) * | 2015-04-13 | 2022-03-08 | 에스케이하이닉스 주식회사 | 출력 커맨드들을 전송하는 컨트롤러 및 그것의 동작 방법 |
US10740155B1 (en) * | 2018-09-28 | 2020-08-11 | Cavium, Llc | Methods and systems for load balancing in network devices |
JP2022021026A (ja) * | 2020-07-21 | 2022-02-02 | キオクシア株式会社 | メモリシステムおよびコマンドをフェッチする方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4313162A (en) * | 1979-12-14 | 1982-01-26 | Burroughs Corporation | I/O Subsystem using data link processors |
WO1992015058A1 (en) | 1991-02-19 | 1992-09-03 | International Business Machines Corporation | Data storage subsystem |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
US5390215A (en) * | 1992-10-13 | 1995-02-14 | Hughes Aircraft Company | Multi-processor demodulator for digital cellular base station employing partitioned demodulation procedure with pipelined execution |
US5611056A (en) * | 1994-08-31 | 1997-03-11 | Unisys Corporation | Method for controlling the expansion of connections to a SCSI bus |
JPH0927794A (ja) * | 1995-07-11 | 1997-01-28 | Sony Corp | データ多重化伝送装置 |
US5754484A (en) * | 1996-05-13 | 1998-05-19 | Motorola Inc. | Apparatus and method for utilization of limited write memory |
JP3603524B2 (ja) * | 1997-02-05 | 2004-12-22 | 株式会社日立製作所 | ネットワーキング方法 |
US6038613A (en) * | 1997-11-14 | 2000-03-14 | International Business Machines Corporation | Prefetching and storing device work information from multiple data storage devices |
JP2000049754A (ja) * | 1998-07-29 | 2000-02-18 | Matsushita Electric Ind Co Ltd | 無線装置 |
JP2000090237A (ja) * | 1998-09-10 | 2000-03-31 | Fuji Xerox Co Ltd | 描画処理装置 |
JP2000172624A (ja) * | 1998-12-07 | 2000-06-23 | Hitachi Ltd | 入出力処理システム |
JP3853098B2 (ja) * | 1999-01-18 | 2006-12-06 | シャープ株式会社 | データ駆動型情報処理システム |
US6463070B1 (en) * | 1999-08-27 | 2002-10-08 | Tachyon, Inc. | System and method for clock correlated data flow in a multi-processor communication system |
-
2001
- 2001-09-10 JP JP2001273932A patent/JP3992952B2/ja not_active Expired - Fee Related
-
2002
- 2002-09-10 US US10/241,206 patent/US6922737B2/en not_active Expired - Fee Related
-
2005
- 2005-02-24 US US11/067,245 patent/US7373436B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6922737B2 (en) | 2005-07-26 |
US20050149638A1 (en) | 2005-07-07 |
JP2003085117A (ja) | 2003-03-20 |
US20030051081A1 (en) | 2003-03-13 |
US7373436B2 (en) | 2008-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7373436B2 (en) | Storage control device and method for management of storage control device | |
US7496699B2 (en) | DMA descriptor queue read and cache write pointer arrangement | |
JP4402997B2 (ja) | ストレージ装置 | |
US9513825B2 (en) | Storage system having a channel control function using a plurality of processors | |
US7739418B2 (en) | Resource management system | |
US7752349B2 (en) | Apparatus and method for performing DMA data transfer | |
JP2009087175A (ja) | ストレージ装置、処理制御装置、及び記憶システム | |
US20070168583A1 (en) | Endpoint control apparatus and method thereof | |
JP4053208B2 (ja) | ディスクアレイ制御装置 | |
US8032675B2 (en) | Dynamic memory buffer allocation method and system | |
JP2006079495A (ja) | ストレージシステム及び論理区画の設定方法 | |
US7409486B2 (en) | Storage system, and storage control method | |
US7853757B2 (en) | Avoiding failure of an initial program load in a logical partition of a data storage system | |
US20060277326A1 (en) | Data transfer system and method | |
US6810469B2 (en) | Storage system and method for data transfer between storage systems | |
US10783096B2 (en) | Storage system and method of controlling I/O processing | |
KR20220132333A (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
US10228883B2 (en) | Storage device that postpones completion of read command to begin execution of a non-read command | |
US10223322B2 (en) | Systems and methods for channel information exchange in a PCIe environment | |
CN116774925A (zh) | 磁盘存储系统、方法及服务器 | |
JP2002169699A (ja) | 複数の仮想計算機を用いた通信システム | |
JP2001312454A (ja) | データ処理システムおよびデータ処理システムの制御方法ならびに外部記憶装置および外部記憶装置の制御方法 | |
JP3273799B2 (ja) | 拡張記憶装置用キャッシュメモリ | |
JP2021082096A (ja) | 情報処理装置及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040722 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040722 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040722 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040928 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061124 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20061127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070724 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070725 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |