説明

データ転送装置及びデータ転送方法

複数のデータ転送装置を用いて行われるデータ転送を効率よく行なう。第1DMA1142、第2DMA1112、及びメモリ113を備えるチャネル制御部11と、プロセッサ部12と、記憶装置17と通信するディスク制御部13とを備えるストレージ装置10において、チャネル制御部11が、キャッシュメモリ14に格納されているデータをホスト装置3に転送する際、第1DMA1142が、プロセッサ部12から第2DMA1112の第2転送パラメータ152が付帯する第1DMA1142の第1転送パラメータ151の設定を受け付け、第1転送パラメータ151に従いキャッシュメモリ14からメモリ113への第1データ転送を行うとともに、第2転送パラメータを第2DMA1112に設定してメモリ113からホスト装置3にデータ転送するようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送装置及びデータ転送方法に関し、とくに複数のデータ転送装置を用いて行われるデータ転送を効率よく行えるようにするための技術に関する。
【背景技術】
【0002】
DMA(Direct Memory Access)等のデータ転送装置に関しては、データ転送効率向上を目的として様々な技術が提案されている。例えば、特許文献1には、第1のDMA転送チャネルの転送パラメータを制御する第1カウント制御部と第2のDMA転送チャネルの転送パラメータを制御する第2カウント制御部とを交互に制御するDMAコントローラに関し、CPUによる制御を不要とし、あるデータブロックの転送終了から次のブロックの転送開始までの間に生じる遅延を解消すべく、複数のブロックのデータ転送を実行する際、第1カウント制御部のデータ転送の空きサイクル中に第2カウント制御部が次に転送すべきデータブロックの転送パラメータをメモリからロードすることが記載されている。
【0003】
また特許文献2には、CPU負荷を軽減すべく、DMAの転送パラメータの主記憶装置におけるアドレス情報をアドレスレジスタに記憶しておき、アドレスレジスタに記憶されているアドレス情報に基づき転送パラメータを読み出してパラメータレジスタに登録しておくことにより、DMA転送ごとに行われていたCPUへの割り込みを不要とすることが記載されている。
【0004】
特許文献3には、第1のプロセッサと第2のプロセッサを備えた装置において、第1のプロセッサが、第1の記憶領域における記憶位置を示す情報と第2の記憶領域における記憶位置を示す情報とを含むデータ転送情報をメモリに書き込み 、第2のプロセッサがメモリからデータ転送情報を読み出し、第2のプロセッサがデータ転送情報に基づき第1の記憶領域に記憶されているデータを第2の記憶領域に転送することにより、第1のプロセッサが第2のプロセッサからの通知を待つことなく次の処理の実行に移ることができるようにすることで、第1のプロセッサ及び第2のプロセッサの効率的な利用を図ることが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平9−62610号公報
【特許文献2】特開平8−77099号公報
【特許文献3】特開2005−78596号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図22は、通信可能に接続されたホスト装置3に対してデータの保管庫として機能するストレージ装置10のハードウエア構成例である。同図に示すように、このストレージ装置10は、チャネル制御部11、プロセッサ部12、キャッシュメモリ14、及びこれらを通信可能に接続する内部スイッチ16を備えている。
【0007】
チャネル制御部11は、ホスト装置3と通信する外部通信I/F111、内部スイッチ16を介してプロセッサ部12やキャッシュメモリ14と通信する内部通信I/F114、及び、外部通信I/F111と内部通信I/F114との間のデータ転送におけるバッファとして機能するメモリ113、を備えている。外部通信I/F111は、第2DMA1112を、内部通信I/F114は、第1DMA1142を夫々備えている。
【0008】
図23は、ストレージ装置10にて行われるデータ転送に関する動作を説明した図であり、より詳細には、チャネル制御部11が、キャッシュメモリ14に格納されているデータを読み出してホスト装置3に送信する際に行われる動作を説明したフローチャートである。
【0009】
図22及び図23に示すように、データ転送に際し、まずプロセッサ部12は第1DMA1142に転送パラメータを設定する(S2211,S2311)。すると第1DMA1142は、設定された転送パラメータに従いデータ転送(キャッシュメモリ14に格納されているデータのメモリ113へのデータ転送)を開始する(S2212,S2312)。
【0010】
データ転送の実行中、内部通信I/F114は、第1DMA1142によるデータ転送が完了したか否かを監視しており(S2313)、データ転送が完了すると(S2313:YES)、その終了ステータスをプロセッサ部12に通知する(S2213,S2314)。
【0011】
プロセッサ部12は、内部通信I/F114から終了ステータスが通知されると、第2DMA1112に転送パラメータを設定し(S2214,S2315)、これにより第2DMA1112が転送パラメータに従いデータ転送(メモリ113に格納されているデータのホスト装置3へのデータ転送)を開始する(S2215,S2316)。
【0012】
データ転送の実行中、外部通信I/F111は、第2DMA1112によるデータ転送が完了したか否かを監視している(S2317)。データ転送が完了すると(S2317:YES)、外部通信I/F111は終了ステータスをプロセッサ部12に通知する(S2216,S2318)。
【0013】
ここで上記処理においては、プロセッサ部12が、第1DMA1142及び第2DMA1112の夫々に対して内部スイッチ16を介した通信を行うことにより、夫々に転送パラメータを設定しているが、このように内部スイッチ16を介した通信が夫々に対して行われることによりデータ転送全体の処理に遅延が生じ、ひいてはストレージ装置10の性能(例えばホスト装置3に対するレスポンス性能やスループット性能)に影響を与えることとなる。またプロセッサ部12は、第1DMA1142からの終了ステータスの通知を待ってから第2DMA1112を起動しているが、この通知も内部スイッチ16を介して行われるために遅延が生じ、ストレージ装置10の性能に影響を与えることとなる。
【0014】
昨今、大規模化や冗長化によりストレージ装置10の構成が複雑化し、データ転送を起動する側(プロセッサ部12)と起動される側(第1DMA1142、第2DMA1112)との間の通信距離が拡大している。そのため、上記のような理由で生じる遅延がストレージ装置10の性能に与える影響を必ずしも無視できない状況になってきている。
【0015】
本発明は、このような背景に鑑みてなされたもので、複数のデータ転送装置を用いて行われるデータ転送を効率よく行うことが可能なデータ転送装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成する為の本発明の一つは、
転送元装置及びメモリと通信可能に接続され、他の装置による第1転送パラメータの設定を受け付け、受け付けた前記第1転送パラメータに従い前記転送元装置から前記メモリへの第1データ転送を行う、第1データ転送装置と、
転送先装置、前記メモリ、及び前記第1データ転送装置と通信可能に接続され、他の装置による第2転送パラメータの設定を受け付け、受け付けた前記第2転送パラメータに従い前記メモリから前記転送先装置への第2データ転送を行う、第2データ転送装置と
を備えるデータ転送制御装置における、前記第1データ転送装置として機能するデータ転送装置であって、
他の装置から前記第2転送パラメータが付帯する前記第1転送パラメータを受け付け、受け付けた前記第1転送パラメータに従い前記第1データ転送を行うとともに、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
こととする。
【0017】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄の記載、及び図面の記載等により明らかにされる。
【発明の効果】
【0018】
本発明によれば、複数のデータ転送装置を用いて行われるデータ転送を効率よく行うことができる。
【図面の簡単な説明】
【0019】
【図1】情報処理システム1の概略的な構成を示す図である。
【図2】ホスト装置3のハードウエア構成を示す図である。
【図3】ストレージ装置10のハードウエア構成を示す図である。
【図4】チャネル制御部11のハードウエア構成を示す図である。
【図5】プロセッサ部12のハードウエア構成を示す図である。
【図6】ドライブ制御部13のハードウエア構成を示す図である。
【図7】管理装置7のハードウエア構成を示す図である。
【図8】ストレージ装置10が備える主な機能を示す図である。
【図9】データ書き込み処理S900を説明するフローチャートである。
【図10】データ読み出し処理S1000を説明するフローチャートである。
【図11】ホスト装置3からストレージ装置10へのアクセス経路(パス)を説明する模式図である。
【図12】データ書き込み要求1200及びデータ読み出し要求1250のデータフォーマットの一例である。
【図13】ストレージ装置10にて行われるデータ転送に関する動作を説明した図である。
【図14】図13に示す動作の時系列的な関係を説明したフローチャートである。
【図15】転送パラメータ1500のデータ構造の一例である。
【図16】図13及び図14とともに説明した動作に関係する内部通信I/F114の機能を説明した図である。
【図17】第1DMA用転送パラメータ151又は第2DMA用転送パラメータ152の一例(データ1700)である。
【図18】第1終了ステータス又は第2終了ステータスの一例(データ1800)である。
【図19】第2実施形態におけるストレージ装置10の動作を説明したフローチャートである。
【図20】第3実施形態におけるストレージ装置10の動作を説明したフローチャートである。
【図21】第4実施形態におけるストレージ装置10の動作を説明したフローチャートである。
【図22】ストレージ装置10のハードウエア構成の一例である。
【図23】データ転送に関する動作の一例を説明した図である。
【発明を実施するための形態】
【0020】
以下、図面とともに実施形態について説明する。
[第1実施形態]
図1に第1実施形態として説明する情報処理システム1の概略的な構成を示している。同図に示すように、情報処理システム1は、一つ以上のホスト装置3(外部装置)、及び一つ以上のストレージ装置10を含んで構成されている。
【0021】
ホスト装置3は、例えば銀行の自動預金預け払いサービスやインターネットのWebページ閲覧サービス等のサービスを提供するコンピュータである。ストレージ装置10は、ホスト3装置にて実行されるアプリケーションプログラム等にデータの記憶領域を提供する。
【0022】
ホスト装置3とストレージ装置10とは、ストレージネットワーク5を介して通信可能に接続している。ストレージネットワーク5は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、SAN(Storage Area Network)、インターネット、公衆通信網、専用線などである。ストレージネットワーク5を介して行われる通信は、例えば、TCP/IP、iSCSI(internet Small Computer System Interface)、ファイバーチャネルプロトコル(Fibre Channel Protocol)、FICON(Fibre Connection)(登録商標)、ESCON(Enterprise System Connection) (登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)などのプロトコルに従って行われる。
【0023】
ホスト装置3のハードウエアは、例えばパーソナルコンピュータ、メインフレーム(Mainframe)、オフィスコンピュータなどである。ホスト装置3は、ストレージ装置10が提供する上記記憶領域にアクセスするに際し、データI/O要求(データ書き込み要求、データ読み出し要求等)を含んだデータフレーム(以下、フレームと略記する。)をストレージ装置10に送信する。フレームは、例えばファイバーチャネルのフレーム(FCフレーム(FC: Fibre Channel))である。
【0024】
図2にホスト装置3として用いられる情報処理装置(コンピュータ)のハードウエアの一例を示している。同図に示すように、この情報処理装置は、CPU31、揮発性または不揮発性のメモリ32(RAMまたはROM)、記憶装置33(例えばHDD(Hard Disk Drive)、半導体記憶装置(SSD(Solid State Drive)))、キーボードやマウス等の入力装置34、液晶モニタやプリンタ等の出力装置35、及びNIC(Network Interface Card)やHBA(Host Bus Adapter)等の通信インタフェース(通信I/F36と表記する。)を備えている。
【0025】
図3にストレージ装置10のハードウエア構成の一例を示している。ストレージ装置10は例えばディスクアレイ装置である。同図に示すように、ストレージ装置10は、一つ以上のチャネル制御部11、一つ以上のプロセッサ部12(Micro Processor)、一つ以上のドライブ制御部13、キャッシュメモリ14(Cache Memory)、共有メモリ15(Shared Memory)、内部スイッチ16、記憶装置17、及び保守装置18(SVP: SerVice Processor)を備えている。チャネル制御部11、プロセッサ部12、ドライブ制御部13、キャッシュメモリ14、及び共有メモリ15は、内部スイッチ16を介して互いに通信可能に接続されている。
【0026】
このうちチャネル制御部11は、ホスト装置3から送られてくるフレームを受信し、受信したフレームに含まれているデータI/O要求についての処理の応答(例えば読み出したデータ、読み出し完了報告、書き込み完了報告)を含むフレームをホスト装置3に送信する。
【0027】
プロセッサ部12は、チャネル制御部11が受信したフレームに含まれている上記データI/O要求に応じてチャネル制御部11、ドライブ制御部13、及びキャッシュメモリ14の間で行われるデータ転送に関する処理を行う。プロセッサ部12は、キャッシュメモリ14を介して行われる、チャネル制御部11とドライブ制御部13との間のデータ(記憶装置17から読み出したデータ、記憶装置17に書き込むデータ)の引き渡しや、キャッシュメモリ14に格納されるデータのステージング(記憶装置17からのデータの読み出し)又はデステージング(キャッシュメモリ14のデータの記憶装置17への書き出し)などを行う。
【0028】
キャッシュメモリ14は、例えば、高速アクセスが可能なRAM(Random Access Memory)を用いて構成されている。キャッシュメモリ14には、記憶装置17に書き込まれるデータ(以下、書き込みデータと称する。)や記憶装置17から読み出されたデータ(以下、読み出しデータと記載する。)等が格納される。
【0029】
共有メモリ15には、ストレージ装置10の制御に用いられる各種の情報が格納される。
【0030】
ドライブ制御部13は、記憶装置17からのデータの読み出しや記憶装置17へのデータの書き込みに際し記憶装置17と通信を行う。
【0031】
内部スイッチ16は、例えば高速クロスバースイッチ(Cross Bar Switch)を用いて構成される。内部スイッチ16を介して行われる通信は、ファイバーチャネル、iSCSI、TCP/IP等のプロトコルに従って行われる。
【0032】
記憶装置17は、物理的な記憶媒体である複数の物理ドライブ171を備えて構成されている。物理ドライブ171は、SAS(Serial Attached SCSI)、SATA(Serial ATA)、FC(Fibre Channel)、PATA(Parallel ATA)、SCSIなどの形式のハードディスクドライブ、半導体記憶装置(SSD)などのハードウエアを用いて構成されている。尚、記憶装置17は、ストレージ装置10と同一の筐体に収容されていてもよいし、ストレージ装置10とは別の筐体に収容されていてもよい。
【0033】
図4にチャネル制御部11のハードウエア構成を示している。同図に示すように、チャネル制御部11は、ホスト装置3と通信するための一つ以上のポート(通信ポート)を備えた外部通信インタフェース(以下、外部通信I/F111(第2データ転送装置)と表記する。)、メモリ113、及びプロセッサ部12と通信するためのポート(通信ポート)を有する内部通信インタフェース(以下、内部通信I/F114(第1データ転送装置)と表記する。)を備えている。
【0034】
外部通信I/F111は、ストレージネットワーク5における通信に用いられる通信規約(通信プロトコル)に従いストレージネットワーク5を介してホスト装置3と通信する。同図に示すように、外部通信I/F111は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、もしくはASIC(Application Specific Integrated Circuit)などの半導体装置(又は半導体集積回路)を用いて構成される制御装置(以下、第2制御装置1111と称する。)と、DMA(Direct Memory Access)(以下、第2DMA1112と称する。)とを備える。尚、第2DMA1112は、第2制御装置1111の内部に組み込まれていてもよいし、第2制御装置1111とは別体(別のパッケージ)であってもよい。
【0035】
第2制御装置1111は、ホスト装置3や内部通信I/F114と通信する。また第2制御装置1111は、第2DMA1112を制御して、メモリ113に格納されているデータをホスト装置3に転送する。また第2制御装置1111は、第2DMA1112を制御して、ホスト装置3から送られてくるデータをメモリ113に格納する。
【0036】
内部通信I/F114は、内部スイッチ16を介して、プロセッサ部12、ドライブ制御部13、キャッシュメモリ14、及び共有メモリ15と通信する。同図に示すように、内部通信I/F114は、CPU、MPU、もしくはASICなどの半導体装置(又は半導体集積回路)を用いて構成される制御装置(以下、第1制御装置1141と称する。)と、DMA(以下、第1DMA1142と称する。)とを備える。尚、第1DMA1142は、第1制御装置1141の内部に組み込まれていてもよいし、第1制御装置1141とは別体(別のパッケージ)であってもよい。
【0037】
第1制御装置1141は、第1DMA1142を制御して、メモリ113に格納されているデータをキャッシュメモリ14に転送する。また第1制御装置1141は、第1DMA1142を制御して、キャッシュメモリ14に格納されているデータをメモリ113に転送する。
【0038】
メモリ113は、ROM(Read Only Memory)及びRAM(Random Access Memory)を含む。メモリ113は、外部通信I/F111と内部通信I/F114との間、並びに内部通信I/F114とキャッシュメモリ14との間で行われるデータ転送に際してデータの一時的な格納領域(データバッファ)を提供する。メモリ113にはマイクロプログラムが格納されている。外部通信I/F111又は内部通信I/F114が、メモリ113からマイクロプログラムを読み出して実行することにより、チャネル制御部11が提供する各種の機能が実現される。
【0039】
図5にプロセッサ部12のハードウエア構成を示している。プロセッサ部12は、一つ以上のマイクロプロセッサ(Micro Processor)(以下、MP122と称する。)、及びローカルメモリ(Local Memory)(以下、LM123と称する。)を備えている。MP122は、CPU、MPU、ASIC等を用いて構成されている。LM123にはマイクロプログラムが格納されている。MP122が、LM123から上記マイクロプログラムを読み出して実行することにより、プロセッサ部12が提供する各種の機能が実現される。
【0040】
尚、MP122及びLM123は、多対一の関係(例えば複数MP122が共通のLM123を利用する場合)、多対多の関係(例えばMP122ごとに異なるLM123が設けられる場合)などストレージ装置10の種類に応じて様々な態様で設けられる。
【0041】
図6にドライブ制御部13のハードウエア構成を示している。ドライブ制御部13は、内部通信インタフェース(以下、内部通信I/F131と表記する。)、メモリ133、及びドライブインタフェース(以下、ドライブI/F134と表記する。)を備えている。
【0042】
内部通信I/F131は、CPU、MPU、ASIC等を用いて構成される演算制御装置と、DMAとを備える。尚、DMAは、演算制御装置の内部に組み込まれていてもよいし、演算制御装置とは別体(別のパッケージ)であってもよい。内部通信I/F131は、内部スイッチ16を介して、チャネル制御部11、プロセッサ部12、キャッシュメモリ14、及び共有メモリ15と通信する。
【0043】
ドライブI/F134は、所定の通信方式に従って記憶装置17と通信する。
【0044】
メモリ133は、ROM及びRAMを含む。メモリ133は、内部通信I/F131とドライブI/F134との間、並びに内部通信I/F131とキャッシュメモリ14との間で行われるデータ転送に際してデータの一時的な格納領域(データバッファ)を提供する。メモリ133にはマイクロプログラムが格納されている。内部通信I/F131又はドライブI/F134が、メモリ133からマイクロプログラムを読み出して実行することにより、ドライブ制御部13が提供する各種の機能が実現される。
【0045】
図3に示す保守装置18は、ストレージ装置10の各構成要素の制御や状態監視を行う。保守装置18は、パーソナルコンピュータやオフィスコンピュータ等である。保守装置18は、内部スイッチ16又はLAN等の通信手段を介してチャネル制御部11、プロセッサ部12、ドライブ制御部13、キャッシュメモリ14、共有メモリ15、及び内部スイッチ16等のストレージ装置10の構成要素と随時通信を行い、各構成要素から稼働情報等を取得して管理装置7に提供する。また保守装置18は管理装置7から送られてくる制御情報や稼働情報に基づき、各構成要素の設定や制御、保守(ソフトウエアの導入や更新を含む)を行う。
【0046】
管理装置7は、保守装置18とLAN等を介して通信可能に接続されるコンピュータである。管理装置7はストレージ装置10の制御や監視のためのGUI(Graphical User Interface)やCLI(Command Line Interface)等を用いたユーザインタフェースを備える。
【0047】
図7は管理装置7として利用可能な情報処理装置(コンピュータ)のハードウエアの一例である。同図に示すように、この装置は、CPU71、揮発性または不揮発性のメモリ72(RAMまたはROM)、記憶装置73(例えばHDD(Hard Disk Drive)、半導体記憶装置(SSD(Solid State Drive)))、キーボードやマウス等の入力装置74、液晶モニタやプリンタ等の出力装置75、及び保守装置18と通信するための通信インタフェース(通信I/F76)を備えている。
【0048】
図8にストレージ装置10の基本的な機能を示している。同図に示すように、ストレージ装置10は、記憶装置17へのデータの書き込みに関する処理を行う書き込み処理部811、及び記憶装置17からのデータの読み出しに関する処理を行う読み出し処理部812からなるI/O処理部81を備える。
【0049】
図9は、ストレージ装置10がホスト装置3からデータ書き込み要求を含んだフレームを受信した場合に、I/O処理部81の書き込み処理部811が行う基本的な処理(以下、書き込み処理S900と称する。)を説明するフローチャートである。以下、同図とともに書き込み処理S900について説明する。尚、以下の説明において、符号の前に付している「S」の文字はステップを意味する。
【0050】
ホスト装置3から送信されてくるデータ書き込み要求のフレームは、ストレージ装置10のチャネル制御部11によって受信される(S911,S912)。チャネル制御部11はフレームを受信するとその旨をプロセッサ部12に通知する(S913)。
【0051】
プロセッサ部12は、チャネル制御部11から上記通知を受信すると(S921)、当該フレームのデータ書き込み要求に基づくドライブ書き込み要求を生成し、書き込みデータをキャッシュメモリ14に格納する。次にプロセッサ部12は、生成したドライブ書き込み要求をドライブ制御部13に送信する(S922,S923)。チャネル制御部11は、ホスト装置3に完了報告を送信し(S914)、ホスト装置3は完了報告を受信する(S915)。
【0052】
ドライブ制御部13は、ドライブ書き込み要求を受信すると書き込み処理待ちキューに登録する(S924)。ドライブ制御部13は、書き込み処理待ちキューからドライブ書き込み要求を随時読み出す(S925)。ドライブ制御部13は、読み出したドライブ書き込み要求に指定されている書き込みデータをキャッシュメモリ14から読み出し、読み出した書き込みデータを物理ドライブ171に書き込む(S926)。
【0053】
次にドライブ制御部13は、ドライブ書き込み要求について書き込みデータの書き込みが完了した旨の報告(完了報告)をプロセッサ部12に通知し(S927)、プロセッサ部12は送られてきた完了報告を受信する(S928)。
【0054】
図10はストレージ装置10がホスト装置3からデータ読み出し要求を含んだフレームを受信した場合にストレージ装置10のI/O処理部81の読み出し処理部812によって行われるI/O処理(以下、読み出し処理S1000と称する。)を説明するフローチャートである。以下、同図とともに読み出し処理S1000について説明する。
【0055】
ホスト装置3から送信されてくるフレームは、ストレージ装置10のチャネル制御部11によって受信される(S1011,S1012)。チャネル制御部11は、ホスト装置3からフレームを受信すると、その旨をドライブ制御部13に通知する。
【0056】
ドライブ制御部13は、チャネル制御部11から上記通知を受信すると(S1013)、当該フレームに含まれているデータ読み出し要求に指定されているデータ(例えばLBA(Logical Block Address)によって指定される)を、記憶装置17(物理ドライブ171)から読み出す(S1014)。尚、キャッシュメモリ14に読み出しデータが存在する場合(キャッシュヒットした場合)には、記憶装置17からの読み出し処理(S1014)は省略される。プロセッサ部12は、ドライブ制御部13によって読み出されたデータをキャッシュメモリ14に書き込む(S1015)。プロセッサ部12は、キャッシュメモリ14に書き込んだデータを通信I/Fに随時転送する(S1016)。
【0057】
チャネル制御部11は、プロセッサ部12から送られてくる読み出しデータをホスト装置3に順次送信する(S1017,S1018)。読み出しデータの送信が完了すると、チャネル制御部11はホスト装置3に完了報告を送信し(S1019)、ホスト装置3は送られてきた完了報告を受信する(S1020)。
【0058】
ホスト装置3の通信I/F36が備える通信ポート(以下、ホストポートと称する。)には、ストレージネットワーク5に接続している機器を識別するための識別情報であるポートID(例えばWWN(World Wide Name))が付与されている。ポートIDは、通信I/F36が有する通信ポートのそれぞれに付与されている。従って、例えばストレージネットワーク5に接続するための通信ポートを複数備える通信I/F36は夫々の通信ポートに異なるポートIDが付与される。
【0059】
一方、ストレージ装置10のチャネル制御部11がストレージネットワーク5に接続するために備える通信ポート(以下、ストレージポートと称する。)にもポートID(例えばWWNやMACアドレス)が付与されている。
【0060】
以下ホスト装置3の通信I/F36に付与されているポートIDのことをホストポートIDと、チャネル制御部11が備える通信ポートの夫々に付与されているポートIDのことをチャネルポートIDと称する。
【0061】
ストレージ装置10は、物理ドライブ171の記憶領域を予め定められた割当単位(以下、物理ページと称する。)で割り当てることにより構成される論理的な記憶領域である論理ユニット(LU:Logical Unit)を単位として、物理ドライブ171の記憶領域をホスト装置3に提供する。例えば論理ユニットは、ホスト装置3にインストールされているオペレーティングシステムにおいてデバイスファイル(Device File)やドライブレター(ドライブ名)に対応づけられる。論理ユニットの夫々には論理ユニットごとに固有の識別子である論理ユニット番号(LUN(Logical Unit Number))が付与される。ホスト装置3は、LUNにより論理ユニットを特定する。LUNは例えばホスト装置3からストレージ装置10に送信されるデータ入出力要求に設定される。
【0062】
ストレージ装置10は、物理ドライブ171が提供する物理的な記憶領域(以下、物理記憶領域と称する)を、この物理記憶領域を用いて論理的に設定される記憶領域である論理デバイス(LDEV(Logical Device))を単位として認識している。各論理デバイスには、論理デバイスごとに固有の論理デバイス番号(LDEV番号)が識別子として付与されている。論理デバイスの記憶領域は、例えば複数のハードウエアをRAID(Redundant Arrays of Inexpensive (or Independent) Disks)方式(RAID0〜6の少なくともいずれか)で制御することによって構成されている。
【0063】
図11は、ホスト装置3からストレージ装置10へのアクセス経路(パス)を説明する模式図である。同図に示すように、ホスト装置3からストレージ装置10へのアクセス経路は、ホストポートID(ホストポート1、ホストポート2、・・・)、ストレージポートID(ストレージポート1、ストレージポート2、・・・)、LUN(LUN1、LUN2、・・・)及びLDEV番号(LDEV1、LDEV2、・・・)の組み合わせによって特定することができる。
【0064】
図12にストレージ装置10の記憶装置17にデータの書き込みを行おうとする際、ホスト装置3がストレージ装置10に送信するデータ書き込み要求1200のデータフォーマットの一例、及び、ストレージ装置10の記憶装置17からデータを読み出そうとする際、ホスト装置3がストレージ装置10に送信するデータ読み出し要求1250のデータフォーマットの一例を示している。
【0065】
同図に示すように、データ書き込み要求1200には、I/Oコマンド1211、LUN1212、アドレス1213、送信元ポートID1214、及び書き込みデータ1215などの情報が含まれている。このうちI/Oコマンド1211には、ストレージ装置10にデータの書き込みを要求するコマンドが設定される。LUN1212には、データの書き込み先の論理ユニットのLUNが設定される。アドレス1213には、データの書き込み先となる記憶領域を指定するアドレスが設定される。送信元ポートID1214には、当該要求の送信元のホスト装置3の通信I/F36に付与されているホストポートIDが設定される。書き込みデータ1215には、当該要求により記憶装置17に書き込もうとする書き込みデータが設定される。
【0066】
また同図に示すように、データ読み出し要求1250には、I/Oコマンド1251、LUN1252、アドレス1253、送信元ポートID1254、及びデータサイズ1255等の情報が含まれている。このうちI/Oコマンド1251には、ストレージ装置10にデータの読み出しを要求するコマンドが設定される。LUN1252には、データの読み出し先の論理ユニットのLUNが設定される。アドレス1253には、データの読み出し先となる記憶領域を指定するアドレスが設定される。送信元ポートID1254には、当該要求の送信元のホスト装置3の通信I/F36に付与されているホストポートIDが設定される。データサイズ1255には、当該要求によって記憶装置17から読み出そうとしているデータのデータサイズが設定される。
【0067】
図13は、ストレージ装置10にて行われるデータ転送に関する動作を説明した図であり、チャネル制御部11(データ転送制御装置)がキャッシュメモリ14(転送元装置)に格納されているデータを読み出してホスト装置3(転送先装置)に送信する際に行われる動作を説明した図である。また図14は、図13に示す動作の時系列的な関係を説明したフローチャートである。
【0068】
これらの図に示す動作は、例えば、ホスト装置3から送られてくるデータ読み出し要求1250に応じて行われ、例えば、図10のS1016〜S1017の処理に際して行われる動作である。以下、図13及び図14とともに説明する。
【0069】
まずプロセッサ部12のMP122(他の装置)は、第1DMA1142にデータ転送パラメータ(以下、転送パラメータ1500と称する。)を設定する(S1311,S1411)。この転送パラメータ1500によるデータ転送の対象となるデータは、例えば、ドライブ制御部13によってキャッシュメモリ14にステージングされたデータである。
【0070】
尚、第1DMA1142に対する転送パラメータ1500は、このようにMP122が第1DMA1142に対して直接設定するようにしてもよいし、MP122から第1制御装置1141に転送パラメータ1500を送信し、これを受信した第1制御装置1141が第1DMA1142に対して転送パラメータ1500を設定するように、つまりMP122が、第1制御装置1141を介して第1DMA1142に転送パラメータ1500を設定するようにしてもよい。
【0071】
尚、ホスト装置3から送られてくるデータ読み出し要求1250に応じて上記動作が行われる場合、転送パラメータ1500の設定はそのデータ読み出し要求1300について必要な回数だけ繰り返し行われる。必要な回数は、例えば、CCW(Channel Command Word)チェインを構成しているCCWの数に対応した回数である。
【0072】
図15に上記転送パラメータ1500のデータ構造を示す。同図に示すように、転送パラメータ1500には、第1DMA1142のデータ転送のためのパラメータ(以下、第1DMA用転送パラメータ151(第1転送パラメータ)と称する。)に加えて、第2DMA1112のデータ転送のためのパラメータ(以下、第2DMA用転送パラメータ152(第2転送パラメータ)と称する。)が付帯している。同図に示しているように、第2DMA用転送パラメータ152は、例えば、転送パラメータ1500のデータフォーマットの空き領域155に設定される。
【0073】
第1DMA用転送パラメータ151は、第1転送元情報1511及び第1転送先情報1512を含む。第1転送元情報1511には、第1DMA1142によるデータ転送についてのデータの転送元を示す情報が設定される。第1転送先情報1512には、第1DMA1142によるデータ転送についてのデータの転送先を示す情報が設定される。
【0074】
例えば、第1DMA1142によるデータ転送の転送方向が、キャッシュメモリ14からメモリ113である場合には、第1転送元情報1511にはキャッシュメモリ14のアドレスが、第1転送先情報1512にはメモリ113のアドレスが、夫々設定されることになる。また例えば、第1DMA1142によるデータ転送の転送方向が、メモリ113からキャッシュメモリ14である場合には、第1転送元情報1511にはメモリ113のアドレスが、第1転送先情報1512にはキャッシュメモリ14のアドレスが、夫々設定されることになる。
【0075】
第2DMA用転送パラメータ152は、第2転送元情報1521及び第2転送先情報1522を含む。第2転送元情報1521には、第2DMA1112によるデータ転送についてのデータの転送元を示す情報が設定される。第2転送先情報1522には、第2DMA1112によるデータ転送についてのデータの転送先を示す情報が設定される。
【0076】
例えば、第2DMA1112によるデータ転送の転送方向が、メモリ113からホスト装置3である場合には、第2転送元情報1521にはメモリ113のアドレスが、第2転送先情報1522にはホスト装置3側の転送先のデータの格納位置を示す情報が、夫々設定されることになる。また例えば、第2DMA1112によるデータ転送の転送方向が、ホスト装置3からメモリ113である場合には、第2転送元情報1521にはホスト装置3の転送元のデータの格納位置を示す情報が、第2転送先情報1522にはメモリ113のアドレスが、夫々設定されることになる。
【0077】
第1DMA用転送パラメータ151及び第2DMA用転送パラメータ152の内容は、キャッシュメモリ14の記憶領域の管理方法やメモリ113の記憶領域の管理方法など、ストレージ装置10におけるデータの管理方法に応じて設定される。
【0078】
第1DMA1142の転送パラメータ1500が設定されると(S1311,S1411)、内部通信I/F114は、転送パラメータ1500の制御フラグ153の内容を参照する(S1412)。
【0079】
上記制御フラグ153には、その転送パラメータ1500に第2DMA用転送パラメータ152が設定されているか否かを示す情報が設定される。制御フラグ153の内容はMP122が設定する。MP122は、転送パラメータ1500によって第1DMA1142のみを起動させる場合は制御フラグ153に「オフ」を、第1DMA1142によるデータ転送に後続して第2DMA1112によるデータ転送を行う場合は制御フラグ153に「オン」を設定する。従って、制御フラグ153に「オン」が設定されている場合は転送パラメータ1500に第2DMA用転送パラメータ152が設定されることになる。
【0080】
S1412において、制御フラグ153に「オン」が設定されていた場合(S1412:オン)、内部通信I/F114は転送パラメータ1500に付帯する第2DMA用転送パラメータ152をメモリ113又は内部通信I/F114が備える記憶領域に記憶する(S1413)。S1412において、制御フラグ153に「オフ」が設定されていた場合(S1412:オフ)はS1414に進む。
【0081】
S1414(S1312)では、第1DMA1142が、転送パラメータ1500の第1DMA用転送パラメータ151に基づくデータ転送(キャッシュメモリ14に格納されているデータのメモリ113への転送(第1データ転送))を開始する。
【0082】
データ転送の実行中、内部通信I/F114は、データ転送が完了したか否かをリアルタイムに監視する(S1415)。内部通信I/F114は、第1DMA1142によるデータ転送が完了したと判断すると(S1415:YES)、終了ステータス(以下、第1終了ステータスと称する。)をMP122のLM123に書き込む(S1416,S1313)。これによりMP122は第1DMA1142によるデータ転送が終了したことを知ることができる。
【0083】
S1417では、内部通信I/F114が制御フラグ153の内容を参照する(S1417)。制御フラグ153に「オン」が設定されていれば(S1417:オン)、内部通信I/F114はS1413にて記憶した第2DMA用転送パラメータ152を外部通信I/F111の第2DMA1112に設定する(S1314,S1418)。
【0084】
尚、第2DMA1112に対する第2DMA用転送パラメータ152の設定は、このように内部通信I/F114が第2DMA1112に対して直接行うようにしてもよいし、第2DMA1112から第2制御装置1111に第2DMA用転送パラメータ152を送信し、これを受信した第2制御装置1111が第2DMA1112に対して第2DMA用転送パラメータ152を設定するように、つまり第2制御装置1111を介して間接的に第2DMA1112に第2DMA用転送パラメータ152を設定するようにしてもよい。
【0085】
S1417において、制御フラグ153に「オフ」が設定されていた場合には(S1417:オフ)、処理が終了する。尚、LM123に書き込まれた第1終了ステータスはMP122によって適宜参照される(S1431)。
【0086】
内部通信I/F114によって第2DMA用転送パラメータ152が設定されると(S1314,S1418)、第2DMA1112は、第2DMA用転送パラメータ152に基づきデータ転送(メモリ113に格納されているデータのホスト装置3への転送(第2データ転送))を開始する(S1315,S1419)。
【0087】
データ転送の実行中、外部通信I/F111は、データ転送が完了したか否かをリアルタイムに監視する(S1420)。データ転送が完了すると(S1420:YES)、外部通信I/F111は、その終了ステータス(以下、第2終了ステータスと称する。)をMP122のLM123に書き込む(S1316,S1421)。尚、LM123に書き込まれた第1終了ステータス及び第2終了ステータスはMP122によって適宜参照される(S1432)。
【0088】
以上に説明したように、本実施形態のストレージ装置10においては、チャネル制御部11が備える第1DMA1142と第2DMA1112とを用いてキャッシュメモリ14に格納されているデータをホスト装置3に送信する際、MP122が第1DMA1142のための転送パラメータ1500の空き領域155に第2DMA用転送パラメータ152を記述して送信し、第1DMA1142のデータ転送が終了すると内部通信I/F114が第2DMA1112に第2DMA用転送パラメータ152を設定して第2DMA1112を起動する。
【0089】
このように本実施形態のストレージ装置10においては、MP112が第2DMA1112に第2DMA用転送パラメータ152を設定するのではなく、第1DMA1142が第2DMA1112に第2DMA用転送パラメータ152を設定して第2DMA1112を起動させる。このため、第1DMA1142のデータ転送が終了した後に速やかに第2DMA1112を起動させることができる。これによれば、データ転送を起動する側(プロセッサ部12)と起動される側(第1DMA1142、第2DMA1112)との通信距離が長い場合でも、キャッシュメモリ14に格納されているデータのホスト装置3へのデータ転送を高速に行うことができ、ストレージ装置10のホスト装置3に対するレスポンス性能やスループットを向上させることができる。
【0090】
また制御フラグ153を設定することにより、MP122にて内部通信I/F114により第2DMA1112の起動(S1314,S1418)させるか否かを制御することができる。
【0091】
以上の説明はチャネル制御部11が備える第1DMA1142と第2DMA1112とによってキャッシュメモリ14に格納されているデータをホスト装置3に送信する場合であったが、以上に説明した仕組みは他の様々な場面に適用することができる。例えば、ストレージ装置10が、ホスト装置3から送られてくるデータ書き込み要求1200に従いホスト装置3から送られてくる書き込みデータをキャッシュメモリ14に格納する場面(例えば図9のS911〜S913、S921、S922にて行われる動作)に適用することができる。この場合には、例えば、第2DMA1112の第2DMA用転送パラメータ152の転送パラメータ1500をMP122が設定する際、その転送パラメータ1500の空き領域155に第1DMA用転送パラメータ151を付帯させて送信するようにし、第2DMA用転送パラメータ152に基づく自身のデータ転送の終了に際して第2DMA1112が(MP122を介さずに)第1DMA1142に第1DMA用転送パラメータ151を設定して第1DMA1142を起動するようにする。
【0092】
尚、以上に説明した構成は、例えばドライブ制御部13の内部通信I/F131及びドライブI/F134の夫々が備えるDMAによって行われる、記憶装置17とキャッシュメモリ14との間のデータ転送にも応用することができる。また以上に説明した構成の適用範囲はストレージ装置10の技術分野に限られず、バッファを介して複数のデータ転送主体が連携してデータ転送を行う様々な場面に応用することができる。
【0093】
データ転送主体はDMAに限られず、転送パラメータを設定して外部から起動される他の種類のデータ転送主体とすることもできる。
【0094】
図16は、図13及び図14とともに説明した動作に関係する内部通信I/F114の機能を説明した図である。同図において、「S」の文字が付された符号はいずれも図13又は図14に示した符号と対応している。
【0095】
内部通信I/F114は、転送パラメータI/F161、転送パラメータ処理部162、及びデータ転送部163の各機能を有する。同図に示すように、転送パラメータ処理部162は、少なくともプロセッサ部12が備えるMP122の数に対応する数以上のバッファ1621(同図では「BF」と表記している。)を有する。
【0096】
データ転送部163は、第1通信I/F1631、メモリI/F1632、及び第2通信I/F1633を備える。尚、これらの機能は、内部通信I/F114が備えるハードウエアによって、もしくは内部通信I/F114の第1制御装置1141が、内部通信I/F114やメモリ113に保持されているプログラムを読み出して実行することにより実現される。
【0097】
転送パラメータI/F161は、プロセッサ部12が備える一つ以上のMP122のうちのいずれかのMP122から送られてくる転送パラメータ1500を受信し、受信した転送パラメータ1500を、そのMP122に対応するバッファ1621に格納する(S1311,S1411)。
【0098】
転送パラメータ1500がバッファ1621に格納されると、データ転送部163は、転送パラメータ1500の第1DMA用転送パラメータ151に基づき、メモリI/F1632及び第2通信I/F1633によりデータ転送(キャッシュメモリ14に格納されているデータのメモリ113へのデータ転送)を開始する(S1312,S1414)。
【0099】
転送パラメータ処理部162は、第1DMA1142によるデータ転送が完了すると、第1終了ステータスをMP122のLM123に書き込む(S1313,S1416)。尚、プロセッサ部12が複数のMP122を備えている場合には、S1311(S1411)にて転送パラメータ1500の設定を行ったMP122に割り当てられているLM123の記憶領域に第1終了ステータスを書き込む。
【0100】
制御フラグ153に「オン」が設定されている場合(S1412)、転送パラメータ処理部162は、バッファ1621に保持されている第2DMA用転送パラメータ152を外部通信I/F111の第2DMA1112に設定して第2DMA1112を起動する(S1314,S1418)。第2DMA1112は、第2DMA用転送パラメータ152に基づきデータ転送(メモリ113に格納されているデータのホスト装置3へのデータ転送)を開始する(S1315,S1419)。
【0101】
第2DMA1112によるデータ転送が完了すると(S1420:YES)、外部通信I/F111は、第2終了ステータスをMP122のLM123に書き込む(S1316,S1421)。尚、プロセッサ部12が複数のMP122を備えている場合には、S1311(S1411)にて転送パラメータ1500の設定を行ったMP122に割り当てられているLM123の記憶領域に第2終了ステータスを書き込む。
【0102】
図17に第1DMA用転送パラメータ151(第2DMA用転送パラメータ152も同様)の一例(データ1700)を示す。同図に示すように、このデータ1700には、転送バイト数1711、転送元アドレス1712、転送先アドレス1713、転送方向1714、誤り検出符号1715、チェインフラグ1716などの情報が含まれる。このデータ1700は、例えば、10ワード(=4バイト)のデータ長を有する。尚、データ1700のデータ長は必ずしもこの値に限定されない。データ長は可変長であってもよい。
【0103】
転送バイト数1711には転送対象となるデータのデータ長が設定される。転送元アドレス1712には第1転送元情報1511や第2転送元情報1521が設定される。転送先アドレス1713には第1転送先情報1512や第2転送先情報1522が設定される。転送方向1714にはデータ転送の方向を示す情報、例えば、キャッシュメモリ14からメモリ113へのデータ転送であるのか、メモリ113からキャッシュメモリ14へのデータ転送であるのかを示す情報が設定される。
【0104】
誤り検出符号1715には、転送対象となるデータの誤り検出符号(例えばCRC(Cyclic Redundancy Check)符号やLRC(Longitudinal Redundancy Check)符号)が設定される。誤り検出符号によって誤りが検出された場合、チャネル制御部11は、例えばデータ転送を中止して保守装置18にエラー情報を出力する。チェインフラグ1716には、例えば、CCWチェインにおける後続のCCWの存在有無を示す情報が設定される。
【0105】
図18に第1終了ステータス又は第2終了ステータスの一例(データ1800)を示している。同図に示すように、このデータ1800には、転送終了フラグ1811、障害情報1812、誤り検出符号1813などの情報が含まれる。
【0106】
このうち転送終了フラグ1811には、データ転送が終了したか否かを示す値が設定される。障害情報1812には、データ転送に際し何等かの障害が発生した場合に障害の内容を示す情報が設定される。MP122は、障害情報1812を参照することによりデータ転送時の障害の有無を検出する。誤り検出符号1813には、例えば、図17の誤り検出符号1715の内容がそのまま設定される。MP122は、誤り検出符号1813を参照することによりデータ転送時のエラーの有無を検出する。
【0107】
[第2実施形態]
図14に示したように、第1実施形態では、第1DMA1142のデータ転送が完了する前に第2DMA1112のデータ転送が行われてしまうのを防ぐべく、第1DMA1142のデータ転送が終了したか否かの確認を内部通信I/F114にて行い(S1415)、データ転送の終了を確認(S1415:YES)した後、内部通信I/F114が第2DMA用転送パラメータ152を設定して第2DMA1112を起動している(S1418)。以下に説明する第2実施形態では、第1DMA1142のデータ転送が終了したか否かの確認をメモリ113にて行うことにより、第1DMA1142のデータ転送が完了する前に第2DMA1112のデータ転送が行われてしまうのを防ぐようにしている。
【0108】
図19は第2実施形態におけるストレージ装置10の動作を説明したフローチャートである。以下、同図とともに説明する。
【0109】
まずプロセッサ部12のMP122は、チャネル制御部11の内部通信I/F114の第1DMA1142にデータ転送パラメータ(以下、転送パラメータ1500と称する。)を設定する(S1911)。
【0110】
次に内部通信I/F114が、転送パラメータ1500の制御フラグ153の内容を参照する(S1912)。制御フラグ153に「オン」が設定されていた場合は(S1912:オン)S1913に進み、制御フラグ153に「オン」が設定されていた場合は(S1912:オフ)S1915に進む。
【0111】
S1915では、第1DMA1142が、転送パラメータ1500の第1DMA用転送パラメータ151に基づくデータ転送(キャッシュメモリ14に格納されているデータのメモリ113への転送)を開始する。
【0112】
データ転送の実行中、内部通信I/F114は、データ転送が完了したか否かをリアルタイムに監視する(S1916)。第1DMA1142によるデータ転送が完了すると(S1916:YES)、内部通信I/F114は第1終了ステータスをMP122のLM123に書き込む(S1917)。尚、LM123に書き込まれた第1終了ステータスはMP122によって適宜参照される(S1931)。
【0113】
S1913では、内部通信I/F114は、転送パラメータ1500に付帯する第2DMA用転送パラメータ152を外部通信I/F111の第2DMA1112に設定する(S1913)。第2DMA1112は、第2DMA用転送パラメータ152に基づきデータ転送(メモリ113に格納されているデータのホスト装置3への転送)のための動作を開始してメモリ113へのアクセスを開始する。
【0114】
ここで第1DMA1142のデータ転送の実行中、メモリ113はキャッシュメモリ14から転送されてきたデータに対する第2DMA1112からのアクセスを禁止する。そのため、第1DMA1142のデータ転送の実行中に行われた第2DMA1112からのアクセスは第1DMA1142のデータ転送が終了するまでメモリ113側で待ち状態(キューイングされた状態)として保持される。第1DMA1142のデータ転送が終了すると待ち状態が解除され(S1921:YES)、第2DMA1112によるデータ転送が開始される(S1922)。
【0115】
データ転送の実行中は外部通信I/F111によってデータ転送が完了したか否かがリアルタイムに監視される(S1923)。データ転送が完了すると(S1923:YES)、外部通信I/F111は、第2終了ステータスをMP122のLM123に書き込む(S1924)。尚、LM123に書き込まれた第1終了ステータス及び第2終了ステータスはMP122によって適宜参照される(S1932)。
【0116】
以上に説明したように、本実施形態では、第1DMA1142のデータ転送が終了したか否かの監視をメモリ113側で行うようにしているので、その分、内部通信I/F114の負荷が軽減される。このため、内部通信I/F114のリソースを他の処理に割り当てることができ、ストレージ装置10のホスト装置3に対するレスポンス性能やスループットを向上させることができる。
【0117】
また第1実施形態では、内部通信I/F114が、第1終了ステータスの書き込み(S1416)及び第2DMA1112のデータ転送の起動(S1418)の双方の処理を担当するため、その分、第2DMA1112のデータ転送の起動が遅延するが、本実施形態では予め第2DMA用転送パラメータ152の第2DMA1112への設定は済んでいるので、第1DMA1142のデータ転送の終了後は外部通信I/F111にて直ちに内部通信I/F114の介在無しに第2DMA1112のデータ転送を起動させることができる。これによれば、データ転送全体の処理時間が短縮され、ストレージ装置10のホスト装置3に対するレスポンス性能やスループットを向上させることができる。
【0118】
また本実施形態では、第1DMA1142のデータ転送が開始される前に予め第2DMA用転送パラメータ152を設定しておくので(S1913)、第1実施形態のように制御フラグ153を何度も確認する必要がなく(図14のS1412,S1417)、その分、全体の処理時間が短縮される。
【0119】
[第3実施形態]
第2実施形態では、第1DMA1142によるデータ転送が終了したか否かの監視をメモリ113にて行っているが、第3実施形態では、第1DMA1142によるデータ転送が終了したか否かの監視を外部通信I/F111にて行うようにしている。図20は第3実施形態におけるストレージ装置10の動作を説明したフローチャートである。以下、同図とともに説明する。尚、同図におけるS2011、S2012の処理は、図19におけるS1911、S1912の処理と同様である。
【0120】
S2012において、制御フラグ153が「オフ」の場合は(S2012:オフ)S2015に進む。S2015では、第1DMA1142が、転送パラメータ1500の第1DMA用転送パラメータ151に基づくデータ転送(キャッシュメモリ14に格納されているデータのメモリ113へのデータ転送)を開始する。S2016、S2017、S2031の処理は図19におけるS1916、S1917、S1931の処理と同様である。
【0121】
S2012において、制御フラグ153が「オン」の場合は(S2012:オン)S2013に進む。S2013において、内部通信I/F114は、転送パラメータ1500に付帯する第2DMA用転送パラメータ152を外部通信I/F111の第2DMA1112に設定する。
【0122】
第2DMA用転送パラメータ152が設定されると、外部通信I/F111は、第1DMA1142のデータ転送が終了したか否かの監視を開始する(S2021)。この監視は、例えば第2DMA用転送パラメータ152の第2転送元情報1521で特定されるデータへのアクセスが可能か否かを判断することにより行われる。この監視は随時(例えば数μSの間隔で定期的に)行われる。
【0123】
第1DMA1142のデータ転送が終了すると(S2021:YES)、第2DMA1112は、第2DMA用転送パラメータ152に基づきデータ転送(メモリ113に格納されているデータのホスト装置3へのデータ転送)を開始する(S2022)。尚、S2023、S2024、S2032の処理は図19におけるS1923、S1924、S1932の処理と同様である。
【0124】
以上に説明したように、本実施形態では、第1DMA1142のデータ転送が終了したか否かの監視を外部通信I/F111にて行うので、その分、内部通信I/F114の負荷が軽減され、内部通信I/F114のリソースを他の処理に割り当てることができ、ストレージ装置10のホスト装置3に対するレスポンス性能やスループットを向上させることができる。
【0125】
また第1実施形態では、内部通信I/F114が、第1終了ステータスの書き込み(S1416)と第2DMA1112のデータ転送の起動(S1418)の双方を担当するため、その分、第2DMA1112のデータ転送の起動が遅延する可能性があったが、本実施形態では、予め第2DMA用転送パラメータ152の第2DMA1112への設定を済ませているので、第1DMA1142のデータ転送の終了後は外部通信I/F111にて直ちに内部通信I/F114の介在無しに第2DMA1112のデータ転送を起動させることができ、データ転送全体の処理時間が短縮される。
【0126】
また本実施形態では、第1DMA1142のデータ転送が開始される前に予め第2DMA用転送パラメータ152を設定しておくので(S2013)、第1実施形態のように制御フラグ153の確認を何度も行う必要がなく(図14のS1412,S1417)、その分、全体の処理時間が短縮される。
【0127】
[第4実施形態]
第3実施形態では、第1DMA1142のデータ転送が終了したか否かの監視を外部通信I/F111にて行うようにしている。そのため、第1DMA1142のデータ転送に時間がかかると、外部通信I/F111は何度もメモリ113に対して確認のためのアクセスを行うことになり、外部通信I/F111及びメモリ113のリソースが無駄に消費されてしまうことになる。この問題はとくに内部通信I/F114がプロセッサ部12が備える複数のMP122から送られてくる転送パラメータ1500を受け付ける構成になっている場合に顕在化する。
【0128】
即ち上記のような構成である場合にはあるMP122のデータ転送により他のMP122のデータ転送の開始が待たされる場合が生じるが、そのような場合でも、外部通信I/F111は、内部通信I/F114による第2DMA1112への第2DMA用転送パラメータ152の設定(S2013)が行われた後、直ちに第1DMA1142のデータ転送が終了したか否かの確認(メモリ113へのアクセス)を開始してしまう(S2021)。そのため、第2DMA1112に第2DMA用転送パラメータ152が設定されてから第1DMA1142のデータ転送が終了するまでの間、外部通信I/F111及びメモリ113によってリソース(第1DMA1142のデータ転送が終了したか否かを監視する際に用いるリソース)を無駄に消費されてしまうことになる。
【0129】
そこで第4実施形態では、第1DMA1142のデータ転送が開始した際、その開始通知を内部通信I/F114から外部通信I/F111に送信し、外部通信I/F111は、開始通知を受信した後に第1DMA1142のデータ転送が終了したか否かの監視を開始するようにしている。
【0130】
図21は第4実施形態におけるストレージ装置10の動作を説明したフローチャートである。以下同図とともに説明する。尚、同図におけるS2111、S2112、S2113、S2115の処理は図20におけるS2011、S2012、S2013、S2015の処理と同様である。
【0131】
S2116では、内部通信I/F114が、第1DMA1142のデータ転送を開始した旨(以下、開始通知と称する。)を外部通信I/F111に送信する。S2118、S2131の処理は図20におけるS2017、S2031の処理と同様である。
【0132】
一方、外部通信I/F111は、第2DMA1112に対して第2DMA用転送パラメータ152の設定が行われたことを契機として、内部通信I/F114から送られてくる開始通知の受信待機を開始する(S2121)。開始通知を受信すると(S2121:YES)、外部通信I/F111は、第1DMA1142のデータ転送が終了したか否かの監視を開始する(S2122)。この監視は、第2DMA用転送パラメータ152の第2転送元情報1521で特定されるデータへのアクセスが可能になるまで、繰り返し(例えば数μSなどの間隔で定期的に)行われる。S2123、S2124、S2125、S2132の処理は図20におけるS2022、S2023、S2024、S2032と同様である。
【0133】
尚、上記監視は、例えば第2DMA用転送パラメータ152の第2転送元情報1521で特定されるデータへのアクセスが可能か否か(例えば第1DMA1142のデータ転送の実行中は、外部通信I/F111から第2転送元情報1521で特定されるデータへのアクセスが禁止される。)を判断することにより行われる。
【0134】
以上に説明したように、第4実施形態においては、外部通信I/F111は開始通知の受信を契機として第1DMA1142のデータ転送が終了したか否かの監視を開始する。このため、外部通信I/F111は、内部通信I/F114による第2DMA1112への第2DMA用転送パラメータ152の設定がされてから第1DMA1142のデータ転送が開始されるまでの間、第1DMA1142のデータ転送が終了したか否かの監視を行わず、この間に外部通信I/F111及びメモリ113のリソースが無駄に消費されてしまうのを防ぐことができる。これによれば外部通信I/F111及びメモリ113のリソースを他の処理に割り当てることができ、ストレージ装置10のホスト装置3に対するレスポンス性能やスループットを向上させることができる。
【0135】
以上、本発明の好適な実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲を実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。

【特許請求の範囲】
【請求項1】
転送元装置及びメモリと通信可能に接続され、他の装置による第1転送パラメータの設定を受け付け、受け付けた前記第1転送パラメータに従い前記転送元装置から前記メモリへの第1データ転送を行う、第1データ転送装置と、
転送先装置、前記メモリ、及び前記第1データ転送装置と通信可能に接続され、他の装置による第2転送パラメータの設定を受け付け、受け付けた前記第2転送パラメータに従い前記メモリから前記転送先装置への第2データ転送を行う、第2データ転送装置と
を備えるデータ転送制御装置における、前記第1データ転送装置として機能するデータ転送装置であって、
他の装置から前記第2転送パラメータが付帯する前記第1転送パラメータを受け付け、受け付けた前記第1転送パラメータに従い前記第1データ転送を行うとともに、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
データ転送装置。
【請求項2】
請求項1に記載のデータ転送装置であって、
前記第1転送パラメータに従った前記第1データ転送が終了したか否かを判断し、前記第1データ転送が終了したと判断すると、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定し、
前記第2データ転送装置は、前記第1データ転送装置から前記第2転送パラメータの設定を受け付けた後、前記第2データ転送のためのデータ読み出し要求を前記メモリに送信し、
前記メモリは、前記第1データ転送の実行中に前記データ読み出し要求を受信すると、受信した前記データ読み出し要求を前記第1データ転送が終了するまで待ち状態とし、前記第1データ転送が終了した後、前記第2データ転送を開始し、
前記第2データ転送装置は、前記第1データ転送装置から前記第2転送パラメータの設定を受け付けた後、前記メモリにアクセスすることにより前記第1データ転送が終了したか否かを判断し、前記第1データ転送が終了したと判断すると前記第2データ転送を開始し、
前記第1データ転送装置は、前記第1データ転送を開始すると前記第2データ転送装置に前記第1データ転送を開始したことを示す開始通知を送信し、
前記第2データ転送装置は、前記開始通知を受信した後、前記メモリへのアクセスを開始し、
前記第1データ転送装置は、複数の前記他の装置から第1転送パラメータの設定を受け付け、受け付けた前記第1転送パラメータの夫々に従い前記第1データ転送を行い、
前記第1データ転送装置は、
前記他の装置から前記第1転送パラメータの設定を受け付けると、受け付けた前記第1転送パラメータに前記第2転送パラメータが付帯するか否かを判断し、
前記第1転送パラメータに前記第2転送パラメータが付帯しない場合は、前記第1転送パラメータに従い前記第1データ転送を行い、
前記第1転送パラメータに前記第2転送パラメータが付帯する場合は、前記第1転送パラメータに従い前記第1データ転送を行うとともに、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定し、
前記第1データ転送装置は、前記第1転送パラメータに従い前記第1データ転送を行う第1DMA(Direct Memory Access)を備え、
前記第2データ転送装置は、前記第2転送パラメータに従い前記第2データ転送を行う第2DMAを備え
前記第1データ転送装置は、前記第1データ転送の終了後、前記他の装置に前記第1データ転送についての第1終了ステータスを通知し、
前記第2データ転送装置は、前記第2データ転送の終了後、前記他の装置に前記第2データ転送についての第2終了ステータスを通知し、
前記第1転送パラメータは、前記第1データ転送により転送されるデータの前記転送元装置における格納位置を示す情報である第1転送元情報、及び前記データの前記メモリにおける格納位置を示す情報である第1転送先情報を含み、
前記第2転送パラメータは、前記第2データ転送により転送されるデータの前記メモリにおける格納位置を示す情報である第2転送元情報、及び前記データの前記転送先装置における格納位置を示す情報である第2転送先情報を含み、
前記データ転送制御装置は、ホスト装置と通信するチャネル制御部と、記憶装置と通信するドライブ制御部と、キャッシュメモリと、前記チャネル制御部、前記ドライブ制御部、及び前記キャッシュメモリの間のデータ転送を行うプロセッサ部と、前記チャネル制御部及び前記プロセッサ部を通信可能に接続する内部スイッチと、を備えるストレージ装置における、前記チャネル制御部を構成し、
前記メモリは、前記チャネル制御部が備えるメモリであり、
前記転送元装置は、前記キャッシュメモリであり、
前記転送先装置は、前記ホスト装置であり、
前記他の装置は、前記プロセッサ部が備えるマイクロプロセッサであり、
前記プロセッサ部は、メモリと複数の前記マイクロプロセッサを備え、
前記第1データ転送装置は、前記第1データ転送の終了後、前記第1転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第1データ転送についての第1終了ステータスを書き込み、
前記第2データ転送装置は、前記第2データ転送の終了後、前記第1転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第2データ転送についての第2終了ステータスを書き込む
データ転送装置。
【請求項3】
請求項1に記載のデータ転送装置であって、
前記第1転送パラメータに従った前記第1データ転送が終了したか否かを判断し、前記第1データ転送が終了したと判断すると、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
データ転送装置。
【請求項4】
請求項1に記載のデータ転送装置であって、
前記第2データ転送装置は、前記第1データ転送装置から前記第2転送パラメータの設定を受け付けた後、前記第2データ転送のためのデータ読み出し要求を前記メモリに送信し、
前記メモリは、前記第1データ転送の実行中に前記データ読み出し要求を受信すると、受信した前記データ読み出し要求を前記第1データ転送が終了するまで待ち状態とし、前記第1データ転送が終了した後、前記第2データ転送を開始する
データ転送装置。
【請求項5】
請求項1に記載のデータ転送装置であって、
前記第2データ転送装置は、前記第1データ転送装置から前記第2転送パラメータの設定を受け付けた後、前記メモリにアクセスすることにより前記第1データ転送が終了したか否かを判断し、前記第1データ転送が終了したと判断すると前記第2データ転送を開始する
データ転送装置。
【請求項6】
請求項5に記載のデータ転送装置であって、
前記第1データ転送装置は、前記第1データ転送を開始すると前記第2データ転送装置に前記第1データ転送を開始したことを示す開始通知を送信し、
前記第2データ転送装置は、前記開始通知を受信した後、前記メモリへのアクセスを開始する
データ転送装置。
【請求項7】
請求項6に記載のデータ転送装置であって、
前記第1データ転送装置は、複数の前記他の装置から第1転送パラメータの設定を受け付け、受け付けた前記第1転送パラメータの夫々に従い前記第1データ転送を行う
データ転送装置。
【請求項8】
請求項1に記載のデータ転送装置であって、
前記第1データ転送装置は、
前記他の装置から前記第1転送パラメータの設定を受け付けると、受け付けた前記第1転送パラメータに前記第2転送パラメータが付帯するか否かを判断し、
前記第1転送パラメータに前記第2転送パラメータが付帯しない場合は、前記第1転送パラメータに従い前記第1データ転送を行い、
前記第1転送パラメータに前記第2転送パラメータが付帯する場合は、前記第1転送パラメータに従い前記第1データ転送を行うとともに、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
データ転送装置。
【請求項9】
請求項1に記載のデータ転送装置であって、
前記第1データ転送装置は、前記第1転送パラメータに従い前記第1データ転送を行う第1DMA(Direct Memory Access)を備え、
前記第2データ転送装置は、前記第2転送パラメータに従い前記第2データ転送を行う第2DMAを備える
データ転送プロセッサ。
【請求項10】
請求項1に記載のデータ転送装置であって、
前記第1データ転送装置は、前記第1データ転送の終了後、前記他の装置に前記第1データ転送についての第1終了ステータスを通知し、
前記第2データ転送装置は、前記第2データ転送の終了後、前記他の装置に前記第2データ転送についての第2終了ステータスを通知する
データ転送装置。
【請求項11】
請求項1に記載のデータ転送装置であって、
前記第1転送パラメータは、前記第1データ転送により転送されるデータの前記転送元装置における格納位置を示す情報である第1転送元情報、及び前記データの前記メモリにおける格納位置を示す情報である第1転送先情報を含み、
前記第2転送パラメータは、前記第2データ転送により転送されるデータの前記メモリにおける格納位置を示す情報である第2転送元情報、及び前記データの前記転送先装置における格納位置を示す情報である第2転送先情報を含む
データ転送装置。
【請求項12】
請求項1に記載のデータ転送装置であって、
前記データ転送制御装置は、ホスト装置と通信するチャネル制御部と、記憶装置と通信するディスク制御部と、キャッシュメモリと、前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリの間のデータ転送を行うプロセッサ部と、前記チャネル制御部及び前記プロセッサ部を通信可能に接続する内部スイッチと、を備えるストレージ装置における、前記チャネル制御部を構成し、
前記メモリは、前記チャネル制御部が備えるメモリであり、
前記転送元装置は、前記キャッシュメモリであり、
前記転送先装置は、前記ホスト装置であり、
前記他の装置は、前記プロセッサ部が備えるマイクロプロセッサである
データ転送装置。
【請求項13】
請求項12に記載のデータ転送装置であって、
前記プロセッサ部は、メモリと複数の前記マイクロプロセッサを備え、
前記第1データ転送装置は、前記第1データ転送の終了後、前記第1転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第1データ転送についての第1終了ステータスを書き込み、
前記第2データ転送装置は、前記第2データ転送の終了後、前記第1転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第2データ転送についての第2終了ステータスを書き込む
データ転送装置。
【請求項14】
転送元装置及びメモリと通信可能に接続され、他の装置による第1転送パラメータの設定を受け付け、受け付けた前記第1転送パラメータに従い前記転送元装置から前記メモリへの第1データ転送を行う、第1データ転送装置と、
転送先装置、前記メモリ、及び前記第1データ転送装置と通信可能に接続され、他の装置による第2転送パラメータの設定を受け付け、受け付けた前記第2転送パラメータに従い前記メモリから前記転送先装置への第2データ転送を行う、第2データ転送装置と
を備えるデータ転送制御装置を用いたデータ転送方法であって、
前記第1データ転送装置が、他の装置から前記第2転送パラメータが付帯する前記第1転送パラメータを受け付け、受け付けた前記第1転送パラメータに従い前記第1データ転送を行うとともに、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
データ転送方法。
【請求項15】
請求項14に記載のデータ転送方法であって、
前記第1データ転送装置が、前記第1転送パラメータに従った前記第1データ転送が終了したか否かを判断し、前記第1データ転送が終了したと判断すると、前記第1転送パラメータに付帯する前記第2転送パラメータを前記第2データ転送装置に設定する
データ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公表番号】特表2013−515978(P2013−515978A)
【公表日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2012−529031(P2012−529031)
【出願日】平成22年6月7日(2010.6.7)
【国際出願番号】PCT/JP2010/003774
【国際公開番号】WO2011/154986
【国際公開日】平成23年12月15日(2011.12.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】