JP4369486B2 - データ転送装置、半導体集積回路、および処理状況通知方法 - Google Patents

データ転送装置、半導体集積回路、および処理状況通知方法 Download PDF

Info

Publication number
JP4369486B2
JP4369486B2 JP2007023367A JP2007023367A JP4369486B2 JP 4369486 B2 JP4369486 B2 JP 4369486B2 JP 2007023367 A JP2007023367 A JP 2007023367A JP 2007023367 A JP2007023367 A JP 2007023367A JP 4369486 B2 JP4369486 B2 JP 4369486B2
Authority
JP
Japan
Prior art keywords
transfer
data
circuits
request
circuit
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
JP2007023367A
Other languages
English (en)
Other versions
JP2008191782A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007023367A priority Critical patent/JP4369486B2/ja
Priority to US11/984,419 priority patent/US7757016B2/en
Publication of JP2008191782A publication Critical patent/JP2008191782A/ja
Application granted granted Critical
Publication of JP4369486B2 publication Critical patent/JP4369486B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

Landscapes

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

Description

本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置、半導体集積回路、および処理状況通知方法に関し、特に、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができるデータ転送装置、半導体集積回路、および処理状況通知方法に関する。
近年のコンピュータの処理能力の向上に伴って、コンピュータが利用するデータは肥大化の一途をたどっており、膨大なデータを記憶しておくためのストレージに関する検討が多く行われている。具体的には、例えばRAID(Redundant Array of Independent Disks)と呼ばれ、複数のハードディスクドライブを組み合わせることにより、高速・大容量・高信頼性を実現するディスクシステムを構築する技術などが確立されている。
このRAIDなどのディスクシステムにおいては、データを記憶する複数のディスクを備えたディスクアレイ装置が上位装置であるホストコンピュータなどからコマンドを受け付け、データの書き込み(ライト)や読み出し(リード)が行われる。このとき、ホストコンピュータとディスクの間でやり取りされるデータは、ディスクアレイ装置内のキャッシュメモリにもキャッシュされ、以降の処理においては、キャッシュメモリからこのデータを読み出して高速化を図るのが一般的である。また、ホストコンピュータは、ディスクアレイ装置内のチャネルアダプタに接続しており、チャネルアダプタによって、ホストコンピュータとキャッシュメモリやディスクとの間でデータ転送が実行される。
チャネルアダプタは、内部にダイレクトメモリアクセス(Direct Memory Access:以下「DMA」と略記する)によるデータ転送を制御するLSI(Large Scale Integration)などのDMAチップを備えており、DMAチップがCPU(Central Processing Unit)の命令に従ってデータ転送を実行する。一般に、DMAによるデータ転送においては、CPUからDMAチップへの命令(ディスクリプタ)と転送されるデータは同一のバスを共有する(例えば特許文献1参照)。このようなバスを備えたチャネルアダプタの構成例を図9に示す。
図9において、ホストコンピュータ1は、チャネルアダプタのインタフェース2と接続されており、キャッシュメモリ7は、チャネルアダプタのDMAチップ3と接続されている。また、DMAチップ3には、転送されるデータを一時的に保持するデータバッファ4が接続されており、インタフェース2、DMAチップ3、およびDMAチップ3に対して命令を出すCPU5が互いにバス6を介して接続されている。
このような構成のチャネルアダプタにおいて、例えばホストコンピュータ1からデータのリード要求が出されると、このリード要求は、インタフェース2およびバス6を介してCPU5へ通知され、CPU5からDMAチップ3へ、キャッシュメモリ7からデータを読み出す旨の命令が出される。この命令を受け、DMAチップ3は、キャッシュメモリ7からデータを読み出してデータバッファ4に保持させる。その後、DMAチップ3は、データバッファ4へのデータの読み出しが完了した旨をCPU5へ通知し、CPU5は、データバッファ4からバス6を介してホストコンピュータ1へデータを転送させるデータ転送処理を開始する。
特開平5−257865号公報
ところで、上述のようなDMAチップには、複数のDMA回路が設けられることがある。この場合、各DMA回路は、並行してキャッシュメモリからデータバッファへのデータの読み出しを行い、例えばホストコンピュータへ転送されるデータがデータバッファに保持されて転送可能な状態になると、CPUに対してデータ転送が可能となった旨を通知する。この通知は、割り込み処理を要求する割り込み信号としてバスを介してCPUへ送信されるため、たとえCPUが他のDMA回路に係るデータ転送処理を行っていても、CPUはデータ転送処理を中断する。そして、CPUは、割り込み信号を送信したDMA回路に保持されたデータ転送に関する情報をリードする。
具体的には、図10に示すように、DMAチップ内のDMA回路においてキャッシュメモリからのデータの読み出しが完了すると、割り込み信号がバスを介してCPUへ送信される(ステップS1)。CPUは、他の処理をすべて中断して、割り込み信号を送信したDMA回路に保持された、転送対象のデータのアドレスをリードする(ステップS2)。このリードによって、転送されるデータのアドレスがDMA回路からCPUへバスを介して送信され(ステップS3)、CPUは、データ転送処理を再開する。
その後、すべてのデータ転送処理が完了すると、CPUは、DMA回路に保持された、転送が正常に完了したか否かを示す転送状態情報をリードする(ステップS4)。このリードによって、転送状態情報がDMA回路からCPUへバスを介して送信される(ステップS5)。
このように、DMAチップから割り込み信号が送信されると、DMA回路とCPUの間で複数回のやり取りが行われ、その間バスは占有されるとともに、CPUは他の処理を中断するため、処理効率が悪化するという問題がある。特に、データ転送処理においては、転送されるデータが使用するバスがDMA回路とCPUの間のやり取りによって占有されるため、データ転送効率が低下し、例えばホストコンピュータがデータの読み出しを要求してから実際にデータの読み出しが終了するまでの時間が遅延する。また、DMAチップ内に設けられるDMA回路の数が増加すると、頻繁にいずれかのDMA回路から割り込み信号が送信される状態となり、データ転送以外の処理によるバスの占有率が益々上昇してしまう。
加えて、CPUが割り込み信号に応じてデータのアドレスをリードする処理は割り込み処理として実行されるが、CPUによる割り込み処理は、数msec(ミリセカンド)の比較的長時間を要するため、ホストコンピュータへの応答がさらに遅延してしまうことがある。
本発明はかかる点に鑑みてなされたものであり、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができるデータ転送装置、半導体集積回路、および処理状況通知方法を提供することを目的とする。
上記課題を解決するために、本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付手段と、前記受付手段によって転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集手段と、前記受付手段によって受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段とを有することを特徴とする。
また、本発明は、上記発明において、前記収集手段は、前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする。
また、本発明は、上記発明において、前記収集手段は、前記複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集することを特徴とする。
また、本発明は、上記発明において、前記受付手段は、前記複数の転送回路それぞれに対応するフラグを含み、前記転送可能回路に対応するフラグをセットすることを特徴とする。
また、本発明は、上記発明において、前記生成手段は、前記フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を前記収集手段へ指示することを特徴とする。
また、本発明は、上記発明において、前記送信手段から前記プロセッサへの通知データの送信が完了したことを検知する検知手段をさらに有し、前記受付手段は、前記検知手段によって送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアすることを特徴とする。
また、本発明は、上記発明において、前記送信手段は、前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする。
また、本発明は、各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、前記複数の転送回路の少なくとも1つから前記バッファを介したデータ転送要求を受け付ける受付手段と、前記受付手段によって転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集手段と、前記受付手段によって受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段とを有することを特徴とする。
また、本発明は、各々データの転送を制御する複数の転送回路を備えたデータ転送装置における処理状況通知方法であって、前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付工程と、前記受付工程にて転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集工程と、前記受付工程にて受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程とを有することを特徴とする。
本発明によれば、複数の転送回路の少なくとも1つからデータの転送要求を受け付け、転送要求が受け付けられた場合に、複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集し、転送要求を受け付けた転送可能回路の情報および収集された状態情報を含む通知データを生成し、生成された通知データを複数の転送回路を管理するプロセッサへ送信する。このため、転送回路から転送要求が発行された場合に、この転送回路に対してプロセッサがリードを行わなくても、通知データの伝送により必要な情報がすべてプロセッサへ通知され、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
また、本発明によれば、複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集するため、プロセッサは、先頭アドレスと末尾アドレスの差分が未転送のデータであるとして、各転送回路のデータ転送処理の進捗状況を把握することができる。
また、本発明によれば、複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集するため、プロセッサは、いずれかの転送回路から転送要求が発行されるたびに、すべての転送回路の前回のデータ転送処理が正常に終了しているか否かを把握することができる。
また、本発明によれば、複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集するため、プロセッサは、確実にデータ転送処理が正常に終了しているか否かを確認することができる。
また、本発明によれば、複数の転送回路それぞれに対応するフラグを含み、転送可能回路に対応するフラグをセットするため、2つ以上の転送回路から同時に転送要求が発行された場合にも、転送要求を発行したすべての転送可能回路の情報を確実にプロセッサへ通知することができる。
また、本発明によれば、フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を指示するため、1つの転送回路からでも転送要求が発行されるとすべての転送回路の状態情報が収集され、簡便な処理で状態情報のやり取りの回数を減少させ、バスの占有率を減少させることができる。
また、本発明によれば、通知データの送信が完了したことを検知し、送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアするため、通知データの送信後には、転送可能回路となっていた転送回路からの転送要求を再び受け付けることができる。
また、本発明によれば、プロセッサにおける割り込み処理の要求として通知データを送信するため、通知データを受信したプロセッサは、各転送回路の管理を他の処理よりも優先して実行し、すべての転送回路によるデータ転送処理を迅速に適正化することができる。
また、本発明によれば、複数の転送回路の制御によって転送されるデータを順次入出力するバッファを備え、複数の転送回路の少なくとも1つがバッファを介したデータ転送処理の実行を要求する場合に、複数の転送回路すべてに係るデータ転送処理状況を同時に複数の転送回路を管理するプロセッサへ通知する。このため、転送回路から転送要求が発行された場合に、すべての転送回路の転送処理状況がプロセッサへ通知され、転送回路の転送処理状況を把握するためのプロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
図1は、本実施の形態に係るディスクアレイ装置10の概略構成を示すブロック図である。同図に示すディスクアレイ装置10は、DMAが適用されるコンピュータシステムの一例であり、ファイバチャネルリンク30A、30Bを介してホストコンピュータ20A、20Bと接続されている。このディスクアレイ装置10は、高信頼性を確保するために二重化構成が採られており、各構成要素が2系統ずつ(図中、参照符号に付加したA、Bによって区別する)備えられている。それぞれの系統の構成要素は互いに同等の機能を有するため、以下では一方の系統についてのみ構成要素の説明をする。
ディスクアレイ装置10は、チャネルアダプタ40A、キャッシュメモリ50A、キャッシュコントローラ60A、ディスクアダプタ70A、スイッチ80A、およびディスク90Aを有している。
チャネルアダプタ40Aは、ホストコンピュータ20Aとデータの送受信を行う通信インタフェースとしての機能を有するとともに、DMAによりデータ転送を行うLSIを有している。本実施の形態においては、主にチャネルアダプタ40Aがキャッシュメモリ50Aに記憶されたデータをホストコンピュータ20Aへ転送する場合について説明する。このとき、チャネルアダプタ40Aでは、LSIがCPUからの命令を受けてキャッシュメモリ50Aからデータを読み出し、読み出されたデータがCPUのデータ転送処理によってホストコンピュータ20Aへ転送される。チャネルアダプタ40Aの具体的な構成および動作について、後に詳述する。
キャッシュメモリ50Aは、ホストコンピュータ20Aから複数のディスク90Aへ書き込まれるデータ、または複数のディスク90Aからホストコンピュータ20Aへ読み出されるデータを一時的に記憶する。
キャッシュコントローラ60Aは、キャッシュメモリ50Aにおけるデータの書き込みおよび読み出しを管理・制御する。なお、キャッシュコントローラ60Aは、他方の系統のキャッシュコントローラ60Bとキャッシュ間リンクによって接続されており、キャッシュメモリ50A、50Bに書き込まれるデータが共有されるようになっている。
ディスクアダプタ70Aは、複数のディスク90Aとデータの送受信を行う通信インタフェースとしての機能を有する。すなわち、ディスクアダプタ70Aは、キャッシュメモリ50Aから読み出されたデータを複数のディスク90Aへ送信したり、キャッシュメモリ50Aへ書き込まれるデータを複数のディスク90Aから受信したりする。
スイッチ80Aは、複数のディスク90Aを接続するとともに、各ディスクとディスクアダプタ70Aの接続を切り替える。複数のディスク90Aは、例えば複数のハードディスクドライブからなり、それぞれのディスクが転送対象となるデータを記憶している。
図2は、本実施の形態に係るチャネルアダプタ40の内部構成を示すブロック図である。同図においては、図1の参照符号におけるA、Bの表記を省略し、例えばホストコンピュータ20A、20Bをホストコンピュータ20と表記している。図2に示すチャネルアダプタ40は、データバッファ41、LSI42、CPU43、メモリ44、プロトコルコントローラ45、光モジュール46、およびバス47を有している。
データバッファ41は、LSI42がキャッシュコントローラ60を通じてキャッシュメモリから読み出したデータを一時的に保持する。
LSI42は、複数のDMA回路421を備えており、CPU43からの命令に従って、キャッシュコントローラ60を通じてキャッシュメモリから読み出した転送対象のデータをデータバッファ41に記憶させる。そして、LSI42は、転送対象のデータが転送可能な状態となると、各DMA回路421における処理状況を示す通知データをCPU43へ送信する。具体的には、LSI42は、複数のDMA回路421、バッファ422、処理状況通知部423、およびバスインタフェース(以下「バスI/F」と略記する)424を有している。
複数のDMA回路421は、それぞれキャッシュコントローラ60に接続されたキャッシュメモリと通信するインタフェース機能およびDMA機能を有している。DMA回路421は、CPU43からの命令に従って、キャッシュコントローラ60を通じてキャッシュメモリとの間で通信処理を行い、キャッシュメモリにキャッシュされたデータを読み出してデータバッファ41に記憶させる。また、各DMA回路421は、ホストコンピュータ20への転送対象のデータがデータバッファ41へ記憶されると、処理状況通知部423へデータの転送実行を要求するリクエストを送信する。そして、このリクエストに応じてCPU43からデータ転送が指示されると、データバッファ41に記憶されたデータをバッファ422へ送出し、順次ホストコンピュータ20へ転送させる。
なお、DMA回路421は、バッファ422における転送データの先頭アドレス(以下「TOP」という)と末尾アドレス(以下「BTM」という)とを保持しており、BTM側から順次データ転送させる。また、DMA回路421は、ホストコンピュータ20へのデータ転送が終了するたびに、データ転送が正常に行われたか否かの転送状態を保持しておく。
バッファ422は、FIFO(First-In First-Out)方式でデータを入出力する。すなわち、バッファ422は、複数のDMA回路421それぞれから送出される転送データを順番に入力させ、入力された順に転送データを出力する。
処理状況通知部423は、複数のDMA回路421それぞれからデータの転送実行を要求するリクエストを受け付け、このリクエストを送信したDMA回路421の情報(以下「転送可能DMA情報」という)およびすべてのDMA回路421におけるデータ転送の状態を示す情報(以下「状態情報」という)を含む通知データを生成し、CPU43へ送信する。処理状況通知部423については、後に具体的に説明する。
バスI/F424は、バス47とLSI42を接続しており、バッファ422や処理状況通知部423から出力される転送データや通知データをバス47へ送出し、バス47から返送される通知データの送信完了通知を受信する。
CPU43は、チャネルアダプタ40の全体を統括制御するプロセッサであり、ホストコンピュータ20からのコマンドを解釈してDMA回路421へデータ転送の命令を出す。また、CPU43は、LSI42から送信される通知データによって、データ転送可能となったDMA回路421の有無を把握するとともに、各DMA回路421によるデータ転送の状態を把握する。
メモリ44は、例えばDRAM(Dynamic Random Access Memory)などから構成され、CPU43により生成されたディスクリプタ(CPU43からDMA回路421に対する命令)などを記憶する。
プロトコルコントローラ45は、ホストコンピュータ20との接続に用いられるファイバチャネル(図1のファイバチャネルリンク30A、30B)のプロトコルを制御する。プロトコルコントローラ45は、ホストコンピュータ20へ転送されるデータを電気信号として光モジュール46へ出力する。
光モジュール46は、ホストコンピュータ20と接続され、ホストコンピュータ20から光ファイバなどによって伝送される光信号を電気信号に変換する一方、プロトコルコントローラ45から出力される電気信号を光信号に変換してホストコンピュータ20へ転送する。
LSI42、CPU43、およびプロトコルコントローラ45は、互いにバス47によって接続されており、転送データ、データ転送の命令、および通知データなどは、バス47を介してやり取りされる。
図3は、LSI42内の処理状況通知部423の内部構成を示すブロック図である。同図に示す処理状況通知部423は、リクエスト受付部423a、転送可能フラグ423b、通知データ生成部423c、状態情報収集部423d、および送信完了検知部423eを有している。
なお、図3においては、複数のDMA回路421を1つのブロックで示している。また、各DMA回路421は、転送データの転送状態、TOP(先頭アドレス)、およびBTM(末尾アドレス)などの状態情報を保持している。バッファ422に記憶された転送データは、図4に示すように、BTM側から順次転送され、転送データがすべて転送され終わると、TOPとBTMが一致することになる。
リクエスト受付部423aは、複数のDMA回路421それぞれが転送対象のデータをデータバッファ41に読み出した場合に各DMA回路421から送信される転送実行のリクエストを受け付ける。そして、リクエスト受付部423aは、リクエストを送信したDMA回路421の転送可能フラグ423bをセットする。
転送可能フラグ423bは、複数のDMA回路421それぞれに対応するフラグを備えており、リクエスト受付部423aからの指示により、転送実行のリクエストを送信したDMA回路421に対応するフラグをセットする。すなわち、例えば図5に示すように、転送可能フラグ423bがDMA回路#1〜#NまでのN個のDMA回路421に対応するフラグを備えている場合、DMA回路#2から転送実行のリクエストが受け付けられると、DMA回路#2に対応するフラグが「1」にセットされる。また、転送可能フラグ423bは、送信完了検知部423eからの指示により、通知データの送信が完了し転送が可能である旨がCPU43へ通知されたDMA回路421に対応するフラグをクリアする。すなわち、例えば図5において、DMA回路#2からのリクエストに応じた通知データの送信が完了すると、DMA回路#2に対応するフラグが「0」にクリアされる。
通知データ生成部423cは、転送可能フラグ423bを常時監視しており、いずれかのDMA回路421に対応するフラグがセットされると、転送可能DMA情報および状態情報を含む通知データを生成する。具体的には、通知データ生成部423cは、転送可能フラグ423bから転送の実行が可能となったDMA回路421に関する転送可能DMA情報を取得し、状態情報収集部423dへ状態情報の収集を指示してすべてのDMA回路421に関する状態情報を取得する。
そして、通知データ生成部423cは、例えば図6に示すような通知データを生成する。すなわち、転送可能DMA情報201として、転送可能フラグ423bがセットされたDMA回路を示す情報が含まれるとともに、状態情報202として、すべてのDMA回路421に保持された転送状態情報203およびTOP情報・BTM情報204が含まれる通知データを生成する。また、通知データ生成部423cは、生成した通知データを割り込み処理であることを示すデータとしてCPU43へ送信する。
状態情報収集部423dは、通知データ生成部423cからの指示に従って、すべてのDMA回路421から状態情報を収集する。このとき、状態情報収集部423dは、リクエストを送信していないDMA回路421、換言すれば、転送の実行が可能となっていないか既に転送を実行中であるDMA回路421についても転送状態、TOP、およびBTMを収集する。したがって、転送状態としては、DMA回路421によって、転送待機中、転送実行中、転送正常終了(または異常終了)などの状態を取り得る。また、TOPとBTMについては、転送待機中や転送実行中のDMA回路421では一致しないが、転送正常終了のDMA回路421では一致している。
なお、状態情報収集部423dは、転送状態を示す情報として、転送されたデータから生成されるチェックコードや転送されたデータのヘッダ情報などをさらに収集しても良い。
送信完了検知部423eは、通知データがすべてバス47を介してCPU43へ送信されると、その旨の送信完了通知をバス47から受信し、通知データの送信が完了したことを検知する。そして、送信完了検知部423eは、通知データに含まれる転送可能DMA情報によって、転送の実行が可能であることをCPU43へ通知したDMA回路421に対応する転送可能フラグ423bをクリアする。
次いで、上記のように構成された処理状況通知部423による処理状況通知方法について、図7に示すフロー図を参照しながら説明する。
処理状況通知部423においては、各DMA回路421からのリクエストが待機されており(ステップS101)、いずれかのDMA回路421が転送対象のデータをデータバッファ41へ読み出してリクエストを送信すると(ステップS101Yes)、このリクエストは、リクエスト受付部423aによって受け付けられる。そして、リクエスト受付部423aによって、リクエストを送信したDMA回路421に対応する転送可能フラグ423bがセットされる(ステップS102)。これ以後、転送可能フラグ423bがクリアされるまでは、転送可能フラグ423bがセットされたDMA回路421からのリクエストは、リクエスト受付部423aによって受け付けられることない。
また、通知データ生成部423cは、転送可能フラグ423bを常時監視しており、1つ以上のDMA回路421に対応する転送可能フラグ423bがセットされたことを検知すると(ステップS103)、状態情報収集部423dへ状態情報の収集を指示する。そして、状態情報収集部423dによって、すべてのDMA回路421の状態情報(すなわち、転送状態情報、TOP情報、およびBTM情報)が収集される(ステップS104)。収集された状態情報は、通知データ生成部423cへ出力される。
通知データ生成部423cでは、転送可能フラグ423bにおいてフラグがセットされたDMA回路421を示す転送可能DMA情報および状態情報収集部423dから出力された状態情報から通知データが生成される(ステップS105)。このとき、複数のDMA回路421から同時にリクエストが送信されていれば、各DMA回路421に対応する転送可能フラグ423bがセットされているため、転送可能DMA情報は、これらすべてのDMA回路421を示すことになる。生成された通知データは、バスI/F424からバス47を経由してCPU43へ送信される(ステップS106)。また、この通知データは、送信完了検知部423eにも出力される。
本実施の形態においては、転送実行のリクエストを送信したDMA回路421に関する転送可能DMA情報とすべてのDMA回路421における状態情報とが通知データに含まれているため、通知データをCPU43へ送信することにより、CPU43は、改めてDMA回路421からTOPやBTMをリードしたり、転送状態をリードしたりする必要がなく、CPU43の処理負荷を低減するとともに、データ転送以外の処理によるバス47の占有率を減少させることができる。すなわち、いずれかのDMA回路421からリクエストが発行されると、すべてのDMA回路421に関する状態情報がCPU43へ通知されるため、各DMA回路421においてデータ転送が完了した場合などにCPU43がDMA回路421へ転送状態を問い合わせなくても、他のDMA回路421からのリクエスト発行時などに転送状態がCPU43へ通知されることになる。
また、複数のDMA回路421からリクエストが送信されていれば、これらのDMA回路421が転送可能であることを1つの通知データによってCPU43へ通知することができ、バス47の占有率を減少させることができる。さらに、通知データの生成は、LSI42において実行されるハードウェアの処理であるため、数μsec(マイクロセカンド)で完了し、DMA回路421の状態情報をCPU43が割り込み処理によってリードするよりも非常に高速に状態情報がCPU43へ通知されることになる。なお、このように通知データに多くの情報を含ませることにより、通知データの情報量は増加することになるが、一般に1回のシーケンスで転送できるデータ転送長の範囲の情報量であれば、バスの負荷には大きな影響がない。したがって、例えばPCI−Xバスにおいては、アドレス境界から128バイトまでのバーストライトであればバス47の負荷は大差なく、情報量の増加による影響は無視することができる。
通知データの送信後、バス47は通知データの送信が完了した旨の送信完了通知をLSI42へ返送するため、送信完了通知は、バスI/F424から処理状況通知部423の送信完了検知部423eによって受信される。これにより、送信完了検知部423eによって、通知データの送信完了が検知され(ステップS107)、通知データの送信時に通知データ生成部423cから出力された通知データが参照され、転送可能DMA情報によって示されるDMA回路421に対応する転送可能フラグ423bがクリアされる(ステップS108)。これにより、転送可能フラグ423bがセットされていたDMA回路421からのリクエストが、再びリクエスト受付部423aによって受け付けられ始める。
次に、DMA回路421からリクエストが発行された場合の処理状況通知部423の動作の具体例について、図8に示すシーケンス図を参照しながら説明する。図8においては、DMA回路#1〜#3の3つのDMA回路421がLSI42に備えられているものとする。
DMA回路#1〜#3は、各々CPU43からの命令に従って随時データ転送を行っているが、例えばDMA回路#1がCPU43からの命令により、ホストコンピュータ20へのデータ転送を実行する場合を考える。このとき、DMA回路#1は、キャッシュコントローラ60を介してキャッシュメモリから転送対象のデータを読み出し、データバッファ41に記憶させる。そして、データ転送の準備が完了すると、処理状況通知部423へ転送実行のリクエストを送信する(ステップS201)。
このリクエストは、リクエスト受付部423aによって受け付けられ、DMA回路#1に対応する転送可能フラグ423bがセットされる(ステップS202)。転送可能フラグ423bのセットが通知データ生成部423cによって検知されると、状態情報収集部423dによって状態情報が収集される。具体的には、状態情報収集部423dによって、DMA回路#1の転送状態、TOP、およびBTMが収集され(ステップS203)、同様に、DMA回路#2とDMA回路#3の転送状態、TOP、およびBTMが収集される(ステップS204、ステップS205)。
ここで、DMA回路#1はリクエストを発行したDMA回路であるため、転送状態としては「転送待機中」であり、TOPとBTMは一致していない。また、DMA回路#2およびDMA回路#3に関しては、リクエストを発行していないため、転送状態としては前回のデータ転送が終了した「転送正常終了(または異常終了)」か既に転送実行中である「転送実行中」であり、「転送正常終了」であればTOPとBTMは一致している。
こうして収集された状態情報と転送可能フラグ423bがセットされたDMA回路#1を示す転送可能DMA情報とから通知データ生成部423cによって通知データが生成され(ステップS206)、生成された通知データは、バスI/F424およびバス47を介して割り込み処理の要求としてCPU43へ送信される(ステップS207)。CPU43では、通知データによって割り込み処理が発生し、通知データの転送可能DMA情報から転送の実行が可能であるDMA回路#1に対してデータ転送の命令が出されるとともに、その他のDMA回路#2およびDMA回路#3に関しても状態情報の管理が実行される。
一方、通知データのCPU43への送信が完了すると、バス47からは送信完了通知が処理状況通知部423へ返送され(ステップS208)、送信完了通知によって送信完了検知部423eが通知データの送信完了を検知すると、通知データによって転送の実行が可能なDMA回路とされたDMA回路#1の転送可能フラグ423bがクリアされる(ステップS209)。これにより、DMA回路#1からのリクエストが再び受け付けられるようになる。
これらの処理を通じて、バス47が占有されるのは、通知データがCPU43へ送信されるときのみである。そして、この通知データには、リクエストを発行したすべてのDMA回路421(ここではDMA回路#1のみ)を示す転送可能DMA情報とすべてのDMA回路421(ここではDMA回路#1〜#3)の状態情報とが含まれているため、CPU43は、各DMA回路421から情報をリードする必要がなくなり、処理負荷が低減される。また、DMA回路421とCPU43の間の情報のやり取りの回数が減少し、バス47の占有率が減少する。
以上のように、本実施の形態によれば、転送の実行を要求するリクエストがDMA回路から発行されると、リクエストを発行したDMA回路とすべてのDMA回路による転送の状態とを割り込み処理を要求する通知データとしてCPUへ通知する。このため、CPUがDMA回路に対するリードを行わなくても、1回の通知データの伝送により必要な情報がすべてCPUへ通知され、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行することができる。
なお、本実施の形態においては、キャッシュメモリのデータがホストコンピュータ20へ転送される場合の処理について説明したが、本発明は複数のDMA回路421がそれぞれデータ転送を実行する様々な状況に応用することができる。また、チャネルアダプタ40やキャッシュコントローラ60の内部には、CPUの代わりに例えばMPU(Micro Processing Unit)など他のプロセッサが設けられていても良い。
(付記1)各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、
前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段と
を有することを特徴とするデータ転送装置。
(付記2)前記収集手段は、
前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする付記1記載のデータ転送装置。
(付記3)前記収集手段は、
前記複数の転送回路がそれぞれ前回のデータ転送を正常に終了したか否かを示す転送状態情報を収集することを特徴とする付記1記載のデータ転送装置。
(付記4)前記収集手段は、
前記複数の転送回路が転送するデータから生成されるチェックコードまたは転送するデータのヘッダ情報を収集することを特徴とする付記3記載のデータ転送装置。
(付記5)前記受付手段は、
前記複数の転送回路それぞれに対応するフラグを含み、前記転送可能回路に対応するフラグをセットすることを特徴とする付記1記載のデータ転送装置。
(付記6)前記生成手段は、
前記フラグを常時監視し、新たにフラグがセットされた場合に、状態情報の収集を前記収集手段へ指示することを特徴とする付記5記載のデータ転送装置。
(付記7)前記送信手段から前記プロセッサへの通知データの送信が完了したことを検知する検知手段をさらに有し、
前記受付手段は、
前記検知手段によって送信完了が検知された通知データに情報が含まれる転送可能回路に対応するフラグをクリアすることを特徴とする付記5記載のデータ転送装置。
(付記8)前記送信手段は、
前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする付記1記載のデータ転送装置。
(付記9)各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、
前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、
前記複数の転送回路の少なくとも1つが前記バッファを介したデータ転送処理の実行を要求する場合に、前記複数の転送回路すべてに係るデータ転送処理状況を同時に前記複数の転送回路を管理するプロセッサへ通知する処理状況通知手段と
を有することを特徴とする半導体集積回路。
(付記10)前記処理状況通知手段は、
前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付手段と、
前記受付手段によって転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集手段と、
前記受付手段が転送要求を受け付けた転送可能回路の情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
前記生成手段によって生成された通知データを前記プロセッサへ送信する送信手段と
を含むことを特徴とする付記9記載の半導体集積回路。
(付記11)各々データの転送を制御する複数の転送回路を備えたデータ転送装置における処理状況通知方法であって、
前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付工程と、
前記受付工程にて転送要求が受け付けられた場合に、前記複数の転送回路すべてに係るデータ転送の状態を示す状態情報を収集する収集工程と、
前記受付工程にて転送要求を受け付けた転送可能回路の情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、
前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程と
を有することを特徴とする処理状況通知方法。
本発明は、プロセッサの処理負荷を軽減するとともにデータ転送以外の処理によるバスの占有率を減少させ、迅速にデータ転送を実行する場合に適用することができる。
一実施の形態に係るディスクアレイ装置の概略構成を示すブロック図である。 一実施の形態に係るチャネルアダプタの内部構成を示すブロック図である。 一実施の形態に係る処理状況通知部の内部構成を示すブロック図である。 一実施の形態に係る転送データの一例を示す図である。 一実施の形態に係る転送可能フラグの一例を示す図である。 一実施の形態に係る通知データの一例を示す図である。 一実施の形態に係る処理状況通知方法を示すフロー図である。 一実施の形態に係るデータ転送リクエスト発行時の動作を示すシーケンス図である。 バスを備えたデータ転送装置の構成例を示すブロック図である。 データ転送時の割り込み処理を示すシーケンス図である。
符号の説明
40 チャネルアダプタ
41 データバッファ
42 LSI
421 DMA回路
422 バッファ
423 処理状況通知部
423a リクエスト受付部
423b 転送可能フラグ
423c 通知データ生成部
423d 状態情報収集部
423e 送信完了検知部
424 バスI/F
43 CPU
44 メモリ
45 プロトコルコントローラ
46 光モジュール
47 バス

Claims (5)

  1. 各々データの転送を制御する複数の転送回路を備えたデータ転送装置であって、
    前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付手段と、
    前記受付手段によって転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集手段と、
    前記受付手段によって受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
    前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段と
    を有することを特徴とするデータ転送装置。
  2. 前記収集手段は、
    前記複数の転送回路が転送するデータの先頭アドレスおよび末尾アドレスを収集することを特徴とする請求項1記載のデータ転送装置。
  3. 前記送信手段は、
    前記プロセッサにおける割り込み処理の要求として通知データを送信することを特徴とする請求項1記載のデータ転送装置。
  4. 各々データの転送を制御する複数の転送回路を備えた半導体集積回路であって、
    前記複数の転送回路の制御によって転送されるデータを順次入出力するバッファと、
    前記複数の転送回路の少なくとも1つから前記バッファを介したデータ転送要求を受け付ける受付手段と、
    前記受付手段によって転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集手段と、
    前記受付手段によって受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集手段によって収集された状態情報を含む通知データを生成する生成手段と、
    前記生成手段によって生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信手段と
    を有することを特徴とする半導体集積回路。
  5. 各々データの転送を制御する複数の転送回路を備えたデータ転送装置における処理状況通知方法であって、
    前記複数の転送回路の少なくとも1つからデータの転送要求を受け付ける受付工程と、
    前記受付工程にて転送要求が受け付けられた場合に、当該転送要求を送信した転送回路以外の転送回路それぞれが、既にデータ転送を終了した状態、データ転送を待機中である状態、およびデータ転送を実行中である状態のどの状態であるかを示す状態情報を収集する収集工程と、
    前記受付工程にて受け付けられた転送要求がどの転送回路から送信されたかを示す情報および前記収集工程にて収集された状態情報を含む通知データを生成する生成工程と、
    前記生成工程にて生成された通知データを前記複数の転送回路を管理するプロセッサへ送信する送信工程と
    を有することを特徴とする処理状況通知方法。
JP2007023367A 2007-02-01 2007-02-01 データ転送装置、半導体集積回路、および処理状況通知方法 Expired - Fee Related JP4369486B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007023367A JP4369486B2 (ja) 2007-02-01 2007-02-01 データ転送装置、半導体集積回路、および処理状況通知方法
US11/984,419 US7757016B2 (en) 2007-02-01 2007-11-16 Data transfer device, semiconductor integrated circuit, and processing status notification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007023367A JP4369486B2 (ja) 2007-02-01 2007-02-01 データ転送装置、半導体集積回路、および処理状況通知方法

Publications (2)

Publication Number Publication Date
JP2008191782A JP2008191782A (ja) 2008-08-21
JP4369486B2 true JP4369486B2 (ja) 2009-11-18

Family

ID=39677137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007023367A Expired - Fee Related JP4369486B2 (ja) 2007-02-01 2007-02-01 データ転送装置、半導体集積回路、および処理状況通知方法

Country Status (2)

Country Link
US (1) US7757016B2 (ja)
JP (1) JP4369486B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335857B1 (en) * 2009-05-21 2012-12-18 Sprint Communications Company L.P. System and methods of data transmission to devices
JP5423483B2 (ja) * 2010-03-04 2014-02-19 株式会社リコー データ転送制御装置
WO2019008654A1 (ja) * 2017-07-04 2019-01-10 株式会社日立製作所 ストレージシステム、コピー制御方法、及び計算機システム
CN112015580A (zh) * 2019-05-31 2020-12-01 瑞昱半导体股份有限公司 具资料传收机制的电子装置以及资料传收方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57103530A (en) 1980-12-19 1982-06-28 Fujitsu Ltd Channel controlling system
JPH05257865A (ja) 1992-03-04 1993-10-08 Nec Corp ディスクリプタ制御方式
JP2000357147A (ja) 1999-06-14 2000-12-26 Canon Inc 情報処理システム、印刷システム及び情報処理装置とそれらの制御方法
JP4546629B2 (ja) 2000-05-25 2010-09-15 株式会社日立製作所 記憶システム、記憶システムの応答方法及び記録媒体
JP3680763B2 (ja) * 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2003296140A (ja) 2002-04-02 2003-10-17 Nec Corp オブジェクト監視方式、オブジェクト監視方法およびオブジェクト監視用プログラム
WO2004079583A1 (ja) * 2003-03-05 2004-09-16 Fujitsu Limited データ転送制御装置およびdmaデータ転送制御方法
JP4104560B2 (ja) 2004-01-28 2008-06-18 三洋電機株式会社 アダプタ装置

Also Published As

Publication number Publication date
US7757016B2 (en) 2010-07-13
US20080189450A1 (en) 2008-08-07
JP2008191782A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
US7895375B2 (en) Data transfer apparatus and data transfer method
US7633856B2 (en) Multi-node system, internodal crossbar switch, node and medium embodying program
JP4669088B1 (ja) 試験装置、試験方法およびプログラム
JP2004220216A (ja) San/nas統合型ストレージ装置
US7873880B2 (en) Data relay device, storage device, and response delay monitoring method
JP4408126B2 (ja) 監視装置、半導体集積回路、および監視方法
JP5551512B2 (ja) 通信制御装置、データ通信方法及びプログラム
JP2006244123A (ja) データストレージシステム及びデータストレージ制御装置
US20060200614A1 (en) Computer system using serial connect bus, and method for interconnecting a plurality of CPU using serial connect bus
US9015380B2 (en) Exchanging message data in a distributed computer system
JP4369486B2 (ja) データ転送装置、半導体集積回路、および処理状況通知方法
KR20180116717A (ko) 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법
JPH0818567A (ja) データの交換処理方法及び装置
US7409486B2 (en) Storage system, and storage control method
JP2010211322A (ja) ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
JP2005267502A (ja) データ転送用スイッチ
JP2009093225A (ja) ストレージ制御装置、方法及びプログラム並びにストレージ装置
JP5333467B2 (ja) データ転送制御装置、データ転送制御方法およびプログラム
JP2007272643A (ja) Usbデバイス共有システム、これで用いるサーバのインタフェース装置、及びその動作方法
JP2002116883A (ja) ディスクアレイ制御装置
JP4369467B2 (ja) データ中継装置、ストレージ装置、およびデータ中継方法
JP6542513B2 (ja) Usb転送装置、usb転送システムおよびusb転送方法
JP4439295B2 (ja) データ転送制御装置
JP4355531B2 (ja) データ転送制御装置およびデータ転送制御システム
JP2006146949A (ja) ディスクアレイ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090403

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4369486

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees