(57)【要約】  【課題】  パイプライン式バスを実現しつつ、システムにおける動作周波数を向上させる。  【解決手段】  マスターＭ１には、スレーブＳ１側から供給されたレディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌを出力するフリップフロップＦ１を設け、このレディ信号Ｒｅａｄｙ＿１ｄｌを全体制御信号Ｃ１としてマスターＭ１内の各ブロックに供給するとともに、出力側バスインターフェースＢ２の後段には、マスターＭ１から出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡのタイミングをそれぞれ補償するタイミング補償回路Ｈ１〜Ｈ３を設ける。  【選択図】      図１
2006236189.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン式バスを介して要求を行うマスターと、
前記パイプライン式バスを介して前記マスターからの要求に対する応答を行うスレーブと、
前記マスターからの要求に対して前記スレーブが応答できるかできないかを示すレディ信号を保持するとともに、前記レディ信号を所定サイクル数分だけ遅延させてから、前記マスター内に供給するレディ信号遅延処理部とを備えることを特徴とするデータ転送装置。
【請求項２】
前記レディ信号遅延処理部は、前記遅延されるサイクル数分だけ直列接続された第１フリップフロップを備えることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記レディ信号を遅延させた時の前記マスター側の要求タイミングが、前記レディ信号を遅延さない時の前記マスター側の要求タイミングと一致するように、前記マスター側の要求タイミングを補償するタイミング補償部をさらに備えることを特徴とする請求項１または２記載のデータ転送装置。
【請求項４】
前記タイミング補償部は、
前記遅延されたレディ信号に基づいて前記マスター側からの要求信号を生成する要求信号生成部と、
前記遅延されたレディ信号に基づいて前記要求信号を更新させながら、前記要求信号を１サイクル数分だけ遅延させる要求信号遅延処理部と、
前記遅延されたレディ信号に基づいて前記遅延前後の要求信号のいずれかを選択して出力する要求信号選択部とを備えることを特徴とする請求項３記載のデータ転送装置。
【請求項５】
前記要求信号遅延処理部は、
前記要求信号を１サイクル数分だけ遅延させる第２フリップフロップと、
前記遅延されたレディ信号がアクティブの場合、前記要求信号を選択し、前記遅延されたレディ信号がディスエイブルの場合、前記第２フリップフロップからの出力を選択して前記第２フリップフロップに供給する第１マルチプレクサとを備え、
前記要求信号選択部は、
前記遅延されたレディ信号がアクティブの場合、前記要求信号を選択し、前記遅延されたレディ信号がディスエイブルの場合、前記第２フリップフロップからの出力を選択して前記スレーブに供給する第２マルチプレクサとを備えることを特徴とする請求項４記載のデータ転送装置。
【請求項６】
前記要求信号生成部は、アドレス信号、コントロール信号およびライトデータを出力する出力側バスインターフェースを備えることを特徴とする請求項４記載のデータ転送装置。
【請求項７】
前記遅延されたレディ信号に基づいてリードデータを入力する入力側バスインターフェースと、
前記入力側バスインターフェースに入力されるリードデータを保持するとともに、前記リードデータを前記所定サイクル数分だけ遅延させるリードデータ遅延処理部とを備えることを特徴とする請求項１から７のいずれか１項記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置に関し、特に、コントロール・アドレス過程とデータ過程とが常に重なった状態でデータが転送されるパイプライン式バスに適用して好適なものである。
【背景技術】
【０００２】
ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）などのシステムＬＳＩ内部で各種ブロックを結合するために使われる「オンチップ・バス」の規格として、ＡＲＭ社が提唱する「ＡＭＢＡ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）  ＡＨＢ（Ａｄｖａｎｃｅｄ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）」がある（非特許文献１）。
【０００３】
この「ＡＭＢＡ  ＡＨＢ」では、コントロール・アドレス過程とデータ過程とが設けられている。そして、コントロール・アドレス過程において、マスター側からスレーブ側に要求が出されると、データ過程において、その要求に対する応答がスレーブ側からマスター側に行われる。ここで、データ過程においてスレーブ側がすぐに応答できない場合は、その旨が信号線を通してマスター側に伝えられる。そして、マスター側はこれに応じて、マスター内の処理を止めて、スレーブ側の応答を待つことになる。
【０００４】
図５は、従来のデータ転送装置の構成を示すブロック図である。
図５において、データ転送装置には、パイプライン式バスを接続するマスターＭ３およびスレーブＳ３が設けられている。ここで、スレーブＳ３側からは、スレーブＳ３側が応答できるかできないかを示すレディ信号ＲｅａｄｙがマスターＭ３側に供給され、マスターＭ３側に供給されたレディ信号Ｒｅａｄｙは全体制御信号Ｃ３としてマスターＭ３内の各ブロックに供給される。
【０００５】
また、マスターＭ３には、入力側バスインターフェースＢ２１および出力側バスインターフェースＢ２２が設けられている。ここで、出力側バスインターフェースＢ２２からは、アドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡがスレーブＳ３側に出力される。そして、出力側バスインターフェースＢ２２は、レディ信号Ｒｅａｄｙに基づいて、アドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングを制御する。また、入力側バスインターフェースＢ２１には、リードデータＲＤ＿ＤＡＴＡがスレーブＳ３側から入力される。そして、入力側バスインターフェースＢ２１は、レディ信号Ｒｅａｄｙに基づいて、リードデータＲＤ＿ＤＡＴＡの入力タイミングを制御する。
【０００６】
以下、マスターＭ３とスレーブＳ３との間のデータ転送方法について、マスターＭ３がＣＰＵコア、スレーブＳ３がキャッシュの場合を例にとって説明する。
図６は、図５のデータ転送装置におけるデータ転送タイミングを示す図である。
図６において、マスターＭ３がスレーブＳ３に対してデータのライト要求を出す場合、コントロール・アドレス過程では、マスターＭ３は、ライト先Ａを示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に出力する。また、マスターＭ３は、ライトを意味する信号やライトするデータサイズなどを示すコントロール信号ＣｏｎｔｒｏｌをスレーブＳ３に出力する。
【０００７】
次に、データ過程において、マスターＭ３は、ライト先ＡのライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に出力する。そして、スレーブＳ３は、ライト処理を完了できる場合、レディを示すレディ信号Ｒｅａｄｙをアクティブ（図６ではＨｉｇｈ）にし、マスターＭ３に出力する。
一方、マスターＭ３がスレーブＳ３に対してデータのリード要求を出す場合、コントロール・アドレス過程では、マスターＭ３は、リード先Ａを示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に出力する。また、マスターＭ３は、リードを意味する信号やリードするデータサイズなどを示すコントロール信号ＣｏｎｔｒｏｌをスレーブＳ３に出力する。
【０００８】
次に、データ過程において、スレーブＳ３は、リード処理を完了できる（リードデータＲＤ＿ＤＡＴＡをマスターＭ３に出力できる）場合、レディを示すレディ信号Ｒｅａｄｙをアクティブ（図６ではＨｉｇｈ）にし、マスターＭ３に出力する。そして、スレーブＳ３は、レディ信号Ｒｅａｄｙがアクティブの時に、リード先ＡのリードデータＲＤ＿ＤＡＴＡをマスターＭ３に出力する。
【０００９】
図７は、図５のデータ転送装置において、複数のデータ転送が行われる場合のデータ転送タイミングを示す図である。
図７において、マスターＭ３がスレーブＳ３に対してデータのライト要求を出す場合、コントロール・アドレス過程では、マスターＭ３は、クロックサイクルＴ２１〜Ｔ２５において、ライト先Ａ０〜Ａ４を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に順次出力する。また、マスターＭ３は、クロックサイクルＴ２１〜Ｔ２５において、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）〜（Ａ４）をスレーブＳ３に順次出力する。
【００１０】
次に、データ過程では、マスターＭ３は、クロックサイクルＴ２２〜Ｔ２６において、ライト先Ａ０〜Ａ４のライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に順次出力する。そして、スレーブＳ３は、ライト処理を完了できる場合、レディを示すレディ信号Ｒｅａｄｙをアクティブにし、マスターＭ３に出力する。
このため、例えば、クロックサイクルＴ２２においては、アドレス信号Ａｄｄｒｅｓｓ（Ａ１）およびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）が出力されるコントロール・アドレス過程と、ライトデータＷＲ＿ＤＡＴＡ（Ａ０）が出力されるデータ過程とが重なっていることが判る。
【００１１】
一方、マスターＭ３がスレーブＳ３に対してデータのリード要求を出す場合、コントロール・アドレス過程では、マスターＭ３は、クロックサイクルＴ２１〜Ｔ２５において、リード先Ａ０〜Ａ４を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に順次出力する。また、マスターＭ３は、クロックサイクルＴ２１〜Ｔ２５において、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）〜（Ａ４）をスレーブＳ３に順次出力する。
【００１２】
次に、データ過程では、スレーブＳ３は、リード処理を完了できる（リードデータＲＤ＿ＤＡＴＡ（Ａ０）〜（Ａ４）をマスターＭ３に順次出力できる）場合、レディを示すレディ信号Ｒｅａｄｙをアクティブにし、マスターＭ３に出力する。そして、スレーブＳ３は、レディ信号Ｒｅａｄｙがアクティブの時に、リード先Ａ０〜Ａ４のリードデータＲＤ＿ＤＡＴＡ（Ａ０）〜（Ａ４）をマスターＭ３に順次出力する。
このため、例えば、クロックサイクルＴ２２においては、アドレス信号Ａｄｄｒｅｓｓ（Ａ１）およびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）が出力されるコントロール・アドレス過程と、リードデータＲＤ＿ＤＡＴＡ（Ａ０）が出力されるデータ過程とが重なっていることが判る。
【００１３】
図８は、図５のデータ転送装置において、マスターＭ３からのデータ転送要求に対してスレーブＳ３が直ぐに応答できない場合のデータ転送タイミングを示す図である。
図８において、マスターＭ３がスレーブＳ３に対してデータのライト要求を出すために、マスターＭ３は、クロックサイクルＴ２１のコントロール・アドレス過程において、ライト先Ａ０を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）をスレーブＳ３に出力する。
【００１４】
次に、クロックサイクルＴ２２のデータ過程において、マスターＭ３は、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に出力する。また、マスターＭ３は、クロックサイクルＴ２２のコントロール・アドレス過程において、ライト先Ａ１を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ３に出力する。
【００１５】
ここで、マスターＭ３からのデータ転送要求に対してスレーブＳ３が直ぐに応答できない場合、スレーブＳ３は、レディ信号Ｒｅａｄｙをディスエイブル（図８ではＬｏｗ）にし、マスターＭ３に出力する。そして、レディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ３は、次のクロックサイクルＴ２３においても、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に出力し続ける。また、マスターＭ３は、レディ信号Ｒｅａｄｙがディスエイブルになると、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に出力し続けることに伴って、ライト先Ａ１を示すアドレス信号Ａｄｄｒｅｓｓおよびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ３に出力し続ける。
【００１６】
そして、クロックサイクルＴ２４において、スレーブＳ３がライト処理を完了できる状態になると、レディ信号Ｒｅａｄｙをアクティブ（図８ではＨｉｇｈ）にし、マスターＭ３に出力する。そして、レディ信号Ｒｅａｄｙがアクティブになると、マスターＭ３は、次のクロックサイクルＴ２５のデータ過程において、ライト先Ａ１のライトデータＷＲ＿ＤＡＴＡをスレーブＳ３に出力する。また、マスターＭ３は、クロックサイクルＴ２５のコントロール・アドレス過程において、ライト先Ａ２を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ３に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ２）をスレーブＳ３に出力する。
【００１７】
このため、クロックサイクルＴ２２、Ｔ２３において、スレーブＳ３から出力されるレディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ３では、アドレスＡ１に対するテータ転送要求が２サイクル分だけ延ばされることが判る。
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｊｐ．ａｒｍ．ｃｏｍ／ｄｏｃｕｍｅｎｔ／ｍａｎｕａｌ／ｍｄｌ．ｃｇｉ
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、スレーブＳ３側から送られるレディ信号Ｒｅａｄｙは遅延が大きい。このため、このレディ信号Ｒｅａｄｙを用いてマスターＭ３内の処理を止めると、そこがクリティカルパス（システム内の動作周波数を決定する最大遅延パス）になり、システムの動作周波数が下がるという問題があった。特に、マスターＭ３がＣＰＵコアで、バスがデータロード・データストア用のバスの場合、レディ信号ＲｅａｄｙによってＣＰＵコア全体が制御され、レディ信号ＲｅａｄｙはＣＰＵコア内の複数の箇所で使用されるため、遅延がさらに大きくなる。さらに、スレーブＳ３がキャッシュの場合、ヒット・ミスヒット判定の結果がレディ信号Ｒｅａｄｙに反映されるため、レディ信号Ｒｅａｄｙの遅延が非常に大きくなる。
そこで、本発明の目的は、パイプライン式バスを実現しつつ、システムにおける動作周波数を向上させることが可能なデータ転送装置を提供することである。
【課題を解決するための手段】
【００１９】
上述した課題を解決するために、本発明の一態様に係るデータ転送装置によれば、パイプライン式バスを介して要求を行うマスターと、前記パイプライン式バスを介して前記マスターからの要求に対する応答を行うスレーブと、前記マスターからの要求に対して前記スレーブが応答できるかできないかを示すレディ信号を保持するとともに、前記レディ信号を所定サイクル数分だけ遅延させてから、前記マスター内に供給するレディ信号遅延処理部とを備えることを特徴とする。
【００２０】
これにより、所定サイクル数分だけ遅延されたレディ信号に基づいてマスター内の制御を行うことが可能となり、スレーブ側から出力されるレディ信号のパスの遅延の影響を抑えることができる。このため、レディ信号を用いてマスター内の全体制御が行われる場合においても、システムの動作周波数の低下を抑制することが可能となり、パイプライン式バスを実現しつつ、システムの動作周波数を向上させることができる。
【００２１】
また、本発明の一態様に係るデータ転送装置によれば、前記レディ信号遅延処理部は、前記遅延されるサイクル数分だけ直列接続された第１フリップフロップを備えることを特徴とする。
これにより、簡易な回路構成を用いることで、レディ信号を保持することが可能となるとともに、レディ信号を所定サイクル数分だけ遅延させることができ、回路規模の増大を抑制しつつ、システムの動作周波数を向上させることができる。
【００２２】
また、本発明の一態様に係るデータ転送装置によれば、前記レディ信号を遅延させた時の前記マスター側の要求タイミングが、前記レディ信号を遅延さない時の前記マスター側の要求タイミングと一致するように、前記マスター側の要求タイミングを補償するタイミング補償部をさらに備えることを特徴とする。
これにより、所定サイクル数分だけ遅延されたレディ信号に基づいてマスター内の制御が行われる場合においても、マスター側とスレーブ側との間のデータ転送タイミングがずれることを防止することができ、既存の「ＡＭＢＡ  ＡＨＢ」などに対応しつつ、パイプライン式バスを実現することが可能となる。
【００２３】
また、本発明の一態様に係るデータ転送装置によれば、前記タイミング補償部は、前記遅延されたレディ信号に基づいて前記マスター側からの要求信号を生成する要求信号生成部と、前記遅延されたレディ信号に基づいて前記要求信号を更新させながら、前記要求信号を１サイクル数分だけ遅延させる要求信号遅延処理部と、前記遅延されたレディ信号に基づいて前記遅延前後の要求信号のいずれかを選択して出力する要求信号選択部とを備えることを特徴とする。
【００２４】
これにより、レディ信号を遅延させた時のマスター側の要求タイミングと、レディ信号を遅延さない時のマスター側の要求タイミングとを一致させることができる。このため、所定サイクル数分だけ遅延されたレディ信号に基づいてマスター内の制御が行われる場合においても、既存の「ＡＭＢＡ  ＡＨＢ」などに対応しつつ、パイプライン式バスを実現することが可能となる。
【００２５】
また、本発明の一態様に係るデータ転送装置によれば、前記要求信号遅延処理部は、前記要求信号を１サイクル数分だけ遅延させる第２フリップフロップと、前記遅延されたレディ信号がアクティブの場合、前記要求信号を選択し、前記遅延されたレディ信号がディスエイブルの場合、前記第２フリップフロップからの出力を選択して前記第２フリップフロップに供給する第１マルチプレクサとを備え、前記要求信号選択部は、前記遅延されたレディ信号がアクティブの場合、前記要求信号を選択し、前記遅延されたレディ信号がディスエイブルの場合、前記第２フリップフロップからの出力を選択して前記スレーブに供給する第２マルチプレクサとを備えることを特徴とする。
【００２６】
これにより、簡易な回路構成を用いることで、レディ信号を遅延させた時のマスター側の要求タイミングと、レディ信号を遅延さない時のマスター側の要求タイミングとを一致させることができ、既存の「ＡＭＢＡ  ＡＨＢ」などに準拠した上で、システムの動作周波数を向上させることが可能となるとともに、回路規模の増大を抑制することができる。
また、本発明の一態様に係るデータ転送装置によれば、前記要求信号生成部は、アドレス信号、コントロール信号およびライトデータを出力する出力側バスインターフェースを備えることを特徴とする。
【００２７】
これにより、コントロール・アドレス過程において、マスター側からスレーブ側に要求を出させたり、データ過程において、その要求に対する応答をスレーブ側からマスター側に行わせたりすることができ、既存の「ＡＭＢＡ  ＡＨＢ」などに対応しつつ、パイプライン式バスを実現することが可能となる。
また、本発明の一態様に係るデータ転送装置によれば、前記遅延されたレディ信号に基づいてリードデータを入力する入力側バスインターフェースと、前記入力側バスインターフェースに入力されるリードデータを保持するとともに、前記リードデータを前記所定サイクル数分だけ遅延させるリードデータ遅延処理部とを備えることを特徴とする。
【００２８】
これにより、リードデータがマスター側に入力される場合においても、スレーブ側から出力されるレディ信号のパスの遅延の影響を抑えつつ、パイプライン式バスを実現することが可能となるとともに、リードデータの入力が所定サイクル数分だけ遅れた場合においても、そのことによるペナルティを回避させることができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施形態に係るデータ転送装置およびその方法について図面を参照しながら説明する。
図１は、本発明の第１実施形態に係るデータ転送装置の概略構成を示すブロック図である。
図１において、データ転送装置には、パイプライン式バスを接続するマスターＭ１およびスレーブＳ１が設けられている。なお、マスターＭ１とは、データ転送を要求するモジュールを意味し、例えば、ＣＰＵコアやＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）などを挙げることができる。また、スレーブＳ１とは、マスターからのデータ転送要求に応えるモジュールを意味し、例えば、キャッシュやメモリコントローラなどを挙げることができる。そして、スレーブＳ１側からは、スレーブＳ１側が応答できるかできないかを示すレディ信号ＲｅａｄｙがマスターＭ１側に供給される。また、マスターＭ１からは、アドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡがスレーブＳ１側に出力される。また、マスターＭ１には、リードデータＲＤ＿ＤＡＴＡがスレーブＳ１側から入力される。
【００３０】
また、マスターＭ１には、入力側バスインターフェースＢ１および出力側バスインターフェースＢ２が設けられている。ここで、マスターＭ１には、スレーブＳ１側から供給されたレディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌを出力するフリップフロップＦ１が設けられている。そして、フリップフロップＦ１にて１サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿１ｄｌは、全体制御信号Ｃ１としてマスターＭ１内の各ブロックに供給されるとともに、出力側バスインターフェースＢ２および入力側バスインターフェースＢ１に供給される。
【００３１】
そして、出力側バスインターフェースＢ２は、１サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿１ｄｌに基づいて、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ３を生成し、スレーブＳ１に出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングを制御する。また、入力側バスインターフェースＢ１は、１サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿１ｄｌに基づいて、リードデータＲＤ＿ＤＡＴＡの入力タイミングを制御する。
【００３２】
ここで、入力側バスインターフェースＢ１の前段には、スレーブＳ１側から供給されたリードデータＲＤ＿ＤＡＴＡを１サイクル分だけ遅延させるフリップフロップＦ２が配置されている。そして、フリップフロップＦ２にてリードデータＲＤ＿ＤＡＴＡを１サイクル分だけ遅延させた信号が入力側バスインターフェースＢ１に供給される。
【００３３】
また、出力側バスインターフェースＢ２の後段には、マスターＭ１から出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡのタイミングをそれぞれ補償するタイミング補償回路Ｈ１〜Ｈ３が設けられている。ここで、タイミング補償回路Ｈ１〜Ｈ３は、レディ信号Ｒｅａｄｙ＿１ｄｌに基づいて生成されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングが、レディ信号Ｒｅａｄｙに基づいて生成されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングと一致するように、マスターＭ１から出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングを補償することができる。
【００３４】
ここで、タイミング補償回路Ｈ１には、フリップフロップＦ３およびマルチプレクサＸ１、Ｘ４が設けられ、マルチプレクサＸ１、Ｘ４にはレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。そして、出力側バスインターフェースＢ２にて生成されたアドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１はマルチプレクサＸ１、Ｘ４にそれぞれ入力される。また、マルチプレクサＸ１からの出力はフリップフロップＦ３に入力され、フリップフロップＦ３から出力されるアドレス信号Ａｄｄｒｅｓｓ＿ｂａｋ４はマルチプレクサＸ１、Ｘ４にそれぞれ入力される。ここで、マルチプレクサＸ１、Ｘ４は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、アドレス信号Ａｄｄｒｅｓｓ＿ｂａｋ４をそれぞれ選択することができる。
【００３５】
また、タイミング補償回路Ｈ２には、フリップフロップＦ４およびマルチプレクサＸ２、Ｘ５が設けられ、マルチプレクサＸ２、Ｘ５にはレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。そして、出力側バスインターフェースＢ２にて生成されたコントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ２はマルチプレクサＸ２、Ｘ５にそれぞれ入力される。また、マルチプレクサＸ２からの出力はフリップフロップＦ４に入力され、フリップフロップＦ４から出力されるコントロール信号Ｃｏｎｔｒｏｌ＿ｂａｋ５はマルチプレクサＸ２、Ｘ５にそれぞれ入力される。ここで、マルチプレクサＸ２、Ｘ５は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ２をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、コントロール信号Ｃｏｎｔｒｏｌ＿ｂａｋ５をそれぞれ選択することができる。
【００３６】
また、タイミング補償回路Ｈ３には、フリップフロップＦ５およびマルチプレクサＸ３、Ｘ６が設けられ、マルチプレクサＸ３、Ｘ６にはレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。そして、出力側バスインターフェースＢ２にて生成されたライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ３はマルチプレクサＸ３、Ｘ６にそれぞれ入力される。また、マルチプレクサＸ３からの出力はフリップフロップＦ５に入力され、フリップフロップＦ５から出力されるライトデータＷＲ＿ＤＡＴＡ＿ｂａｋ６はマルチプレクサＸ３、Ｘ６にそれぞれ入力される。ここで、マルチプレクサＸ３、Ｘ６は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、ライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ３をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、ライトデータＷＲ＿ＤＡＴＡ＿ｂａｋ６をそれぞれ選択することができる。
【００３７】
図２は、図１のデータ転送装置の動作を示すタイミングチャートである。なお、図２（ａ）は、マスターＭ１とスレーブＳ１との間のバス上でのデータ転送タイミングを示し、図２（ｂ）は、マスターＭ１内におけるデータ転送タイミングを示す。
図２（ａ）において、マスターＭ１がスレーブＳ１に対してデータのライト要求を出す場合、マスターＭ１は、クロックサイクルＴ１のコントロール・アドレス過程において、ライト先Ａ０を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ１に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）をスレーブＳ１に出力する。
【００３８】
次に、クロックサイクルＴ２のデータ過程において、マスターＭ１は、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ１に出力する。また、マスターＭ１は、クロックサイクルＴ２のコントロール・アドレス過程において、ライト先Ａ１を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ１に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ１に出力する。
【００３９】
ここで、マスターＭ１からのデータ転送要求に対してスレーブＳ１が直ぐに応答できない場合、スレーブＳ１は、レディ信号Ｒｅａｄｙをディスエイブルにし、マスターＭ１に出力する。そして、レディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ１は、次のクロックサイクルＴ３においても、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ１に出力し続ける。また、マスターＭ１は、レディ信号Ｒｅａｄｙがディスエイブルになると、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ１に出力し続けることに伴って、ライト先Ａ１を示すアドレス信号Ａｄｄｒｅｓｓおよびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ１に出力し続ける。
【００４０】
そして、クロックサイクルＴ４において、スレーブＳ１がライト処理を完了できる状態になると、レディ信号Ｒｅａｄｙをアクティブにし、マスターＭ１に出力する。そして、レディ信号Ｒｅａｄｙがアクティブになると、マスターＭ１は、次のクロックサイクルＴ５のデータ過程において、ライト先Ａ１のライトデータＷＲ＿ＤＡＴＡをスレーブＳ１に出力する。また、マスターＭ１は、クロックサイクルＴ５のコントロール・アドレス過程において、ライト先Ａ２を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ１に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ２）をスレーブＳ１に出力する。
【００４１】
ここで、図２（ｂ）に示すように、スレーブＳ１から出力されたレディ信号Ｒｅａｄｙは図１のフリップフロップＦ１に取り込まれ、レディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌが出力側バスインターフェースＢ２に供給される。このため、クロックサイクルＴ１、Ｔ２においては、レディ信号Ｒｅａｄｙ＿１ｄｌはアクティブになり、マルチプレクサＸ１〜Ｘ３では、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ３がそれぞれ選択される。この結果、フリップフロップＦ３〜Ｆ５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６がそれぞれ更新され、Ａｄｄｒｅｓｓ＿ｎｏｍ１、Ｃｏｎｔｒｏｌ＿ｎｏｍ２およびＷＲ＿ＤＡＴＡ＿ｎｏｍ３の１サイクル遅れの信号がフリップフロップＦ３〜Ｆ５からそれぞれ出力される。
【００４２】
一方、クロックサイクルＴ３、Ｔ４では、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルのため、マルチプレクサＸ１〜Ｘ３では、フリップフロップＦ３〜Ｆ５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６がそれぞれ選択される。この結果、フリップフロップＦ３〜Ｆ５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６が更新されずに、フリップフロップＦ３〜Ｆ５に保持されているＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６がそのまま維持される。
【００４３】
また、クロックサイクルＴ１、Ｔ２では、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブのため、マルチプレクサＸ４〜Ｘ６では、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ３がそれぞれ選択され、Ａｄｄｒｅｓｓ＿ｎｏｍ１、Ｃｏｎｔｒｏｌ＿ｎｏｍ２およびＷＲ＿ＤＡＴＡ＿ｎｏｍ３がスレーブＳ１に対して出力される。
【００４４】
一方、クロックサイクルＴ３、Ｔ４では、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルのため、マルチプレクサＸ４〜Ｘ６では、フリップフロップＦ３〜Ｆ５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６がそれぞれ選択される。この結果、Ａｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６がスレーブＳ１に対して出力される（なお、図２（ｂ）では、マスターＭ１からスレーブＳ１に出力される方の信号を白で示し、出力されない方の信号を灰色で示した。）。
【００４５】
これにより、１サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿１ｄｌに基づいてマスターＭ１内の全体制御を行うことが可能となり、スレーブＳ１側から出力されるレディ信号Ｒｅａｄｙのパスの遅延の影響を抑えることができる。このため、スレーブＳ１側から出力されるレディ信号Ｒｅａｄｙに基づいてマスターＭ１内の全体制御が行われる場合においても、システムの動作周波数の低下を抑制することが可能となり、パイプライン式バスを実現しつつ、システムの動作周波数を向上させることができる。
【００４６】
例えば、マスターＭ１がＣＰＵコアで、バスがデータロード・データストア用のバスの場合、レディ信号ＲｅａｄｙによってＣＰＵコア全体が制御され、レディ信号ＲｅａｄｙがＣＰＵコア内の複数の箇所で使用される場合においても、レディ信号Ｒｅａｄｙのパスの遅延の影響を抑えることができる。
また、マスターＭ１内にタイミング補償回路Ｈ１〜Ｈ３を設けることで、レディ信号Ｒｅａｄｙ＿１ｄｌに従ったデータ転送タイミングをレディ信号Ｒｅａｄｙに従ったデータ転送タイミングに一致させることができる。このため、１サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿１ｄｌに基づいてマスターＭ１内の制御が行われる場合においても、既存の「ＡＭＢＡ  ＡＨＢ」などに対応しつつ、パイプライン式バスを実現することが可能となる。
【００４７】
一方、図２（ａ）において、マスターＭ１がスレーブＳ１に対してデータのリード要求を出す場合、マスターＭ１は、クロックサイクルＴ１のコントロール・アドレス過程において、リード先Ａ０を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ１に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）をスレーブＳ１に出力する。
次に、マスターＭ１は、クロックサイクルＴ２のコントロール・アドレス過程において、リード先Ａ１を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ１に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ１に出力する。
【００４８】
ここで、マスターＭ１からのデータ転送要求に対してスレーブＳ１が直ぐに応答できない場合、スレーブＳ１は、レディ信号Ｒｅａｄｙをディスエイブルにし、マスターＭ１に出力する。そして、レディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ１は、次のクロックサイクルＴ３においても、リード先Ａ１を示すアドレス信号Ａｄｄｒｅｓｓおよびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ１に出力し続ける。
そして、クロックサイクルＴ４において、スレーブＳ１がリード処理を完了できる状態になると、レディ信号Ｒｅａｄｙをアクティブにし、リード先Ａ０のリードデータＲＤ＿ＤＡＴＡをマスターＭ１に出力する。
【００４９】
ここで、図２（ｂ）に示すように、スレーブＳ１から出力されたレディ信号Ｒｅａｄｙは図１のフリップフロップＦ１に取り込まれ、レディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌが入力側バスインターフェースＢ１に供給される。また、スレーブＳ１から出力されたリードデータＲＤ＿ＤＡＴＡは、フリップフロップＦ２を介して入力側バスインターフェースＢ１に供給され、リードデータＲＤ＿ＤＡＴＡを１サイクル分だけ遅延させたリードデータＲＤ＿ＤＡＴＡ＿１ｄｌが入力側バスインターフェースＢ１に入力される。
【００５０】
このため、入力側バスインターフェースＢ１に入力されるレディ信号Ｒｅａｄｙ＿１ｄｌとリードデータＲＤ＿ＤＡＴＡ＿１ｄｌとのタイミングの関係は、スレーブＳ１から出力されたＲｅａｄｙ信号とリードデータＲＤ＿ＤＡＴＡとのタイミングの関係と同じになる。すなわち、入力側バスインターフェースＢ１に入力されるレディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの時、入力側バスインターフェースＢ１に入力されるリードデータＲＤ＿ＤＡＴＡ＿１ｄｌに有効なデータが存在することになる。この結果、リードデータＲＤ＿ＤＡＴＡがマスターＭ１側に入力される場合においても、入力側バスインターフェースＢ１の構成を変更することなく、スレーブＳ１側から出力されるレディ信号Ｒｅａｄｙのパスの遅延の影響を抑えることができる。
【００５１】
また、入力側バスインターフェースＢ１に入力されるリードデータＲＤ＿ＤＡＴＡ＿１ｄｌは、マスターＭ１内のフリップフロップＦ２に一旦取り込まれた信号であるため、スレーブＳ１から出力されたレディ信号Ｒｅａｄｙに比べて１サイクル分だけ遅いが、マスターＭ１とスレーブＳ１との間のデータ転送はパイプラインで行なわれているため、１サイクル分だけ遅いことによるペナルティをなくすことができる。
【００５２】
図３は、本発明の第２実施形態に係るデータ転送装置の概略構成を示すブロック図である。
図３において、データ転送装置には、パイプライン式バスを接続するマスターＭ２およびスレーブＳ２が設けられている。そして、スレーブＳ２側からは、スレーブＳ２側が応答できるかできないかを示すレディ信号ＲｅａｄｙがマスターＭ２側に供給される。また、マスターＭ２からは、アドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡがスレーブＳ２側に出力される。また、マスターＭ２には、リードデータＲＤ＿ＤＡＴＡがスレーブＳ２側から入力される。
【００５３】
また、マスターＭ２には、入力側バスインターフェースＢ１１および出力側バスインターフェースＢ１２が設けられている。ここで、マスターＭ２には、スレーブＳ２側から供給されたレディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌを出力するフリップフロップＦ１１が設けられるとともに、フリップフロップＦ１１から供給されたレディ信号Ｒｅａｄｙ＿１ｄｌを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌを出力するフリップフロップＦ２１が設けられている。そして、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌは、全体制御信号Ｃ２としてマスターＭ２内の各ブロックに供給されるとともに、出力側バスインターフェースＢ１２および入力側バスインターフェースＢ１１に供給される。
【００５４】
そして、出力側バスインターフェースＢ１２は、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌに基づいて、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ１２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ１３を生成し、スレーブＳ２に出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングを制御する。また、入力側バスインターフェースＢ１１は、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌに基づいて、リードデータＲＤ＿ＤＡＴＡの入力タイミングを制御する。
【００５５】
ここで、入力側バスインターフェースＢ１１の前段には、スレーブＳ２側から供給されたリードデータＲＤ＿ＤＡＴＡを２サイクル分だけ遅延させるフリップフロップＦ１２、Ｆ２２が配置されている。そして、フリップフロップＦ１２、Ｆ２２にてリードデータＲＤ＿ＤＡＴＡを２サイクル分だけ遅延させた信号が入力側バスインターフェースＢ１１に供給される。
【００５６】
また、出力側バスインターフェースＢ１２の後段には、マスターＭ２から出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡのタイミングをそれぞれ補償するタイミング補償回路Ｈ１１〜Ｈ１３、Ｈ２１〜Ｈ２３が設けられている。ここで、タイミング補償回路Ｈ１１〜Ｈ１３、Ｈ２１〜Ｈ２３は、レディ信号Ｒｅａｄｙ＿１ｄｌおよびレディ信号Ｒｅａｄｙ＿２ｄｌに基づいて生成されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングが、レディ信号Ｒｅａｄｙに基づいて生成されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングと一致するように、マスターＭ２から出力されるアドレス信号Ａｄｄｒｅｓｓ、コントロール信号ＣｏｎｔｒｏｌおよびライトデータＷＲ＿ＤＡＴＡの転送タイミングを補償することができる。
【００５７】
ここで、タイミング補償回路Ｈ２１には、フリップフロップＦ２３およびマルチプレクサＸ２１、Ｘ２４が設けられ、マルチプレクサＸ２１、Ｘ２４にはレディ信号Ｒｅａｄｙ＿２ｄｌが供給される。そして、出力側バスインターフェースＢ１２にて生成されたアドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１１はマルチプレクサＸ２１、Ｘ２４にそれぞれ入力される。また、マルチプレクサＸ２１からの出力はフリップフロップＦ２３に入力され、フリップフロップＦ２３から出力されるアドレス信号Ａｄｄｒｅｓｓ＿２ｂａｋ１４はマルチプレクサＸ２１、Ｘ２４にそれぞれ入力される。ここで、マルチプレクサＸ２１、Ｘ２４は、レディ信号Ｒｅａｄｙ＿２ｄｌがアクティブの場合、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１１をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿２ｄｌがディスエイブルの場合、アドレス信号Ａｄｄｒｅｓｓ＿２ｂａｋ１４をそれぞれ選択することができる。
【００５８】
また、タイミング補償回路Ｈ１１には、フリップフロップＦ１３およびマルチプレクサＸ１１、Ｘ１４が設けられ、マルチプレクサＸ１１、Ｘ１４にはレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。そして、マルチプレクサＸ２４から出力されたアドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７はマルチプレクサＸ１１、Ｘ１４にそれぞれ入力される。また、マルチプレクサＸ１１からの出力はフリップフロップＦ１３に入力され、フリップフロップＦ１３から出力されるアドレス信号Ａｄｄｒｅｓｓ＿ｂａｋ２０はマルチプレクサＸ１１、Ｘ１４にそれぞれ入力される。ここで、マルチプレクサＸ１１、Ｘ１４は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、アドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、アドレス信号Ａｄｄｒｅｓｓ＿ｂａｋ２０をそれぞれ選択することができる。
【００５９】
また、タイミング補償回路Ｈ２２には、フリップフロップＦ２４およびマルチプレクサＸ２２、Ｘ２５が設けられ、マルチプレクサＸ２２、Ｘ２５にはレディ信号Ｒｅａｄｙ＿２ｄｌが供給される。そして、出力側バスインターフェースＢ１２にて生成されたコントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ１２はマルチプレクサＸ２２、Ｘ２５にそれぞれ入力される。また、マルチプレクサＸ２２からの出力はフリップフロップＦ２４に入力され、フリップフロップＦ２４から出力されるコントロール信号Ｃｏｎｔｒｏｌ＿２ｂａｋ１５はマルチプレクサＸ２２、Ｘ２５にそれぞれ入力される。ここで、マルチプレクサＸ２２、Ｘ２５は、レディ信号Ｒｅａｄｙ＿２ｄｌがアクティブの場合、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ１２をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿２ｄｌがディスエイブルの場合、コントロール信号Ｃｏｎｔｒｏｌ＿２ｂａｋ１５をそれぞれ選択することができる。
【００６０】
また、タイミング補償回路Ｈ１２には、フリップフロップＦ１４およびマルチプレクサＸ１２、Ｘ１５が設けられ、マルチプレクサＸ１２、Ｘ１５にはレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。そして、マルチプレクサＸ２５から出力されたコントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８はマルチプレクサＸ１２、Ｘ１５にそれぞれ入力される。また、マルチプレクサＸ１２からの出力はフリップフロップＦ１４に入力され、フリップフロップＦ１４から出力されるコントロール信号Ｃｏｎｔｒｏｌ＿ｂａｋ２１はマルチプレクサＸ１２、Ｘ１２にそれぞれ入力される。ここで、マルチプレクサＸ１２、Ｘ１５は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、コントロール信号Ｃｏｎｔｒｏｌ＿ｂａｋ２１をそれぞれ選択することができる。
【００６１】
また、タイミング補償回路Ｈ２３には、フリップフロップＦ２５およびマルチプレクサＸ２３、Ｘ２６が設けられ、マルチプレクサＸ２３、Ｘ２６にはレディ信号Ｒｅａｄｙ＿２ｄｌが供給される。そして、出力側バスインターフェースＢ１２にて生成されたライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ１３はマルチプレクサＸ２３、Ｘ２６にそれぞれ入力される。また、マルチプレクサＸ２３からの出力はフリップフロップＦ２５に入力され、フリップフロップＦ２５から出力されるライトデータＷＲ＿ＤＡＴＡ＿２ｂａｋ１６はマルチプレクサＸ２３、Ｘ２６にそれぞれ入力される。ここで、マルチプレクサＸ２３、Ｘ２６は、レディ信号Ｒｅａｄｙ＿２ｄｌがアクティブの場合、ライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ１３をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿２ｄｌがディスエイブルの場合、ライトデータＷＲ＿ＤＡＴＡ＿２ｂａｋ１６をそれぞれ選択することができる。
【００６２】
また、タイミング補償回路Ｈ１３には、フリップフロップＦ１５およびマルチプレクサＸ１３、Ｘ１６が設けられ、マルチプレクサＸ１３、Ｘ１６にはレディ信号Ｒｅａｄｙ＿２ｄｌが供給される。そして、マルチプレクサＸ２６から出力されたライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９はマルチプレクサＸ１３、Ｘ１６にそれぞれ入力される。また、マルチプレクサＸ１３からの出力はフリップフロップＦ１５に入力され、フリップフロップＦ１５から出力されるライトデータＷＲ＿ＤＡＴＡ＿ｂａｋ２２はマルチプレクサＸ１３、Ｘ１６にそれぞれ入力される。ここで、マルチプレクサＸ１３、Ｘ１６は、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブの場合、ライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９をそれぞれ選択し、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルの場合、ライトデータＷＲ＿ＤＡＴＡ＿ｂａｋ２２をそれぞれ選択することができる。
【００６３】
図４は、図３のデータ転送装置の動作を示すタイミングチャートである。なお、図４（ａ）は、マスターＭ２とスレーブＳ２との間のバス上でのデータ転送タイミングを示し、図４（ｂ）および図４（ｃ）は、マスターＭ２内におけるデータ転送タイミングを示す。
図４（ａ）において、マスターＭ２がスレーブＳ２に対してデータのライト要求を出す場合、マスターＭ２は、クロックサイクルＴ１１のコントロール・アドレス過程において、ライト先Ａ０を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ２に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）をスレーブＳ２に出力する。
【００６４】
次に、クロックサイクルＴ１２のデータ過程において、マスターＭ２は、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ２に出力する。また、マスターＭ２は、クロックサイクルＴ１２のコントロール・アドレス過程において、ライト先Ａ１を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ２に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ２に出力する。
【００６５】
ここで、マスターＭ２からのデータ転送要求に対してスレーブＳ２が直ぐに応答できない場合、スレーブＳ２は、レディ信号Ｒｅａｄｙをディスエイブルにし、マスターＭ２に出力する。そして、レディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ２は、次のクロックサイクルＴ１３においても、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ２に出力し続ける。また、マスターＭ２は、レディ信号Ｒｅａｄｙがディスエイブルになると、ライト先Ａ０のライトデータＷＲ＿ＤＡＴＡをスレーブＳ２に出力し続けることに伴って、ライト先Ａ１を示すアドレス信号Ａｄｄｒｅｓｓおよびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ２に出力し続ける。
【００６６】
そして、クロックサイクルＴ１４において、スレーブＳ２がライト処理を完了できる状態になると、レディ信号Ｒｅａｄｙをアクティブにし、マスターＭ２に出力する。そして、レディ信号Ｒｅａｄｙがアクティブになると、マスターＭ２は、次のクロックサイクルＴ１５のデータ過程において、ライト先Ａ１のライトデータＷＲ＿ＤＡＴＡをスレーブＳ２に出力する。また、マスターＭ２は、クロックサイクルＴ１５のコントロール・アドレス過程において、ライト先Ａ２を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ２に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ２）をスレーブＳ２に出力する。
【００６７】
ここで、図４（ｃ）に示すように、スレーブＳ２から出力されたレディ信号Ｒｅａｄｙは図３のフリップフロップＦ１１に取り込まれ、レディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌがフリップフロップＦ１２に供給される。そして、レディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌがフリップフロップＦ１２に取り込まれると、レディ信号Ｒｅａｄｙ＿１ｄｌをさらに１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌが生成され、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌが出力側バスインターフェースＢ１２に供給される。また、マルチプレクサＸ２１〜Ｘ２６には、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌが供給される。
【００６８】
このため、クロックサイクルＴ１１〜Ｔ１３においては、レディ信号Ｒｅａｄｙ＿２ｄｌはアクティブになり、マルチプレクサＸ２１〜Ｘ２３では、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ１２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ１３がそれぞれ選択される。この結果、フリップフロップＦ２３〜Ｆ２５からそれぞれ出力されるＡｄｄｒｅｓｓ＿２ｂａｋ１４、Ｃｏｎｔｒｏｌ＿２ｂａｋ１５、ＷＲ＿ＤＡＴＡ＿２ｂａｋ１６がそれぞれ更新され、Ａｄｄｒｅｓｓ＿ｎｏｍ１１、Ｃｏｎｔｒｏｌ＿ｎｏｍ１２およびＷＲ＿ＤＡＴＡ＿ｎｏｍ１３の１サイクル遅れの信号がフリップフロップＦ２３〜Ｆ２５からそれぞれ出力される。
【００６９】
一方、クロックサイクルＴ１４、Ｔ１５では、レディ信号Ｒｅａｄｙ＿２ｄｌがディスエイブルのため、マルチプレクサＸ２１〜Ｘ２３では、フリップフロップＦ２３〜Ｆ２５からそれぞれ出力されるＡｄｄｒｅｓｓ＿２ｂａｋ１４、Ｃｏｎｔｒｏｌ＿２ｂａｋ１５、ＷＲ＿ＤＡＴＡ＿２ｂａｋ１６がそれぞれ選択される。この結果、フリップフロップＦ２３〜Ｆ２５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ４、Ｃｏｎｔｒｏｌ＿ｂａｋ５、ＷＲ＿ＤＡＴＡ＿ｂａｋ６が更新されずに、フリップフロップＦ２３〜Ｆ２５に保持されているＡｄｄｒｅｓｓ＿２ｂａｋ１４、Ｃｏｎｔｒｏｌ＿２ｂａｋ１５、ＷＲ＿ＤＡＴＡ＿２ｂａｋ１６がそのまま維持される。
【００７０】
また、クロックサイクルＴ１１〜Ｔ１３では、レディ信号Ｒｅａｄｙ＿２ｄｌがアクティブのため、マルチプレクサＸ２４〜Ｘ２６では、アドレス信号Ａｄｄｒｅｓｓ＿ｎｏｍ１１、コントロール信号Ｃｏｎｔｒｏｌ＿ｎｏｍ１２およびライトデータＷＲ＿ＤＡＴＡ＿ｎｏｍ１３がそれぞれ選択され、Ａｄｄｒｅｓｓ＿ｎｏｍ１１、Ｃｏｎｔｒｏｌ＿ｎｏｍ１２およびＷＲ＿ＤＡＴＡ＿ｎｏｍ１３がそれぞれアドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９として、マルチプレクサＸ１１〜Ｘ１３にそれぞれ出力される。
【００７１】
一方、クロックサイクルＴ１４、Ｔ１５では、レディ信号Ｒｅａｄｙ＿２ｄｌがディスエイブルのため、マルチプレクサＸ２４〜Ｘ２６では、フリップフロップＦ２３〜Ｆ２５からそれぞれ出力されるＡｄｄｒｅｓｓ＿２ｂａｋ１４、Ｃｏｎｔｒｏｌ＿２ｂａｋ１５、ＷＲ＿ＤＡＴＡ＿２ｂａｋ１６がそれぞれ選択される。この結果、Ａｄｄｒｅｓｓ＿２ｂａｋ１４、Ｃｏｎｔｒｏｌ＿２ｂａｋ１５、ＷＲ＿ＤＡＴＡ＿２ｂａｋ１６がそれぞれアドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９として、マルチプレクサＸ１１〜Ｘ１３にそれぞれ出力される（なお、図４（ｃ）では、タイミング補償回路Ｈ２１〜Ｈ２３からタイミング補償回路Ｈ１１〜Ｈ１３にそれぞれ出力される方の信号を白で示し、出力されない方の信号を灰色で示した。）。
【００７２】
また、マルチプレクサＸ１１〜Ｘ１６には、レディ信号Ｒｅａｄｙを１サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿１ｄｌが供給される。このため、図４（ｂ）に示すように、クロックサイクルＴ１１、Ｔ１２においては、レディ信号Ｒｅａｄｙ＿１ｄｌはアクティブになり、マルチプレクサＸ１１〜Ｘ１３では、アドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９がそれぞれ選択される。この結果、フリップフロップＦ１３〜Ｆ１５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２がそれぞれ更新され、アドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９の１サイクル遅れの信号がフリップフロップＦ１３〜Ｆ１５からそれぞれ出力される。
【００７３】
一方、クロックサイクルＴ１３、Ｔ１４では、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルのため、マルチプレクサＸ１１〜Ｘ１３では、フリップフロップＦ１３〜Ｆ１５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２がそれぞれ選択される。この結果、フリップフロップＦ１３〜Ｆ１５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２が更新されずに、フリップフロップＦ１３〜Ｆ１５に保持されているＡｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２がそのまま維持される。
【００７４】
また、クロックサイクルＴ１１、Ｔ１２では、レディ信号Ｒｅａｄｙ＿１ｄｌがアクティブのため、マルチプレクサＸ１４〜Ｘ１６では、アドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９がそれぞれ選択され、アドレス信号Ａｄｄｒｅｓｓ＿ｔｍｐ１７、コントロール信号Ｃｏｎｔｒｏｌ＿ｔｍｐ１８およびライトデータＷＲ＿ＤＡＴＡ＿ｔｍｐ１９がスレーブＳ２に対して出力される。
【００７５】
一方、クロックサイクルＴ１３、Ｔ１４では、レディ信号Ｒｅａｄｙ＿１ｄｌがディスエイブルのため、マルチプレクサＸ１４〜Ｘ１６では、フリップフロップＦ１３〜Ｆ１５からそれぞれ出力されるＡｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２がそれぞれ選択される。この結果、Ａｄｄｒｅｓｓ＿ｂａｋ２０、Ｃｏｎｔｒｏｌ＿ｂａｋ２１、ＷＲ＿ＤＡＴＡ＿ｂａｋ２２がスレーブＳ２に対して出力される（なお、図４（ｂ）では、マスターＭ２からスレーブＳ２に出力される方の信号を白で示し、出力されない方の信号を灰色で示した。）。
【００７６】
これにより、２サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿２ｄｌに基づいてマスターＭ２内の全体制御を行うことが可能となり、スレーブＳ２側から出力されるレディ信号Ｒｅａｄｙのパスの遅延の影響を抑えることができる。このため、スレーブＳ２側から出力されるレディ信号Ｒｅａｄｙに基づいてマスターＭ２内の全体制御が行われる場合においても、システムの動作周波数の低下を抑制することが可能となり、パイプライン式バスを実現しつつ、システムの動作周波数を向上させることができる。
【００７７】
また、マスターＭ２内にタイミング補償回路Ｈ１１〜Ｈ１３、Ｈ２１〜Ｈ２３を設けることで、レディ信号Ｒｅａｄｙ＿２ｄｌに従ったデータ転送タイミングをレディ信号Ｒｅａｄｙに従ったデータ転送タイミングに一致させることができる。このため、２サイクル分だけ遅延されたレディ信号Ｒｅａｄｙ＿２ｄｌに基づいてマスターＭ２内の制御が行われる場合においても、既存の「ＡＭＢＡ  ＡＨＢ」などに対応しつつ、パイプライン式バスを実現することが可能となる。
【００７８】
一方、図４（ａ）において、マスターＭ２がスレーブＳ２に対してデータのリード要求を出す場合、マスターＭ２は、クロックサイクルＴ１１のコントロール・アドレス過程において、リード先Ａ０を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ２に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ０）をスレーブＳ２に出力する。
次に、マスターＭ２は、クロックサイクルＴ１２のコントロール・アドレス過程において、リード先Ａ１を示すアドレス信号ＡｄｄｒｅｓｓをスレーブＳ２に出力するとともに、コントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ２に出力する。
【００７９】
ここで、マスターＭ２からのデータ転送要求に対してスレーブＳ１が直ぐに応答できない場合、スレーブＳ２は、レディ信号Ｒｅａｄｙをディスエイブルにし、マスターＭ２に出力する。そして、レディ信号Ｒｅａｄｙがディスエイブルになると、マスターＭ２は、次のクロックサイクルＴ１３においても、リード先Ａ１を示すアドレス信号Ａｄｄｒｅｓｓおよびコントロール信号Ｃｏｎｔｒｏｌ（Ａ１）をスレーブＳ２に出力し続ける。
【００８０】
そして、クロックサイクルＴ１４において、スレーブＳ２がリード処理を完了できる状態になると、レディ信号Ｒｅａｄｙをアクティブにし、リード先Ａ０のリードデータＲＤ＿ＤＡＴＡをマスターＭ２に出力する。
ここで、図４（ｂ）および図４（ｃ）に示すように、スレーブＳ２から出力されたレディ信号Ｒｅａｄｙは図３のフリップフロップＦ１１、Ｆ２１に順次取り込まれ、レディ信号Ｒｅａｄｙを２サイクル分だけ遅延させたレディ信号Ｒｅａｄｙ＿２ｄｌが入力側バスインターフェースＢ１１に供給される。また、スレーブＳ２から出力されたリードデータＲＤ＿ＤＡＴＡは、フリップフロップＦ１２、Ｆ２２を順次介して入力側バスインターフェースＢ１１に供給され、リードデータＲＤ＿ＤＡＴＡを２サイクル分だけ遅延させたリードデータＲＤ＿ＤＡＴＡ＿２ｄｌが入力側バスインターフェースＢ１１に入力される。
【００８１】
このため、入力側バスインターフェースＢ１１に入力されるレディ信号Ｒｅａｄｙ＿２ｄｌとリードデータＲＤ＿ＤＡＴＡ＿２ｄｌとのタイミングの関係は、スレーブＳ２から出力されたＲｅａｄｙ信号とリードデータＲＤ＿ＤＡＴＡとのタイミングの関係と同じになる。すなわち、入力側バスインターフェースＢ１１に入力されるレディ信号Ｒｅａｄｙ＿２ｄｌがアクティブの時、入力側バスインターフェースＢ１１に入力されるリードデータＲＤ＿ＤＡＴＡ＿２ｄｌに有効なデータが存在することになる。この結果、リードデータＲＤ＿ＤＡＴＡがマスターＭ２側に入力される場合においても、入力側バスインターフェースＢ１１の構成を変更することなく、スレーブＳ２側から出力されるレディ信号Ｒｅａｄｙのパスの遅延の影響を抑えることができる。
【００８２】
また、入力側バスインターフェースＢ１１に入力されるリードデータＲＤ＿ＤＡＴＡ＿２ｄｌは、マスターＭ２内のフリップフロップＦ１２、Ｆ２２に順次取り込まれた信号であるため、スレーブＳ２から出力されたレディ信号Ｒｅａｄｙに比べて２サイクル分だけ遅いが、マスターＭ２とスレーブＳ２との間のデータ転送はパイプラインで行なわれているため、２サイクル分だけ遅いことによるペナルティをなくすことができる。
【００８３】
なお、上述した実施形態では、レディ信号Ｒｅａｄｙから２サイクル分遅れたレディ信号Ｒｅａｄｙ＿２ｄｌを用いてマスターＭ２を制御する例を示したが、本発明は、レディ信号Ｒｅａｄｙから何サイクル遅れた信号によってもマスターを制御することができ、レディ信号Ｒｅａｄｙを用いてマスターを制御した場合とデータ転送タイミングが変わることなく、レディ信号Ｒｅａｄｙのパスの遅延問題を解決することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の第１実施形態に係るデータ転送装置の構成を示すブロック図。
【図２】図１のデータ転送装置の動作を示すタイミングチャート。
【図３】本発明の第１実施形態に係るデータ転送装置の構成を示すブロック図。
【図４】図３のデータ転送装置の動作を示すタイミングチャート。
【図５】従来のデータ転送装置の構成を示すブロック図。
【図６】図５のデータ転送装置のデータ転送タイミングの第１の例を示す図。
【図７】図５のデータ転送装置のデータ転送タイミングの第２の例を示す図。
【図８】図５のデータ転送装置のデータ転送タイミングの第３の例を示す図。
【符号の説明】
【００８５】
Ｍ１、Ｍ２  マスター、Ｓ１、Ｓ２  スレーブ、Ｂ１、Ｂ１１  入力側バスインターフェース、Ｂ２、Ｂ１２  出力側バスインターフェース、Ｆ１〜Ｆ５、Ｆ１１〜Ｆ１５、Ｆ２１〜Ｆ２５  フリップフロップ、Ｘ１〜Ｘ６、Ｘ１１〜Ｘ１６、Ｘ２１〜Ｘ２６  マルチプレクサ、Ｈ１〜Ｈ３、Ｈ１１〜Ｈ１３、Ｈ２１〜Ｈ２３  タイミング補償回路
【図１】
2006236189.tif 000003
【図２】
2006236189.tif 000004
【図３】
2006236189.tif 000005
【図４】
2006236189.tif 000006
【図５】
2006236189.tif 000007
【図６】
2006236189.tif 000008
【図７】
2006236189.tif 000009
【図８】
2006236189.tif 000010