(57)【特許請求の範囲】
【請求項１】
第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継して入手する場合において、
前記第二の情報処理装置ごとに、
前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力する同期制御手段と、
前記共通クロック信号と同期して動作し、前記第一の情報処理装置と、前記複数の第二の情報処理装置とを順番に中継する第一の通信パスを使用して受信した、自装置に格納した前記格納データに対する前記第一の情報処理装置からのリクエストデータが、自装置宛である場合、当該リクエストデータを前記同期制御手段へ出力するリクエスト受信手段と、
前記共通クロック信号と同期して動作し、自装置宛の前記リクエストデータに対し、前記同期制御手段が出力した前記リプライデータを、前記リクエストデータを受信してから所定の時間記憶したのち、前記第一の情報処理装置と、前記複数の第二の情報処理装置とを順番に中継する第二の通信パスを使用して、後段に位置する前記第二の情報処理装置、あるいは、前記第一の情報処理装置へ送信するリプライ送出手段と、
を備える、データ転送制御システム。
【請求項２】
前記リプライ送出手段は、前記第二の情報処理装置が、前記リクエストデータを受信してから前記リクエストデータに対して生成した前記リプライデータを送信するまでに要する時間が、前記複数の第二の情報処理装置の間で一定となるように、前記リプライデータを所定の時間に亘って記憶する、
請求項１に記載のデータ転送制御システム。
【請求項３】
前記同期制御手段は、前記共通クロック信号と同期して入手した前記リクエストデータを、前記個別クロック信号と同期して出力する、
請求項１又は２に記載のデータ転送制御システム。
【請求項４】
前記同期制御手段は、
前記リクエスト受信手段から入力された前記リクエストデータを、前記共通クロック信号と同期して記憶するリクエストデータ入力バッファと、
前記リクエストデータ入力バッファから出力された前記リクエストデータを、前記個別クロック信号と同期して記憶するリクエストデータ出力バッファと、
前記第二の情報処理装置が生成した前記リプライデータを、前記個別クロック信号と同期して記憶するリプライデータ入力バッファと、
前記リプライデータ入力バッファから出力された前記リプライデータを、前記共通クロック信号と同期して記憶するリプライデータ出力バッファと、
を備える、請求項１乃至３のいずれかに記載のデータ転送制御システム。
【請求項５】
前記リクエスト受信手段は、入手した前記第一の情報処理装置からのリクエストデータが他装置宛である場合、当該リクエストデータを、後段に位置する前記第二の情報処理装置へ送信する、
請求項３又は４に記載のデータ転送制御システム。
【請求項６】
前記リプライ送出手段は、前記リプライデータを所定の時間記憶可能な１以上のバッファを備え、先入れ先出し方式によって、前記リプライデータを読み出す、
請求項１乃至５のいずれかに記載のデータ転送制御システム。
【請求項７】
前記共通クロック信号を生成し、生成した前記共通クロック信号を、前記複数の第二の情報処理装置に分配する共通クロック信号分配手段、
をさらに備える、請求項１乃至６のいずれかに記載のデータ転送制御システム。
【請求項８】
前記複数の第二の情報処理装置は、デイジーチェーン形式によって、前記第一の情報処理装置と接続する、
請求項１乃至７のいずれかに記載のデータ転送制御システム。
【請求項９】
第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継して入手する場合において、
前記複数の第二の情報処理装置によって、
前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力し、
前記第一の情報処理装置と、前記複数の第二の情報処理装置とを順番に中継する第一の通信パスを使用して受信した、自装置に格納した前記格納データに対する前記第一の情報処理装置からのリクエストデータが、自装置宛である場合、当該リクエストデータを前記共通クロック信号と同期して出力し、
自装置宛の前記リクエストデータに対して出力した前記リプライデータを所定の時間記憶したのち、前記第一の情報処理装置と、前記複数の第二の情報処理装置とを順番に中継する第二の通信パスを使用して、後段に位置する前記第二の情報処理装置へ、あるいは、前記第一の情報処理装置へ、前記共通クロック信号と同期して送信する、
データ転送制御方法。
【請求項１０】
第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継して入手する場合において、
前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力する同期制御処理と、
前記第一の情報処理装置と、前記複数の第二の情報処理装置とを順番に中継する第一の通信パスを使用して受信した、自装置に格納した前記格納データに対する前記第一の情報処理装置からのリクエストデータが、自装置宛である場合、前記リクエストデータを前記共通クロック信号と同期して出力するリクエスト受信処理と、
自装置宛の前記リクエストデータに対して前記同期制御処理が出力した前記リプライデータを、所定の時間記憶したのち、前記第一の情報処理装置と、前記複数の記第二の情報処理装置とを順番に中継する第二の通信パスを使用して、後段に位置する前記第二の情報処理装置、あるいは、前記第一の情報処理装置へ、前記共通クロック信号と同期して送信するリプライ送出処理と、
を前記複数の第二の情報処理装置に実行させる、データ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、複数の情報処理装置が通信可能に接続されたシステムにおいて、情報処理装置が他の情報処理装置に格納されたデータにアクセスする際に、そのシステム内の情報処理装置のうちの少なくともいずれかが順番に中継する通信パスを使用して、当該データを転送することを制御するデータ転送制御システム等に関する。
【背景技術】
【０００２】
複数の情報処理装置が通信可能に接続されたシステムに関して、これらの情報処理装置を接続する様々な形態が知られている。例えば、マスター装置が複数のスレーブ装置を接続する形態に関する代表的な例として、デイジーチェーン接続がある。このデイジーチェーン接続では、マスター装置が複数のスレーブ装置を数珠つなぎに接続する。そして、マスター装置が特定のスレーブ装置に格納されたデータにアクセスする場合、マスター装置が発行したリクエストデータ、及び、その特定のスレーブ装置が発行したリプライデータは、他のスレーブ装置が中継しながら、目的の装置まで転送される。
【０００３】
このような、デイジーチェーン接続により複数の情報処理装置が接続されたシステムにおいては、例えば、複数のスレーブ装置に格納されたデータにアクセスするタイミングに
所定の条件がある場合、あるいは、複数のスレーブ装置に同時に高負荷なアクセスを行う場合等において、高度なデータ転送制御技術が期待されている。
【０００４】
このような技術の一例として、特許文献１には、ホスト装置に複数のデバイスがデイジーチェーン接続されているシステムが開示されている。このシステムは、そのホスト装置が当該各デバイスからデータをリードする際のレイテンシ（遅延時間）が同じになるように、各デバイスに関するレンテンシを調整する通信装置を備える。
【０００５】
また、特許文献２には、デバイスをデイジーチェーンカスケード配列によって連結した装置が開示されている。この装置では、デイジーチェーンカスケードにおける前段に位置するデバイスの出力部は、情報と制御信号を後段に位置するデバイスに転送できるように、その後段に位置するデバイスの入力部に連結される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2010-57164号公報
【特許文献２】特開2009-301586号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マスター装置にデイジーチェーン接続等により接続されたスレーブ装置は、一般的に、それぞれのスレーブ装置が生成した個別クロック信号により動作している。したがって、マスター装置が発行したリクエストに対してそれぞれのスレーブ装置が発行するリプライは、個別クロックと同期したタイミング、すなわち、スレーブ装置間で非同期なタイミングで発行される。これにより、リプライデータが流れる共通のリプライパスに関して、複数のスレーブ装置間で競合が発生する可能性が高くなる。
【０００８】
このようなリプライパスに関する競合を回避するために、例えば、リプライパスに流れるリプライデータを１つ、即ち、あるタイミングにおいて何れかのスレーブ装置によるリプライデータだけに制限することによって逐次処理することも考えられる。しかしながらこの場合、十分なデータ転送性能を確保できないことにより、システム性能が低下する問題がある。特許文献１に記載された装置では、このような問題を解決することはできない。
【０００９】
本願発明の主たる目的は、この問題を解決した、データ転送制御システム等を提供することである。
【課題を解決するための手段】
【００１０】
本願発明の一態様に係るデータ転送制御システムは、第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継する通信パスを使用して入手する場合において、前記第二の情報処理装置ごとに、前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力する同期制御手段と、前記共通クロック信号と同期して動作し、前記同期制御手段が出力した前記リプライデータを所定の時間記憶したのち、後段に位置する前記第二の情報処理装置、あるいは、前記第一の情報処理装置へ送信するリプライ送出手段と、を備える。
【００１１】
上記目的を達成する他の見地において、本願発明の一態様に係るデータ転送制御方法は、第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継する通信パスを使用して入手する場合において、前記複数の第二の情報処理装置によって、前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力し、出力した前記リプライデータを所定の時間記憶したのち、後段に位置する前記第二の情報処理装置へ、あるいは、前記第一の情報処理装置へ、前記共通クロック信号と同期して送信する。
【００１２】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るデータ転送制御プログラムは、第一の情報処理装置が、自装置固有の個別クロック信号と同期して自装置に格納した格納データにアクセスする、複数の第二の情報処理装置のうちの特定の情報処理装置に格納された前記格納データにアクセスする際に、前記特定の情報処理装置が発行した前記格納データへのアクセス結果を表すリプライデータを、前記特定の情報処理装置を除く少なくともいずれかの前記第二の情報処理装置が順番に中継する通信パスを使用して入手する場合において、前記第二の情報処理装置が前記個別クロック信号と同期して生成する前記リプライデータを、前記複数の第二の情報処理装置に対して共通に分配された共通クロック信号と同期して出力する同期制御処理と、前記同期制御処理が出力した前記リプライデータを所定の時間記憶したのち、後段に位置する前記第二の情報処理装置、あるいは、前記第一の情報処理装置へ、前記共通クロック信号と同期して送信するリプライ送出処理と、を前記複数の第二の情報処理装置に実行させる。
【００１３】
更に、本発明は、係るデータ転送制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１４】
本願発明は、個別クロック信号により自装置内に格納したデータにアクセスする複数の情報処理装置が接続され、他装置からのアクセスに関するデータが複数の情報処理装置を中継する通信パスを流れるシステムにおいて、当該情報処理装置間のデータ転送性能を向上することを可能とする。
【図面の簡単な説明】
【００１５】
【図１】本願発明の第１の実施形態に係るデータ転送制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るデータ処理制御部の構成を示すブロック図である。
【図３】本願発明の第１の実施形態に係るリクエストデータの構成を例示する図である。
【図４】本願発明の第１の実施形態に係るリプライデータの構成を例示する図である。
【図５】本願発明の第１の実施形態に係る同期制御部の構成を示すブロック図である。
【図６】本願発明の第１の実施形態に係るリクエストパス及びリプライパスに流れるデータに関するタイムチャートの例である。
【図７Ａ】本願発明の第１の実施形態に係るデータ転送制御システムの動作を示すフローチャート（１／２）である。
【図７Ｂ】本願発明の第１の実施形態に係るデータ転送制御システムの動作を示すフローチャート（２／２）である。
【図８】本願発明の第２の実施形態に係るデータ転送制御システムの構成を示すブロック図である。
【図９】本願発明の各実施形態に係るスレーブ装置あるいは第２の情報処理装置が行う処理を実行可能な情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、第１の実施形態に係るデータ転送制御システム１の構成を概念的に示すブロック図である。本実施形態に係るデータ転送制御システム１は、マスター装置１０、３つのスレーブ装置２０乃至４０、及び、共通クロック信号分配装置５０を備えている。マスター装置１０は、例えば、サーバ装置等の情報処理装置である。スレーブ装置２０乃至４０は、装置内部に格納したデータをマスター装置１０からアクセスされる装置であり、例えば、マスター装置１０によって制御される記憶装置等の周辺装置である。本実施形態では、スレーブ装置２０乃至４０は、マスター装置１０と通信可能にデイジーチェーン接続されている。尚、マスター装置１０に接続されるスレーブ装置は、３つに限定されない。
【００１８】
スレーブ装置２０乃至４０は、順に、データ処理制御部２００乃至４００を備えている。データ処理制御部２００乃至４００には、スレーブ装置２０乃至４０が個別に生成する個別クロック信号ＩＣが入力されている。
【００１９】
共通クロック信号分配装置５０は、スレーブ装置２０乃至４０が共通して使用する共通クロック信号ＣＣを生成して、その共通クロック信号ＣＣを、データ処理制御部２０乃至４０に入力する。共通クロック信号分配装置５０は、単体装置でなくてもよく、例えば、マスター装置１０などに内蔵された電子回路等であってもよい。
【００２０】
マスター装置１０は、スレーブ装置２０乃至４０のいずれかに格納されたデータにアクセスする際に、目的のスレーブ装置（アクセス対象とするスレーブ装置）に対してリクエストデータを発行する。当該リクエストデータは、マスター装置１０と目的のスレーブ装置との間に位置するスレーブ装置によって中継されるリクエストパスを流れたのちに、目的のスレーブ装置に入力される。目的のスレーブ装置は、入力されたリクエストデータが要求する処理を行ったのち、その処理結果であるリプライデータを生成する。当該リプライデータは、目的のスレーブ装置とマスター装置１０との間に位置するスレーブ装置によって中継されるリプライパスを流れたのちに、マスター装置１０に入力される。
【００２１】
図２は、本実施形態に係るスレーブ装置３０が備えるデータ処理制御部３００の構成を概念的に示すブロック図である。スレーブ装置２０が備えるデータ処理制御部２００、及び、スレーブ装置４０が備えるデータ処理制御部４００の構成も、データ処理制御部３００と同様である。
【００２２】
データ処理制御部３００は、リクエスト受信部３１０、リプライ送出部３２０、同期制御部３３０、及び、リクエスト処理部３４０を備えている。リクエスト受信部３１０、リプライ送出部３２０、同期制御部３３０、及び、リクエスト処理部３４０は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。
【００２３】
リクエスト受信部３１０は、リクエスト判定部３１１、及び、リプライ有無判定部３１２を備えている。リクエスト受信部３１０には、共通クロック信号分配装置５０から分配された共通クロック信号ＣＣが入力され、リクエスト受信部３１０は、共通クロック信号ＣＣと同期して動作する。リクエスト判定部３１１は、デイジーチェーン接続においてスレーブ装置３０の前段に位置するスレーブ装置２０から転送された、マスター装置によって発行されたリクエストデータを受信する。
【００２４】
本実施形態に係るリクエストデータの構成例を図３に示す。図３に示す通り、リクエストデータ１００は、有効フラグ１０１、命令種別１０２、アクセス先装置１０３、アクセス先アドレス１０４、及び、書き込みデータ１０５を包含している。有効フラグ１０１は、リクエストデータ１００が有効であるか否かを示す情報であり、有効である場合は「１」、無効である場合は「０」が格納される。命令種別１０２は、リクエストデータ１００が示す命令が、読み出し命令であるのか、あるいは、書き込み命令であるのかを示す情報である。アクセス先装置１０３は、マスター装置１０がアクセスするスレーブ装置２０乃至４０の何れかを識別可能な識別子である。アクセス先アドレス１０４は、マスター装置１０がアクセスするデータが格納されたアドレスの値である。書き込みデータ１０５は、リクエストデータ１００が書き込み命令である場合における書き込みデータを格納している。書き込みデータ１０５は、リクエストデータ１００が読み出し命令である場合は、未使用である。
【００２５】
リクエスト判別部３１１は、受信したリクエストデータ１００におけるアクセス先装置１０３を参照する。アクセス先装置１０３がスレーブ装置３０を示していない場合（すなわち、スレーブ装置４０を示す場合）、リクエスト判別部３１１は、受信したリクエストデータ１００を、デイジーチェーン接続においてスレーブ装置３０の後段に位置するスレーブ装置４０に転送する。アクセス先装置１０３がスレーブ装置３０を示している場合、リクエスト判別部３１１は、受信したリクエストデータ１００を、リプライ有無判定部３１２、及び、同期制御部３３０へ入力する。
【００２６】
リプライ有無判定部３１２は、リクエスト判別部３１１から入力されたリクエストデータ１００における命令種別１０２を参照する。命令種別１０２が読み出し命令を示す場合、リプライ有無判定部３１２は、リクエストに対するリプライが必要であると判定し、その判定結果をリプライ送出部３２０へ入力する。命令種別１０２が書き込み命令を示す場合、リプライ有無判定部３１２は、リクエストに対するリプライが不要であると判定し、リプライ送出部３２０に対して、判定結果を入力しない。尚、本実施形態では、スレーブ装置２０乃至４０は、マスター装置１０からのリクエストが読み出し命令のときのみマスター装置１０に対してリプライを返す場合を例に説明しているが、当該リクエストが書き込み命令のときに、書き込み結果をリプライとして返すようにしてもよい。その場合は、リクエスト受信部３１０は、リプライ有無判定部３１２を備えなくてもよい。
【００２７】
リプライ送出部３２０は、リプライ生成部３２１、リプライタイミング生成部３２２、及び、リプライタイミング調整部３２３を備えている。リプライ送出部３２０には、共通クロック信号分配装置５０から分配された共通クロック信号ＣＣが入力され、リプライ送出部３２０は、共通クロック信号ＣＣと同期して動作する。
【００２８】
リプライ生成部３２１は、スレーブ装置２０がマスター装置１０からのリクエストに対して生成したリプライデータを受信した場合、当該リプライデータをスレーブ装置４０に転送する。リプライ生成部３２１は、リプライタイミング調整部３２３から、スレーブ装置３０がマスター装置１０からのリクエストに対して生成したリプライデータを入力されたときに、当該リプライデータをスレーブ装置４０に転送する。
【００２９】
リプライタイミング生成部３２２は、リプライ有無判定部３１２からリプライに関する判定結果を入力されたときに、所定の基準に従って、スレーブ装置３０が生成したリプライデータを、スレーブ装置３０がスレーブ装置４０に転送するタイミングを示すリプライタイミング情報を生成する。例えば、係る所定の基準が、「スレーブ装置３０が自装置に対するリクエストデータを受信してから、共通クロックＣＣに関するサイクルを基準として、３サイクル後」であるとする。この場合、リプライタイミング生成部３２２は、生成したリプライタイミング情報に基づいたタイミングに、リプライデータを転送する指示を、リプライタイミング調整部３２３へ入力する。これにより、リプライ送出部３２０は、リクエスト受信部３１０がリクエストデータを受信してから３サイクル後に、リプライデータを転送することができる。
【００３０】
リプライタイミング調整部３２３は、スレーブ装置３０がマスター装置１０からのリクエストに対して生成したリプライデータを同期制御部３３０から入力された場合、当該リプライデータを一時記憶する。リプライタイミング調整部３２３は、リプライタイミング生成部３２２から当該リプライデータを転送する指示を入力されたときに、当該リプライデータをリプライ生成部３２１へ入力する。尚、リプライタイミング調整部３２３は、複数のリプライデータを記憶可能な複数のバッファを複数備え、例えばＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）形式により、リプライデータをリプライ生成部３２１へ入力してもよい。
【００３１】
図５は、本実施形態に係る同期制御部３３０の構成を概念的に示すブロック図である。同期制御部３３０は、リクエストデータ入力バッファ３３１、リクエストデータ出力バッファ３３２、リプライデータ入力バッファ３３３、及び、リプライデータ出力バッファ３３４を備えている。リクエストデータ入力バッファ３３１及びリプライデータ出力バッファ３３４には共通クロック信号ＣＣが入力され、これらのバッファは、共通クロック信号ＣＣと同期して動作する。リクエストデータ出力バッファ３３２及びリプライデータ入力バッファ３３３には個別クロック信号ＩＣが入力され、これらのバッファは、個別クロック信号ＩＣと同期して動作する。
【００３２】
リクエストデータ入力バッファ３３１は、リクエスト受信部３１０から入力されたリクエストデータを一時記憶したのち、リクエストデータ出力バッファ３３２へ入力する。リクエストデータ出力バッファ３３２は、リクエストデータ入力バッファ３３１から入力されたリクエストデータを一時記憶したのち、個別クロック信号ＩＣと同期したタイミングに、当該リクエストデータをリクエスト処理部３４０へ入力する。
【００３３】
リプライデータ入力バッファ３３３は、リクエスト処理部３４０から入力されたリプライデータを一時記憶したのち、リプライデータ出力バッファ３３４へ入力する。リプライデータ出力バッファ３３４は、リプライデータ入力バッファ３３３から入力されたリプライデータを一時記憶したのち、共通クロック信号ＣＣと同期したタイミングに、当該リプライデータをリプライ送出部３２０へ入力する。
【００３４】
リクエスト処理部３４０は、同期制御部３３０から入力されたリクエストデータが指示する処理を行う。リクエスト処理部３４０には個別クロック信号ＩＣが入力され、リクエスト処理部３４０は、個別クロック信号ＩＣと同期して動作する。
【００３５】
リクエスト処理部３４０は、図３に示す命令種別１０２が書き込み命令を示す場合、アクセス先アドレス１０４が示すアドレスに対して、書き込みデータ１０５が示すデータを書き込む。リクエスト処理部３４０は、図３に示す命令種別１０２が読み出し命令を示す場合、アクセス先アドレス１０４が示すアドレスからデータを読み出した後、読み出したデータに基づいてリプライデータを生成する。
【００３６】
リクエスト処理部３４０が生成するリプライデータの構成例を図４に示す。図４に示す通り、リプライデータ１１０は、有効フラグ１１１、アクセス先装置１１２、及び、読み出しデータ１１３を包含している。有効フラグ１１１は、リプライデータ１１０が有効であるか否かを示す情報であり、有効である場合は「１」、無効である場合は「０」が格納される。リクエスト処理部３４０は、リプライデータ１１０を生成する際に、有効フラグ１１１を「１」に設定する。アクセス先装置１１２は、リプライデータ１１０を発行したスレーブ装置を識別可能な識別子である。リクエスト処理部３４０は、アクセス先装置１１２として、スレーブ装置３０を識別可能な識別子を設定する。読み出しデータ１１３は、リクエスト処理部３４０によって読み出されたデータである。リクエスト処理部３４０は、生成したリプライデータを、同期制御部３３０へ入力する。
【００３７】
図６に、本実施形態に係るリクエストパス及びリプライパスに流れるデータに関するタイムチャートの例を示す。図６に示す例の場合、スレーブ装置２０乃至４０はいずれも、自装置に対するリクエストデータを受信してから、共通クロック信号ＣＣに関するサイクルを基準として３サイクル後に、生成したリプライデータを、後段に位置するスレーブ装置あるいはマスター装置１０に転送するように設定されている。
【００３８】
図６において、リクエストＡ、リクエストＢ、及び、リクエストＣは、順に、スレーブ装置２０、スレーブ装置３０、及び、スレーブ装置４０に対して、マスター装置１０から発行された読み出しリクエストである。リプライＡ、リプライＢ、及び、リプライＣは、順に、リクエストＡ、リクエストＢ、及び、リクエストＣに対して、スレーブ装置２０、スレーブ装置３０、及び、スレーブ装置４０が生成したリプライである。
【００３９】
図６に示す通り、マスター装置１０は、共通クロック信号ＣＣを基準としたｔ１、ｔ２、及び、ｔ３サイクルにおいて、順に、リクエストＡ、リクエストＢ、及び、リクエストＣを、スレーブ装置２０へ入力されるリクエストパスに出力する。
【００４０】
スレーブ装置２０は、自装置に対するリクエストであるリクエストＡを処理したのち、ｔ１から３サイクル後のｔ４サイクルにおいて、リプライＡを、スレーブ装置２０から出力されるリプライパスに出力する。スレーブ装置２０は、他装置に対するリクエストであるリクエストＢ及びリクエストＣを、順に、ｔ３及びｔ４サイクルにおいて、スレーブ装置３０へ入力されるリクエストパスに出力する。
【００４１】
スレーブ装置３０は、自装置に対するリクエストであるリクエストＢを処理したのち、ｔ３から３サイクル後のｔ６サイクルにおいて、リプライＢを、スレーブ装置３０から出力されるリプライパスに出力する。スレーブ装置３０は、他装置に対するリクエストであるリクエストＣを、ｔ５サイクルにおいて、スレーブ装置４０へ入力されるリクエストパスに出力する。スレーブ装置３０は、他装置が生成したリプライＡを、ｔ５サイクルにおいて、スレーブ装置３０から出力されるリプライパスに出力する。
【００４２】
スレーブ装置４０は、自装置に対するリクエストであるリクエストＣを処理したのち、ｔ５から３サイクル後のｔ８サイクルにおいて、リプライＣを、スレーブ装置４０から出力されるリプライパスに出力する。スレーブ装置４０は、他装置が生成したリプライＡ及びリプライＢを、順に、ｔ６及びｔ７サイクルにおいて、スレーブ装置４０から出力されるリプライパスに出力する。
【００４３】
このように、ｔ１乃至ｔ３サイクルにおいて、マスター装置１０から出力されたリクエストＡ乃至Ｃは、順に、スレーブ装置２０乃至４０によって処理されたのち、ｔ６乃至ｔ８サイクルにおいて、最終段に位置するスレーブ装置４０から、リプライＡ乃至Ｃが出力される。
【００４４】
次に図７Ａ及び７Ｂのフローチャートを参照して、本実施形態に係るデータ転送制御システム１の動作（処理）について、スレーブ装置３０の場合を例に詳細に説明する。尚、スレーブ装置２０及び４０の動作についても、スレーブ装置３０と同様である。
【００４５】
リクエスト受信部３１０は、スレーブ装置２０からリクエストデータを入手する（ステップＳ１０１）。当該リクエストデータが自装置（すなわちスレーブ装置３０）宛でない場合（ステップＳ１０２でＮｏ）、リクエスト受信部３１０は、入手したリクエストデータをスレーブ装置４０へ転送し（ステップＳ１０３）、全体の処理は終了する。
【００４６】
当該リクエストデータが自装置宛である場合（ステップＳ１０２でＹｅｓ）、同期制御部３３０は、共通クロック信号ＣＣと同期したタイミングで、リクエスト受信部３１０からリク当該エストデータを入手する（ステップＳ１０４）。同期制御部３３０は、個別クロック信号ＩＣと同期したタイミングで、リクエスト処理部３４０へ当該リクエストデータを入力する（ステップＳ１０５）。
【００４７】
当該リクエストが読み出しアクセスでない（すなわち書き込みアクセスである）場合（ステップＳ１０６でＮｏ）、リクエスト処理部３４０は、当該リクエストデータが示すアドレスにデータを書き込み（ステップＳ１０７）、全体の処理は終了する。
【００４８】
当該リクエストが読み出しアクセスである場合（ステップＳ１０６でＹｅｓ）、リクエスト処理部３４０は、当該リクエストデータが示すアドレスから、データを読み出してリプライデータを生成し、当該リプライデータを同期制御部３３０へ入力する（ステップＳ１０８）。
【００４９】
同期制御部３３０は、当該リプライデータを、個別クロック信号ＩＣと同期したタイミングで記憶する（ステップＳ１０９）。同期制御部３３０は、当該リプライデータを、共通クロック信号ＣＣと同期したタイミングで、リプライ送出部３２０へ入力する（ステップＳ１１０）。リプライ送出部３２０は、当該リプライデータを、所定の時間に亘って記憶したのち、スレーブ装置４０へ転送し（ステップＳ１１１）、全体の処理は終了する。
【００５０】
本実施形態に係るデータ転送制御システム１は、個別クロック信号ＩＣにより自装置内に格納したデータにアクセスする複数の情報処理装置が接続され、他装置からのアクセスに関するデータが複数の情報処理装置を中継する通信パスを流れるシステムにおいて、情報処理装置間のデータ転送性能を向上できる。その理由は、各情報処理装置（スレーブ装置）において、同期制御部が、アクセスリクエストに対して自装置が生成したリプライデータを、共通クロック信号ＣＣと同期してリプライ送出部へ入力し、リプライ送出部が、当該リプライデータを所定の時間に亘って記憶したのち、後段に位置する情報処理装置へ共通クロック信号ＣＣと同期して転送するからである。
【００５１】
マスター装置からアクセスされる複数の周辺装置等のスレーブ装置がマスター装置に接続されたシステムにおいて、一般的にそれらのスレーブ装置は、自装置が生成する個別クロック信号ＩＣと同期して動作する。そして、これらのスレーブ装置が、例えばデイジーチェーン接続されている場合、リクエスト及びリプライに関するデータは、スレーブ装置を中継する共有する通信パスを流れた後、目的の装置に到達する。
【００５２】
この場合、各スレーブ装置は、スレーブ装置間において、同期がとれていないタイミングに、リプライデータをリプライパスに出力する。この際、複数のスレーブ装置から出力されたリプライ出力が、共有するリプライパスにおいて競合することが頻繁に発生することによって、マスター装置とスレーブ装置との間のデータ転送性能が低下する問題がある。
【００５３】
これに対して、本実施形態に係るデータ転送制御システム１では、共通クロック信号分配装置５０が、スレーブ装置２０乃至４０に対して共通クロック信号ＣＣを分配する。そして、例えばスレーブ装置３０の場合、同期制御部３３０は、自装置が個別クロック信号ＩＣと同期して生成したリプライデータを、共通クロック信号ＣＣと同期してリプライ送出部３２０へ入力する。スレーブ装置３０におけるリプライ送出部３２０は、同期制御部３３０から入力されたリプライデータを、所定の時間に亘って記憶したのち、共通クロック信号ＣＣと同期して、共有するリプライパスに出力する。すなわち、スレーブ装置２０乃至４０は、スレーブ装置間において、共通クロック信号ＣＣを介して同期がとれたタイミングに、リプライデータをリプライパスに出力する。これにより、本実施形態に係るデータ転送制御システム１は、複数のスレーブ装置から出力されたリプライ出力が、共有するリプライパスにおいて競合することを回避することによって、マスター装置１０とスレーブ装置２０乃至４０との間のデータ転送性能を向上できる。
【００５４】
また、本実施形態に係るデータ転送制御システム１では、スレーブ装置２０乃至４０におけるリプライ送出部が、自装置が自装置に対するリクエストデータを受信してから、リプライデータをリプライパスに出力するまでに要する時間が、スレーブ装置２０乃至４０の間で一定となるように、リプライデータを所定の時間に亘って記憶する。例えば、図６に示す例では、スレーブ装置２０乃至４０におけるリプライ送出部は、リクエストデータを受信してから、リプライデータをリプライパスに出力するまでに要する時間が、共通クロック信号を基準として、３サイクルとなるように、リプライデータを記憶する。これにより、本実施形態に係るデータ転送制御システム１は、図６に示す通り、リクエストパス及びリプライパスを効率的に使用できるため、マスター装置１０とスレーブ装置２０乃至４０との間のデータ転送性能をさらに向上できる。
【００５５】
また、本実施形態に係るデータ転送制御システム１では、スレーブ装置２０乃至４０におけるリプライ送出部が、リプライデータを所定の時間記憶可能な複数のバッファを備え、ＦＩＦＯ方式によって、リプライデータを読み出すことができる。これにより、本実施形態に係るデータ転送制御システム１は、マスター装置１０が発行した複数のリクエストを、連続的に処理することができるため、システム性能を向上することができる。
【００５６】
尚、本実施形態に係るデータ転送制御システム１は、マスター装置に複数のスレーブ装置がデイジ−チェーン接続されたシステムに限定されない。例えば、１つの装置において、互いに異なるクロック信号に同期して動作する複数の回路がデイジーチェーン接続されたシステムにも、本実施形態が備える技術的思想を適用することができる。
【００５７】
また、本実施形態に係るデータ転送制御システム１は、複数の情報処理装置を接続する形態をデイジーチェーン接続に限定しない。例えば、複数の情報処理装置がデイジーチェーン以外の接続形態により互いに通信可能に接続されたマルチノードシステムであって、リクエストデータ及びリプライデータが、複数の情報処理装置によって中継されたのちに、目的の装置に到達するアーキテクチャを備えたシステム等にも、本実施形態が備える技術的思想を適用することができる。
【００５８】
＜第２の実施形態＞
図８は、第２の実施形態に係るデータ転送制御システム２の構成を概念的に示すブロック図である。
【００５９】
本実施形態に係るデータ転送制御システム２は、第１の情報処理装置６０、及び、ｎ個（ｎは２以上の整数）の第２の情報処理装置７０−１乃至７０−ｎを備えている。第２の情報処理装置７０−１乃至７０−ｎは、自装置固有の個別クロック信号ＩＣと同期して自装置に格納した格納データにアクセスする。第１の情報処理装置６０は、第２の情報処理装置７０−１乃至７０−ｎのうちの特定の第２の情報処理装置７０−ｉ（ｉは１乃至ｎのいずれかの整数）に格納された格納データにアクセスする。この際、第１の情報処理装置６０は、第２の情報処理装置７０−ｉが発行した当該格納データへのアクセス結果を表すリプライデータを、第２の情報処理装置７０−ｉを除く少なくともいずれかの第２の情報処理装置が順番に中継する通信パスを使用して入手する。図８に示す例の場合、第２の情報処理装置７０−ｉが生成したリプライデータは、第２の情報処理装置７０−（ｉ＋１）乃至７０−ｎによって順番に中継されたのち、第１の情報処理装置６０に入力される。
【００６０】
第２の情報処理装置７０−ｉは、リプライ送出部７１−ｉ、及び、同期制御部７２−ｉを備えている。
【００６１】
同期制御部７２−ｉは、第２の情報処理装置７０−ｉが個別クロック信号ＩＣと同期して生成するリプライデータを、第２の情報処理装置７０−１乃至７０−ｎに対して共通に分配された共通クロック信号ＣＣと同期して出力する。
【００６２】
リプライ送出部７１−ｉは、共通クロック信号ＣＣと同期して動作する。リプライ送出部７１−ｉは、同期制御部７２−ｉが出力したリプライデータを所定の時間に亘って記憶したのち、後段に位置する第２の情報処理装置７０−（ｉ＋１）へ（ｉ＝ｎでない場合）、あるいは、第１の情報処理装置６０へ（ｉ＝ｎである場合）送信する。
【００６３】
本実施形態に係るデータ転送制御システム２は、個別クロック信号ＩＣにより自装置内に格納したデータにアクセスする複数の情報処理装置が接続され、他装置からのアクセスに関するデータが複数の情報処理装置を中継する通信パスを流れるシステムにおいて、情報処理装置間のデータ転送性能を向上できる。その理由は、各第２の情報処理装置において、同期制御部が、アクセスリクエストに対して自装置が生成したリプライデータを、共通クロック信号ＣＣと同期してリプライ送出部へ入力し、リプライ送出部が、当該リプライデータを所定の時間に亘って記憶したのち、後段に位置する情報処理装置へ共通クロック信号ＣＣと同期して転送するからである。
【００６４】
＜ハードウェア構成例＞
上述した各実施形態において図２、及び、図８に示した各部は、専用のＨＷ（ＨａｗｄＷａｒｅ）（電子回路）によって実現することができる。また、少なくとも、リプライ送出部３２０及び７１−ｉ、及び、同期制御部３３０及び７２−ｉは、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図９を参照して説明する。
【００６５】
図９は、本発明の模範的な実施形態に係るスレーブ装置あるいは第２の情報処理装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図９は、図２、及び、図８に示したスレーブ装置あるいは第２の情報処理装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００６６】
図９に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク９０４（記憶装置）、
・外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９、
情報処理装置９００は、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００６７】
そして、上述した実施形態を例に説明した本発明は、図９に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図２、及び、図８）における、リプライ送出部３２０及び７１−ｉ、及び、同期制御部３３０及び７２−ｉ、或いはフローチャート（図７Ａ及び７Ｂ）の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６８】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００６９】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７０】
１    データ転送制御システム
１０    マスター装置
２０乃至４０  スレーブ装置
２００乃至４００  データ処理制御部
５０    共通クロック信号分配装置
１００    リクエストデータ
１０１    有効フラグ
１０２    命令種別
１０３    アクセス先装置
１０４    アクセス先アドレス
１０５    書き込みデータ
１１０    リプライデータ
１１１    有効フラグ
１１２    アクセス先装置
１１３    読み出しデータ
３１０    リクエスト受信部
３１１    リクエスト判定部
３１２    リプライ有無判定部
３２０    リプライ送出部
３２１    リプライ生成部
３２２    リプライタイミング生成部
３２３    リプライタイミング調整部
３３０    同期制御部
３３１    リクエストデータ入力バッファ
３３２    リクエストデータ出力バッファ
３３３    リプライデータ入力バッファ
３３４    リプライデータ出力バッファ
３４０    リクエスト処理部
２    データ転送制御システム
６０    第１の情報処理装置
７０−１乃至７０−ｎ  第２の情報処理装置
７１−ｉ    リプライ送出部
７２−ｉ    同期制御部
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
0006290761.tif 000002
【図２】
0006290761.tif 000003
【図３】
0006290761.tif 000004
【図４】
0006290761.tif 000005
【図５】
0006290761.tif 000006
【図６】
0006290761.tif 000007
【図７Ａ】
0006290761.tif 000008
【図７Ｂ】
0006290761.tif 000009
【図８】
0006290761.tif 000010
【図９】
0006290761.tif 000011