JP4597507B2 - 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法 - Google Patents

記憶デバイス制御装置及び記憶デバイス制御装置の制御方法 Download PDF

Info

Publication number
JP4597507B2
JP4597507B2 JP2003402996A JP2003402996A JP4597507B2 JP 4597507 B2 JP4597507 B2 JP 4597507B2 JP 2003402996 A JP2003402996 A JP 2003402996A JP 2003402996 A JP2003402996 A JP 2003402996A JP 4597507 B2 JP4597507 B2 JP 4597507B2
Authority
JP
Japan
Prior art keywords
bus
data
processor
communication interface
read 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
Application number
JP2003402996A
Other languages
English (en)
Other versions
JP2005165620A (ja
Inventor
典夫 平児
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 JP2003402996A priority Critical patent/JP4597507B2/ja
Priority to US10/765,109 priority patent/US7039730B2/en
Publication of JP2005165620A publication Critical patent/JP2005165620A/ja
Application granted granted Critical
Publication of JP4597507B2 publication Critical patent/JP4597507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)

Description

本発明は、記憶デバイス制御装置及び記憶デバイス制御装置の制御方法に関する。
近年情報処理装置で取り扱われるデータ量が増加しており、情報処理装置外部でデータを記憶・管理するストレージ装置では、より大容量かつより高速であることが求められている。
特開2003−91497号公報
このような状況の下、ストレージ装置の設計においては、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上させることが求められている。
本発明は、このような背景を鑑みてなされたものであり、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上した記憶デバイス制御装置及び記憶デバイス制御装置の制御方法提供することを目的とする。
上記目的を達成するための本発明のうち主たる発明のひとつは、情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、を備え、前記チャネル制御部は、前記情報処理装置との間で通信を行う少なくとも一つ以上の通信インタフェース部と、 第1のバスを介して前記通信インタフェース部と接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行う、バス間を接続する少なくとも一つ以上のブリッジを有するデータ転送部と、第2のバスを介して前記データ転送部と接続し、前記データ転送部の制御を行うプロセッサと、を備え、前記データ転送部は、前記第1のバスが従う通信規約に応じて、前記第1のバスを介して前記通信インタフェース部から受信したスプリット応答を前記第2のバスを介して前記プロセッサに送信するか否かを選択することが可能であり、前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信しない場合には、前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、前記データ転送部が、前記読み出しコマンドを受信するとともに、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を前記第2のバスを介して前記プロセッサに送信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放し、前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記プロセッサに送信せずに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信する場合には、前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、前記データ転送部が、前記読み出しコマンドを受信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記第2のバスを介して前記プロセッサに送信するとともに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放することとする。
本発明によれば、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上した記憶デバイス制御装置及び記憶デバイス制御装置の制御方法を提供できる。
以下、本発明の実施形態の一例を図面を用いて詳細に説明する。
===ストレージシステム全体像===
図1は、本発明を適用した記憶デバイス制御装置200を含む情報処理システムの全体構成を示すブロック図である。図1に示すように、ストレージシステムは、各種の情報処理サービスを提供する情報処理装置100と、記憶ボリューム300の記憶領域を情報処理装置100に提供する記憶デバイス制御装置200とを含んで構成される。
情報処理装置100はCPU(Central Processing Unit)やメモリを備えたコンピュータである。情報処理装置100では、CPUにより各種のプログラムが実行され、様々な機能が実現される。情報処理装置100は、例えば、パーソナルコンピュータやワークステーション、メインフレームコンピュータなどである。情報処理装置100は1台のコンピュータであってもよいし、複数台のコンピュータであってもよい。情報処理装置100上ではオペレーティングシステムが実行され、オペレーティングシステム上では様々なアプリケーションプログラムが実行される。
情報処理装置100は、SAN(Storage Area Network)400を介して記憶デバイス制御装置200と接続されている。SAN400を介して行われる情報処理装置100と記憶デバイス制御装置200との間の通信はファイバチャネルプロトコルに従って行われる。SAN400はファイバチャネルプロトコル以外にもさまざまなプロトコルに従った通信経路とすることもできる。SAN400には、例えば、LAN(Local Area Network)やSCSI(Small Computer System Interface)、iSCSI(Internet Small Computer System Interface)、ESCON(Enterprise System Connection)(登録商標)、FICON(Fibre Connection)(登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre connection Architecture)(登録商標)などを用いることができる。なお、情報処理装置100と記憶デバイス制御装置200とは直接接続する形態としてもよい。
情報処理装置100はファイバチャネルプロトコルに従って、データ入出力要求を記憶デバイス制御装置200に送信する。記憶デバイス制御装置200は、情報処理装置100からデータ入出力要求を受信すると、受信したデータ入出力要求に応じて、記憶ボリューム300に対するデータの入出力に関する処理を行う。このようにして、情報処理装置100上で実行されるアプリケーションプログラムは、記憶ボリューム300の記憶領域に適宜アクセスしながら各種処理を実行する。
記憶デバイス制御装置200は多数の物理ディスクを備え、複数の記憶ボリューム300の提供する記憶領域を管理している。記憶ボリューム(記憶デバイス)300とは、物理ディスクにより提供される物理ボリュームと、物理ボリューム上に論理的に設定される論理ボリュームとを含む記憶領域である。物理ディスクとしては、例えば、ハードディスク装置や半導体記憶装置等を用いることができる。記憶デバイス制御装置200は、複数の記憶ボリューム300によってディスクアレイを構成し、RAIDによって管理される記憶領域を提供することもできるし、単一の物理ディスクによる記憶領域を提供するようにもできる。記憶ボリューム300は記憶デバイス制御装置200に一体的に構成されてもよいし、記憶デバイス制御装置200から独立した装置として、SCSIやLAN、SANといった通信経路によって記憶デバイス制御装置200と接続する形態としてもよい。
図1に示すように、記憶デバイス制御装置200は、チャネル制御部1乃至3(210)、共有メモリ220、キャッシュメモリ230、ディスク制御部1乃至3(240)、接続部250を備える。
チャネル制御部210は情報処理装置100との間で通信を行うための通信インタフェースを備え、情報処理装置100から記憶デバイスに対して送信されるデータ入出力要求を受信する機能を有する。チャネル制御部210はデータ入出力要求を受信すると、データ入出力要求に応じて記憶ボリューム300のアドレスやデータ長等を求め、記憶ボリューム300へのアクセスを行うためのI/Oコマンドを作成する。このようにして、記憶デバイス制御装置200は、記憶ボリューム300の提供する記憶領域を情報処理装置100に提供する。なおI/Oコマンドにはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはI/Oコマンドには書き込みデータが含まれているようにすることもできる。I/Oコマンドの作成は、後述するマイクロプロセッサ211により行われる。
接続部250はチャネル制御部210、共有メモリ220、キャッシュメモリ230、ディスク制御部240を相互に接続する。チャネル制御部210、共有メモリ220、キャッシュメモリ230、ディスク制御部240間でのデータやコマンドの授受は接続部250を介して行われる。接続部250は、例えば、高速スイッチングによりデータ伝送を行う高速クロスバスイッチなどの高速バスである。
共有メモリ220及びキャッシュメモリ230は、チャネル制御部210やディスク制御部240により共有される記憶メモリである。共有メモリ220は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ230は主にデータを記憶するために利用される。チャネル制御部210は生成したI/Oコマンドを共有メモリ220に書き込む。チャネル制御部210は、例えば書き込みデータ等のI/Oコマンドに付随するデータはキャッシュメモリ230に書き込む。
ディスク制御部240は記憶ボリューム300に対するデータ入出力に関する制御を行う。ディスク制御部240は、共有メモリ220に書き込まれたI/Oコマンドを読み出し、I/Oコマンドに従って記憶ボリューム300へデータの入出力に関する制御を行う。また、ディスク制御部240は、チャネル制御部210がI/Oコマンドに指定した論理アドレスを物理アドレスに変換する。また、ディスク制御部240は、記憶ボリューム300における物理ディスクがRAIDにより管理されている場合に、RAID構成(例えば、RAID0,1,5)に従ったデータのアクセスを行う。
例えば、チャネル制御部210は、情報処理装置100から受信したデータ入出力要求がデータの読み出し要求である場合には、読み出し対象となるデータがキャッシュメモリ230に存在するかどうかを調べる。読み出し対象となるデータがキャッシュメモリ230に存在すれば、チャネル制御部210はそのデータを情報処理装置100に送信する。一方、読みだし対象となるデータがキャッシュメモリ230に存在しない場合には、チャネル制御部210は読み出しコマンドを共有メモリ220に書き込むと共に、共有メモリ220を監視する。読み出しコマンドが共有メモリ220に書き込まれたことを検出したディスク制御部240は、記憶ボリューム300から読みだし対象となるデータを読み出してこれをキャッシュメモリ230に書き込むと共に、その旨を共有メモリ220に書き込む。チャネル制御部210は読みだし対象となるデータがキャッシュメモリ230に書き込まれたことを検出すると、そのデータを情報処理装置100に送信する。
このようにチャネル制御部210及びディスク制御部240の間では、キャッシュメモリ230を介してデータの授受が行われる。
===チャネル制御部===
図2は、チャネル制御部210の内部構成を示す図である。
マイクロプロセッサ(MP)1及び2(211)(第1のプロセッサ及び第2のプロセッサ)、ローカルメモリ1及び2(212)、通信インタフェース(PRTCL)1及び2(213)(第1の通信インタフェース部及び第2の通信インタフェース部)、データバッファ214、接続コネクタ217、データ転送LSI500(データ転送部)を備える。
通信インタフェース1(213)とデータ転送LSI500とは、バス2103(第1のバス)により接続されている。マイクロプロセッサ1(211)とデータ転送LSI500とは、バス2101(第2バス)により接続されている。
また、通信インタフェース2(213)とデータ転送LSI500とはバス2104(第3のバス)により接続されている。マイクロプロセッサ2(211)とデータ転送LSI500とは、バス2102(第4のバス)により接続されている。本実施の形態において、バス2101及び2102はPCI−X規格に従うバスであるものとする。また、バス2103及び2104はPCI規格に従うバスであるものとする。
通信インタフェース213は、情報処理装置100との間で通信を行うためのインタフェースを備えている。通信コネクタ216は情報処理装置100と通信を行うためのコネクタである。本実施の形態におけるチャネル制御部210の場合、通信コネクタ216は、SAN400に接続可能なコネクタであり、例えば、ファイバチャネルに対応している。チャネル制御部210が情報処理装置100からファイル名を指定したデータ入出力要求を受け付けるのであれば、通信コネクタは例えばイーサネット(登録商標)に対応し、チャネル制御部210はLAN経由でデータ入出力要求を受け付けるようにしてもよい。
マイクロプロセッサ211はチャネル制御部210全体の制御を司る。マイクロプロセッサ211がローカルメモリ212に記憶されたアプリケーションプログラムを実行することによって、各種の機能が実現する。
接続コネクタ217はチャネル制御部210が記憶デバイス制御装置200と接続するためのコネクタである。接続コネクタ217が記憶デバイス制御装置200側のコネクタと嵌合することにより、チャネル制御部210のボードは記憶デバイス制御装置200と電気的に接続される。チャネル制御部210は接続コネクタ217を介して接続部250に接続され、記憶デバイス制御装置200内の共有メモリ220やキャッシュメモリ230、ディスク制御部240などにアクセスが可能となっている。
データ転送LSI500は、マイクロプロセッサ211からの指示により、デバイス間でのデータの転送を行う装置である。データ転送LSI500はPCIバス及びPCI−Xバスのマスタ(イニシエータ)として、バス2101乃至2104にデータを送出することができる。また、バス2101乃至2104に接続しているマイクロプロセッサ211や通信インタフェース213等のデバイスからコマンドを受信するターゲットデバイスとしても動作することができる。データ転送LSI500は、マイクロプロセッサ211からコマンドを受信すると、そのコマンドに対する応答が後から送信されることを示すスプリット応答をマイクロプロセッサ211に返信することができる。これにより、イニシエータがターゲットへコマンドを送信するサイクルと、ターゲットがイニシエータへ応答を返信するサイクルとを別サイクルとする、いわゆるスプリットトランザクションが実現される。PCI−X規格では上記のスプリットトランザクションが規定されており、バス2101及び2102はPCI−X規格に従うバスであるため、データ転送LSI500はマイクロプロセッサ1及び2(211)との間でスプリットトランザクションを実現することができ、バスの使用効率を向上することができる。
また、図2に示すように、データ転送LSI500は、バス間を接続するための4つのブリッジ(ブリッジA501、ブリッジB502、ブリッジC503、及びブリッジD504)、データバッファ2に対するアクセスを行うバッファコントローラ(BUFCTL)505、モードセレクタ506を備える。
ブリッジC503(第1のバスブリッジ、第1のバスインタフェース)、ブリッジA501(第2のバスブリッジ、第2のバスインタフェース)、ブリッジD504(第3のバスブリッジ、第3のバスインタフェース)、ブリッジB502(第4のバスブリッジ、第4のバスインタフェース)はいずれも、バス間のデータを転送するための装置である。
ブリッジA501は、バス2101に接続している。ブリッジA501は、バス2101を介してマイクロプロセッサ1(211)との間でデータのやりとりを行う。ブリッジB502は、バス2102に接続している。ブリッジB502は、バス2102を介してマイクロプロセッサ2(211)との間でデータのやりとりを行う。
ブリッジC503は、バス2103に接続している。ブリッジC503は、バス2103を介して通信インタフェース1(213)との間でデータのやりとりを行う。ブリッジD504は、バス2104に接続している。ブリッジD504は、バス2104を介して通信インタフェース2(213)との間でデータのやりとりを行う。
モードセレクタ506は、データ転送LSI500が通信インタフェース1及び2(213)と接続するバス2103及び2104が、PCIバスであるかPCI−Xバスであるかを設定する信号線である。モードセレクタ506は、例えば、ハイレベルの信号が供給されている間はバス2103及び2104がPCI−Xバスであるものとして、PCI−X規格に従って信号を送受信することができる。なお、モードセレクタ506は信号線以外にも、スイッチとしてもよい。また、プロセッサがローカルメモリに設定されている値に応じて、バス2103及び2104のバスの種類を特定するようにしてもよい。このように、データ転送LSI500は、PCI及びPCI−Xの両規格に従うバスに接続することができる。なお、PCI規格及びPCI−X規格以外の規格に従うバスに対応するようにしてもよい。
このように、データ転送LSI500は、複数の規格に従うバスに接続することができる。そのため、データ転送LSI500を搭載した記憶デバイス制御装置200は、技術の進歩に伴い新しい規格と古い規格とが混在するような状況においても、様々な規格に柔軟に対応することができる。
===データ転送処理1===
図3は、本実施の形態に係るデータ転送処理の流れを示す図である。図3は、マイクロプロセッサ1(211)が通信インタフェース1(213)に対してデータの取得を要求するリードコマンド(読み出しコマンド)を送信し、通信インタフェース1(213)からデータを受信する流れを示している。図3に示すデータ転送処理は、例えば、データ転送LSI500がデータバッファ214に記憶されているデータをキャッシュメモリ230に転送する際、転送するデータ長やアドレス等のデータ転送に必要な情報を取得するときに、その情報を転送する処理として行われる。
マイクロプロセッサ1(211)は、バス2101の使用権を獲得し、リードコマンド(READ−CMD)をブリッジA501に送信する(S3001)。ブリッジA501は、リードコマンドを受信し、スプリット応答(SPLIT−RESP)をマイクロプロセッサ1(211)に送信する(S3002)。マイクロプロセッサ1(211)は、スプリット応答を受信すると、バス2101の使用権を解放する。従って、マイクロプロセッサ1(211)は、送信したリードコマンドに応じたデータが返信されるまで他の処理を行うことができる。図3において、期間31がマイクロプロセッサ1(211)が他の処理を行うことができる期間である。
ブリッジA501は、リードコマンドをブリッジC503に転送する(S3003)。この時点で、ブリッジA501は、他のコマンドを受け付けることができるようになる。ブリッジC503は、リードコマンドを受信すると、バス2103の使用権を獲得し、通信インタフェース1(213)にリードコマンドを送信する(S3004)。
通信インタフェース1(213)はリードコマンドを受信すると、受信したリードコマンドに応じて、例えば、情報処理装置100から受信したデータ入出力要求のデータ長等のリードデータ(READ−DATA)を作成する。通信インタフェース1(213)はデータを作成すると、リードデータをブリッジC504に送信する(S3005)。バス2103が例えばPCIバス等のスプリットトランザクションを用いることができないバスである場合、通信インタフェース1(213)がリードデータを作成する間の(S3004)から(S3005)までの期間、ブリッジC503はビジー状態となる。また、ブリッジC503がバス2103の使用権を獲得しているため、バス2103もビジー状態となる。
ここで、ブリッジA501が通信インタフェース1(213)からのデータを待機するとすれば、図3の期間32の間もブリッジA501は他のコマンドを受け付けることができないビジー状態となってしまう。しかしながら、上記のブリッジA501は、期間32の分だけコマンドを受け付けることができる期間を長くすることができる。本実施の形態において、ブリッジA501はブリッジC503とブリッジD504との両方に接続しているため、ブリッジC503がビジー状態であったとしても、ブリッジD504に対してコマンドを転送することができる。従って、ブリッジA501がコマンドを受け付けることができる期間が長くなる。よって、データ転送LSI500がコマンドをより多く受け付けることが可能となり、効率的なデータ転送LSI500の動作を図ることができる。
一方、ブリッジC503は、通信インタフェース1(213)からリードデータを受信すると、バス2103をの使用権を解放し、リードデータをブリッジA501に転送する(S3006)。
ブリッジA501は通信インタフェース1(213)から送信されたリードデータを受信すると、バス2101の使用権を獲得し、マイクロプロセッサ1(211)にリードデータを送信し(S3007)、バス2101の使用権を解放する。
このようにして、マイクロプロセッサ211(プロセッサ)が通信インタフェース213(通信インタフェース部)にリードコマンド(読み出しコマンド)を送信すると、データ転送LSI500(データ転送部)は、通信インタフェース213からリードデータの応答であるリードデータを受信するよりも前に、マイクロプロセッサ211にスプリット応答を送信することができる。従って、マイクロプロセッサ211は、通信インタフェース213から送信されるリードデータが到着するまで待機することなく、他の処理を行うことができる。よって、マイクロプロセッサ211をより効率的に動作させることができる。マイクロプロセッサ211の処理効率が向上すると、記憶デバイス制御装置200全体としての処理効率も向上することになる。
なお、本実施の形態において、マイクロプロセッサ1(211)がバス2101の使用権を獲得する仕組みは、PCIバス等で一般的に用いられている調停回路を利用したものを想定している。マイクロプロセッサ1(211)は、例えば、ブリッジA501の備える調停回路(不図示)に、バス2101を使用することを示すリクエスト信号を送信し、調停回路がマイクロプロセッサ1(211)にバス2101使用を許可する旨を示す応答信号を送信する。これにより、ブリッジA501はバス2101に接続するデバイスにバス2101の使用権を与えることができる。また、ブリッジB502、ブリッジC503、及びブリッジD504も同様に調停回路を備え、夫々バス2102、バス2103、及びバス2104の使用権を各バスに接続するデバイスに与えることができる。
次に、上述したデータ転送処理をタイミングチャートを用いて説明する。図4は、上記の処理における各信号を説明するタイミングチャートである。
ブリッジA501がマイクロプロセッサ1(211)にスプリット応答を返信し、マイクロプロセッサ1(211)がバス2101の使用権を解放した時点が、T1である。
通信インタフェース1(213)がリードデータをブリッジA501に送信し(DATA−TRANS)、ブリッジA501が受信したリードデータをマイクロプロセッサ1(211)に送信し始めた時点がT2である。
図4に示すように、T1〜T2の期間はバス2101の使用権が解放されている。T1〜T2の期間は、ブリッジA501はビジー状態であるため、マイクロプロセッサ1(211)は、ブリッジA501にコマンドを送信することはできない。しかしながら、マイクロプロセッサ1(211)はバス2101に接続する他のデバイスとやり取りをするなど、他の処理を行うことができる。そのため、より効率的なマイクロプロセッサ1(211)の動作を実現することができる。
なお、本実施の形態では、バス2103はPCIバスであるとしているが、PCI−Xバスとしてもよい。この場合、通信インタフェース1(213)はスプリット応答をブリッジC503に返信することができる。図5は、バス2103がPCI−Xバスであった場合の上記図3に示すデータ転送処理の流れを示す図である。
図5に示す処理の流れはほぼ図3に示す処理の流れと同様であるが、通信インタフェース1(211)は、ブリッジC503から受信したリードコマンドに対して、スプリット応答を送信する(S5001)箇所が図3と異なる。ブリッジA501は、マイクロプロセッサ1(211)が送信したリードコマンドに応じてスプリット応答を返信(S3002)している。通信インタフェース1(213)から受信したスプリット応答を、ブリッジC503がブリッジA501に、ブリッジA501がマイクロプロセッサ1(211)に転送するようにすることもできる。しかしながら、その場合に比べ、本実施の形態によるデータ転送処理では、図5に示す期間51の分だけ、マイクロプロセッサ1(211)が他の処理を行うことができる期間が長くなっている。
===データ転送処理2===
図6は、マイクロプロセッサ1(211)が通信インタフェース1(213)及び通信インタフェース2(213)の両方からデータを読み出すときの処理の流れを示す図である。
マイクロプロセッサ1(211)は、バス2101の使用権を獲得し、通信インタフェース1(213)に対するリードコマンド1(READ−1)をブリッジA501に送信する(S6001)。ブリッジA501はスプリット応答をマイクロプロセッサ1(211)に返信し(S6002)、マイクロプロセッサ1(211)はバス2101の使用権を解放する。ブリッジA501は、ブリッジC503にリードコマンド1を転送する(S6003)。ブリッジC503は、バス2103の使用権を獲得し、受信したリードコマンド1を通信インタフェース1(213)に送信する(S6004)。通信インタフェース1(213)は、受信したリードコマンド1に応じたリードデータ1(DATA−1)を作成する。
その間に、マイクロプロセッサ1(211)は、再度バス2101の使用権を獲得し、通信インタフェース2(213)に対するリードコマンド2(READ−2)をブリッジA501に送信する(S6005)。ブリッジA501はスプリット応答をマイクロプロセッサ1(211)に返信し(S6006)、マイクロプロセッサ1(211)はバス2101の使用権を解放する。ブリッジA501は、ブリッジD504にリードコマンド2を転送する(S6007)。ブリッジD504は、バス2104の使用権を獲得し、受信したリードコマンド2を通信インタフェース2(213)に送信する(S6008)。通信インタフェース2(213)は、受信したリードコマンド2に応じたリードデータ2(DATA−2)を作成する。
通信インタフェース1(213)は、リードコマンド1に応じたリードデータ1を作成すると、ブリッジC503にリードデータ1を返信する(S6009)。ブリッジC503は、リードデータ1を受信し、バス2103をの使用権を解放し、受信したリードデータ1をブリッジA501に転送する(S6010)。ブリッジA501は、バス2101の使用権を獲得し、受信したリードデータ1をマイクロプロセッサ1に送信し(S6011)、バス2101の使用権を解放する。
また、通信インタフェース2(213)が、リードコマンド2に応じたリードデータ2を作成すると、ブリッジD504にリードデータ2を返信する(S6012)。ブリッジD504は、リードデータ2を受信し、バス2104の使用権を解放し、受信したリードデータ2をブリッジA501に転送する(S6013)。ブリッジA501は、バス2101の使用権を獲得し、受信したリードデータ1をマイクロプロセッサ1に送信し(S6014)、バス2101の使用権を解放する。
このようにして、マイクロプロセッサ1(211)と通信インタフェース1及び2(213)との間でデータが転送される。上記のデータ転送処理では、ブリッジA501は(S6002)においてマイクロプロセッサ1(211)にスプリット応答を返信し、ブリッジC503にリードコマンド1を転送し、ビジー状態ではなくなる。従って、マイクロプロセッサ1(211)は、再送信することなく、リードコマンド2をブリッジA501に送信(S6005)することができる。
図7及び図8は、上述した、マイクロプロセッサ1(211)が通信インタフェース1(213)及び通信インタフェース2(213)の両方からデータを読み出す際のデータ転送処理にかかる信号を説明する図である。
図7は、ブリッジA501が、ブリッジC503及びブリッジD504と接続せず、直接バス2103及びバス2104と接続する形態における、上記データ転送処理を説明するタイミングチャートである。図8は、図6に示すデータ転送処理における信号を説明するタイミングチャートである。
図7では、ブリッジA501は、リードコマンド1を通信インタフェース1(213)に送信してからリードデータ1を受信するまでの間、ビジー状態(BRIDGE−BUSY7101)となっている。そのため、マイクロプロセッサ1(211)は、リードコマンド2をブリッジA501に送信することができず、再送信(RETRY)を行う必要がある(S7001)。マイクロプロセッサ1(211)が、リードコマンド2を再度送信し(S7002)、通信インタフェース2(213)からのリードデータ2を受信し(S7003)、リードデータ2の受信が完了する時点がT7である。
これに対し、図8では、ブリッジA501はマイクロプロセッサ1(211)にリードコマンド1に対するスプリット応答を送信し(S8001)て、ビジー状態ではなくなる。そのため、マイクロプロセッサ1(211)はリードコマンド2をブリッジA501に送信しても(S8002)、ブリッジA501はリードコマンド2を受信することができる。従って、マイクロプロセッサ1(211)はリードコマンド2を再送信する必要がない。マイクロプロセッサ1(211)が通信インタフェース2(213)からのリードデータ2を受信し(S8003)、リードデータ2の受信が完了する時点はT8である。
T7とT8とを比較しても明らかなように、本実施の形態におけるデータ転送LSI500によれば、データ転送処理にかかる時間が短縮されることになる。すなわち、本発明によれば、ブリッジA501(第2のバスインタフェース部)は、リードコマンド1(第1の読み出しコマンド)を受信すると、ブリッジC503(第1のバスインタフェース部)に送信するため、ビジー状態にならず、リードコマンド2(第2の読み出しコマンド)を受信することができる。従って、マイクロプロセッサ1(211)(プロセッサ)は、リードコマンド2(第2のコマンド)を送信するために待機することなく、データ転送LSI500(データ転送部)に第2のコマンドを送信することができる。また、マイクロプロセッサ1(211)(プロセッサ)は、第1及び第2のコマンドを送信するとスプリット応答を受信するので、第1及び第2のコマンドに応じた読み出しデータを受信するまでバス2101を占有することなく、バス2101の使用権を解放することができる。よって、バス2101の効率的な使用が可能となる。また、マイクロプロセッサ1(211)はリードデータを受信するまで待機することなく、他の処理を行うことができる。よって、マイクロプロセッサ211の効率的な利用が可能となる。これにより、マイクロプロセッサ211の処理効率が上がり、多くの処理を行うことができるので、記憶デバイス制御装置200全体の処理効率も向上する。
図9に、バス2103及びバス2104がPCI−Xバスである場合のデータ転送処理の流れを示す。図9でも上記の図6と同様に、マイクロプロセッサ1(211)は、リードコマンド1に対するスプリット応答をブリッジA501から受信した後、再送信することなく、リードコマンド1に応じたリードデータ1を受信するよりも前に、リードコマンド2をブリッジA501に送信できるようになっている。
また、マイクロプロセッサ211から通信インタフェース213に対するコマンドの送信のみならず、通信インタフェース213からマイクロプロセッサ211に対するコマンドの送信においても同様に、データ転送処理にかかる時間を短縮することができる。
図10に、通信インタフェース1(213)が、マイクロプロセッサ1及び2(211)にリードコマンドを送信する際の、データ転送処理の流れを示す。なお、図10において、通信インタフェース1(213)が接続するバス2103は、PCI−Xバスであることとする。ここでも図9と同様に、ブリッジC503はリードコマンド1に応じたマイクロプロセッサ1(211)からのリードデータ1が応答されるよりも前にリードコマンド2を受信することができる。そのため、通信インタフェース1(213)は、リードコマンド1に対するスプリット応答をブリッジC503から受信した後、リードコマンド2を再送信することなく、ブリッジC503に送信することができる。従って、通信インタフェース1(213)は、リードコマンド2の送信にかける時間を短縮することができる。よって、通信インタフェース1(213)は、リードコマンドの送信以外の処理に多く時間をかけることが可能となり、これにより、通信インタフェース1(213)は情報処理装置100からより多くのデータ入出力要求を受信することができるので、記憶デバイス制御装置200全体として、より多くの記憶デバイスへのアクセスを行うことができる。
===データ転送処理3===
図11は、マイクロプロセッサ1及び2(211)が通信インタフェース1(213)に対して、リードコマンド1を送信するときの処理の流れを示す図である。なお、以下の説明において、マイクロプロセッサ211、通信インタフェース213、ブリッジ501乃至504は、コマンドを送信するときにバスの使用権を獲得し、送信したコマンドに対する応答を受信するとバスの使用権を解放するものとする。
マイクロプロセッサ1(211)は、通信インタフェース1(213)に対するリードコマンド1(READ−1)をブリッジA501に送信する(S11001)。ブリッジA501は、マイクロプロセッサ1(211)にスプリット応答を送信し(S11002)、リードコマンド1をブリッジC503に転送する(S11003)。
また、ほぼ同じタイミングで、マイクロプロセッサ2(211)が通信インタフェース1(213)に対するリードコマンド2(READ−2)をブリッジB502に送信する(S11004)。ブリッジB502は、マイクロプロセッサ2(211)にスプリット応答を送信し(S11005)、リードコマンド2をブリッジC503に送信する(S11006)。
ブリッジC503は、ブリッジA501からのリードコマンド1とブリッジB502からのリードコマンド2とをほぼ同時に受信するが、通信インタフェース1(213)に同時に2つのコマンドを送信しないように調停を行う(S11007)。ここでブリッジC503は、例えば、リードコマンド1とリードコマンド2のどちらか先に受信した方を先に通信インタフェース1(213)に送信するようにできる。図11において、リードコマンド1が先にブリッジC503に伝達されたものとする。ブリッジC503は、先に受信したリードコマンド1を通信インタフェース1(213)に転送する(S11008)。通信インタフェース1(213)は、受信したリードコマンド1に応じたデータ1(DATA−1)を作成する。通信インタフェース1(213)は、作成したデータ1をブリッジC503に送信する。なお、この時点で、ブリッジB502はリードコマンド2がブリッジC503に受理されていないため、ビジー状態となっている。
ブリッジC503は、受信したデータ1をブリッジA501に転送する(S11009)とともに、リードコマンド2を通信インタフェース1(213)に送信する(S11010)。
ブリッジA501は、ブリッジC503からデータ1を受信すると、受信したデータ1をマイクロプロセッサ1(211)に送信する(S11011)。
通信インタフェース1(213)は、リードコマンド2を受信すると、リードコマンド2に応じたデータ2(DATA−2)を作成する。通信インタフェース2(213)は、作成したデータ2をブリッジC503に送信する(S11012)。ブリッジC503は、受信したデータ2をブリッジB502に転送し(S11013)、ブリッジB502は受信したデータ2をマイクロプロセッサ2(211)に送信する(S11014)。
このようにして、ブリッジC503は、同時に到達した2つのコマンドに対して調停を行い、2つのコマンドの夫々を順番に通信インタフェース1(213)に送信する。このとき、マイクロプロセッサ2(211)は、リードコマンド2を、再送信を行うことなくブリッジB502に送信することができる。そのため、マイクロプロセッサ2(211)は、スプリット応答を受信した後、データ2を受信開始するまでの間(図11における期間11)、他の処理を行うことができる。従って、マイクロプロセッサ211の効率的な動作を図ることができる。また、ブリッジC503は、リードコマンド1に対応するデータ1を転送し、再度リードコマンド2を受信することなく、リードコマンド2を通信インタフェース1(213)に送信することができる。従って、マイクロプロセッサ2(211)がリードコマンド2を再送信する場合に比べ、通信インタフェース1(213)にリードコマンド2を早く到達させることができる。よって、データ転送処理にかかる時間が短縮される。
この時間の短縮の様子を示したのが、図12及び図13のタイミングチャートである。図12は、ブリッジC503が直接マイクロプロセッサ1及び2(211)からリードコマンドを受信し、マイクロプロセッサ2(211)がリードコマンド2を再送する場合の処理を説明するためのタイミングチャートである。図13は、上記図11の処理を説明するためのタイミングチャートである。
図12において、マイクロプロセッサ2(211)(PCI_Bバス)は、ブリッジC503(BRIDGE)による調停の結果、リードコマンド2を送信することができず、再送信(RETRY1201)を行う様子を示している。マイクロプロセッサ2(211)は、2度目のリードコマンド2の送信により、ブリッジC503にリードコマンド2を送信し、ブリッジC503は、リードコマンド2を通信インタフェース1(213)(PCI_Cバス)に送信する。通信インタフェース1(213)からのリードデータ2(DATA−C)の受信を完了する時点が図12のT12である。これに対し、上記図11に示す処理では、マイクロプロセッサ2(211)が通信インタフェース1(213)からのリードデータ2の受信を完了する時点は、図13のT13である。T12とT13との比較から見ても明らかなように、本実施の形態のデータ転送処理によって、データ転送処理にかかる時間が短縮されていることが分かる。
図13において、ブリッジB502(BRIDGE−B)は、マイクロプロセッサ2(211)からのリードコマンド2に応じてスプリット応答を返信した後、ビジー状態となっている。しかしながら、マイクロプロセッサ2(211)及びバス2102(PCI_B)はビジー状態とならない。従って、マイクロプロセッサ2(211)は、リードコマンド2に対応するデータ2が送信されてくるまでの間、他の処理を行うことが可能である。よって、マイクロプロセッサ211の効率的な運用が可能となり、また、データ転送LSI500のデータ転送にかかる時間が短縮され、データ転送処理の効率が図られ、記憶デバイス制御装置200全体としてのデータ転送効率も向上する。
なお、図14は、通信インタフェース1(213)の接続するバス2103がPCI−Xバスであった場合の、データ転送処理の流れを示す図である。図14においても、上記図11で説明した処理と同様に、ブリッジC503がリードコマンド1及び2の調停を行い、マイクロプロセッサ2(211)はビジー状態となることなく、他の処理を行うことができる。また、ブリッジC503は、リードコマンド1に対応するデータ1を受信し、データ1をブリッジA501に転送するとともに、マイクロプロセッサ2(211)から再度リードコマンドを受信することなく、リードコマンド2を通信インタフェース1(213)に送信することができる。
また、マイクロプロセッサ211から通信インタフェース213に対するコマンドの送信のみならず、通信インタフェース213からマイクロプロセッサ211に対するコマンドの送信においてもまったく上述の図11に示す処理と同様に、データ転送処理にかかる時間を短縮することができる。図15に、通信インタフェース1及び2(213)からマイクロプロセッサ1(211)に対してリードコマンドが送信されるときの処理の流れを示す。図15に示す例おいても、通信インタフェース2(213)はビジー状態になることなく、他の処理を行うことができる。
===データ転送処理4===
バス2103及びバス2104がPCI−Xバスである場合には、図15に示す上述したデータ転送処理により、データ転送処理の効率を向上することが可能である。そこで、本実施の形態に係る、バス2103及びバス2104がPCIバスである場合において、通信インタフェース1及び2(213)からマイクロプロセッサ1(211)に対してリードコマンドを送信した場合のデータ転送処理について説明する。なお、以下の説明において、マイクロプロセッサ211、通信インタフェース213、ブリッジ501乃至504は、コマンドを送信するときにバスの使用権を獲得し、送信したコマンドに対する応答を受信するとバスの使用権を解放するものとする。
図16は、通信インタフェース1及び2(213)からマイクロプロセッサ1(211)に対してリードコマンドが送信される場合の処理の流れを示す図である。バス2103及び2104はPCIバスであるため、ブリッジC503やブリッジD504は、通信インタフェース1(213)や通信インタフェース2(213)にスプリット応答を返すことができないことが、上述した図11に示す処理と異なる点である。
図16において、ブリッジA501がリードコマンド2(READ−2)を受信した(S16001)際、通常の調停回路と同様に、ブリッジD504に対して再送を要求するようにしてしまうと、通信インタフェース2(213)は、ブリッジA501がデータ1(DATA−1)をブリッジC503に転送した後に、再度リードコマンド2を送信する必要がある。しかしながら、ブリッジC503やブリッジD504は、通信インタフェース1(213)及び通信インタフェース2(213)からのリードコマンド1及び2を受信し、受信したリードコマンド1及び2を通信インタフェース213に再送させることがない。そのため、通信インタフェース213は、リードコマンドを再送するのにかかる時間を節約することができる。従って、通信インタフェース213の処理効率が向上し、記憶デバイス制御装置全体としてのデータ転送処理の効率も向上することができる。
図17及び図18は、データ転送処理にかかる時間が短縮されたことを説明するためのタイミングチャートである。
図17では、ブリッジA501(BRIDGE)が直接通信インタフェース1及び2(213)からリードコマンドを受信するときの信号を示している。図17において、ブリッジA501は、同時に受信するリードコマンドについて、調停(S17001)を行い、どちらか先に到着したものをマイクロプロセッサ1(211)に転送し、後に到着したものについてはリードコマンドを再送するように、リードコマンドの送信元に返信する。なお、図17において、ブリッジA501は、通信インタフェース213が常にビジー状態にならないように、リードコマンドに対するデータが作成できるまで、通信インタフェース213に再送(RETRY)するようにさせている。
ブリッジA501は、リードコマンド1を先にマイクロプロセッサ1(211)に送信し、スプリット応答を受信する。ブリッジA501は、通信インタフェース2(213)から再送されたリードコマンド2を受信する(S17002)が、マイクロプロセッサ1(211)からデータ1の応答を受信するため、先にデータ1を通信インタフェース1(213)に転送する。ブリッジA501は、マイクロプロセッサ1(121)から受信したデータ1を転送した後、リードコマンド2をマイクロプロセッサ1(211)に送信する(S17003)。
このようにして、通信インタフェース2(213)がリードデータ2の受信を完了した時点がT17である。
これに対し、図18に示すデータ転送処理では、ブリッジA501が同時に受信するリードコマンドを調停し、リードコマンド1をマイクロプロセッサ1(211)に送信し、マイクロプロセッサ1(211)からスプリット応答を受信すると、通信インタフェース2(213)から再送されるリードコマンド2を待つことなく、リードコマンド2をマイクロプロセッサ1(211)に送信する。これにより、ブリッジA501は、マイクロプロセッサ1(211)がリードコマンド1に対応するデータ1を作成する間に、リードコマンド2もマイクロプロセッサ2(211)に送信しておくことができる。通信インタフェース2(213)がデータ2の受信を完了する時点は、図18においてT18である。T17とT18を比較しても明らかなように、データ転送処理にかかる時間は短縮されている。
===記憶データの読み出し処理===
ここまでに説明したデータ転送処理は、マイクロプロセッサ211と通信インタフェース213との間で行われるデータの転送に用いられる処理である。ここで転送されるデータとは、主に、データバッファ214とキャッシュメモリ230との間でデータが転送される場合に必要な、データ長やアドレス等の情報である。しかしながら、上述したデータ転送処理は、データバッファ214とキャッシュメモリ230との間でのデータ転送処理に適用することも可能である。
以下に、データバッファ214とキャッシュメモリ230との間でデータが転送される処理について説明する。
上述したように、記憶デバイス制御装置200の備えるチャネル制御部210は、情報処理装置100からデータ入出力要求を受信し、データ入出力要求に応じて記憶ボリューム300のアドレスやデータ長等を求め、記憶ボリューム300へのアクセスを行うためのI/Oコマンドを作成する。例えば、チャネル制御部210が受信したデータ入出力要求がデータの読み出し要求である場合には、チャネル制御部210は、読み出し対象となるデータをキャッシュメモリ230から読み出し、情報処理装置100に送信する。
チャネル制御部210は、情報処理装置100との間で通信を行うデータをデータバッファ214に記憶する。例えば、記憶デバイス制御装置200が記憶ボリューム 300からデータを読み出す場合、データ転送LSI500は、キャッシュメモリ230に記憶されているデータをデータバッファ214に転送し、通信インタフェース213は、データバッファ214に記憶されているデータを情報処理装置100に送信する。
図19は、通信インタフェース213がバッファコントローラ505を介してデータバッファ214からデータを読み出す処理の流れを説明する図である。
通信インタフェース213は、バス2103の使用権を獲得し、バッファコントローラ505にリードコマンド(READ−CMD)を送信する。バッファコントローラ505は、スプリット応答を返信する。通信インタフェース213は、スプリット応答を受信すると、バス2103の使用権を解放する。バッファコントローラ505は、リードコマンドをデータバッファ214に転送する。データバッファ214は、リードコマンドに応じて、記憶しているデータをバッファコントローラ505に送信する。バッファコントローラ505は、バス2103の使用権を獲得し、通信インタフェース213にデータを転送する。この一連の処理は上記図3に示したデータの転送処理と同様のものである。すなわち、マイクロプロセッサ211と通信インタフェース213との間のみでなく、通信インタフェース213とデータバッファ214との間でのデータの転送についても、通信インタフェース213及びバス2103がビジー状態である期間を短縮し、より効率的な通信インタフェース213の動作と、効率的なバス2103の利用を図ることができる。
図20は、通信インタフェース1(213)が情報処理装置100にデータを送信するために、マイクロプロセッサ1(211)からデータの転送に必要な情報(データ転送情報)を取得し、また、情報処理装置100に送信するデータをデータバッファ214から取得するときの処理の流れを示す図である。
通信インタフェース1(213)は、バス2103の使用権を獲得し、マイクロプロセッサ1(211)からデータ転送情報を読み出すためのリードコマンド1(READ−CTL)をブリッジC503に送信する。ブリッジC503はリードコマンド1を受信すると、スプリット応答を通信インタフェース1(213)に返信する。
通信インタフェース1(213)は、スプリット応答を受信すると、バス2103の使用権を解放する。通信インタフェース1(213)は、続いてバス2103の使用権を獲得し、データバッファ214に対するデータの読み出しコマンドをバッファコントローラ505に送信する。バッファコントローラ505は、データの読み出しコマンドを受信すると、通信インタフェース1(213)にスプリット応答を返信する。通信インタフェース1(213)は、スプリット応答を受信し、バス2103の使用権を解放する。
通信インタフェース1(213)はこの時点で、マイクロプロセッサ1(211)に対するリードコマンドと、データバッファ214に対するデータ読み出しコマンドとの両方を送信したことになる。
一方、ブリッジC503は、通信インタフェース1(213)から受信したリードコマンド1をブリッジA501に転送する。ブリッジA501は、受信したリードコマンド1をマイクロプロセッサ1(211)に転送する。マイクロプロセッサ1(211)は、リードコマンド1を受信し、スプリット応答をブリッジA501に返信する。マイクロプロセッサ1(211)は、受信したリードコマンド1に応じたリードデータ1を作成する。マイクロプロセッサ1(211)はリードデータ1を作成すると、リードデータをブリッジA501に送信する。ブリッジA501はリードデータを受信すると、ブリッジC503にリードデータを転送する。ブリッジC503は、バス2103の使用権を獲得して通信インタフェース1(213)にリードデータを送信し、バス2103の使用権を解放する。
また、バッファコントローラ505は、受信したデータ読み出しコマンドをデータバッファ214に転送する。データバッファ214は受信したデータ読み出しコマンドに応じて、記憶しているデータを読み出しデータとしてバッファコントローラ505に応答する。バッファコントローラ505は、バス2103の使用権を獲得し、受信した読み出しデータを通信インタフェース1(213)に送信し、バス2103の使用権を解放する。
以上、本実施の形態に係る記憶デバイス制御装置200について説明したが、上述したデータ転送処理は、チャネル制御部210以外に適用することも可能である。例えば、ディスク制御部240が、マイクロプロセッサと、キャッシュメモリ230との間で通信を行うインタフェースと、キャッシュメモリ230と記憶デバイス300との間でデータを転送するデータ転送LSIとを備え、当該データ転送LSIが複数のブリッジを備えるようにして、マイクロプロセッサとインタフェースとの間でデータ転送を行う処理に、上述したデータ転送処理を適用することができる。
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
本発明の一実施の形態による、情報処理システムの全体像を示すブロック図である。 本発明の一実施の形態による、チャネル制御部210の内部構成を示す図である。 本発明の一実施の形態による、データ転送処理の流れを示す図である。 本発明の一実施の形態による、図3に示すデータ転送処理の信号を説明するタイミングチャートである。 本発明の一実施の形態による、データ転送処理の流れを示す図である。 本発明の一実施の形態による、データ転送処理の流れを示す図である。 本発明の一実施の形態による、データ転送処理における信号を説明するフローチャートである。 本発明の一実施の形態による、データ転送処理における信号を説明するフローチャートである。 本発明の一実施の形態による、データ転送処理の流れを示す図である。 本発明の一実施の形態による、データ転送処理の流れを示す図である。 本発明の一実施の形態による、マイクロプロセッサ1及び2から通信インタフェース1に対するデータ転送処理の流れを示す図である。 本発明の一実施の形態による、ブリッジCが直接マイクプロセッサ1及び2からコマンドを受信するときのデータ転送処理における信号を説明するフローチャートである。 本発明の一実施の形態による、図11に示すデータ転送処理における信号を説明するフローチャートである。 本発明の一実施の形態による、バス2103がPCI−Xである場合のデータ転送処理の流れを示す図である。 本発明の一実施の形態による、通信インタフェース1及び2からマイクロプロセッサ1に対するデータ転送処理の流れを示す図である。 本発明の一実施の形態による、通信インタフェース1及び2からマイクロプロセッサ1に対するデータ転送処理の流れを示す図である。 本発明の一実施の形態による、ブリッジAが直接通信インタフェース213からコマンドを受信するときのデータ転送処理のおける信号を説明するフローチャートである。 本発明の一実施の形態による、ブリッジC及びブリッジDがブリッジAにコマンドを転送するデータ転送処理の一例における信号を説明するフローチャートである。 本発明の一実施の形態による、通信インタフェースとデータバッファとの間のデータ転送処理の流れを示す図である。 本発明の一実施の形態による、通信インタフェースとデータバッファとの間のデータ転送処理の流れを示す図である。
符号の説明
100 情報処理装置 200 記憶デバイス制御装置
210 チャネル制御部 211 マイクロプロセッサ
212 ローカルメモリ 213 通信インタフェース
214 データバッファ 216 モードセレクタ
2101 バス 2102 バス
2103 バス 2104 バス
220 共有メモリ 230 キャッシュメモリ
240 ディスク制御部 250 接続部
300 記憶ボリューム 400 SAN
500 データ転送LSI
501 ブリッジA 502 ブリッジB
503 ブリッジC 504 ブリッジD

Claims (2)

  1. 情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
    前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
    前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、
    を備え、
    前記チャネル制御部は、
    前記情報処理装置との間で通信を行う少なくとも一つ以上の通信インタフェース部と、
    第1のバスを介して前記通信インタフェース部と接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行う、バス間を接続する少なくとも一つ以上のブリッジを有するデータ転送部と、
    第2のバスを介して前記データ転送部と接続し、前記データ転送部の制御を行うプロセッサと、
    を備え、
    前記データ転送部は、前記第1のバスが従う通信規約に応じて、前記第1のバスを介して前記通信インタフェース部から受信したスプリット応答を前記第2のバスを介して前記プロセッサに送信するか否かを選択することが可能であり、
    前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信しない場合には、
    前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記読み出しコマンドを受信するとともに、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を前記第2のバスを介して前記プロセッサに送信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、
    前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放し、
    前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記プロセッサに送信せずに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、
    前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信する場合には、
    前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記読み出しコマンドを受信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、
    前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記第2のバスを介して前記プロセッサに送信するとともに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、
    前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放する
    ことを特徴とする記憶デバイス制御装置。
  2. 情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
    前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
    前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、
    を備え、
    前記チャネル制御部が、
    前記情報処理装置との間で通信を行う少なくとも一つ以上の通信インタフェース部と、
    第1のバスを介して前記通信インタフェース部と接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行う、バス間を接続する少なくとも一つ以上のブリッジを有するデータ転送部と、
    第2のバスを介して前記データ転送部と接続し、前記データ転送部の制御を行うプロセッサとを備える記憶デバイス制御装置の制御方法であって、
    前記データ転送部は、前記第1のバスが従う通信規約に応じて、前記第1のバスを介して前記通信インタフェース部から受信したスプリット応答を前記第2のバスを介して前記プロセッサに送信するか否かを選択することが可能であり、
    前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信しない場合には、
    前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記読み出しコマンドを受信するとともに、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を前記第2のバスを介して前記プロセッサに送信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、
    前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放し、
    前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記プロセッサに送信せずに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、
    前記データ転送部、前記スプリット応答を前記第2のバスを介して前記プロセッサに送信する場合には、
    前記プロセッサが、前記第2のバスを確保した後、前記通信インタフェース部に対してデータを読み出すことを指示する読み出しコマンドを、前記第2のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記読み出しコマンドを受信し、受信した前記読み出しコマンドを前記第1のバスを介して前記通信インタフェースに転送し、
    前記通信インタフェースが、前記読み出しコマンドを受信し、受信した前記読み出しコマンドに応じた読み出しデータが後から送信されることを前記プロセッサに通知するスプリット応答を、前記第1のバスを介して前記データ転送部に送信するとともに、受信した前記読み出しコマンドに応じた読み出しデータを、前記第1のバスを介して前記データ転送部に送信し、
    前記データ転送部が、前記スプリット応答及び前記読み出しデータを受信し、受信した前記スプリット応答を前記第2のバスを介して前記プロセッサに送信するとともに、受信した前記読み出しデータを前記第2のバスを介して前記プロセッサに転送し、
    前記プロセッサが、前記スプリット応答を受信すると前記第2のバスを解放する
    ことを特徴とする記憶デバイス制御装置の制御方法。
JP2003402996A 2003-12-02 2003-12-02 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法 Expired - Fee Related JP4597507B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003402996A JP4597507B2 (ja) 2003-12-02 2003-12-02 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法
US10/765,109 US7039730B2 (en) 2003-12-02 2004-01-28 Storage device control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003402996A JP4597507B2 (ja) 2003-12-02 2003-12-02 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法

Publications (2)

Publication Number Publication Date
JP2005165620A JP2005165620A (ja) 2005-06-23
JP4597507B2 true JP4597507B2 (ja) 2010-12-15

Family

ID=34616766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003402996A Expired - Fee Related JP4597507B2 (ja) 2003-12-02 2003-12-02 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法

Country Status (2)

Country Link
US (1) US7039730B2 (ja)
JP (1) JP4597507B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP2007200169A (ja) 2006-01-30 2007-08-09 Hitachi Ltd ストレージシステム及び記憶制御方法
EP1858227A1 (en) * 2006-05-16 2007-11-21 THOMSON Licensing Network storage device with separated control and storage data interfaces
JP2008294671A (ja) * 2007-05-23 2008-12-04 Nec Electronics Corp 応答制御方法およびデバイス装置
US8787368B2 (en) * 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Crossbar switch with primary and secondary pickers
JP6161113B2 (ja) * 2013-05-16 2017-07-12 Necプラットフォームズ株式会社 データ中継装置及びデータ中継システム
US9547448B2 (en) 2014-02-24 2017-01-17 Netapp, Inc. System and method for transposed storage in raid arrays
US10565115B2 (en) 2017-03-30 2020-02-18 Western Digital Technologies, Inc. Calculating the optimal number of LBNS to prefetch per CPU

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032327A (ja) * 2000-05-31 2002-01-31 Internatl Business Mach Corp <Ibm> バス・ブリッジおよびバス・ブリッジを有するデータ処理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204841A (ja) * 1992-01-24 1993-08-13 Hitachi Ltd 情報処理装置用バス
JP3411300B2 (ja) 1992-02-18 2003-05-26 株式会社日立製作所 情報処理装置
US5535345A (en) * 1994-05-12 1996-07-09 Intel Corporation Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed
JP3584710B2 (ja) * 1997-12-16 2004-11-04 株式会社日立製作所 ディスクアレイ制御装置及び制御方法
US6584539B1 (en) * 1999-03-19 2003-06-24 Sony Corporation Method and system for message broadcast flow control on a bus bridge interconnect
US6839788B2 (en) 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture
US6801963B2 (en) 2002-07-24 2004-10-05 Intel Corporation Method, system, and program for configuring components on a bus for input/output operations
JP2004227098A (ja) 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP4255699B2 (ja) 2003-01-20 2009-04-15 株式会社日立製作所 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP2005071196A (ja) 2003-08-27 2005-03-17 Hitachi Ltd ディスクアレイ装置、及びその障害情報の制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032327A (ja) * 2000-05-31 2002-01-31 Internatl Business Mach Corp <Ibm> バス・ブリッジおよびバス・ブリッジを有するデータ処理システム

Also Published As

Publication number Publication date
US20050120169A1 (en) 2005-06-02
JP2005165620A (ja) 2005-06-23
US7039730B2 (en) 2006-05-02

Similar Documents

Publication Publication Date Title
US9003114B2 (en) Methods and apparatus for cut-through cache management for a mirrored virtual volume of a virtualized storage system
US5594882A (en) PCI split transactions utilizing dual address cycle
US7020731B2 (en) Disk array control device with two different internal connection systems
US7676614B2 (en) Redundant storage virtualization computer system
US7340551B2 (en) Bridge permitting access by multiple hosts to a single ported storage drive
JP4413518B2 (ja) 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
JP2005258918A (ja) ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法
JP2007094996A (ja) データストレージシステム、データストレージ制御装置及びその障害箇所診断方法
JP2002108572A (ja) バックアップシステム、及び複製装置
US8255676B2 (en) Non-disruptive methods for updating a controller of a storage system
CA2348253A1 (en) Data storage system
US7962676B2 (en) Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
JP4597507B2 (ja) 記憶デバイス制御装置及び記憶デバイス制御装置の制御方法
US7143306B2 (en) Data storage system
US6381675B1 (en) Switching mechanism and disk array apparatus having the switching mechanism
US6928508B2 (en) Method of accessing a remote device from a host by mapping an address of the device to a memory address of the host
JPH10207793A (ja) 双方向通信を確立する方法およびシステム
US20100169527A1 (en) Data path master/slave data processing device
US6185651B1 (en) SCSI bus extender utilizing tagged queuing in a multi-initiator environment
JP5102917B2 (ja) ストレージ装置及びアクセス命令送信方法
US6122723A (en) Switching multi-initiator SCSI devices to a singular target bus
JPH07191930A (ja) ディスク装置のインタフェース及びその制御方法
US6330246B1 (en) Method and system for switching SCSI devices utilizing an analog multiplexor
JP3719976B2 (ja) 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
JP3594952B2 (ja) 中央システムの操作を実行するための中央システムと衛星システムとの間のリンク

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

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: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100922

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: 20131001

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees