(57)【要約】【課題】評価ボードと実装置などでＬＳＩ間の配線遅延が異なるような場合でも、システム全体の動作タイミングに差分を生じさせずに、要求性能を満たした転送スループットでのＬＳＩ間データ同期転送を提供する。【解決手段】マスタＬＳＩ１からスレーブＬＳＩ２へ転送データと共に転送同期用のクロック信号を出力し、マスタＬＳＩ１側でデータ出力用に用いたクロック信号のエッジに対してスレーブＬＳＩ２側では逆のエッジを用いて入力データをラッチする。また、スレーブＬＳＩ２からマスタＬＳＩ１へのデータ転送時において、マスタＬＳＩ１は、入力データのラッチタイミングを複数のタイミングから選択して、どのラッチタイミングが選択されてもマスタＬＳＩ１側内部回路への転送時には同じ転送タイミングとなるようにする。【選択図】図１
2009014182.tif 000002
【特許請求の範囲】
【請求項１】
相手装置との間にデータの転送を行うデータ転送装置であって、
転送用クロック信号を相手装置に送信するクロック送出部と、
前記相手装置から前記転送用クロック信号に同期したデータを受信するデータ受信部と、
を備え、
前記データ受信部は、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジのいずれかで前記データをラッチする第１のラッチ回路を含み、前記第１のラッチ回路の出力信号を受信データとして処理することを特徴とするデータ転送装置。
【請求項２】
前記データ受信部は、
前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジのいずれかで前記データをラッチする第２のラッチ回路と、
前記第１のラッチ回路の出力信号と前記第２のラッチ回路の出力信号とのいずれかを受信データとして選択する第１の選択部とを有する請求項１に記載のデータ転送装置。
【請求項３】
前記データ受信部は、
前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジのいずれかで前記第１の選択部が出力する前記データをラッチする第３のラッチ回路と、
前記第２のラッチ回路の出力信号と前記第３のラッチ回路の出力信号とのいずれかを受信データとして選択する第２の選択部とを有する請求項２に記載のデータ転送装置。
【請求項４】
前記データ受信部は、
前記第１のラッチ回路の出力信号を前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジでラッチする第４のラッチ回路と、
前記第４のラッチ回路の出力信号を受信データとして選択する第３の選択部とを有する請求項１または２に記載のデータ転送装置。
【請求項５】
前記選択部がデータをラッチするタイミングの設定と前記転送クロック信号の遅延量とを変更させて、前記相手装置が出力する前記転送用クロック信号に同期したデータを受信データとして取得するラッチタイミングの選択を制御する制御プロセッサを含む請求項１〜４のいずれか一項に記載のデータ転送装置。
【請求項６】
前記受信データを格納する位相調整用レジスタを備え、
前記制御プロセッサは、位相調整時における前記位相調整用レジスタの値を読み出すことで前記ラッチタイミングの選択を行う請求項５に記載のデータ転送装置。
【請求項７】
前記制御プロセッサの位相調整時における異常動作を防止する信号生成を行う返送信号生成回路を含む請求項５または６に記載のデータ転送装置。
【請求項８】
前記データ受信部は、複数の前記相手装置に対し共通のデータバスを介して接続され、前記複数の相手装置中のどの相手装置が前記データバスを使用しているかに基づいて前記ラッチタイミングの選択を行う請求項５または６に記載のデータ転送装置。
【請求項９】
前記データ受信部は、前記複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるように前記ラッチタイミングの選択を行う請求項８に記載のデータ転送装置。
【請求項１０】
前記クロック送出部は、前記データバスを使用している相手装置にのみ前記転送用クロック信号を送信する請求項８または９に記載のデータ転送装置。
【請求項１１】
前記転送用クロック信号を受信し、前記受信した転送用クロック信号に同期するデータを送信する装置内転送部を含み、
前記データ受信部は、前記装置内転送部からのデータを前記転送クロック信号に同期してラッチする縦続接続される第５及び第６のラッチ回路をさらに備え、前記第６のラッチ回路の出力から前記受信データを取得する請求項１〜１０のいずれか一項に記載のデータ転送装置。
【請求項１２】
前記転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを前記相手装置に出力するデータ出力回路をさらに備える請求項１〜１０のいずれか一項に記載のデータ転送装置。
【請求項１３】
前記転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを前記装置内転送部に出力するデータ出力回路をさらに備える請求項１１に記載のデータ転送装置。
【請求項１４】
転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジに同期させたデータ及び前記転送用クロック信号を相手装置に送信し、前記相手装置から前記転送用クロック信号に同期したデータを受信することにより、前記相手装置との間でデータの転送を行うデータ転送方法であって、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジで前記データをラッチし、ラッチ結果を受信データとして処理することを特徴とするデータ転送方法。
【請求項１５】
前記データをラッチするタイミングの選択の設定と前記遅延量とを変更し、前記相手装置から取得する受信データをラッチするタイミングの最適化を図る請求項１４に記載のデータ転送方法。
【請求項１６】
複数の前記相手装置に対し共通のデータバスを介して前記データを転送し、該複数の相手装置中のどの相手装置が該データバスを使用しているかに基づいて前記ラッチタイミングの選択を行う請求項１５に記載のデータ転送方法。
【請求項１７】
前記複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるように前記ラッチタイミングの選択を行う請求項１６に記載のデータ転送方法。
【請求項１８】
前記データバスを使用している相手装置にのみ前記転送用クロック信号を送信する請求項１６または１７に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置およびデータ転送方法に関し、特に複数ＬＳＩ間でデータを同期転送する場合のインタフェース同期技術、及び位相調整技術に関する。
【背景技術】
【０００２】
従来、ＬＳＩ間のデータ同期転送においては、転送元ＬＳＩから転送先ＬＳＩに対して転送データと共に転送用クロックを出力し、受信側ＬＳＩでは転送用クロックを用いてデータを再生していた。ここで、ＬＳＩ間で相互に転送がある場合、マスタＬＳＩからスレーブＬＳＩへの転送と、スレーブＬＳＩからマスタＬＳＩへの転送とは、異なるクロックを使用して高速転送を実現していた。しかしながら、この場合、受信側でクロックの位相調整を行う場合に、位相調整のためにフィードバックループが存在するような比較的複雑な回路素子を用いる必要があった。また、評価ボード上と実装置上などでは、ＬＳＩ間の配線遅延が異なるため、配線遅延に依存してシステム全体（ＬＳＩ間）のタイミングに差分が生じることがあった。差分が生じると、システム全体の同期が取れない場合や、ビット精度およびサイクル精度で実機と等価な動作タイミング検証が困難になる場合が生じる。【０００３】
そこで、特許文献１には、入力の共通のデータ信号をクロック信号の立ち上がり及び立ち下りにより別々にサンプリングすると共に、得られた２系統のサンプリング信号間の位相差に基づいてデータ信号とクロック信号との位相を検出する位相検出回路が記載されている。このような位相検出回路によれば、データ信号とクロック信号との間に、常時生じているような位相のずれは元より、たまにしか発生しないような位相のずれでも、確実に検出できる。【０００４】
一方で、システム全体でタイミングの同期を取るためには、全てのＬＳＩが同一のタイミングに同期した転送クロックを使用する方法がある。ＬＳＩ間におけるデータ転送は、この転送クロックを基準にした１サイクル間で受け渡すことで実現してきた。しかしながら、この場合、転送クロックの周波数は、評価ボードや実装置上での配線遅延に依存するため、ＬＳＩ設計段階において両者の配線遅延（負荷容量）を厳密に見積もることは困難であるという場合があった。また、配線遅延の大きい方に転送クロック周波数を合わせた場合、転送スループットが低下し、要求性能を満たせなくなることもあった。【０００５】
そこで、特許文献２には、第１のＬＳＩから第２のＬＳＩへのデータ転送を１．５クロックのレイテンシの同期転送で行い、第２のＬＳＩから第１のＬＳＩへのデータ転送を１．５クロックのレイテンシの同期転送で行う方法が開示されている。この方法によれば、ＬＳＩ間のクロックスキュー、フリップフロップのセットアップタイムを含めて、入出力バッファの遅延時間を、最大時間と最小時間の双方において保証することができる。【０００６】
また、関連して、特許文献３には、レシーバの同期クロックに対するデータの遅延時間を最小にし、１つのマスタ・デバイスに複数のスレーブ・デバイスを接続した場合でも小さなドライブ能力で接続するスレーブ・デバイスの数に制限が無く、通信クロックの周波数や伝送線路の線路長が接続するスレーブ・デバイスの数で制限されない情報伝達装置が記載されている。【０００７】
【特許文献１】特開平０７−１７７１３４号公報
【特許文献２】特開平０８−２４９２７５号公報
【特許文献３】特開２００１−２６５７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１の場合は、前述したようにＬＳＩ間の配線遅延に依存してＬＳＩ間でのデータ転送にタイミング差分が生じるため、システム全体の同期が取れなくなる虞がある。また、判定に使用するクロック位相数と実際に選択されるクロック位相数とが同じため、より安定したタイミングを選択できず、マージンの少ないラッチタイミングを選択してしまう可能性もある。【０００９】
また、特許文献２の場合は、ＬＳＩ間の遅延時間が、０．５サイクルから１．５サイクルまでの１サイクル間の転送遅延に限定されるため、評価ボードや実装置などで配線遅延が限定された範囲を越える場合には適用できない。また、転送クロックを外部から各ＬＳＩに供給しているため、供給されるクロックの配線遅延差も補償しなければならない。【００１０】
本発明の目的は、評価ボードや実装置などＬＳＩ間の配線遅延が異なるような場合でも、システム全体の時計や転送タイミングに差分を生じさせずに、要求性能を満たす転送クロック周波数を保って、ＬＳＩ間のデータ同期転送を実現することである。
【課題を解決するための手段】
【００１１】
前記目的を達成するため、本発明に係るデータ転送装置は、相手装置との間にデータの転送を行うデータ転送装置であって、
転送用クロック信号を相手装置に送信するクロック送出部と、
前記相手装置から前記転送用クロック信号に同期したデータを受信するデータ受信部と、
を有し、
前記データ受信部は、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジのいずれかで前記データをラッチするラッチ回路を含み、前記ラッチ回路の出力信号を受信データとして処理することを特徴とする。【００１２】
本発明に係るデータ転送方法は、転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジに同期させたデータ及び前記転送用クロック信号を相手装置に送信し、前記相手装置から該転送用クロック信号に同期したデータを受信することにより、前記相手装置との間でデータの転送を行うデータ転送方法であって、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジで前記データをラッチし、ラッチ結果を受信データとして選択することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、遅延クロック信号によって受信データとしてデータをラッチするので、評価ボードや実装置などＬＳＩ間の配線遅延が異なるような場合であっても、ＬＳＩ間のデータ同期転送を実現することができる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施形態を図に基づいて詳細に説明する。【００１５】
本発明の実施形態に係るデータ転送装置は相手装置との間にデータの転送を行うデータ転送装置であって、図１，図１０，図１１及び図１２に示すように、基本的な構成として、転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）を相手装置（２）に送信するクロック送出部４００と、前記相手装置（２）から前記転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）に同期したデータＭＤＩを受信するデータ受信部５００とを有しており、前記データ受信部５００は、前記転送用クロック信号ＣＬＫを遅延し且つその遅延量を可変とした遅延クロック信号ＤＣＬＫの立ち上がりエッジまたは立ち下りエッジのいずれかで前記データをラッチする第１のラッチ回路２１と、前記第１のラッチ回路２１の出力信号を受信データとして処理することを特徴とする。【００１６】
本発明の実施形態では、システム全体でのタイミング同期を取るため、相手装置（２）にのみ転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）を転送し、相手装置（２）との相互間でのデータ転送を前記転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）に共通に同期して行う。また、前記転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）のクロック周波数は、データ転送のスループットを低下させないために実装置における要求性能を満たすクロック周波数に設定することが望ましいものである。【００１７】
本発明の実施形態では、相手装置（２）のみに転送用クロック信号ＣＬＫを転送し、全てのデータ転送を前記転送用クロック信号に同期させること、及び相手装置から入力したデータをラッチするタイミングを、配線遅延等に依存せずにシステム全体の時計や転送タイミングを合わせることが可能となる。具体的には、相手装置（２）へは転送データと共に転送用クロック信号ＣＬＫを出力し、データ転送用に用いた転送クロック信号のエッジと相手装置（２）側でデータ入力用に用いるクロック信号のエッジとを逆にすることにより、データ転送の遅延時間に依存せず、セットアップ時間およびホールド時間のマージンを確保することが可能となる。また、相手装置（２）からのデータ転送時には、そのデータを受信する際に最適なラッチタイミングを選択でき、どのラッチタイミングが選択されても、データ受信部５００からのデータ入力時には同じ転送タイミングにできるため、データ転送の遅延時間に依存せず同期したデータ転送を行うことができる。したがって、シミュレーションのような事前検証やボード評価において、ビット精度およびサイクル精度で実装置での動作と等価に行うことができることとなり、検証精度が高くなることも期待できる。【００１８】
また、実装置のみの配線遅延を考慮してクロック周波数を決定できることにより転送スループットの低下も防ぐことができる。さらに、位相可変クロック信号の使用によりラッチタイミングの判定基準が転送クロックの数倍の精度で得られるため、より最適なラッチタイミングを選択することも可能となる。【００１９】
次に、本発明の実施形態を具体例に基づいて更に詳細に説明する。本発明の実施形態をマスタＬＳＩ及びスレーブＬＳＩのインタフェースに実装した例を本発明の実施形態１として説明する。また、スレーブＬＳＩが複数存在し、且つそのスレーブＬＳＩ間でデータバス信号を共有してデータ転送を行う場合のインタフェース回路の例を本発明の実施形態２として説明する。さらに、実施形態１および実施形態２において示したスレーブＬＳＩの１つを、マスタＬＳＩ内にスレーブコアとして１チップ化して接続した場合の例を本発明の実施形態３として説明する。最後に、スレーブＬＳＩとのインタフェースを１種類に限定することで構成を簡単化する例を本発明の実施形態４として説明する。【００２０】
（実施形態１）
図１は、本発明の実施形態１に係るデータ転送装置の構成を示すブロック図である。以下の各実施形態での説明では、本発明の実施形態に係るデータ転送装置をマスタＬＳＩに組込み、その相手装置としてスレーブＬＳＩを用いた例を示している。【００２１】
マスタＬＳＩ１は、フリップフロップ１０（ＦＦ（ＯＨ））、１１（ＦＦ（ＯＬ））、２０（ＦＦ（ＩＨ））、２１（ＦＦ（ＩＬ））、２２（ＦＦ（ＩＭ））、選択回路（セレクタ）３０、３１、ゲート回路３２、位相調整レジスタ４０ａ（ＡＤＪＲＥＧ０）、４０ｂ（ＡＤＪＲＥＧ１）、４０ｃ（ＡＤＪＲＥＧ２）、・・・、入出力バッファ４１、４３、４６、遅延レジスタ（ＤＬＹ）３４、制御プロセッサ（ＣＰＵ）１００を備える。また、スレーブＬＳＩ２は、入出力バッファ４２、４４、４５、フリップフロップ５０（ＦＦ（ＳＤＩ））、６０（ＦＦ（ＳＤＯ））、ＰＬＬ回路７０、ＲＡＭや論理回路などの内部回路６５を備える。【００２２】
図１に示す実施形態１では、ゲート回路３２などが、転送用クロック信号ＣＬＫ（ＥｘＣＬＫ）を相手装置（スレーブＬＳＩ２）に送信するクロック送出部４００を構成している。なお、クロック送出部４００は、入出力バッファ４３が含まれていてもよい。また、前記転送用クロック信号ＣＬＫを遅延し且つその遅延量を可変とした遅延クロック信号ＤＣＬＫの立ち上がりエッジまたは立ち下りエッジのいずれかでデータＭＤＩをラッチするデータ受信部５００の第１のラッチ回路をフリップフロップ２１で構成している。また、前記転送用クロック信号ＣＬＫの立ち上がりエッジまたは立ち下がりエッジのいずれかで前記データＭＤＩをラッチする第２のラッチ回路をフリップフロップ２０で構成している。なお、前記データＭＤＩは、相手装置であるスレーブＬＳＩから前記転送用クロック信号ＣＬＫに同期させてデータ転送装置であるマスタＬＳＩ１に送信されるデータである。また、転送クロック信号ＣＬＫの立ち上がりエッジまたは立ち下がりエッジのいずれかに同期して送信データＤＯを相手装置であるスレーブＬＳＩ２に出力するデータ出力回路６００を、フリップフロップ１０，フリップフロップ１１などにより構成している。なお、データ出力回路６００の構成は図１に示すものに限られるものではない。【００２３】
また、第１のラッチ回路であるフリップフロップ２１の出力信号と第２のラッチ回路であるフリップフロップ２０の出力信号とのいずれかを受信データとして選択する第１の選択部を選択回路（セレクタ）３０で構成している。また、前記転送クロック信号ＣＬＫの立ち上がりエッジまたは立ち下がりエッジのいずれかで前記第１の選択部である選択回路３０が出力する前記データＭＤＩをラッチする第３のラッチ回路をフリップフロップ２２で構成している。また、第２のラッチ回路であるフリップフロップ２０の出力信号と前記第３のラッチ回路であるフリップフロップ２２の出力信号とのいずれかを受信データとして選択する第２の選択部を選択回路（セレクタ）３１で構成している。【００２４】
なお、図１に示す実施形態１では、ラッチ回路及び選択部を多段に接続した例を示したが、これに限られるものではない。本発明の実施形態１では基本的な構成として、第１のラッチ回路２１の出力信号を受信データとして処理する構成であれば、第１のラッチ回路２１のみを設けた回路構成としてもよいものである。また、その応用例としてデータＭＤＩをラッチするタイミングを最適化するために、第１のラッチ回路２１に加えて、第２のラッチ回路２０を設け、これに伴って第１のラッチ回路２１の出力信号と第２のラッチ回路２０の出力信号とのいずれかを第１の選択部３０で受信データとして選択するようにしてもよい。さらには、第１のラッチ回路２１及び第２のラッチ回路２０に加えて、第３のラッチ回路２２を付加し、第２のラッチ回路２０の出力信号と第３のラッチ回路２２の出力信号とのいずれかを第２の選択部３１で受信データとして選択するようにしてもよいものである。【００２５】
フリップフロップ１０は、出力データＤＯを転送用のクロック信号ＣＬＫの立ち上がりエッジでラッチし、フリップフロップ１１に出力する。フリップフロップ１１は、フリップフロップ１０の出力データをクロック信号ＣＬＫの立ち下りエッジでラッチし、出力データＭＤＯを入出力バッファ４１を介してスレーブＬＳＩ２に送信する。なお、出力データＤＯのビット幅は、１ビットであっても、データバスとして複数ビット化されていてもどちらであってもよい。ここでは、１ビットとして図示している。また、フリップフロップ１１、入出力バッファ４１間などに他の図示されない論理回路が存在していてもかまわない。【００２６】
また、ゲート回路３２は、クロック信号ＣＬＫを制御信号ＣＮＴによってオンオフされるクロック信号ＥｘＣＬＫとして入出力バッファ４３を介してスレーブＬＳＩ２に送信する。【００２７】
さらに、スレーブＬＳＩ２からの受信データは、入出力バッファ４６を介してデータＭＤＩとしてフリップフロップ２０、２１に入力される。なお、受信データのビット幅は、１ビットであっても、データバスとして複数ビット化されていてもどちらであってもよい。ここでは、１ビットとして図示している。また、入出力バッファ４６、フリップフロップ２０、２１間などに他の図示されない論理回路が存在していてもかまわない。【００２８】
フリップフロップ２０は、データＭＤＩをクロック信号ＣＬＫの立ち上がりエッジでラッチし、位相調整用の選択回路３０、３１に出力する。フリップフロップ２１は、データＭＤＩを位相可変なクロック信号ＤＣＬＫの立ち上がりエッジでラッチし、選択回路３０に出力する。遅延レジスタ３４は、制御プロセッサ１００からの設定値ＤＳＥＴに基づいてクロック信号ＣＬＫを遅延してクロック信号ＤＣＬＫを出力する。選択回路３０は、選択信号ＳＥＬ０＝１の時、フリップフロップ２０の出力信号をフリップフロップ２２に出力し、選択信号ＳＥＬ０＝０の時、フリップフロップ２１の出力信号をフリップフロップ２２に出力する。フリップフロップ２２は、選択回路３０の出力信号をクロック信号ＣＬＫの立ち上がりエッジでラッチし、選択回路３１に出力する。選択回路３１は、選択信号ＳＥＬ０＝１の時、フリップフロップ２０の出力信号を受信データＤＩとして出力し、選択信号ＳＥＬ０＝０の時、フリップフロップ２２の出力信号を受信データＤＩとして出力する。【００２９】
位相調整レジスタ４０ａ、４０ｂ、４０ｃ、・・・は、それぞれ制御プロセッサ１００からの取り込み許可信号ＥＮ０、ＥＮ１、ＥＮ２、・・・によって受信データＤＩをクロック信号ＣＬＫの立ち上がりエッジで取り込む。【００３０】
制御プロセッサ１００は、選択部３０，３１がデータをラッチするタイミングの設定と前記遅延クロック信号の遅延量とを変更させて、前記相手装置２に出力する転送クロック信号に同期したデータを受信データとして取得するラッチタイミングの選択を制御するものである。具体的に説明すると、制御プロセッサ１００は、制御信号ＣＮＴをゲート回路３２に出力すると共に、位相調整時における位相調整レジスタ４０ａ、４０ｂ、４０ｃ、・・・の値を必要に応じて読み出し、読み出し結果に応じて選択信号ＳＥＬ０、ＳＥＬ１を出力し、フリップフロップ２０、２１、２２におけるラッチタイミングの選択を行う。また、遅延レジスタ３４の遅延量を定める設定値ＤＳＥＴを設定する。【００３１】
スレーブＬＳＩ２において、ＰＬＬ回路７０は、クロック信号ＥｘＣＬＫを入出力バッファ４３、４４を介してクロック信号ＲＥＦＣＬＫとして入力し、基準のクロック信号ＣＴＳをフリップフロップ５０、６０、内部回路６５に出力する。なお、クロック信号ＲＥＦＣＬＫが安定的に供給される場合には、ＰＬＬ回路７０を廃し、クロック信号ＲＥＦＣＬＫをクロック信号ＣＴＳとしてもよい。【００３２】
フリップフロップ５０は、出力データＭＤＯを入出力バッファ４１、４２を介してデータＳＤＩとしてクロック信号ＲＥＦＣＬＫの立ち上がりエッジでラッチし、内部回路６５等に出力する。なお、入出力バッファ４２、フリップフロップ５０間などに他の図示されない論理回路が存在していてもかまわない。【００３３】
フリップフロップ６０は、内部回路６５等からのデータをクロック信号ＲＥＦＣＬＫの立ち上がりエッジでラッチし、入出力バッファ４５、４６を介してデータＭＤＩとしてマスタＬＳＩ１に出力する。なお、フリップフロップ６０、入出力バッファ４５間などに他の図示されない論理回路が存在していてもかまわない。【００３４】
図２は、図１において示されるクロック信号ＣＬＫ、ＤＣＬＫ、ＥｘＣＬＫの波形と位相関係について示した図である。ここで、図２のｆは、クロック信号ＣＬＫの周波数（単位：Ｈｚ）を示す。クロック信号ＣＬＫは、転送クロックまたは内部動作クロックの基準となるクロック信号である。また、クロック信号ＤＣＬＫは、クロック信号ＣＬＫと周波数は同じであって、遅延レジスタ３４の設定値ＤＳＥＴにより位相を可変にできる位相可変クロックである。図２ではクロック信号ＣＬＫの４倍の周波数を持つクロック信号ＣＬＫＨを用いてシフトすることで４相にシフト可能なクロック信号ＤＣＬＫ（ＤＳＥＴ＝０〜３）を実現している。しかし、これは複数の位相を選択できるクロックであれば特に４相に限定されない。また、クロック信号ＥｘＣＬＫは、クロック信号ＣＬＫと周波数も位相も同じであって、制御プロセッサ１００からの信号ＣＮＴによってＯＮ／ＯＦＦが可能な外部転送クロックである（ＣＮＴ＝０でＯＦＦ、ＣＮＴ＝１でＯＮ）。【００３５】
本発明の実施形態１に係るデータ転送装置の動作について図１を用いて説明する。マスタＬＳＩ１側の転送用のクロックとしてクロック信号ＣＬＫを使用し、スレーブＬＳＩ２用の転送クロックの基準としてクロック信号ＥｘＣＬＫを出力する。スレーブＬＳＩ２ではクロック信号ＥｘＣＬＫに同期してマスタＬＳＩ１とのデータ転送の入出力を行う。【００３６】
マスタＬＳＩ１からスレーブＬＳＩ２へのデータ転送時には、マスタＬＳＩ１側でクロック信号ＣＬＫの立ち下りエッジに同期させて転送データを出力し（フリップフロップ１１）、スレーブＬＳＩ２側でクロック信号ＲＥＦＣＬＫと同相のクロック信号ＣＴＳの立ち上がりエッジに同期してデータをラッチする（フリップフロップ５０）。また、これとは逆に、図１２に示す実施形態４において後述するように、マスタＬＳＩ１側では立ち上がりエッジに同期して出力し、スレーブＬＳＩ２側では立ち下りエッジに同期してラッチする構成であってもよい。つまり、マスタＬＳＩ１側で出力データ用に用いたクロックエッジに対して、スレーブＬＳＩ２側ではそれとは逆のクロックエッジを用いて入力データをラッチする構成である。【００３７】
スレーブＬＳＩ２からマスタＬＳＩ１へのデータ転送時には、スレーブＬＳＩ２側でクロック信号ＣＴＳの立ち上がりエッジに同期してデータを出力し、マスタＬＳＩ１側ではクロック信号ＣＬＫの立ち上がりエッジと立ち下りエッジの両方に同期してデータをラッチする。すなわち、フリップフロップ２０を使用することで立ち上がりエッジに同期してラッチし、位相可変なクロック信号ＤＣＬＫとフリップフロップ２１を使用することで立ち下りエッジに同期してラッチする。例えば、フリップフロップ２１がクロック信号ＤＣＬＫの立ち上がりで動作するフリップフロップである場合には、クロック信号ＤＣＬＫの設定値ＤＳＥＴを”２”に設定してクロック信号ＣＬＫの逆位相となるようにする。さらに、内部回路に入力データＤＩを転送する際にはＬＳＩ間の遅延時間に依存して以下の３つの転送方法から最適な方法を選択する。【００３８】
第１の転送方法は、クロック信号ＣＬＫの立ち上がりエッジでラッチしたデータ（フリップフロップ２０）を、再度立ち上がりエッジ（フリップフロップ２２）でラッチし直してから転送する方法である（ＳＥＬ１＝０、ＳＥＬ０＝１）。マスタＬＳＩとスレーブＬＳＩ間の往復の遅延時間が転送クロックの１サイクル以内に収まる場合にはこの方法を選択する。【００３９】
第２の転送方法は、クロック信号ＣＬＫの立ち下がりエッジすなわちクロック信号ＤＣＬＫの立ち上がりエッジでラッチしたデータ（フリップフロップ２１）を、今度は立ち上がりエッジ（フリップフロップ２２）でラッチし直してから転送する方法である（ＳＥＬ１＝０、ＳＥＬ０＝０）。マスタＬＳＩとスレーブＬＳＩ間の往復の遅延時間が転送クロックの０．５サイクルから１．５サイクルの間の場合にはこの方法を選択する。【００４０】
第３の転送方法は、クロック信号ＣＬＫの立ち上がりエッジでラッチしたデータ（フリップフロップ２０）を、そのまま転送する方法である（ＳＥＬ１＝１、ＳＥＬ０＝１）。マスタＬＳＩとスレーブＬＳＩ間の往復の遅延時間が転送クロックの１サイクルから２サイクルの間の場合にはこの方法を選択する。【００４１】
図３、４、５は、上記の第１、第２、第３の転送方法のそれぞれの場合における転送タイミングを示した図である。ここで、ｆは転送クロックの周波数（単位：Ｈｚ）、ＴＣＬＫはマスタＬＳＩ１からスレーブＬＳＩ２への転送クロックの遅延時間、ＴＤＭＳはマスタＬＳＩ１からスレーブＬＳＩ２への転送データの遅延時間、ＴＤＳＭはスレーブＬＳＩ２からマスタＬＳＩ１への転送データの遅延時間を示す。ここで、ＬＳＩ間の遅延時間とは、フリップフロップとフリップフロップの間に存在する途中の回路、配線遅延、入出力バッファ等の動作遅延等を全て含んだ時間のことである。【００４２】
マスタＬＳＩ１からスレーブＬＳＩ２へのデータ転送は、ＬＳＩ間の遅延時間に依存せず図３から図５で同じ動作となる。本発明の実施形態ではマスタＬＳＩ１からスレーブＬＳＩ２に転送用のクロック信号を出力しており、配線遅延が変化しても、クロック信号の遅延時間ＴＣＬＫと転送データの遅延時間ＴＤＭＳは、ほぼ同じ割合で増減する。したがって、スレーブＬＳＩ２側でのクロック信号と入力データのタイミング関係は、ほぼ一定となる。また、マスタＬＳＩ１側でクロック信号の立ち下りエッジに同期させて（０．５サイクル遅らせて）転送データを出力する。これにより、スレーブＬＳＩ２側での入力データ用フリップフロップ５０に対するセットアップ時間とホールド時間へのマージンを共に転送クロックの０．５サイクル分（１／２ｆ  ｓｅｃ）確保することができる。したがって、ＬＳＩ間の遅延時間に依存せず１サイクルでの確実な同期転送が可能である。【００４３】
スレーブＬＳＩ２からマスタＬＳＩ１へのデータ転送は、ＬＳＩ間の遅延時間に依存して図３から図５のいずれかの場合に対応する転送方法を選択する。マスタＬＳＩ１からスレーブＬＳＩ２へのクロック信号の遅延時間ＴＣＬＫとスレーブＬＳＩ２からマスタＬＳＩ１への転送データの遅延時間ＴＤＳＭの和（ＴＣＬＫ＋ＴＤＳＭ：ＬＳＩ間の往復の遅延時間）がクロック信号の１サイクル以内に収まる場合には、図３に示すように、マスタＬＳＩ１側において選択回路３１、３０の制御をＳＥＬ１＝０、ＳＥＬ０＝１とする。この場合、クロック信号ＣＬＫの立ち上がりエッジに同期してラッチしたデータ（フリップフロップ２０）を再度立ち上がりエッジでラッチして（フリップフロップ２２）データＤＩとして内部回路に転送する。【００４４】
ＬＳＩ間の往復の遅延時間ＴＣＬＫ＋ＴＤＳＭが転送クロックの０．５サイクルから１．５サイクルの間の場合には、図４に示すように、選択回路３１、３０の制御をＳＥＬ１＝０、ＳＥＬ０＝０とする。この場合、クロック信号ＣＬＫの立ち下りエッジ（クロック信号ＤＣＬＫの立ち上がりエッジ）に同期してラッチしたデータ（フリップフロップ２１）を、今度はクロック信号ＣＬＫの立ち上がりエッジに同期してラッチして（フリップフロップ２２）データＤＩとして内部回路に転送する。【００４５】
また、ＬＳＩ間の往復の遅延時間ＴＣＬＫ＋ＴＤＳＭが転送クロックの１サイクルから２サイクルの間の場合には、図５に示すように、選択回路３１、３０の制御をＳＥＬ１＝１、ＳＥＬ０＝１とする。この場合、クロック信号ＣＬＫの立ち上がりエッジに同期してラッチしたデータ（フリップフロップ２０）をそのままデータＤＩとして内部回路に転送する。【００４６】
このように、ＬＳＩ間の往復の遅延時間に対応してマスタＬＳＩ１側の選択回路３１、３０を選択制御することで、様々な入力データタイミングに対して内部回路へは一定のタイミング（図３から図５におけるＤＩ）に同期化して転送することが可能となる。【００４７】
また、本実施形態では、３つの転送方法の中から最適な転送方法を選択する場合の例を示した。しかしこれに限定することなく、図１の内部回路へのデータＤＩの生成時に、後段にクロック信号ＣＬＫの立ち上がり又は立ち下りエッジに同期して動作するフリップフロップ及び選択回路などを必要な段数分更に追加することによって、ＬＳＩ間の往復の遅延時間ＴＣＬＫ＋ＴＤＳＭが１．５サイクルから２．５サイクルの間の場合や２サイクルから３サイクルの間の場合などにも対応する構成とすることもできる。【００４８】
次に、位相調整方法について説明する。スレーブＬＳＩ２からマスタＬＳＩ１へのデータ転送において、マスタＬＳＩ側で入力データの最適なラッチタイミングを選択するために、位相調整モードを準備する。位相調整モードをＯＮ、すなわち取り込み許可信号ＥＮ０、ＥＮ１、ＥＮ２、・・・をアクティブにすることにより、ラッチしてセレクトした入力データＤＩを図１に示す位相調整レジスタ４０ａ、４０ｂ、４０ｃ、・・・に順次格納することが可能である。なお、位相調整モードをＯＦＦにした場合に、低消費電力化のために位相調整レジスタ用のクロック信号をクロックゲーティングにより停止させるようにしてもよい。【００４９】
図６は、本発明の実施形態における位相調整方法のシーケンスの例を示した図である。ＣＰＵは、図６の手順にしたがって、各フェーズの処理を実行する。フェーズ（Ａ）で位相調整モードをＯＮにし、フェーズ（Ｂ）、（Ｃ）で選択回路３０、３１の設定（信号ＳＥＬ０、ＳＥＬ１の出力）と位相可変のクロック信号ＤＣＬＫの位相を変更（ＤＳＥＴの設定）する。また、フェーズ（Ｄ）でマスタＬＳＩ１側からスレーブＬＳＩ２に対してデータのリード要求やデータ転送要求を行う。この要求によって、フェーズ（Ｅ）において、スレーブＬＳＩ２からマスタＬＳＩ１への所望のデータ転送が生ずる。これにより、位相調整レジスタ４０ａ、４０ｂ、４０ｃ、・・・に入力データＤＩがラッチされるため、フェーズ（Ｆ）においてラッチされた値を確認する。【００５０】
フェーズ（Ｂ）からフェーズ（Ｆ）までを位相調整の設定組合せ数分だけ繰り返し、フェーズ（Ｇ）において、どの設定組合せによるラッチタイミングが最適かを判定する。【００５１】
図７は、位相調整の設定組合せと設定組合せによって得られたデータ取得判定結果（ＯＫ／ＮＧ）によるラッチタイミングを示した図である。図７中の（１）、（２）、（３）のラッチタイミングは、それぞれ図３、図４、図５に示したラッチタイミングに対応する。また、位相可変のクロック信号ＤＣＬＫに、図２に示したような４相可変クロックを使用することで、クロック信号ＤＣＬＫの設定値ＤＳＥＴを１や３に設定することにより、（４）や（５）のような中間のラッチタイミングにおける判定データ取得も可能としている。【００５２】
本実施の形態の場合、図７の（１）から（５）の組合せに対して図６のフェーズ（Ｂ）〜（Ｆ）のシーケンスを繰り返す。そして、（１）から（３）の中でデータ取得判定結果がＯＫである設定組合せを最適なラッチタイミングとして選択する。ただし、（１）から（３）の中に判定結果がＯＫである設定組合せが２つ以上存在した場合は、（４）や（５）の中間のラッチタイミングにおける判定結果も考慮し、両隣の位相における判定結果もＯＫであるような（判定結果がＮＧとなる位相タイミングからできるだけ離れた）より適切なラッチタイミングの方を選択する。【００５３】
このように、評価ボードや実装置などその動作環境に応じて事前に最適ラッチタイミングの選択を行った結果を、実動作ではＬＳＩ間におけるデータ転送が発生する前に、選択回路３０、３１の選択値として固定的に設定する。また、実動作におけるシステム起動時などに制御プロセッサ１００が自律的に最適ラッチタイミングの選択および設定を実施するようなシステムであってもよい。さらに、制御プロセッサ１００から各ラッチタイミングにおけるデータ取得判定結果（図７に示したＯＫ／ＮＧ判定の結果）をＬＳＩ外部に出力することにより、評価ボードや実装置などその動作環境におけるＬＳＩ間の遅延時間の目安（実測値）を、ＬＳＩ外部において細かい精度で観測することもできる。【００５４】
次に、位相調整モードのためのデータ返送機構について説明する。位相調整モードで位相調整を実施する場合、設定の組合せによっては転送データを正しく取得できない可能性がある。したがって、例えば、図６に示した位相調整シーケンスのフェーズ（Ｄ）において、マスタＬＳＩ１からスレーブＬＳＩ２に対してリード要求を実施し、判定結果がＮＧとなるような場合には、リードデータやそれに伴う制御信号が正しく返送されず、制御プロセッサ１００がフリーズするなど異常な動作をしてしまう可能性がある。【００５５】
図８は、位相調整モードにおいてデータを所望のタイミングで取得できない場合でも、システムをダウンさせないためのデータ返送回路の実装例を示した図である。位相調整モードの際に、マスタＬＳＩ１側の制御プロセッサ１００がスレーブＬＳＩ２からの転送データを基にした制御信号（ＷＡＩＴ信号やＲＥＡＤＹ信号、ＩＮＴＥＲＲＵＰＴ信号など）を待つような場合は、インタフェース回路２００（図１のマスタＬＳＩ１内の制御プロセッサ１００を除く構成部分）がスレーブＬＳＩ２からの転送データを正しく取得できなくても該当する制御信号を生成する回路を実装する。具体的には、位相調整モードがＯＮの場合に限って動作するような擬似的な返送信号生成回路１１０を実装する。【００５６】
このような返送信号生成回路１１０を実装することにより、制御プロセッサ１００がフリーズしたり異常動作したりすることを防ぐことが可能となる。また、この返送信号生成回路１１０に、リードデータ値の変換など判定結果の成否（ＯＫ／ＮＧ）がわかるような機能を実装することにより、位相調整レジスタ４０ａ、・・・を用いなくても最適なラッチタイミングの判定を行うことも可能となる。【００５７】
以上のようなデータ転送装置によれば、以下のような効果が期待できる。【００５８】
第１の効果は、評価ボードや実装置などＬＳＩ間の遅延時間の差には依存せず、サイクル精度でＬＳＩ間のデータ同期転送を実現できること、すなわち、システム全体のタイミング同期を取れることである。【００５９】
その理由は、本発明の実施形態では、マスタＬＳＩからスレーブＬＳＩ方向に転送する共通のクロック信号に同期してＬＳＩ間のデータ転送を行い、マスタＬＳＩからスレーブＬＳＩへのデータ転送については、マスタＬＳＩ側でデータ出力用に用いたクロックエッジに対して、スレーブＬＳＩ側ではそれとは逆のクロックエッジを用いて入力データをラッチする構成としている。このため、セットアップ時間およびホールド時間へのマージンをＬＳＩ間の遅延時間に依存せずに確保できるためである。また、スレーブＬＳＩからマスタＬＳＩへのデータ転送については、スレーブＬＳＩ側から転送クロックの立ち上がりまたは立ち下りエッジに同期して出力したデータに対して、マスタＬＳＩ側では複数のラッチタイミング（立ち上がりエッジ、立ち下りエッジ、１サイクル遅れの立ち上がりエッジなど）を選択できる仕組みを実装している。このため、ＬＳＩ間の遅延時間に依存してどのラッチタイミングが選択された場合であっても、マスタＬＳＩ側の内部回路へデータ転送する際には全て同じ転送タイミングになるようにデータ入力回路を構成しているためである。【００６０】
また、システム全体のタイミング同期を取れることにより、シミュレーションのような事前検証やボード評価において、ビット精度およびサイクル精度で実装置と等価な動作検証ができるため、検証精度が高くなることも期待できる。【００６１】
第２の効果は、実装置上でのＬＳＩ間データ同期転送を前提とした転送クロック周波数を選択でき、転送スループットの低下を防止できることである。【００６２】
その理由は、本発明の実施形態では、マスタＬＳＩからスレーブＬＳＩへは転送クロックと転送データを一緒に出力しており、スレーブＬＳＩからマスタＬＳＩへのデータ転送については最適なラッチタイミングを選択できる。したがって、ＬＳＩ間の往復の遅延時間が１サイクル以上となった場合でも正常にＬＳＩ間データ転送を実現できる。このため、実装置などを前提として転送クロック周波数や転送データビット幅などを決定すれば、評価ボードなどにおけるＬＳＩ間の遅延時間を厳密には考慮しなくても良いためである。【００６３】
第３の効果は、マージンをできるだけ確保したことにより最適なラッチタイミングを選択でき、安定したＬＳＩ間データ転送を実現できることである。【００６４】
その理由は、本発明の実施形態では、ラッチタイミングの組合せ（転送クロックの立ち上がりエッジ、立ち下りエッジなど）に比較してより細かい精度でクロックの位相を変更できる位相可変クロックを用いることにより、最適ラッチタイミングの判定時（位相調整時）に、各ラッチタイミングの間のタイミングにおけるデータ取得結果も活用しているためである。また、ラッチタイミングよりも精度の細かい位相可変クロックを使用し、各位相タイミングにおける判定結果をＬＳＩ外部でモニタリングすることで、細かい精度でＬＳＩ間の遅延時間の目安を観測することができる。そして、時間マージンの大きさ等から現状の転送クロック周波数の妥当性について検証したり、その向上可能性について次期のシステム開発にフィードバックできたりするという効果もある。【００６５】
第４の効果は、マスタＬＳＩ側もスレーブＬＳＩ側も回路実現性が高く、設計および製造が非常に容易であることである。【００６６】
その理由は、本発明の実施形態におけるＬＳＩ間同期回路および位相調整回路は、一般的なフリップフロップ素子とセレクタ回路の組合せのみで実現でき、位相調整も制御プロセッサがプログラム的に実施するため、フィードバックループや特殊な遅延素子を用いるクロックデータリカバリ回路のような複雑な回路的仕組みが必要ないからである。さらに、マスタＬＳＩ側のデータ入力回路を第１の実施の形態や後述する第３の実施例で示すような構成にすることによって、内部回路は位相可変クロックの位相設定を考慮せずに設計できるという利点もある。【００６７】
また、特にスレーブＬＳＩ側については拡張性や流用性が高いという利点もある。本発明に特化した回路的工夫を特に必要とせず、全ての転送クロックの立ち上がりエッジに同期した回路構成のみで実現可能なためである。さらに、システム全体としてスレーブＬＳＩの将来的なマスタＬＳＩへの１チップ化にも容易に対応できるという大きな利点もある。後述する第３の実施例で説明するように、１チップ化した場合の回路的変更が比較的容易であることと、スレーブコアをＬＳＩとして別チップ化した場合と１チップ化した場合とでシステム全体のタイミングが変わらず検証や動作の等価性を保障できるためである。【００６８】
（実施例１）
図９は、図１に示す本発明の実施形態１に係るデータ転送装置を、複数のＬＳＩを用いたアクセラレータ拡張システムの１つの例であるＨＳＤＰＡ（High Speed
Downlink Packet Access）機能拡張を有するＷ−ＣＤＭＡ（Wideband Code Division Multiple Access）ディジタルベースバンド（ＤＢＢ）ＬＳＩシステムに適用した例を示している。【００６９】
マスタＬＳＩ１ａであるＷＣＤＭＡ  ＤＢＢ  ＬＳＩには、Ｗ−ＣＤＭＡディジタルベースバンドＬＳＩシステム全体を制御するプロセッサ（ＣＰＵ）１００ａと、クロック制御回路３００（ＣＬＫ  Ｃｔｒｌ）と、スレーブＬＳＩ２ａとのデータ転送を行うバスコントローラ回路２０１、２０２（ＢＵＳＣ１、ＢＵＳＣ２）とが存在する。クロック制御回路３００からバスコントローラ回路２０１、２０２に対して転送用のクロック信号ＣＬＫと位相調整用のクロック信号ＤＣＬＫとを供給する。また、スレーブＬＳＩ２ａであるＨＳＤＰＡ  ＤＢＢ  ＬＳＩには、マスタＬＳＩ１ａとのデータ転送を行うバスインタフェース回路２０３、２０４（ＢＵＳＩＦ１、ＢＵＳＩＦ２）と、マスタＬＳＩ１ａから送られるクロック信号ＲＥＦＣＬＫを元に内部動作用のクロック信号ＣＴＳを生成するＰＬＬ回路７０と、ＲＡＭや論理回路で構成される内部回路６５が存在する。マスタＬＳＩ１ａからスレーブＬＳＩ２ａに向け、スレーブＬＳＩ２ａ内でクロック信号ＲＥＦＣＬＫとなるシステム同期用の外部のクロック信号ＥｘＣＬＫを出力する。【００７０】
マスタＬＳＩ１ａとスレーブＬＳＩ２ａ間におけるデータ転送は、例えば４ビット幅のデータバス信号を用いたバス転送によって実現し、用途に分けて２種類存在する。ここで、マスタＬＳＩ１ａ内のバスコントローラ回路２０１、２０２（ＢＵＳＣ１、ＢＵＳＣ２）およびスレーブＬＳＩ２ａ内のバスインタフェース回路２０３、２０４（ＢＵＳＩＦ１、ＢＵＳＩＦ２）には、ＬＳＩの入出力端に最も近い部分に、図１に示した本発明の第１の実施の形態であるＬＳＩ間同期回路及び位相調整回路（図１の制御プロセッサ１００、ＰＬＬ回路７０、内部回路６５を除く構成部分に相当）が実装されている。また、クロック信号ＣＬＫ、ＤＣＬＫ、ＥｘＣＬＫのタイミング関係は、図２に示した通りで、クロック信号ＤＣＬＫは４相の位相可変クロックである。【００７１】
マスタＬＳＩ１ａからスレーブＬＳＩ２ａにクロック信号ＥｘＣＬＫを転送し、スレーブＬＳＩ２ａでは、本クロック信号に同期して動作することで、通信システムとしては重要なシステム全体としてのタイミング同期を容易に確立することが可能である。ここで、マスタＬＳＩ１ａとスレーブＬＳＩ２ａ間における主な通信は、ＬＳＩ間同期回路を実装したマスタＬＳＩ１ａ側のバスコントローラ回路２０１、２０２（ＢＵＳＣ１、ＢＵＳＣ２）と、スレーブＬＳＩ２ａ側のバスインタフェース回路２０３、２０４（ＢＵＳＩＦ１、ＢＵＳＩＦ２）とを用いて行われる。具体的には、制御情報データの書き込み、読み出し、送受信データのバースト転送などである。また、マスタＬＳＩ１ａ側のバスコントローラ回路２０１、２０２（ＢＵＳＣ１、ＢＵＳＣ２）の各々に位相調整回路を実装し、それぞれのバスごとに最適ラッチタイミングの選択設定を行う。このため、評価ボード上や実装置上などにおけるＬＳＩ間の配線遅延差に依存せず、常に同期したデータ転送を実現することができる。【００７２】
（実施形態２）
図１０は、本発明の実施形態２に係るデータ転送装置の構成を示すブロック図である。図１０に示す実施形態２は、データ出力回路６００が複数の相手装置２に共通のデータバスＤＢを介して転送データを転送し、データ受信部５００が、複数の相手装置２の内どの相手装置がデータバスＤＢを使用しているかに基づいて前記ラッチタイミングの選択を行うようにしたものである。なお、図１０に示す例では、データ出力回路６００が、フリップフロップ１０，１１などにより構成されている。また、データ受信部５００は図１に示すものと同じにように構成されている。また、クロック送出部４００はゲート回路３２ａ，３２ｂなどにより構成されている。なお、クロック送出部４００には、入出力バッファ４３ａ，４３ｂが含まれていてもよいものである。【００７３】
以下に、本発明の実施形態２を具体的に説明する。図１０において、図１と同一の符号は同一構成を表し、その説明を省略する。図１０のデータ転送装置は、スレーブＬＳＩが複数存在し（図１０ではスレーブＬＳＩ２ｂ、２ｃの２個）、且つそのスレーブＬＳＩ間で双方向のデータバス信号を共有してマスタＬＳＩ１ｂとの間のデータ転送を行う。【００７４】
図１０において、マスタＬＳＩ１ｂは、図１の入出力バッファ４１、４６を、スレーブＬＳＩ２ｂ、２ｃに共通の入出力可能な双方向データバスにインタフェースする入出力バッファ４７ａとして備える。なお、入出力バッファ４７ａは、イネーブル信号ＯＥＮによって出力バッファ機能がアクティブとされる。また、それぞれ信号ＣＮＴ１、ＣＮＴ２でＯＮ／ＯＦＦ制御されるゲート回路３２ａ、３２ｂを備える。さらに、ゲート回路３２ａから出力されるクロック信号ＥｘＣＬＫ１は、入出力バッファ４３ａを介してスレーブＬＳＩ２ｂに出力される。ゲート回路３２ｂから出力されるクロック信号ＥｘＣＬＫ２は、入出力バッファ４３ｂを介してスレーブＬＳＩ２ｃに出力される。クロック信号ＥｘＣＬＫ１、ＥｘＣＬＫ２は、それぞれゲート回路３２ａ、３２ｂがＯＮの場合に周波数も位相もクロック信号ＣＬＫと同じとなる。【００７５】
制御プロセッサ１００ｂは、制御信号ＣＮＴ１、ＣＮＴ２をそれぞれゲート回路３２ａ、３２ｂに出力する。また、位相調整時における位相調整レジスタ４０ａ、４０ｂ、４０ｃ、・・・の値を読み出し、読み出し結果に応じて選択信号ＬＳＩ１＿ＳＥＬ０、ＬＳＩ１＿ＳＥＬ１、ＬＳＩ２＿ＳＥＬ０、ＬＳＩ２＿ＳＥＬ１を選択回路３３に出力する。アービタ１２０は、スレーブＬＳＩ２ｂ、２ｃのいずれかから出力されるデータのラッチタイミングの設定を行うかを示す選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴを選択回路３３に出力する。選択回路３３は、Ｓｌａｖｅ２＿ＧＲＡＮＴ＝０の場合、選択信号ＬＳＩ１＿ＳＥＬ０、ＬＳＩ１＿ＳＥＬ１をそれぞれ選択信号ＳＥＬ０、ＳＥＬ１として選択回路３０、３１に出力し、Ｓｌａｖｅ２＿ＧＲＡＮＴ＝１の場合、選択信号ＬＳＩ２＿ＳＥＬ０、ＬＳＩ２＿ＳＥＬ１をそれぞれ選択信号ＳＥＬ０、ＳＥＬ１として選択回路３０、３１に出力する。すなわち、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴによって、選択信号ＬＳＩ１＿ＳＥＬ０、ＬＳＩ１＿ＳＥＬ１または選択信号ＬＳＩ２＿ＳＥＬ０、ＬＳＩ２＿ＳＥＬ１のいずれかで、フリップフロップ２０、２１、２２におけるラッチタイミングの選択を行う。ここで、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴは、アービタ１２０からではなく、制御プロセッサ１００ｂから出力されるような構成であってもよい。【００７６】
各々のスレーブＬＳＩ２ｂ、２ｃにおいて、図１の入出力バッファ４２、４５を双方向データバスにインタフェースする入出力バッファ４７ｂ、４７ｃとして備える。そして、マスタＬＳＩ１ｂ側と同様、双方向データバス信号の入出力バッファを制御するための出力イネーブル信号ＯＥＮが存在する。また、図１と同様、マスタＬＳＩ１ｂ側から転送されてきたクロック信号の立ち上がりエッジで動作するデータ入力用フリップフロップ５０及びデータ出力用フリップフロップ６０が存在する。さらに、スレーブＬＳＩ側の転送クロックや内部動作クロックの生成のために、マスタＬＳＩ側からの転送用のクロック信号ＲＥＦＣＬＫの位相を参照して動作するＰＬＬ回路７０が存在してもよい。なお、図１０は、接続されるスレーブＬＳＩが２つの場合の例を示しているが、３つ以上の場合であっても同様に適用することができる。【００７７】
本実施形態に係るデータ転送装置の動作について図１０を用いて説明する。実施形態１と同様に、マスタＬＳＩ１ｂ側の転送用のクロックとしてクロック信号ＣＬＫを使用し、スレーブＬＳＩ２ｂ、２ｃ用の転送クロックの基準としてそれぞれクロック信号ＥｘＣＬＫ１、ＥｘＣＬＫ２を出力している。ここで、スレーブＬＳＩ用の転送クロック信号は、スレーブＬＳＩごとにクロック信号ＥｘＣＬＫ１、ＥｘＣＬＫ２などのように別々に制御および出力しても良いし、クロック信号ＥｘＣＬＫとして共通に出力してもよい。実施形態１と同様に、スレーブＬＳＩ側ではこのクロック信号ＥｘＣＬＫ１、ＥｘＣＬＫ２に同期してマスタＬＳＩとのデータ転送の入出力を行う。【００７８】
マスタＬＳＩからスレーブＬＳＩへのデータ転送時には、実施形態１と同様、マスタＬＳＩ１ｂ側でクロック信号ＣＬＫの立ち下りエッジに同期させて転送データを出力し（フリップフロップ１１）、スレーブＬＳＩ２ｂ、２ｃ側で転送クロックの立ち上がりエッジに同期してデータをラッチする（フリップフロップ５０）。ここで、図１０のようにデータバス信号を複数のスレーブＬＳＩで共有している場合には、どのスレーブＬＳＩへのアクセスかを示すようなスレーブＬＳＩごとに個別の制御信号をデータバス信号と合わせて出力し、その制御信号を元にスレーブＬＳＩ側でデータバス信号をラッチするかどうかを判断するような回路構成や動作であってもよい。また、双方向のデータバス信号の出力時にはマスタＬＳＩ側の出力イネーブル信号ＯＥＮをアクティブにする。このように、実施形態１と同様、マスタＬＳＩからの出力時に０．５サイクル分タイミングを遅らせて転送データを出力することで、ＬＳＩ間の遅延時間に依存せず１サイクルでの確実な同期転送が可能である。【００７９】
スレーブＬＳＩ２ｂ、２ｃからマスタＬＳＩ１ｂへのデータ転送時も、実施形態１と同様に、スレーブＬＳＩ側でクロック信号の立ち上がりエッジに同期してデータを出力し（フリップフロップ６０）、マスタＬＳＩ側ではクロック信号ＣＬＫの立ち上がりエッジと立ち下りエッジの両方に同期してデータをラッチする（フリップフロップ２０、２１）。そして、内部回路に入力データＤＩを転送する際には、ＬＳＩ間の遅延時間に依存して実施形態１で示した３つの転送方法から最適な方法を選択する。ここで、双方向のデータバス信号を複数のスレーブＬＳＩで共有している場合は、データを出力する１つのスレーブＬＳＩのみが出力イネーブル信号ＯＥＮをアクティブにする。また、マスタＬＳＩ側で３つの転送方法から最適な方法を選択する際も、スレーブＬＳＩごとにＬＳＩ間の遅延時間は異なる可能性がある。そこで、どのスレーブＬＳＩがデータバスを使用しているかを示す選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴの値を用いて選択回路３３の出力値（ＳＥＬ１、ＳＥＬ０）を切り替える。【００８０】
以上のように、ＬＳＩ間の往復の遅延時間に依存してマスタＬＳＩ１ｂ側の選択回路３０、３１を選択制御し、またスレーブＬＳＩごとにその値を切り替えられるような回路構成にする。この回路構成により、複数のスレーブＬＳＩからの様々な入力データタイミングに対して内部回路へは一定のタイミング（図３から図５におけるデータＤＩのタイミング）に同期化して転送することが可能となる。【００８１】
次に、位相調整方法について説明する。あるスレーブＬＳＩからマスタＬＳＩへのデータ転送において、マスタＬＳＩ側で入力データの最適なラッチタイミングを選択するための位相調整方法については、実施形態１と同様である。ただし、本実施形態２の場合は、接続される複数のスレーブＬＳＩについてそれぞれ個別に位相調整を実施することにより、スレーブＬＳＩごとに最適なラッチタイミングを求める。その結果に従って位相調整セレクタ値（図１０におけるＬＳＩ１＿ＳＥＬ［１：０］、ＬＳＩ２＿ＳＥＬ［１：０］）を設定する。【００８２】
（実施形態３）
図１１は、本発明の実施形態３に係るデータ転送装置の構成を示すブロック図である。図１１に示す実施形態３は、転送用クロック信号を受信し、前記受信した転送用クロック信号に同期するデータを送信する装置内転送部５を含み、データ受信部５００が、前記装置内転送部５からのデータを転送用クロック信号ＣＬＫに同期してラッチする縦続接続された第５及び第６のラッチ回路をさらに有しており、データ受信部５００が第６のラッチ回路の出力信号を受信データとして取得するものである。図１１の例では、第５のラッチ回路をフリップフロップ２０ａで構成し、第６のラッチ回路をフリップフロップ２２ａで構成している。【００８３】
以下に、本発明の実施形態３を具体的に説明する。図１１において、図１０と同一の符号は同一構成を表し、その説明を省略する。図１１のデータ転送装置は、スレーブＬＳＩの１つを、マスタＬＳＩ１ｃ内にスレーブコア５として１チップ化して接続した場合を示す。なお、スレーブコア５は、装置内部転送部に相当する。【００８４】
実施形態１に係るデータ転送装置である図１および実施形態２に係るデータ転送装置である図１０と、実施形態３に係るデータ転送装置である図１１との差分について説明する。スレーブＬＳＩの１つをスレーブコア５としてマスタＬＳＩ１ｃ内に１チップ化して接続した場合、転送用のクロック信号ＣＬＫ２は直接そのままスレーブコア５に接続する。また、マスタコア４からスレーブコア５への転送データ出力用には、クロック信号ＣＬＫの立ち上がりエッジで動作するフリップフロップ１０と、クロック信号ＣＬＫの立ち下りエッジで動作するフリップフロップ１１が存在し、その出力データＭＤＯを直接スレーブコア５側の入力データＳＤＩとする。この場合、１チップ化することによりマスタコア４内のクロック信号ＣＬＫとスレーブコア５内のクロック信号ＣＬＫ２間の同期転送を保障することが可能となる。したがって、クロック信号ＣＬＫの立ち下りエッジで動作するフリップフロップ１１を使用せず、クロック信号ＣＬＫの立ち上がりエッジで動作するフリップフロップ１０に同期した転送データを直接スレーブコア５側に接続することも可能である。【００８５】
同様に、スレーブコア５からマスタコア４へのデータ転送については、同期転送が保障されることでマスタコア４側での位相調整（最適ラッチタイミングの選択）が不要となる。このため、マスタコア４側ではクロック信号ＣＬＫの立ち上がりエッジで動作し、直列接続されるフリップフロップ２０ａ（ＦＦ（ＩＨ２））、２２ａ（ＦＦ（ＩＭ２））だけが存在し、入力データＭＤＩ２をフリップフロップ２０ａで一度ラッチしたものを再度フリップフロップ２２ａでラッチして内部回路に入力データＤＩ２を転送する。【００８６】
このような構成にすることにより、スレーブコア５をマスタＬＳＩ１ｃ内に１チップ化して接続しても、スレーブＬＳＩ２ｂとして別チップ化して接続しても同一の転送タイミングでデータ転送を実現することが可能となる。スレーブコア５として１チップ化した場合は、図３に示したような第１の転送方法が選択された場合と同じ転送タイミングとなる。ここで、図１１に示すように、スレーブコア５とスレーブＬＳＩ１ｂが複数混在するような場合には、アービタ１２０ａは、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴ２を選択回路３５に出力し、どのスレーブがアクセスしているかによって内部回路へ出力される最終的なデータＤＩを決定する。すなわち、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴ２＝０の場合、スレーブＬＳ１２ｂからのデータがデータＤＩとして内部回路に出力され、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴ２＝１の場合、スレーブコア５からのデータがデータＤＩとして内部回路に出力される。ここで、選択信号Ｓｌａｖｅ２＿ＧＲＡＮＴ２は、アービタ１２０ａからではなく、図示されない制御プロセッサなどから出力されるような構成であってもよい。【００８７】
（実施形態４）
図１２は、本発明の実施形態４に係るデータ転送装置の構成を示すブロック図である。図１２に示す実施形態４は、第１のラッチ回路２１の出力信号を転送用クロック信号ＣＬＫの立ち上がりエッジまたは立ち下がりエッジのいずれでラッチする第４のラッチ回路２２と、第４のラッチ回路２２の出力信号を受信データとして選択する第３の選択部３１とをデータ受信部５００に有している。なお、実施形態４では、第１のラッチ回路２１をフリップフロップで構成し、第４のラッチ回路をフリップフロップ２２で構成し、第３の選択部を選択回路（セレクタ）３１で構成している。【００８８】
以下、本発明の実施形態４について具体的に説明する。図１２において、図１と同一の符号は同一構成を表し、その説明を省略する。図１２のデータ転送装置は、スレーブＬＳＩとのインタフェースが１種類に限定できることで構成を簡単化できる場合を示す。【００８９】
マスタＬＳＩ１ｄ側には転送データ出力用にクロック信号ＣＬＫの立ち上がりエッジで動作するフリップフロップ１０が存在する。転送データ入力用に、位相可変のクロック信号ＤＣＬＫの立ち上がりエッジ又は立ち下りエッジのどちらかで動作するフリップフロップ２１と、クロック信号ＣＬＫの立ち上がりエッジで動作するフリップフロップ２２が存在し、フリップフロップ２１、２２の出力を選択する選択回路３１が存在する。【００９０】
スレーブＬＳＩ２ｄ側には、マスタＬＳＩ１ｄ側から転送されてきたクロック信号ＥｘＣＬＫの立ち下りエッジで動作するデータ入力用のフリップフロップ５１（ＦＦ（ＳＤＩＬ））、クロック信号ＥｘＣＬＫの立ち上がりエッジで動作するデータ入力用のフリップフロップ５０（ＦＦ（ＳＤＩ））が存在する。また、クロック信号ＥｘＣＬＫの立ち上がりエッジで動作するデータ出力用のフリップフロップ６０（ＦＦ（ＳＤＯ））が存在する。なお、スレーブＬＳＩ２ｄ側の転送クロックや内部動作クロックの生成のために、マスタＬＳＩ１ｄ側からのクロック信号ＲＥＦＣＬＫの位相を参照して動作するＰＬＬ回路が存在してもよい。【００９１】
実施形態１を示した図１との違いは、マスタＬＳＩ１ｄ側でフリップフロップ１１が不要となり、スレーブＬＳＩ２ｄ側でフリップフロップ５１が存在すること、および、マスタＬＳＩ１ｄ側でフリップフロップ２０と選択回路３０が不要となっていることである。【００９２】
本実施形態４に係るデータ転送装置の動作について図１２を用いて説明する。マスタＬＳＩ１ｄからスレーブＬＳＩ２ｄへのデータ転送時には、マスタＬＳＩ１ｄ側でクロック信号ＣＬＫの立ち上がりエッジに同期させて転送データを出力し（フリップフロップ１０）、スレーブＬＳＩ２ｄ側でクロック信号ＲＥＦＣＬＫの立ち下りエッジに同期してデータをラッチする（フリップフロップ５１）。これは、実施形態１において説明したように、マスタＬＳＩ側で出力データ用に用いたクロックエッジに対して、スレーブＬＳＩ側ではそれとは逆のクロックエッジを用いて入力データをラッチすることが重要であり、実施形態１でも本実施形態４でもかまわないことを示している。【００９３】
スレーブＬＳＩ２ｄからマスタＬＳＩ１ｄへのデータ転送時には、スレーブＬＳＩ２ｄ側でクロック信号の立ち上がりエッジに同期してデータを出力し、マスタＬＳＩ１ｄ側ではクロック信号ＤＣＬＫの立ち上がりまたは立ち下りエッジに同期してデータをラッチする（フリップフロップ２１）。さらに、内部回路に入力データＤＩを転送する際には、ＬＳＩ間の遅延時間に依存して、第１の実施の形態において示した３つの転送方法と等価な以下の転送方法の中から最適な方法を選択する。【００９４】
第１の転送方法は、クロック信号ＣＬＫの立ち上がりエッジでラッチしたデータを再度立ち上がりエッジでラッチし直して（フリップフロップ２２）から転送する方法である（ＤＳＥＴ＝０、ＳＥＬ１＝０）（図３と等価）。【００９５】
第２の転送方法は、クロック信号ＣＬＫの立ち下りエッジ、すなわちクロック信号ＤＣＬＫの立ち上がりエッジでラッチしたデータを今度はクロック信号ＣＬＫの立ち上がりエッジでラッチし直して（フリップフロップ２２）から転送する方法である（ＤＳＥＴ＝２、ＳＥＬ１＝０）（図４と等価）。【００９６】
第３の転送方法は、クロック信号ＣＬＫの立ち上がりエッジでラッチしたデータをそのまま転送する方法である（ＤＳＥＴ＝０、ＳＥＬ１＝１）（図５と等価）。【００９７】
本実施形態４では、実動作時にクロック信号ＤＣＬＫの位相をインタフェースごとに個別に設定できる。したがって、実施形態１において示したマスタＬＳＩ側のデータ入力用フリップフロップ２０と選択回路３０が不要となり、回路構成を簡単にすることができる。ただし、この構成はＬＳＩ間のインタフェース回路が１種類の場合に適した構成であり、実施例１（図９）のようにＬＳＩ間に複数のインタフェース回路が存在する場合は、インタフェースごとに個別設定できる複数のクロック信号ＤＣＬＫが必要となる。一方、実施形態１（図１）に示したようにマスタＬＳＩ側にデータ入力用フリップフロップ２０と選択回路３０を使用するような構成の場合は、実動作時の位相可変のクロック信号ＤＣＬＫは固定的に位相設定される。したがって、ＬＳＩ間に複数のインタフェースが存在し、インタフェースごとに最適なラッチタイミングが異なる場合でも、１種類のクロック信号ＤＣＬＫを共通に使用することが可能であり、汎用性の高い構成と言える。【００９８】
また、本実施形態４の場合は、マスタＬＳＩ側の内部回路への転送データＤＩへのパスとしてクロック信号ＤＣＬＫの立ち上がり又は立ち下りエッジに同期したデータパスも含まれる。したがって、内部回路にはクロック信号ＤＣＬＫの全ての位相を想定したセットアップ時間およびホールド時間を満たすような設計が求められる。一方、実施形態１の場合は、マスタＬＳＩ側のデータ入力回路を図１に示したような構成にすることによって、内部回路へのデータＤＩは必ずクロック信号の立ち上がりエッジに同期したデータパスとして出力される。このため、内部回路はクロック信号ＤＣＬＫの位相設定に依存することなく、クロック信号の立ち上がりエッジに同期した転送データ入力を基準にして設計することができるという利点もある。【００９９】
次に、本発明の他の実施形態について説明する。
本発明の他の実施形態に係るデータ転送装置は、転送用クロック信号を相手装置に送信するクロック送出部と、相手装置から転送用クロック信号に同期したデータを受信するデータ受信部と、を備え、データ受信部は、転送用クロック信号を所定量遅延した遅延クロック信号の立ち上がりエッジまたは立ち下りエッジでデータをラッチする第１のラッチ回路と、第１のラッチ回路の出力信号を受信データとして選択可能とするように構成される選択部と、を備える構成であってもよい。【０１００】
本発明の他の実施形態に係るデータ転送装置において、データ受信部は、第１のラッチ回路の出力信号を転送用クロック信号の立ち上がりエッジまたは立ち下りエッジでラッチする第２のラッチ回路をさらに含み、選択部は、第２のラッチ回路の出力信号を受信データとしてさらに選択可能とするように構成されてもよい。【０１０１】
本発明の他の実施形態に係るデータ転送装置において、データ受信部は、転送用クロック信号の立ち上がりエッジまたは立ち下りエッジでデータをラッチする第３のラッチ回路をさらに含み、選択部は、第３のラッチ回路の出力信号を受信データとしてさらに選択可能とするように構成されてもよい。【０１０２】
本発明の他の実施形態に係るデータ転送装置において、選択部は、第１のラッチ回路の出力信号と第３のラッチ回路の出力信号とを選択する第１の選択回路と、第２のラッチ回路は、第１の選択回路の選択結果をラッチし、第２のラッチ回路の出力信号と第３のラッチ回路の出力信号とを選択する第２の選択回路と、を備えてもよい。【０１０３】
本発明の他の実施形態に係るデータ転送装置において、選択部におけるラッチタイミングの選択の設定と所定量とを変えながら、相手装置においてデータを出力させて受信データを取得することで該ラッチタイミングの選択を行う制御プロセッサを備えてもよい。【０１０４】
本発明の他の実施形態に係るデータ転送装置において、受信データを格納する位相調整用レジスタを備え、制御プロセッサは、位相調整時における位相調整用レジスタの値を読み出すことでラッチタイミングの選択を行ってもよい。【０１０５】
本発明の他の実施形態に係るデータ転送装置において、制御プロセッサの位相調整時における異常動作を防止する信号生成を行う返送信号生成回路を備えてもよい。【０１０６】
本発明の他の実施形態に係るデータ転送装置において、データ受信部は、複数の相手装置に対し共通のデータバスを介して接続され、複数の相手装置中のどの相手装置がデータバスを使用しているかに基づいてラッチタイミングの選択を行ってもよい。【０１０７】
本発明の他の実施形態に係るデータ転送装置において、データ受信部は、複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるようにラッチタイミングの選択を行ってもよい。【０１０８】
本発明の他の実施形態に係るデータ転送装置において、クロック送出部は、データバスを使用している相手装置にのみ転送用クロック信号を送信してもよい。【０１０９】
本発明の他の実施形態に係るデータ転送装置において、転送用クロック信号を受信し、受信した転送用クロック信号に同期するデータを送信する装置内転送部を含み、データ受信部は、装置内転送部からのデータを転送クロック信号に同期してラッチする縦続接続される第４及び第５のラッチ回路をさらに備え、第５のラッチ回路の出力から受信データを取得するようにしてもよい。【０１１０】
本発明の他の実施形態に係るデータ転送装置において、転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを相手装置に出力するデータ出力回路をさらに備えてもよい。【０１１１】
本発明の他の実施形態に係るデータ転送装置において、転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを装置内転送部に出力するデータ出力回路をさらに備えてもよい。【０１１２】
本発明の他の実施形態に係るデータ転送方法は、転送用クロック信号を相手装置に送信するクロック送出部と、該相手装置から該転送用クロック信号に同期したデータを受信するデータ受信部と、を備えるデータ転送装置におけるデータ転送方法であって、転送用クロック信号を所定量遅延した遅延クロック信号の立ち上がりエッジまたは立ち下りエッジでデータをラッチし、ラッチ結果を受信データとして選択可能とする構成としてもよい。【０１１３】
本発明の他の実施形態に係るデータ転送方法において、データのラッチタイミングの選択の設定と所定量とを変えながら、相手装置においてデータを出力させて受信データを取得することで該ラッチタイミングの選択を行ってもよい。【０１１４】
本発明の他の実施形態に係るデータ転送方法において、データ転送装置は、複数の相手装置に対し共通のデータバスを介して接続され、該複数の相手装置中のどの相手装置が該データバスを使用しているかに基づいてラッチタイミングの選択を行ってもよい。【０１１５】
本発明の他の実施形態に係るデータ転送方法において、複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるようにラッチタイミングの選択を行ってもよい。【０１１６】
本発明の他の実施形態に係るデータ転送方法において、データバスを使用している相手装置にのみ転送用クロック信号を送信してもよい。【０１１７】
本発明の更に他の実施形態に係るデータ転送装置は、スレーブＬＳＩとの間にデータ転送を行うのマスタＬＳＩと前記スレーブＬＳＩとの間に介在させるデータ転送回路及び位相調整回路として構築してもよいものである。この場合、本発明の更に他の実施形態に係るデータ転送装置は前記マスタＬＳＩに組み込まれるものである。本発明の更に他の実施形態に係るデータ転送装置は、マスタＬＳＩからスレーブＬＳＩに転送用のクロックを出力し、マスタＬＳＩには転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、転送クロックの立ち上がりエッジに同期してデータをラッチしたものと立ち下りエッジに同期してデータをラッチしたものとを位相調整セレクタにより選択できるデータ入力回路と、を備えている。なお、スレーブＬＳＩには、転送クロックのマスタＬＳＩ側のデータ出力回路とは逆の立ち下りまたは立ち上がりエッジに同期してデータをラッチするデータ入力回路と、転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、を備える。【０１１８】
また、本発明の更に他の実施形態に係るデータ転送装置は、マスタＬＳＩからスレーブＬＳＩに転送用のクロックを出力し、マスタＬＳＩには転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、位相可変クロックの立ち上がりまたは立ち下りエッジに同期してデータをラッチするデータ入力回路と、を備える構成として構築してもよいものである。なお、スレーブＬＳＩには転送クロックのマスタＬＳＩ側のデータ出力回路とは逆の立ち下りまたは立ち上がりエッジに同期してデータをラッチするデータ入力回路と、転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、を備える。【０１１９】
さらに、本発明の更に他の実施形態に係るデータ転送装置は、マスタＬＳＩからスレーブＬＳＩに転送用のクロックを出力し、マスタＬＳＩには転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、転送クロックの立ち上がりまたは立ち下りエッジに同期してデータをラッチしたものと位相可変クロックの立ち上がりまたは立ち下りエッジに同期してデータをラッチしたものとを位相調整セレクタにより選択できるデータ入力回路と、を備える構成として構築してもよいものである。なお、スレーブＬＳＩには転送クロックのマスタＬＳＩ側のデータ出力回路とは逆の立ち下りまたは立ち上がりエッジに同期してデータをラッチするデータ入力回路と、転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路と、を備える。【０１２０】
マスタＬＳＩ内データ入力回路が、マスタＬＳＩ内データ入力回路からのデータと、そのデータを転送クロックの立ち上がりエッジまたは立ち下りエッジに同期してラッチしたデータを位相調整セレクタにより再度選択できるようにしてもよい。【０１２１】
マスタＬＳＩ内の制御プロセッサが、マスタＬＳＩ内データ入力回路のラッチタイミング選択設定と、位相可変クロックを用いる場合はその位相設定とを変えながら、スレーブＬＳＩからマスタＬＳＩへのデータ転送を発生させ、データ入力回路からの出力を取得することで最適なラッチタイミング判定を行うようにしてもよい。【０１２２】
マスタＬＳＩ側のデータ入力回路からのデータを、位相調整時に順次格納する位相調整用レジスタを備えるようにしてもよい。【０１２３】
マスタＬＳＩ内の制御プロセッサが、マスタＬＳＩ内データ入力回路のラッチタイミング選択設定と、位相可変クロックを用いる場合はその位相設定とを変えながら、スレーブＬＳＩからマスタＬＳＩへのデータ転送を発生させ、位相調整用レジスタの値を読み出すことで最適なラッチタイミング判定を行うようにしてもよい。【０１２４】
位相調整時に、マスタＬＳＩ内に制御プロセッサの異常動作を防止する処理を行うデータ返送回路を備えるようにしてもよい。【０１２５】
複数のスレーブＬＳＩを備え、ＬＳＩ間のデータバスを複数のスレーブＬＳＩで共用しているシステムにおいて、マスタＬＳＩ内データ入力回路が、どのスレーブＬＳＩが前記データバスを使用しているかによって前記位相調整セレクタの設定値を切り替えるようにしてもよい。【０１２６】
マスタＬＳＩ内にもスレーブコアを備えるシステムにおいて、マスタＬＳＩ内データ入力回路が、スレーブコアからの転送データを転送クロックに同期して２回ラッチする回路を備えるようにしてもよい。【０１２７】
より具体的には、データ転送装置において、システム全体でのタイミング同期を取るため、マスタＬＳＩから各スレーブＬＳＩ方向のみにクロック信号を転送し、ＬＳＩ間のデータ転送はこの共通のクロック信号に同期して行う。また、このクロック周波数は、転送スループットを落とさないために実装置における要求性能を満たすクロック周波数を選択する。【０１２８】
マスタＬＳＩからスレーブＬＳＩへのデータ転送については、セットアップ時間およびホールド時間をＬＳＩ間の遅延時間に依存せずに確保できるように、マスタＬＳＩ側には転送クロックの立ち下りエッジに同期して出力するデータ出力回路を実装し、スレーブＬＳＩ側には転送クロックの立ち上がりエッジに同期して入力するデータ入力回路を実装する。また、これとは逆にマスタＬＳＩ側では立ち上がりエッジに同期して出力し、スレーブＬＳＩ側では立ち下りエッジに同期してラッチする回路構成であってもよい。つまり、マスタＬＳＩ側で出力データ用に用いたクロックエッジに対して、スレーブＬＳＩ側ではそれとは逆のクロックエッジを用いて入力データをラッチする回路構成を実装する。【０１２９】
スレーブＬＳＩからマスタＬＳＩへのデータ転送については、評価ボード等において配線遅延が想定値を越えてしまう場合に備え、スレーブＬＳＩ側から転送クロックの立ち上がりまたは立ち下りエッジに同期してデータを出力するデータ出力回路に対して、マスタＬＳＩ側では転送クロックの立ち上がりエッジ、立ち下りエッジ、１サイクル遅れの立ち上がりエッジなど複数のラッチタイミングを選択できる仕組みを実装し、どのラッチタイミングが選択されてもマスタＬＳＩ側内部回路へのデータ転送時には全て同じ転送タイミングになるようにデータ入力回路を構成する。【０１３０】
スレーブＬＳＩからマスタＬＳＩへのデータ転送における最適ラッチタイミングの選択（位相調整）時には、前述した複数のラッチタイミングより精度の細かい位相可変クロックを使用し、ＬＳＩ外部において位相調整の判定結果（ＬＳＩ間配線遅延）を、転送クロック周波数の数倍の精度でモニタできる仕組みも実装する。この位相可変クロックを用いてラッチした入力データを、制御プロセッサが読み出すことで最適ラッチタイミングの判定を実施する。【０１３１】
このようなデータ転送装置において、マスタＬＳＩからスレーブＬＳＩ方向のみにクロックを転送し、全てのＬＳＩ間データ転送をこの転送クロックに同期させること、およびマスタＬＳＩ側の立ち下りエッジに同期したデータ出力回路、入力データのラッチタイミング選択回路によって、ＬＳＩ間の配線遅延等に依存せずにシステム全体の時計や転送タイミングを合わせることが可能となる。【０１３２】
また、マスタＬＳＩからスレーブＬＳＩへは転送データと共に転送用のクロックも出力し、マスタＬＳＩ側でデータ出力用に用いたクロックエッジとスレーブＬＳＩ側でデータ入力用に用いるクロックエッジを逆にすることにより、ＬＳＩ間の遅延時間に依存せずセットアップ時間およびホールド時間のマージンを確保することが可能となる。【０１３３】
さらに、スレーブＬＳＩからマスタＬＳＩへのデータ転送時には、マスタＬＳＩ側で入力データの最適なラッチタイミングを複数のタイミングから選択することができ、どのラッチタイミングが選択されてもマスタＬＳＩの内部回路への転送時には同じ転送タイミングにできる。このようなデータ入力回路の構成により、ＬＳＩ間の遅延時間に依存せず同期したデータ転送が可能となる。また、このようなデータ転送装置によれば、シミュレーションのような事前検証やボード評価において、ビット精度およびサイクル精度で実装置での動作と等価に行うことが可能となるため、検証精度が高くなることも期待できる。【０１３４】
また、実装置のみの配線遅延を考慮してクロック周波数を決定できることにより転送スループットの低下も防ぐことができる。さらに、位相可変クロックの使用によりラッチタイミングの判定基準が転送クロックの数倍の精度で得られるため、より最適なラッチタイミングを選択することも可能となる。【０１３５】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１３６】
この出願は２００７年７月２４日に出願された日本出願特願２００７−１９２０２５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図面の簡単な説明】
【０１３７】
【図１】本発明の実施形態１に係るデータ転送装置の構成を示すブロック図である。
【図２】本発明の実施形態１に係るデータ転送装置のクロック信号の波形と位相関係を示す図である。
【図３】本発明の実施形態１に係る第１のデータ転送方法の転送タイミングを示す図である。
【図４】本発明の実施形態１に係る第２のデータ転送方法の転送タイミングを示す図である。
【図５】本発明の実施形態１に係る第３のデータ転送方法の転送タイミングを示す図である。
【図６】本発明の実施形態１に係る位相調整方法のシーケンスの例を示した図である。
【図７】位相調整の設定組合せと設定組合せによって得られたデータ取得判定結果によるラッチタイミングを示した図である。
【図８】本発明の実施形態１に係る位相調整モード時のデータ返送機構を示す図である。
【図９】本発明の実施例１に係るデータ転送装置の構成を示すブロック図である。
【図１０】本発明の実施形態２に係るデータ転送装置の構成を示すブロック図である。
【図１１】本発明の実施形態３に係るデータ転送装置の構成を示すブロック図である。
【図１２】本発明の実施形態４に係るデータ転送装置の構成を示すブロック図である。
【符号の説明】
【０１３８】
１、１ａ、１ｂ、１ｄ  マスタＬＳＩ
２、２ａ、２ｂ、２ｃ、２ｄ  スレーブＬＳＩ
４  マスタコア
５  スレーブコア
１０、１１、２０、２０ａ、２１、２２、２２ａ、５０、５０ａ、５１、６０、６０ａ  
フリップフロップ
３０、３１、３３、３５  選択回路
３２、３２ａ、３２ｂ  ゲート回路
３４  遅延レジスタ
４０ａ、４０ｂ、４０ｃ、・・・  位相調整レジスタ
４１〜４６、４３ａ、４３ｂ、４４ａ、４４ｂ、４７ａ、４７ｂ、４７ｃ  入出力バッファ
６５、６５ａ  内部回路
７０  ＰＬＬ回路
１００、１００ａ、１００ｂ  制御プロセッサ（ＣＰＵ）
１１０  返送信号生成回路
１２０、１２０ａ  アービタ
２００  インタフェース回路
２０１、２０２  バスコントローラ回路
２０３、２０４  バスインタフェース回路
３００  クロック制御回路
３０１  位相可変クロック位相制御回路
４００  クロック送出部
５００  データ受信部
６００  データ出力回路
【図１】
2009014182.tif 000003
【図２】
2009014182.tif 000004
【図３】
2009014182.tif 000005
【図４】
2009014182.tif 000006
【図５】
2009014182.tif 000007
【図６】
2009014182.tif 000008
【図７】
2009014182.tif 000009
【図８】
2009014182.tif 000010
【図９】
2009014182.tif 000011
【図１０】
2009014182.tif 000012
【図１１】
2009014182.tif 000013
【図１２】
2009014182.tif 000014
【手続補正書】
【提出日】平成20年11月28日(2008.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相手装置との間にデータの転送を行うデータ転送装置であって、
転送用クロック信号を相手装置に送信するクロック送出部と、
前記相手装置から前記転送用クロック信号に同期したデータを受信するデータ受信部と、
を備え、
前記データ受信部は、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジのいずれかで前記データをラッチする第１のラッチ回路と、
前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジのいずれかで前記データをラッチする第２のラッチ回路と、
前記第１のラッチ回路の出力信号と前記第２のラッチ回路の出力信号とのいずれかを受信データとして選択する第１の選択部と
を含むことを特徴とするデータ転送装置。
【請求項２】
（削除）
【請求項３】
前記データ受信部は、
前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジのいずれかで前記第１の選択部が出力する前記データをラッチする第３のラッチ回路と、
前記第２のラッチ回路の出力信号と前記第３のラッチ回路の出力信号とのいずれかを受信データとして選択する第２の選択部とを有する請求項１に記載のデータ転送装置。
【請求項４】
前記データ受信部は、
前記第１のラッチ回路の出力信号を前記転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジでラッチする第４のラッチ回路と、
前記第４のラッチ回路の出力信号を受信データとして選択する第３の選択部とを有する請求項１に記載のデータ転送装置。
【請求項５】
前記選択部がデータをラッチするタイミングの設定と前記転送クロック信号の遅延量とを変更させて、前記相手装置が出力する前記転送用クロック信号に同期したデータを受信データとして取得するラッチタイミングの選択を制御する制御プロセッサを含む請求項１、３〜４のいずれか一項に記載のデータ転送装置。
【請求項６】
前記受信データを格納する位相調整用レジスタを備え、
前記制御プロセッサは、位相調整時における前記位相調整用レジスタの値を読み出すことで前記ラッチタイミングの選択を行う請求項５に記載のデータ転送装置。
【請求項７】
前記制御プロセッサの位相調整時における異常動作を防止する信号生成を行う返送信号生成回路を含む請求項５または６に記載のデータ転送装置。
【請求項８】
前記データ受信部は、複数の前記相手装置に対し共通のデータバスを介して接続され、前記複数の相手装置中のどの相手装置が前記データバスを使用しているかに基づいて前記ラッチタイミングの選択を行う請求項５または６に記載のデータ転送装置。
【請求項９】
前記データ受信部は、前記複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるように前記ラッチタイミングの選択を行う請求項８に記載のデータ転送装置。
【請求項１０】
前記クロック送出部は、前記データバスを使用している相手装置にのみ前記転送用クロック信号を送信する請求項８または９に記載のデータ転送装置。
【請求項１１】
前記転送用クロック信号を受信し、前記受信した転送用クロック信号に同期するデータを送信する装置内転送部を含み、
前記データ受信部は、前記装置内転送部からのデータを前記転送クロック信号に同期してラッチする縦続接続される第５及び第６のラッチ回路をさらに備え、前記第６のラッチ回路の出力から前記受信データを取得する請求項１、３〜１０のいずれか一項に記載のデータ転送装置。
【請求項１２】
前記転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを前記相手装置に出力するデータ出力回路をさらに備える請求項１、３〜１０のいずれか一項に記載のデータ転送装置。
【請求項１３】
前記転送用クロック信号の立ち上がりまたは立ち下りエッジに同期して送信データを前記装置内転送部に出力するデータ出力回路をさらに備える請求項１１に記載のデータ転送装置。
【請求項１４】
転送用クロック信号の立ち上がりエッジまたは立ち下がりエッジに同期させたデータ及び前記転送用クロック信号を相手装置に送信し、前記相手装置から前記転送用クロック信号に同期したデータを受信することにより、前記相手装置との間でデータの転送を行うデータ転送方法であって、
前記転送用クロック信号を遅延し且つその遅延量を可変とした遅延クロック信号の立ち上がりエッジまたは立ち下りエッジで前記データをラッチし、前記データをラッチするタイミングの選択の設定と前記遅延量とを変更し、前記相手装置から取得する受信データをラッチするタイミングの最適化を図ることを特徴とするデータ転送方法。
【請求項１５】
（削除）
【請求項１６】
複数の前記相手装置に対し共通のデータバスを介して前記データを転送し、該複数の相手装置中のどの相手装置が該データバスを使用しているかに基づいて前記ラッチタイミングの選択を行う請求項１４に記載のデータ転送方法。
【請求項１７】
前記複数の相手装置のそれぞれに対応した受信データが相手装置に関わらず一定のタイミングで取得可能となるように前記ラッチタイミングの選択を行う請求項１６に記載のデータ転送方法。
【請求項１８】
前記データバスを使用している相手装置にのみ前記転送用クロック信号を送信する請求項１６または１７に記載のデータ転送方法。
【国際調査報告】
2009014182.tif 000015
2009014182.tif 000016
2009014182.tif 000017
2009014182.tif 000018