(57)【要約】【課題】共有バス接続で構成されるバス構造よりもデータ転送効率が良く、クロスバー接続で構成されるバス構造よりも配線量を低減するデータ転送装置を提供する。【解決手段】マスタ回路ブロック１０１、１０２と、スレーブ回路ブロック１０３、１０４との間でデータの転送を行うデータ転送装置であって、それぞれ対応する前記マスタ回路ブロックとの通信を行う第１の制御回路４０１、４０２と、それぞれ対応する前記スレーブ回路ブロックとの通信を行う第２の制御回路４０３、４０４と、前記第１の制御回路及び前記第２の制御回路に接続された共有バス２０１と、前記第１の制御回路と前記第２の制御回路との間をそれぞれ接続するクロスバー部３０１と、を備え、トランザクションのリクエストフェイズをクロスバー部３０１で実行し、データフェイズ及びレスポンスフェイズを共有バス２０１で実行する。【選択図】図１
2008158747.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個（ｎは１以上の整数）のマスタ回路ブロックと、ｍ個（ｍは１以上の整数）のスレーブ回路ブロックとの間でデータの転送を行うデータ転送装置であって、
それぞれ対応する前記マスタ回路ブロックとの通信を行うｎ個の第１の制御回路と、
それぞれ対応する前記スレーブ回路ブロックとの通信を行うｍ個の第２の制御回路と、
前記第１の制御回路及び前記第２の制御回路に接続された共有バスと、
ｎ個の前記第１の制御回路とｍ個の前記第２の制御回路との間をそれぞれ接続するクロスバー部と、
を備え、
前記第１の制御回路及び前記第２の制御回路は、前記マスタ回路ブロックが前記スレーブ回路ブロックへ送信する命令信号及び前記スレーブ回路ブロックが前記命令信号の受信に伴い前記マスタ回路ブロックへ送信する命令応答信号を前記クロスバー部を介して転送し、前記マスタ回路ブロックが前記スレーブ回路へ送信する書き込みデータ信号及び前記スレーブ回路ブロックが前記マスタ回路ブロックへ送信する読み出しデータ信号を前記共有バスを介して転送することを特徴とするデータ転送装置。
【請求項２】
前記第１の制御回路は、
前記マスタ回路ブロックと接続される第１のポートと、
前記共有バスと接続される第２のポートと、
前記クロスバー部と接続されるｍ個の第３のポートと、
前記マスタ回路ブロックと前記スレーブ回路ブロックのそれぞれのアドレス情報を格納するアドレステーブルを有し、前記マスタ回路ブロックから送信される命令信号を前記命令信号と共に前記マスタ回路ブロックから送信されるアドレス信号と前記アドレステーブルとの照合により前記アドレス信号に対応すると判定される前記ｍ個の第３のポートのいずれかに送信し、前記マスタ回路ブロックから送信される書き込みデータ信号を前記第２のポートへ送信する経路分岐回路と、
前記第２のポートを介して受信した読み出しデータ信号を格納し、前記第１のポートを介して前記マスタ回路ブロックへ送信するレスポンス保持回路と、
を備えることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記第２の制御回路は、
前記スレーブ回路ブロックと接続される第１のポートと、
前記共有バスと接続される第２のポートと、
前記クロスバー部と接続されるｎ個の第３のポートと、
前記第３のポートを介して受信する命令信号を格納し、前記第１のポートを介して前記スレーブ回路ブロックへ送信するリクエスト保持回路と、
前記第２のポートを介して受信する書き込みデータ信号を格納し、前記第１のポートを介して前記スレーブ回路ブロックへ送信するデータ保持回路と、
前記スレーブ回路ブロックが前記命令信号の受信に伴い送信する前記命令応答信号を前記命令信号が入力された前記第３のポートへ送信し、前記スレーブ回路ブロックが送信する読み出しデータ信号を前記第２のポートへ送信する経路分岐回路と、
を備えることを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
前記リクエスト保持回路はｎ個のＦＩＦＯを有し、それぞれのＦＩＦＯは対応する前記ｎ個の第３のポートを介して受信する前記命令信号を格納することを特徴とする請求項３記載のデータ転送装置。
【請求項５】
ｎ個（ｎは１以上の整数）のマスタ回路ブロックと、ｍ個（ｍは１以上の整数）のスレーブ回路ブロックとの間でデータの転送を行うデータ転送装置であって、
それぞれ対応する前記マスタ回路ブロックとの通信を行うｎ個の第１の制御回路と、
それぞれ対応する前記スレーブ回路ブロックとの通信を行うｍ個の第２の制御回路と、
前記第１の制御回路及び前記第２の制御回路に接続された共有バスと、
ｎ個の前記第１の制御回路とｍ個の前記第２の制御回路との間をそれぞれ接続するクロスバー部と、
を備え、
前記第１の制御回路及び前記第２の制御回路は、前記マスタ回路ブロックが前記スレーブ回路ブロックへ送信する命令信号、書き込みデータ信号及び前記スレーブ回路ブロックが前記命令信号の受信に伴い前記マスタ回路ブロックへ送信する命令応答信号を前記クロスバー部を介して転送し、前記スレーブ回路ブロックが前記マスタ回路ブロックへ送信する読み出しデータ信号を前記共有バスを介して転送することを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置に関するものである。
【背景技術】
【０００２】
複数のモジュール間におけるデータ転送を行うバスには共有バス接続とクロスバー接続がある。共有バス接続で構成されるバス構造は１つのバス（共有バス）に複数のモジュールが接続される。各モジュールがバスアービタにバスを使用するためのバスリクエストを通知し、バスアービタは受け取ったバスリクエストとアービトレーション方式に応じて特定のモジュールにバスの使用許可を発行する（例えば特許文献１参照）。他のモジュールがバスを使用している時にバスリクエストを通知した場合や、複数のモジュールが同時にバスリクエストを通知した場合、バスアービタによる調停とバスが空くまでの待ち時間を必要とし、データ転送効率を低下させる。
【０００３】
一方、クロスバー接続で構成されるバス構造は各モジュール間が信号線で接続されており、共有バス接続と比較してバスが空くまでの待ち時間が短く、データ転送効率が良い。しかし各モジュール間に１組のバスを有するため、モジュール数に比例して信号線数（配線量）が増大し、回路面積、発熱量、消費電力等が増大する。
【特許文献１】特開平１０−１６１９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は共有バス接続で構成されるバス構造よりもデータ転送効率が良く、クロスバー接続で構成されるバス構造よりも配線量を低減することができるデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一態様によるデータ転送装置は、ｎ個（ｎは１以上の整数）のマスタ回路ブロックと、ｍ個（ｍは１以上の整数）のスレーブ回路ブロックとの間でデータの転送を行うデータ転送装置であって、それぞれ対応する前記マスタ回路ブロックとの通信を行うｎ個の第１の制御回路と、それぞれ対応する前記スレーブ回路ブロックとの通信を行うｍ個の第２の制御回路と、前記第１の制御回路及び前記第２の制御回路に接続された共有バスと、ｎ個の前記第１の制御回路とｍ個の前記第２の制御回路との間をそれぞれ接続するクロスバー部と、を備え、前記第１の制御回路及び前記第２の制御回路は、前記マスタ回路ブロックが前記スレーブ回路ブロックへ送信する命令信号及び前記スレーブ回路ブロックが前記命令信号の受信に伴い前記マスタ回路ブロックへ送信する命令応答信号を前記クロスバー部を介して転送し、前記マスタ回路ブロックが前記スレーブ回路へ送信する書き込みデータ信号及び前記スレーブ回路ブロックが前記マスタ回路ブロックへ送信する読み出しデータ信号を前記共有バスを介して転送するものである。
【０００６】
また、本発明の一態様によるデータ転送装置は、ｎ個（ｎは１以上の整数）のマスタ回路ブロックと、ｍ個（ｍは１以上の整数）のスレーブ回路ブロックとの間でデータの転送を行うデータ転送装置であって、それぞれ対応する前記マスタ回路ブロックとの通信を行うｎ個の第１の制御回路と、それぞれ対応する前記スレーブ回路ブロックとの通信を行うｍ個の第２の制御回路と、前記第１の制御回路及び前記第２の制御回路に接続された共有バスと、ｎ個の前記第１の制御回路とｍ個の前記第２の制御回路との間をそれぞれ接続するクロスバー部と、を備え、前記第１の制御回路及び前記第２の制御回路は、前記マスタ回路ブロックが前記スレーブ回路ブロックへ送信する命令信号、書き込みデータ信号及び前記スレーブ回路ブロックが前記命令信号の受信に伴い前記マスタ回路ブロックへ送信する命令応答信号を前記クロスバー部を介して転送し、前記スレーブ回路ブロックが前記マスタ回路ブロックへ送信する読み出しデータ信号を前記共有バスを介して転送するものである。
【発明の効果】
【０００７】
本発明によれば、共有バス接続で構成されるバス構造よりもデータ転送効率を良くし、クロスバー接続で構成されるバス構造よりも配線量を低減することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態によるデータ転送装置を図面に基づいて説明する。
【０００９】
図１に本発明の実施形態に係るデータ転送装置の概略構成を示す。データ転送装置は１つ以上のマスタ回路ブロックと１つ以上のスレーブ回路ブロックとの間のデータ転送を行うものであり、ここでは一例として２つのマスタ回路ブロック１０１、１０２と２つのスレーブ回路ブロック１０３、１０４との間のデータ転送を行う。マスタ回路ブロックは例えばＣＰＵ、スレーブ回路ブロックは例えばメモリである。データ転送装置は共有バス２０１、クロスバー３０１、各回路ブロックに対応する制御回路４０１〜４０４を備える。共有バス２０１はデコーダ２０２、バスアービタ２０３を有する。
【００１０】
一連のデータ転送処理（トランザクション）は複数のフェイズ（パイプライン）に分割され、ここではリクエスト、データ、レスポンスの３つのフェイズに分割されるものとする。各々のフェイズにおける通信は独立して行われる。リクエストフェイズでは、マスタ回路ブロックがコマンド（命令）及びアドレスを発行し、スレーブ回路ブロックからのアクセプト（応答）信号を受信することで通信が完結する。データフェイズではリクエストフェイズで発行したコマンド毎の書き込みデータ（スレーブへの送信データ）をマスタ回路ブロックが出力し、スレーブ回路ブロックからのアクセプト信号を受信することで通信が完結する。レスポンスフェイズでは、スレーブ回路によるリクエストフェイズで発行されたコマンド毎の読み出しデータ（マスタへの送信データ）の送信、リクエストフェイズで発行されたコマンドに対するレスポンス情報（レスポンス信号）の送信が行われる。
【００１１】
データ転送装置はクロスバー３０１でリクエストフェイズを実行し、共有バス２０１でデータフェイズ及びレスポンスフェイズを実行する。
【００１２】
制御回路４０１〜４０４について説明する。制御回路４０１〜４０４は同様の構成になっており、ここではマスタ回路ブロック１０１に対応する制御回路４０１を例として説明を行う。図２に制御回路４０１の概略構成を示す。制御回路４０１はポート５０１〜５０４、レスポンス保持回路６０１、データ保持回路６０２、リクエスト保持回路６０３、経路分岐回路７０１、ＣＢ整列回路８０１及びフリップフロップ９０１〜９０７を有する。ポート５０１は回路ブロック１０１接続用、ポート５０２は共有バス２０１接続用、ポート５０３及び５０４はクロスバー３０１接続用である。ポート５０３は回路ブロック１０３（制御回路４０３）に対応し、ポート５０４は回路ブロック１０４（制御回路４０４）に対応する。
【００１３】
経路分岐回路７０１はリクエストフェイズにて回路ブロック１０１からコマンド及びアドレスを受信する。受信したアドレスに基づいてコマンドを回路ブロック１０３、１０４のいずれに送信するかを判定し、対応するポート５０３又は５０４を介してコマンドを送信する。書き込みコマンドの時のデータフェイズでは共有バス２０１のバスアービタ２０３へバス使用リクエスト信号を出力し、バスアービタ２０３からのバス使用許可信号を検知し、回路ブロック１０１が出力するデータをポート５０２を介して共有バス２０１へ出力する。また、回路ブロック１０１から出力されたコマンドの順序とその宛先の情報を含む選択制御信号ｓｅｌ２を出力する。
【００１４】
ＣＢ整列回路８０１はポート５０３、５０４を介して入力される信号の整合性を処理する回路であり、例えば、ポート５０３と５０４から同時に信号が入力された場合、ＣＢ整列回路８０１に予め設定された各クロスバー線の優先度に応じて、同時に入力された信号を順次リクエスト保持回路６０３側に出力する。また、出力に選択されたポートの情報を含む選択制御信号ｓｅｌ１を出力する。
【００１５】
レスポンス保持回路６０１、データ保持回路６０２及びリクエスト保持回路６０３はそれぞれ受信した信号を送信元（スレーブ回路ブロック）別に保持し、選択制御信号ｓｅｌ２に基づき、回路ブロック１０１から出力されたコマンドの順序に対応して、保持している信号を出力する。
【００１６】
図３に経路分岐回路７０１の概略構成を示す。経路分岐回路７０１はバスリクエスト制御回路１１０１、１１０２、セレクタ１１０３、アドレスデコーダ１１０４、ＴＲテーブル１１０５を有する。アドレスデコーダ１１０４はアドレステーブル１１０６を含む。アドレステーブル１１０６はマスタ回路ブロックとスレーブ回路ブロックのそれぞれのアドレス情報が格納されている。リクエストフェイズにて回路ブロック１０１から送信されるアドレスをアドレスデコーダ１１０４が受信し、コマンドをセレクタ１１０３が受信する。アドレスデコーダ１１０４はアドレステーブル１１０６を用いて、受信したアドレスがスレーブ回路ブロック１０３、１０４のいずれに対応するかを判定する。この判定結果に基づいて、セレクタ１１０３が、ポート５０３又は５０４へコマンドを送信する。また、この判定結果はＴＲテーブル１１０５に与えられ、ＴＲテーブル１１０５はコマンド発行順序と対応する宛先を記憶し、選択制御信号ｓｅｌ２を送信する。
【００１７】
例えば、マスタ回路ブロック１０１からスレーブ回路ブロック１０３への読み出しコマンド、スレーブ回路ブロック１０４への読み出しコマンドの順にコマンドが発行され、スレーブ回路ブロック１０４からの読み出しデータがスレーブ回路ブロック１０３からの読み出しデータよりも先に制御回路４０１へ入力された場合、レスポンス保持回路６０１は選択制御信号ｓｅｌ２に基づき、スレーブ回路ブロック１０４からの読み出しデータを保持し、スレーブ回路ブロック１０３からの読み出しデータを先にマスタ回路ブロック１０１へ出力する。
【００１８】
コマンドが書き込みである時のデータフェイズでは、バスリクエスト制御回路１１０２が共有バス２０１のバスアービタ２０３へバス使用リクエスト信号を出力し、バスアービタ２０３からのバス使用許可信号を検知し、回路ブロック１０１が出力するデータをポート５０２を介して共有バス２０１へ出力する。
【００１９】
図４にリクエスト保持回路６０３の概略構成を示す。リクエスト保持回路６０３はセレクタ１２０１、１２０２、ＦＩＦＯ回路１２０３、１２０４を有する。ＦＩＦＯ回路はクロスバー毎に、すなわちスレーブ回路ブロック毎に備えられる。本実施形態では、スレーブ回路ブロックとして２つの回路ブロック１０３、１０４を有するため、２つのＦＩＦＯ回路１２０３、１２０４を備えている。例えば、ＦＩＦＯ回路１２０３がポート５０３に、ＦＩＦＯ回路１２０４がポート５０４に対応する。セレクタ１２０１にはＣＢ整列回路８０１から出力される選択制御信号ｓｅｌ１が与えられる。また、セレクタ１２０２にはＴＲテーブル１１０５から出力される選択制御信号ｓｅｌ２が与えられる。リクエストフェイズにてスレーブ回路ブロックから出力されるアクセプト信号が対応するポート５０３又は５０４から入力され、ＣＢ整列回路を介してセレクタ１２０１に与えられる。セレクタ１２０１は選択制御信号ｓｅｌ１に基づき、与えられたアクセプト信号をＦＩＦＯ回路１２０３又は１２０４に格納する。セレクタ１２０２は選択制御信号ｓｅｌ２に基づき、ＦＩＦＯ回路１２０３又は１２０４から信号を取り出し、ポート５０１を介して回路ブロック１０１へ出力する。
【００２０】
レスポンス保持回路６０１の概略構成を図５に示す。レスポンス保持回路６０１はセレクタ１３０１、１３０２、ＦＩＦＯ回路１３０３、１３０４を有する。ＦＩＦＯ回路はスレーブ回路ブロック毎に備えられ、本実施形態では２つのスレーブ回路ブロック１０３、１０４を備えるため、２つのＦＩＦＯ回路１３０３、１３０４を有する。
【００２１】
レスポンス保持回路６０１はレスポンスフェイズにて、共有バス２０１からポート５０２を介して入力される信号、すなわちレスポンス信号、が与えられ、対応するＦＩＦＯ回路に格納する。アービタ２０２からは共有バス２０１上で転送されるデータの送信元、送信先の情報を含むバス権情報が出力され、このバス権情報がポート５０２を介してセレクタ１３０１に入力される。セレクタ１３０１はバス権情報に基づいてＦＩＦＯ回路を選択し、信号を出力する。また、このトランザクションのリクエストフェイズにて回路ブロック１０１から読み出しコマンドが送信されていた場合は、スレーブ回路ブロックから出力される読み出しデータ信号も格納される。ＦＩＦＯ回路に格納された信号は、選択制御信号ｓｅｌ２に基づいてセレクタ１３０２によって取り出され、ポート５０１を介して回路ブロック１０１へ出力される。
【００２２】
データ保持回路６０２の概略構成を図６に示す。レスポンス保持回路６０１と同様に、２つのセレクタ１４０１、１４０２、２つのＦＩＦＯ回路１４０３、１４０４を有する構成となっている。ＦＩＦＯ回路はスレーブ回路ブロック毎に備えられ、本実施形態では２つのスレーブ回路ブロック１０３、１０４を備えるため、２つのＦＩＦＯ回路１４０３、１４０４を有する。
【００２３】
データ保持回路６０２はデータフェイズにて、共有バス２０１からポート５０２を介して入力される信号、すなわちスレーブ回路ブロックからのアクセプト信号が与えられ、対応するＦＩＦＯ回路に格納する。ポート５０２を介して入力されるバス権情報に基づいてセレクタ１４０１がＦＩＦＯ回路を選択し、信号を出力する。スレーブ回路ブロックに対応する制御回路内のデータ保持回路６０２では、トランザクションのリクエストフェイズにてマスタ回路ブロックから書き込みコマンドが送信されていた場合、マスタ回路ブロックから出力されるデータ信号も対応するＦＩＦＯ回路に格納される。ＦＩＦＯ回路に格納された信号は選択制御信号ｓｅｌ２に基づいてセレクタ１４０２によって取り出され、ポート５０１を介して回路ブロックへ出力される。
【００２４】
フリップフロップ９０１〜９０７はそれぞれ互いに非同期なクロックＣＬＫ１〜３のいずれかが与えられる。これはフリップフロップ９０１〜９０３は回路ブロック１０１に対して、フリップフロップ９０４、９０５は共有バス２０１に対して、フリップフロップ９０６、９０７はクロスバー３０１に対して、それぞれ同期をとるためである。
【００２５】
制御回路４０１や４０２のようにマスタ回路ブロックに対応する制御回路では、トランザクションのリクエストフェイズで受信する信号はアクセプト信号のみである。マスタ回路ブロックがアクセプト信号を受信しないと次のコマンドを発行しないような設定になっている場合はリクエスト保持回路６０３を設けなくてもよい。また、データフェイズにおいても受信する信号はアクセプト信号のみであり、データ保持回路６０２を設けなくてもよい。従って、マスタ回路ブロックに対応する制御回路は図７に示すような構成にしてもよい。
【００２６】
制御回路４０３や４０４のようにスレーブ回路ブロックに対応する制御回路では、トランザクションのレスポンスフェイズでは受信する信号がないため、レスポンス保持回路６０１を設けなくてもよい。また、リクエストフェイズにて、ＣＢ整列回路８０１がどのポート、つまりどのマスタ回路ブロックからコマンドが送信されてきたかについての情報を含む信号ｓｅｌ３を経路分岐回路７０１に出力し、経路分岐回路７０１はその情報に基づいてアクセプト信号の送信先を判定するようにしてもよい。従って、スレーブ回路ブロックに対応する制御回路は図８に示すような構成にしてもよい。
【００２７】
このような構成にすることで、データ転送装置はリクエストフェイズの通信をクロスバー３０１で実行し、データフェイズ及びレスポンスフェイズの通信を共有バス２０１で実行することができる。
【００２８】
クロスバー３０１を利用するリクエストフェイズはバスアクセス待ち時間無しに実行されるため、各マスタ回路ブロックの処理効率が向上する。従って、共有バス接続で構成されるバス構造よりもデータ転送効率が良くなる。
【００２９】
リクエストフェイズ、データフェイズ、レスポンスフェイズの信号幅をそれぞれＡ（ｂｉｔ）、Ｂ（ｂｉｔ）、Ｃ（ｂｉｔ）とし、すべてのフェイズをクロスバー接続で構成したバス構造で実行する場合、（Ａ＋Ｂ＋Ｃ）×マスタ回路ブロック数×スレーブ回路ブロック数の信号線が必要になる。一方、本実施形態によるデータ転送装置ではデータフェイズ及びレスポンスフェイズを共有バス２０１で実行するため、必要な信号線の数はＡ×マスタ回路ブロック数×スレーブ回路ブロック数＋Ｂ＋Ｃとなる。従って、クロスバー接続で構成されるバス構造よりも信号線数を少なくすることができ、配線量を低減し、回路面積、発熱量、消費電力等を低減することができる。
【００３０】
このように本実施形態のデータ転送装置により、共有バス接続で構成されるバス構造よりもデータ転送効率を良くし、クロスバー接続で構成されるバス構造よりも配線量を低減することができる。
【００３１】
本実施形態によるデータ転送装置を用いたデータ転送の一例を図９に示す。ここではマスタ回路ブロック１０１によるアドレスＡｄ１へのデータＤ１の書き込み、アドレスＡｄ２からのデータＤ２の読み出し、アドレスＡｄ３へのデータＤ３の書き込み、アドレスＡｄ４へのデータＤ４の書き込みが行われるとする。データ転送はリクエストフェイズ、データフェイズ、レスポンスフェイズの３つのフェイズに分割され、それぞれのフェイズ内での転送は独立しているものとする。
【００３２】
まず、回路ブロック１０１は書き込みコマンドＷｒｉｔｅ１をアドレスＡｄ１に対応するスレーブ回路ブロックへクロスバー３０１を介して送信し、そのスレーブ回路ブロックからアクセプト信号ＣＡｃ１を受信する。データフェイズでは回路ブロック１０１はデータＤ１、データ有効（ＤａｔａＶａｌｉｄ）信号を共有バス２０１を介して送信し、アクセプト信号ＤＡｃ１を受信する。アクセプト信号ＤＡｃ１の受信に伴い、データ有効信号の値を０にする。その後、レスポンスフェイズにて、共有バス２０１を介してレスポンス信号Ｒｅｓｐ１を受信する。
【００３３】
回路ブロック１０１は書き込みコマンドＷｒｉｔｅ１に対するアクセプト信号ＣＡｃ１を受信後、次のコマンドである読み出しコマンドＲｅａｄ１をアドレスＡｄ２に対応するスレーブ回路ブロックへクロスバー３０１を介して送信し、そのスレーブ回路ブロックからアクセプト信号ＣＡｃ２を受信する。対応するスレーブ回路ブロックは読み出されるデータＤ２を用意し、レスポンスフェイズにて、レスポンス信号Ｒｅｓｐ２と共に出力する。
【００３４】
回路ブロック１０１は読み出しコマンドＲｅａｄ１に対するアクセプト信号ＣＡｃ２を受信後、次のコマンドである書き込みコマンドＷｒｉｔｅ２をアドレスＡｄ３に対応するスレーブ回路ブロックへクロスバー３０１を介して送信し、そのスレーブ回路ブロックからアクセプト信号ＣＡｃ３を受信する。データフェイズでは回路ブロック１０１はデータＤ３、データ有効（ＤａｔａＶａｌｉｄ）信号を共有バス２０１を介して送信し、アクセプト信号ＤＡｃ２を受信する。アクセプト信号ＤＡｃ２の受信に伴い、データ有効信号の値を０にする。その後、レスポンスフェイズにて、共有バス２０１を介してレスポンス信号Ｒｅｓｐ３を受信する。
【００３５】
同様に、回路ブロック１０１は書き込みコマンドＷｒｉｔｅ２に対するアクセプト信号ＣＡｃ３を受信後、次のコマンドである書き込みコマンドＷｒｉｔｅ３をアドレスＡｄ４に対応するスレーブ回路ブロックへクロスバー３０１を介して送信し、そのスレーブ回路ブロックからアクセプト信号ＣＡｃ４を受信する。データフェイズでは回路ブロック１０１はデータＤ４及びデータ有効（ＤａｔａＶａｌｉｄ）信号を共有バス２０１を介して送信し、アクセプト信号ＤＡｃ３を受信する。アクセプト信号ＤＡｃ３の受信に伴い、データ有効信号の値を０にする。その後、レスポンスフェイズにて、共有バス２０１を介してレスポンス信号Ｒｅｓｐ４を受信する。
【００３６】
リクエストフェイズの通信を、データフェイズ、レスポンスフェイズの進行に関わらず、クロスバー３０１を用いて進めていくことで、バス空き待ち時間無しにコマンド送信を実行することができ、各マスタ回路ブロックの処理効率が向上する。例えば、データの読み出し時は、１つ前のトランザクションのデータ転送を行っている間に、スレーブ回路ブロックが読み出されるデータを用意しておくことができ、共有バス接続で構成されるバス構造よりもデータ転送効率が良くなる。
【００３７】
また、図９に示す例ではリクエストフェイズの信号幅を３６ビット（コマンド信号が３ビット、アドレス信号が３２ビット、アクセプト信号が１ビット）、データフェイズの信号幅を６６ビット（データ信号が６４ビット、データ有効信号が１ビット、アクセプト信号が１ビット）、レスポンスフェイズの信号幅を６５ビット（データ信号が６４ビット、レスポンス信号が１ビット）としている。リクエストフェイズをクロスバーで実行し、データフェイズ及びレスポンスフェイズを共有バスで実行するため、データ転送装置の有する信号幅は３６×２×２＋６６＋６５＝２７５ビットとなる。一方、クロスバー接続で構成するバス構造の場合は（３６＋６６＋６５）×２×２＝６６８ビットとなる。従って、配線量を低減でき、回路面積、発熱量、消費電力等を低減することができる。
【００３８】
図９に示す例では、４つのトランザクションすべてをマスタ回路ブロック１０１が行うとしたが、アドレスＡｄ３へのデータＤ３の書き込み、及びアドレスＡｄ４へのデータＤ４の書き込みがマスタ回路ブロック１０２によって行われる場合は、リクエストフェイズの処理は例えば図１０に示されるようになる。
【００３９】
図１１に、比較例として、共有バス接続で構成されるバス構造で上記と同じマスタ回路ブロック１０１によるアドレスＡｄ１へのデータＤ１の書き込み、アドレスＡｄ２からのデータＤ２の読み出し、及びマスタ回路ブロック１０２によるアドレスＡｄ３へのデータＤ３の書き込み、アドレスＡｄ４へのデータＤ４の書き込みを行った際のデータ転送を示す。
【００４０】
共有バス接続で構成されるバス構造では、例えば、マスタ回路ブロック１０１による最初のトランザクション（アドレスＡｄ１へのデータＤ１の書き込み）終了後に、２番目のトランザクション（アドレスＡｄ２からのデータＤ２の読み出し）のコマンドである読み出しコマンドＲｅａｄ１の送信を行う。そして、マスタ回路ブロック１０１の２番目のトランザクション終了後に、マスタ回路ブロック１０２の最初のトランザクション（アドレスＡｄ３へのデータＤ３の書き込み）のコマンドである書き込みコマンドＷｒｉｔｅ２の送信を行い、このトランザクション終了後に２番目のトランザクション（アドレスＡｄ４へのデータＤ４の書き込み）のコマンドである書き込みコマンドＷｒｉｔｅ３の送信を行う。
【００４１】
共有バス接続で構成されるバス構造では１つのマスタ回路ブロックのパイプライン処理（トランザクション）終了後に別のマスタ回路ブロックがコマンドを送信するため、処理効率が良くない。
【００４２】
このように本実施形態のデータ転送装置により、共有バス接続で構成されるバス構造よりもデータ転送効率を良くし、クロスバー接続で構成されるバス構造よりも配線量を低減することができ、回路面積、発熱量、消費電力等を低減することができる。
【００４３】
上述した実施の形態はいずれも一例であって制限的なものではないと考えられるべきである。例えば、上記実施形態ではリクエストフェイズをクロスバー３０１で実行し、データフェイズ及びレスポンスフェイズを共有バス２０１で実行していたが、リクエストフェイズ及びデータフェイズをクロスバー３０１で実行し、レスポンスフェイズを共有バス２０１で実行するようにしてもよい。その場合、データ転送装置が有する制御回路は図１２に示すような構成になる。データフェイズにて、ポート５０１を介して受信した信号を経路分岐回路７０１がポート５０３又は５０４へ送信し、ポート５０３又は５０４を介して受信した信号をＣＢ整列回路８０１に接続されたデータ保持回路６０２に格納する。データフェイズをクロスバーで実行するため、上記実施形態のデータ転送装置より配線量が増加するが、転送効率を良くすることができる。
【００４４】
図９に示す例では、それぞれのフェイズ内での転送は独立しているものとしていたが、上位のフェイズ内の転送完了条件が下位フェイズの転送状況によって制御されない、つまりリクエストフェイズより下位のデータフェイズ及びレスポンスフェイズの転送状況はリクエストフェイズでは考慮されない、ようなプロトコルにしても良い。
【００４５】
上記実施形態ではデータ転送をリクエストフェイズ、データフェイズ、レスポンスフェイズの３つのフェイズに分割していたが、分割するフェイズは３つでなくてもよい。その場合、制御回路内には各フェイズに対応した保持回路が備えられる。また各フェイズを共有バス、クロスバーのどちらで実行するかは、処理効率及び配線量の設定条件から決定され得る。
【００４６】
本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態によるデータ転送装置の概略構成図である。
【図２】同実施形態によるデータ転送装置における制御回路の概略構成図である。
【図３】同実施形態によるデータ転送装置に含まれる制御回路における経路分岐回路の概略構成図である。
【図４】同実施形態によるデータ転送装置に含まれる制御回路におけるリクエスト保持回路の概略構成図である。
【図５】同実施形態によるデータ転送装置に含まれる制御回路におけるレスポンス保持回路の概略構成図である。
【図６】同実施形態によるデータ転送装置に含まれる制御回路におけるデータ保持回路の概略構成図である。
【図７】同実施形態によるデータ転送装置における制御回路の概略構成図である。
【図８】同実施形態によるデータ転送装置における制御回路の概略構成図である。
【図９】同実施形態によるデータ転送のタイミングチャートを示す図である。
【図１０】同実施形態によるデータ転送のタイミングチャートの別の例を示す図である。
【図１１】比較例によるデータ転送のタイミングチャートを示す図である。
【図１２】変形例によるデータ転送装置における制御回路の概略構成図である。
【符号の説明】
【００４８】
１０１、１０２  マスタ回路ブロック
１０３、１０４  スレーブ回路ブロック
２０１  共有バス
３０１  クロスバー
４０１〜４０４  制御回路
【図１】
2008158747.tif 000003
【図２】
2008158747.tif 000004
【図３】
2008158747.tif 000005
【図４】
2008158747.tif 000006
【図５】
2008158747.tif 000007
【図６】
2008158747.tif 000008
【図７】
2008158747.tif 000009
【図８】
2008158747.tif 000010
【図９】
2008158747.tif 000011
【図１０】
2008158747.tif 000012
【図１１】
2008158747.tif 000013
【図１２】
2008158747.tif 000014