(57)【要約】【課題】システム性能を低下させることなくマスタから周辺回路へデータを転送することが可能なデータ転送システムを提供することである。【解決手段】本発明にかかるデータ転送システムは、マスタＭ１〜Ｍ３と、マスタから第１のバス２を介して出力された複数のデータＤ１〜Ｄ３を入力し第２のバス４を介して当該データを出力するバスブリッジ３と、バスブリッジ３から出力されたデータＤ１〜Ｄ３を保持するライトバッファＷＢ１〜ＷＢ３および当該ライトバッファＷＢ１〜ＷＢ３から出力されたデータＤ１〜Ｄ３を保持するレジスタＲ１〜Ｒ３を備える周辺回路５と、を備える。バスブリッジ３およびライトバッファは第１のクロックで動作し、レジスタは第１のクロックとは非同期の第２のクロックで動作し、ライトバッファとレジスタとを同期化することでライトバッファからレジスタへデータを転送する。【選択図】図２
2012216985.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのマスタと、
前記少なくとも一つのマスタから第１のバスを介して出力されたデータを入力し第２のバスを介して当該データを出力するバスブリッジと、
前記バスブリッジから出力されたデータを保持可能な第１および第２のライトバッファ、並びに当該第１および第２のライトバッファと対応して設けられ、当該第１および第２のライトバッファから出力されたデータをそれぞれ保持する第１および第２のレジスタを備える周辺回路と、を備え、
前記バスブリッジ並びに前記第１および第２のライトバッファは第１のクロックで動作し、前記バスブリッジは前記第１および第２のライトバッファに前記第１のクロックに応じて前記データを転送可能であり、
前記第１および第２のレジスタは前記第１のクロックとは非同期の第２のクロックで動作し、前記第１および第２のライトバッファと前記第１および第２のレジスタとをそれぞれ同期化することで前記第１および第２のライトバッファから前記第１および第２のレジスタへ前記データを転送する、
データ転送システム。
【請求項２】
前記バスブリッジは、前記第１のライトバッファにデータを転送した後、当該第１のライトバッファから前記第１のレジスタへの前記データの転送の完了・未完了にかかわらずに次のデータを前記第２のライトバッファに出力する、請求項１に記載のデータ転送システム。
【請求項３】
前記第１および第２のライトバッファのいずれか一方に前記データが保持された時点で前記バスブリッジのトランザクションが終了する、請求項１または２に記載のデータ転送システム。
【請求項４】
前記第１および第２のライトバッファは、前記バスブリッジから出力された前記データを前記第１のクロックが立ち上がるタイミングで保持し、
前記第１および第２のレジスタは、前記第１および第２のライトバッファが前記データを出力した後、前記第２のクロックが立ち上がるタイミングで前記データを保持する、
請求項１乃至３のいずれか一項に記載のデータ転送システム。
【請求項５】
前記周辺回路は、前記第１および第２のライトバッファから前記第１および第２のレジスタへデータが転送されたか否かを示す同期化フラグを設定する同期化フラグ設定回路を備える、請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項６】
前記マスタのうちの少なくとも一つは前記同期化フラグの状態に応じて前記バスブリッジに前記データを出力するか否かを決定する、請求項５に記載のデータ転送システム。
【請求項７】
前記マスタは、メインＰＥ、命令メモリ、データメモリ、セキュリティＰＥの少なくとも一つで構成され、
前記周辺回路は、ＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニット、ＷＤユニット、タイマのうちの少なくとも一つで構成され、
前記第１および第２のレジスタは、前記ＣＡＮユニット、前記ＦＬＥＸＲＡＹユニット、前記ＳＰＩユニット、前記ＵＡＲＴユニット、前記ＡＤＣユニット、前記ＷＤユニット、前記タイマのうちの少なくとも一つに設けられ、
前記第１および第２のライトバッファは、前記ＣＡＮユニット、前記ＦＬＥＸＲＡＹユニット、前記ＳＰＩユニット、前記ＵＡＲＴユニット、前記ＡＤＣユニット、前記ＷＤユニット、前記タイマのうちの少なくとも一つと、前記第２のバスとの間に設けられ、
前記ＣＡＮユニット、前記ＦＬＥＸＲＡＹユニット、前記ＳＰＩユニット、前記ＵＡＲＴユニット、前記ＡＤＣユニット、前記ＷＤユニット、前記タイマのうちの少なくとも一つおよび前記第１および第２のレジスタは前記第２のクロックで動作する、
請求項１乃至６のいずれか一項に記載のデータ転送システム。
【請求項８】
データ転送システムにおけるデータ転送方法であって、
前記データ転送システムは、
少なくとも一つのマスタと、
前記少なくとも一つのマスタから第１のバスを介して出力されたデータを入力し第２のバスを介して当該データを出力するバスブリッジと、
前記バスブリッジから出力されたデータを保持可能な第１および第２のライトバッファ、並びに当該第１および第２のライトバッファと対応して設けられ、当該第１および第２のライトバッファから出力されたデータをそれぞれ保持する第１および第２のレジスタを備える周辺回路と、を備え、
前記バスブリッジ並びに前記第１および第２のライトバッファを第１のクロックで動作し、前記バスブリッジから前記第１および第２のライトバッファへ前記第１のクロックに応じて前記データを転送し、
前記第１および第２のレジスタを前記第１のクロックとは非同期の第２のクロックで動作し、前記第１および第２のライトバッファと前記第１および第２のレジスタとをそれぞれ同期化することで前記第１および第２のライトバッファから前記第１および第２のレジスタへ前記データをそれぞれ転送する、
データ転送方法。
【請求項９】
前記バスブリッジが前記第１のライトバッファにデータを転送した後、当該第１のライトバッファから前記第１のレジスタへの前記データの転送の完了・未完了にかかわらずに次のデータを前記第２のライトバッファに出力する、請求項８に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送システムおよびデータ転送方法に関し、特に互いに非同期のクロックで動作するマスタと周辺回路との間でのデータ転送を実現するデータ転送システムおよびデータ転送方法に関する。
【背景技術】
【０００２】
近年、互いに非同期のクロックで動作するマスタと周辺回路との間で、より高速にデータを転送する技術が重要となってきている。例えば、自動車に搭載される半導体集積回路では、電磁妨害波（ＥＭＩ：Electro Magnetic Interference）によるノイズ発生を抑制するために、ＣＰＵの駆動にスペクトラム拡散クロック（ＳＳＣＧ：Spread Spectrum Clock Generator）を使用する場合がある。一方、周辺システムは特殊な精度要求を満たすためにスペクトラム拡散クロックとは非同期のクロックで動作させる場合がある。このように、マスタであるＣＰＵと周辺回路（スレーブ）である周辺システムとが非同期で動作する場合、ＣＰＵから周辺システムへアクセスするには同期化処理が必要となる。
【０００３】
特許文献１には、ライト動作またはリード動作を可及的に短時間で行なうことが可能なデータ送受信装置に関する技術が開示されている。図１５は、特許文献１に開示されているデータ送受信装置を示す図である。図１５に示すデータ送受信装置は、マスタ部１０１と、スレーブ部１４０と、制御信号用バス１３２、１３６と、データバス１３４とを備え、マスタ部１０１からスレーブ部１４０にデータを送信する。マスタ部１０１はマスタ側ライト制御回路１０２と、フリップフロップ回路１１１〜１１４とを有している。スレーブ部１４０はスレーブ側ライト制御回路１４２と、フリップフロップ回路１５１〜１５５とを有している。
【０００４】
マスタ側ライト制御回路１０２は、ライト要求を示すＷＲＩＴＥ信号を、マスタ側動作クロック信号を用いてフリップフロップ回路１１１で同期化し、制御信号用バス１３２に出力する。この同期化されたＷＲＩＴＥ信号はスレーブ側動作クロック信号を用いてフリップフロップ回路１５１、１５２において同期化され、スレーブ側ライト制御回路１４２に取り込まれる。なお、フリップフロップ回路１５１、１５２はフリップフロップ回路１１１によって同期化された値が「０」のＷＲＩＴＥ信号によってリセットされる。
【０００５】
また、マスタ側ライト制御回路１０２はライトデータＷＲＩＴＥＤＡＴＡをマスタ側動作クロック信号を用いてフリップフロップ回路１１２において同期化し、データバス１３４に出力する。この同期化されたライトデータＷＲＩＴＥＤＡＴＡは、スレーブ側動作クロック信号を用いてフリップフロップ回路１５３、１５４において同期化され、スレーブ側ライト制御回路１４２に取り込まれる。なお、フリップフロップ回路１１２、１５３、１５４はフリップフロップ回路１１１によって同期化された値が「０」のＷＲＩＴＥ信号によってリセットされる。
【０００６】
スレーブ側ライト制御回路１４２は、ＲＥＡＤＹ信号を、スレーブ側動作クロック信号を用いてフリップフロップ回路１５５において同期化し、制御信号用バス１３６に出力する。このＲＥＡＤＹ信号はマスタ側動作クロック信号を用いて２段のフリップフロップ回路１１３、１１４において同期化され、マスタ側ライト制御回路１０２に取り込まれる。なお、フリップフロップ回路１１３、１１４、１５５は、フリップフロップ回路１１１によって同期化された値が「０」のＷＲＩＴＥ信号によってリセットされる。
【０００７】
図１６は、特許文献１に開示されているデータ送受信装置の動作を説明するためのタイミングチャートである。マスタ側ライト制御回路１０２はフリップフロップ回路１１３、１１４によって同期化されたＲＥＡＤＹ信号の値が「０」になっていることを確認し、ライトデータＷＲＩＴＥＤＡＴＡをフリップフロップ回路１１２によって同期化し、データバス１３４に出力するとともに、ＷＲＩＴＥ信号の値を「１」にし、フリップフロップ回路１１１を介して制御信号用バス１３２に出力する（タイミングｔ１０１）。
【０００８】
スレーブ側ライト制御回路１４２はフリップフロップ回路１５１、１５２によって同期化されたＷＲＩＴＥ信号の値が「１」になったこと、すなわちライト要求されていることを検出し、ライトデータＷＲＩＴＥＤＡＴＡをフリップフロップ回路１５３、１５４を介して取り込む。そしてライトデータＷＲＩＴＥＤＡＴＡの取り込みが完了すると、ＲＥＡＤＹ信号の値を「１」にしてフリップフロップ回路１５５を介して制御信号用バス１３６に出力する（タイミングｔ１０２）。
【０００９】
マスタ側ライト制御回路１０２は、フリップフロップ回路１１３、１１４によって同期化されたＲＥＡＤＹ信号の値が「１」になること、すなわちライトデータＷＲＩＴＥＤＡＴＡが受信されたことを検出すると、ＷＲＩＴＥ信号の値を「０」にし、フリップフロップ回路１１１に出力する（タイミングｔ１０３）。
【００１０】
すると、値が「０」のＷＲＩＴＥ信号はマスタ側動作クロック信号を用いてフリップフロップ回路１１１によって同期化され、制御信号用バス１３２に出力される。そして、このＷＲＩＴＥ信号によってスレーブ側のフリップフロップ回路１５１〜１５５が全てリセットされる。すなわちフリップフロップ回路１５５の出力であるＲＥＡＤＹ信号の値は「０」となる（タイミングｔ１０４）。ライト動作が行われていないときは、ＷＲＩＴＥ信号とＲＥＡＤＹ信号の値はともに「０」となっている（タイミングｔ１０５）。
【００１１】
このように、特許文献１に開示されているデータ送受信装置では、値が「０」のＷＲＩＴＥ信号によってスレーブ側のフリップフロップ１５１、１５２、１５５が同時にリセットされる。このため、ＷＲＩＴＥ信号の値を「０」にしてからＲＥＡＤＹ信号の値が「０」になるまでの期間を短縮することが可能となり、ライト動作を可及的に短時間で行うことができる。
【００１２】
また、特許文献２には、低速プロセッサ使用時に、システム性能の低下を最小限に留めるバス制御方法に関する技術が開示されている。特許文献３には、回路規模を増大させることなく、マスタおよびスレーブ間のデータアクセスを効率よく行うことができるバスブリッジ回路に関する技術が開示されている。特許文献４には、高速側バスのＣＰＵが低速側バスの周辺モジュールに対してデータ読み出し等のアクセスを行う際に、アクセスレイテンシを短縮して性能を向上させることができるデータ処理装置に関する技術が開示されている。特許文献５には、上位バスの動作クロックと下位バスの動作クロックが異なる速度で動作しており、これらの動作クロックが変更可能なシステムにおいて、どのような動作クロックやデータ幅においても双方のバス間の転送を可能とすることができるバスアダプタ装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００２−３３７２３号公報
【特許文献２】特開平０６−２６６６６０号公報
【特許文献３】特開２００５−０７８１４６号公報
【特許文献４】特開２００６−１６４１１９号公報
【特許文献５】特開２００６−１９５９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に開示されているデータ送受信装置では、マスタ部１０１からスレーブ部１４０へのアクセスが連続して発生した場合、最初のアクセスが終了するまで、すなわち、ＲＥＡＤＹ信号の値が「０」になるまで、以降のアクセスが待たされる。このように、マスタと周辺回路（スレーブ）とが非同期で動作するシステムでは、同期化処理がデータ転送の妨げとなり、システム性能が低下するという問題があった。
【課題を解決するための手段】
【００１５】
本発明にかかるデータ転送システムは、少なくとも一つのマスタと、前記少なくとも一つのマスタから第１のバスを介して出力されたデータを入力し第２のバスを介して当該データを出力するバスブリッジと、前記バスブリッジから出力されたデータを保持可能な第１および第２のライトバッファ、並びに当該第１および第２のライトバッファと対応して設けられ、当該第１および第２のライトバッファから出力されたデータをそれぞれ保持する第１および第２のレジスタを備える周辺回路と、を備え、前記バスブリッジ並びに前記第１および第２のライトバッファは第１のクロックで動作し、前記バスブリッジは前記第１および第２のライトバッファに前記第１のクロックに応じて前記データを転送可能であり、前記第１および第２のレジスタは前記第１のクロックとは非同期の第２のクロックで動作し、前記第１および第２のライトバッファと前記第１および第２のレジスタとをそれぞれ同期化することで前記第１および第２のライトバッファから前記第１および第２のレジスタへ前記データを転送する。
【００１６】
本発明にかかるデータ転送システムでは、バスブリッジとレジスタとの間に、バスブリッジと同一のクロックで駆動するライトバッファを設けている。よって、バスブリッジからライトバッファへのアクセスが同期して行われるので、バスブリッジから周辺回路（実際にはライトバッファ）へのデータの転送を高速化することができる。
【００１７】
本発明にかかる、少なくとも一つのマスタと、前記少なくとも一つのマスタから第１のバスを介して出力されたデータを入力し第２のバスを介して当該データを出力するバスブリッジと、前記バスブリッジから出力されたデータを保持可能な第１および第２のライトバッファ、並びに当該第１および第２のライトバッファと対応して設けられ、当該第１および第２のライトバッファから出力されたデータをそれぞれ保持する第１および第２のレジスタを備える周辺回路と、を備えるデータ転送システムにおけるデータ転送方法は、前記バスブリッジ並びに前記第１および第２のライトバッファを第１のクロックで動作し、前記バスブリッジから前記第１および第２のライトバッファへ前記第１のクロックに応じて前記データを転送し、前記第１および第２のレジスタを前記第１のクロックとは非同期の第２のクロックで動作し、前記第１および第２のライトバッファと前記第１および第２のレジスタとをそれぞれ同期化することで前記第１および第２のライトバッファから前記第１および第２のレジスタへ前記データをそれぞれ転送する。
【００１８】
本発明にかかるデータ転送方法では、バスブリッジとレジスタとの間に、バスブリッジと同一のクロックで駆動するライトバッファを設け、バスブリッジとライトバッファとを同期して動作させている。よって、バスブリッジから周辺回路（実際にはライトバッファ）へのデータの転送を高速化することができる。
【発明の効果】
【００１９】
本発明により、システム性能を低下させることなくマスタから周辺回路へデータを転送することが可能なデータ転送システムおよびデータ転送方法を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明にかかるデータ転送システムが適用されるプロセッサシステムの一例を説明するためのブロック図である。
【図２】実施の形態１にかかるデータ転送システムを示すブロック図である。
【図３】実施の形態１にかかるデータ転送システムが備える周辺回路の一例を示すブロック図である。
【図４】実施の形態１にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図５】実施の形態１にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図６】比較例にかかるデータ転送システムを示すブロック図である。
【図７】比較例にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図８】実施の形態２にかかるデータ転送システムを示すブロック図である。
【図９】実施の形態２にかかるデータ転送システムが備える周辺回路の一例を示すブロック図である。
【図１０】実施の形態２にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図１１】実施の形態２にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図１２】実施の形態３にかかるデータ転送システムが備える周辺回路の一例を示すブロック図である。
【図１３】実施の形態３にかかるデータ転送システムの動作を説明するためのタイミングチャートである。
【図１４】実施の形態３にかかるデータ転送システムの効果を説明するための図である。
【図１５】特許文献１に開示されているデータ送受信装置を示す図である。
【図１６】特許文献１に開示されているデータ送受信装置の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２１】
本発明の詳細な実施の形態を説明する前に、本発明が適用されるプロセッサシステムの概要について説明する。なお、本発明は、以下で説明するプロセッサシステムに適用されるものではあるが、説明するプロセッサシステムは一例であり、他のプロセッサシステムに本発明を適用することも可能である。
【００２２】
本発明が適用されるプロセッサシステムの概略図を図１に示す。図１に示すように、本発明にかかるプロセッサシステムは、複数のＰＥ（Processing Element）を用いることにより処理性能の向上を実現するものである。また、本発明にかかるプロセッサシステムでは、ＰＥによる機能ブロックの分類とは別に３つのサブシステムによる機能の分類を行う。図１に示すように、本発明にかかるプロセッサシステムでは、メインＰＥ（Processing Element）サブシステム、ＩＯ（Input Output）サブシステム、ＨＳＭ（Hardware Security Module）サブシステムを有する。
【００２３】
メインＰＥサブシステムでは、予め内部に記憶されたプログラム又は外部から読み込んだプログラムに基づくプロセッサシステムに求められる具体的な処理を行う。ＩＯサブシステムでは、メインＰＥサブシステム又はＨＳＭサブシステムにより用いられる周辺装置が動作するための各種処理を行う。ＨＳＭサブシステムは、プロセッサシステムにおいて行われている処理のセキュリティ確認処理を行う。また、本発明にかかるプロセッサシステムでは、各サブシステムにクロック信号ＣＬＫａ、ＣＬＫｂ、ＣＬＫｃ、ＣＬＫｐが供給される。図１に示す例では、メインＰＥサブシステムにはクロック信号ＣＬＫａが供給され、ＩＯサブシステムにはクロック信号ＣＬＫｂ、ＣＬＫｐが供給され、ＨＳＭサブシステムにはクロック信号ＣＬＫｃが供給される。これらのクロック信号ＣＬＫａ、ＣＬＫｂ、ＣＬＫｃは、システム全体構成の仕様に応じて、同一の周波数であっても、異なる周波数であっても良い。また、クロック信号ＣＬＫｐは、周辺装置に与えられ、ＩＯサブシステムに与えられるクロック信号ＣＬＫｂとは非同期のクロック信号である。
【００２４】
続いて、より具体的に各サブシステムについて説明する。メインＰＥサブシステムは、メインＰＥａ、メインＰＥｂ、第１の命令メモリ、データメモリ、システムバスを有する。メインＰＥサブシステムでは、メインＰＥａ、メインＰＥｂ、命令メモリ及びデータメモリは、システムバスを介して互いに接続される。第１の命令メモリは、プログラムを格納する。データメモリは、外部から読み込んだプログラム及びプロセッサシステム内で処理されたデータを一時的に記憶する。メインＰＥａ及びメインＰＥｂは、それぞれ命令メモリ、データメモリ等を利用しながらプログラムを実行する。なお、メインＰＥａは、冗長動作が可能なように構成される。冗長動作とは、ソフトウェア的には一つのプロセッサエレメントとして動作するが、ハードウェアとしては多重化された構成又は検査回路等が付加された構成により高信頼な動作を行う動作である。冗長動作の一例として、クロック毎に多重化された回路の出力結果が同一であるか否かを比較するロックステップ動作がある。
【００２５】
ＩＯサブシステムは、周辺バス、ＩＯＰＥ、周辺装置を有する。ＩＯＰＥは、周辺装置を利用する上で必要な処理を行う。なお、ＩＯＰＥはメインＰＥシステムの第１の命令メモリに記憶されているプログラムに基づき動作しても良く、他の記憶領域に記憶されているプログラムに基づき動作しても良い。周辺バスは、ＩＯＰＥ及び周辺装置を互いに接続する。
【００２６】
図１では、周辺装置として、ＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニット、ＷＤユニット、タイマを例示した。ＣＡＮユニットは、自動車の車内通信規格の一つであるＣＡＮ（Controller Area Network）に基づく通信を行う。ＦＬＥＸＲＡＹユニットは、自動車の車内通信規格の一つであるFlex Ray規格に基づく通信を行う。ＳＰＩユニットは、３線又は４線のシリアル通信であるＳＰＩ（System Packet Interface）規格の通信を行う。ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）ユニットは、調歩同期方式によるシリアル信号をパラレル信号に変換し、また、その逆方向の変換を行う。ＡＤＣ（Analog to Digital Converter）ユニットは、センサ等から与えられるアナログ信号をデジタル信号に変換する。ＷＤ（Watch Dog）ユニットは、所定の期間が経過したことを検出するウォッチドックタイマ機能を提供する。タイマは、時間の計測、波形生成などを行う。図１の例では、上記ユニットを周辺装置としたが、他の機能を有するユニットを含むことも可能であり、また、一部のユニットのみを有する場合も考えられる。
【００２７】
ＨＳＭサブシステムは、セキュリティＰＥと、第２の命令メモリとを有する。セキュリティＰＥは、システムバスに接続される。セキュリティＰＥは、メインＰＥサブシステムで実行されているプログラムの正当性又はプログラムを実行して得られるデータの正当性を判断する。第２の命令メモリには、プログラムを格納する。また、第２の命令メモリは、セキュリティＰＥのみがアクセスできるメモリである。第２の命令メモリは、第１の命令メモリと共に１つの記憶領域として設けられていても良いが、セキュリティＰＥのみがアクセス可能な領域としてアクセス制御されていることが必要である。
【００２８】
上記説明の通り、本発明が適用されるプロセッサシステムでは、複数のＰＥにより処理能力を向上させながら、予期しない故障、予期しないプログラムの改変等の不具合に対して高い耐性を実現するものである。なお、ここまでに説明したプロセッサシステムは、本発明が適用されるプロセッサシステムの一例を示したものであり、例えば、命令メモリ及びデータメモリの配置及びシステム中の個数は、そのシステムのアーキテクチャにより種々考えられる。また、メモリと各プロセッサエレメントとの接続は、例えば、複数のバスを介して接続される構成であっても良く、バスを介さずにプロセッサエレメントと接続される構成であっても良く、アーキテクチャの設計により種々の構成が考えられ得る。
【００２９】
上記したプロセッサシステムの説明は、本発明が適用されるプロセッサシステムの全体的な構成を説明するためのものである。しかし、本発明の実施の形態の説明では、上記のプロセッサシステムの説明において説明しなかった構成要素についても適宜追加する。また、追加した当該構成要素についての説明も加える。
【００３０】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図２は、本発明の実施の形態１にかかるデータ転送システムを示すブロック図である。本実施の形態にかかるデータ転送システムは、少なくとも一つのマスタＭ１〜Ｍ３（１）と、マスタＭ１〜Ｍ３（１）からシステムバス（第１のバス）２を介して出力されたライトデータＤ１〜Ｄ３を入力し、当該ライトライトデータを周辺バス（第２のバス）４を介して周辺回路５に出力するバスブリッジ３と、バスブリッジ３から出力されたライトデータを保持するライトバッファＷＢ１〜ＷＢ３および当該ライトバッファＷＢ１〜ＷＢ３から出力されたライトデータを保持するレジスタＲ１〜Ｒ３を備える周辺回路５と、を備える。本実施の形態にかかるデータ転送システムでは、バスブリッジ３およびライトバッファＷＢ１〜ＷＢ３はクロックＣＬＫ（第１のクロック）で動作し、バスブリッジ３はライトバッファＷＢ１〜ＷＢ３へクロックＣＬＫに応じてライトデータＤ１〜Ｄ３を転送する。また、レジスタＲ１〜Ｒ３はクロックＣＬＫとは非同期のクロックＣＬＫｐ（第２のクロック）で動作し、ライトバッファＷＢ１〜ＷＢ３とレジスタＲ１〜Ｒ３とを同期化することでライトバッファＷＢ１〜ＷＢ３からレジスタＲ１〜Ｒ３へライトデータＤ１〜Ｄ３を転送する。以下、本実施の形態にかかるデータ転送システムについて詳細に説明する。
【００３１】
マスタＭ１〜Ｍ３は、システムバス２、バスブリッジ３、および周辺バス４を介して周辺回路ＩＰ１〜ＩＰ３とアクセス可能に構成されている。マスタＭ１、Ｍ２、Ｍ３は、バスブリッジ３にシステムバス２を介してライトデータＤ１、Ｄ２、Ｄ３をそれぞれ出力する。ここで、マスタＭ１〜Ｍ３は、クロックＣＬＫと同期して動作してもよく、またクロックＣＬＫとは非同期のクロックで動作してもよい。
【００３２】
バスブリッジ３は、マスタＭ１〜Ｍ３から出力されたライトデータＤ１〜Ｄ３をそれぞれ入力し、入力したライトデータＤ１〜Ｄ３を調停し、調停後のライトデータ４１（Ｄ１〜Ｄ３）を一つずつ周辺バス４を介して周辺回路ＩＰ１〜ＩＰ３が備えるライトバッファＷＢ１〜ＷＢ３に出力する。ここで、例えばマスタＭ１から出力されたライトデータＤ１は、周辺回路ＩＰ１が備えるライトバッファＷＢ１に出力され、マスタＭ２から出力されたライトデータＤ２は、周辺回路ＩＰ２が備えるライトバッファＷＢ２に出力され、マスタＭ３から出力されたライトデータＤ３は、周辺回路ＩＰ３が備えるライトバッファＷＢ３に出力されるものとする。また、バスブリッジ３はクロックＣＬＫで動作する。
【００３３】
周辺回路ＩＰ１〜ＩＰ３はそれぞれ、ライトバッファＷＢ１〜ＷＢ３とレジスタＲ１〜Ｒ３とを備える。ライトバッファＷＢ１〜ＷＢ３は、バスブリッジ３から出力された調停後のライトデータＤ１〜Ｄ３をそれぞれ保持する。ここで、バスブリッジ３およびライトバッファＷＢ１〜ＷＢ３は共に同一のクロックＣＬＫで動作する。なお、バスブリッジ３は調停後のライトデータＤ１〜Ｄ３と共に、イネーブル信号、アドレス信号をライトバッファＷＢ１〜ＷＢ３に出力してもよい。
【００３４】
また、ライトバッファＷＢ１〜ＷＢ３は、バスブリッジ３から出力されたライトデータＤ１〜Ｄ３が転送途中である場合、ウェイト信号４２としてハイレベルの信号を出力する。つまり、ウェイト信号がハイレベルである場合、バスブリッジ３は次の調停後のライトデータをライトバッファＷＢ１〜ＷＢ３に出力せずに待機する。
【００３５】
レジスタＲ１〜Ｒ３は、クロックＣＬＫとは非同期のクロックＣＬＫｐで動作する。ここで、クロックＣＬＫｐのクロック周波数とクロックＣＬＫのクロック周波数は同一であってもよく、また、クロックＣＬＫｐのクロック周波数がクロックＣＬＫのクロック周波数よりも遅くてもよく、逆にクロックＣＬＫｐのクロック周波数がクロックＣＬＫのクロック周波数よりも速くてもよい。
【００３６】
例えば、ライトバッファＷＢ１からレジスタＲ１に、ライトバッファＷＢ１に保持されているライトデータＤ１を転送する場合、ライトバッファＷＢ１とレジスタＲ１とを同期化することでライトデータＤ１を転送することができる。周辺回路ＩＰ２、ＩＰ３についても同様である。なお、本実施の形態では、ライトバッファＷＢ１からレジスタＲ１へのデータの転送速度は、バスブリッジ３からライトバッファＷＢ１へのデータの転送速度と比べて十分に遅いものとする。
【００３７】
図３を用いて本実施の形態にかかるデータ転送システムが備える周辺回路ＩＰ１〜ＩＰ３について詳細に説明する。なお、以下では周辺回路ＩＰ１について説明するが、周辺回路ＩＰ２、ＩＰ３についても同様である。また、以下で説明する周辺回路ＩＰ１〜ＩＰ３の構成は一例であり、同様の動作をする回路であればどのような構成であってもよい。
【００３８】
周辺回路ＩＰ１は、ライトバッファＷＢ１（１１）、アドレスデコーダ１２、イネーブル信号同期化回路１３、イネーブルパルス生成回路１４、およびレジスタＲ１（１５）を備える。ここで、ライトバッファＷＢ１（１１）およびアドレスデコーダ１２はクロックＣＬＫで動作する。また、イネーブル信号同期化回路１３、イネーブルパルス生成回路１４、およびレジスタＲ１（１５）は、クロックＣＬＫｐで動作する。
【００３９】
アドレスデコーダ１２は、バスブリッジ３から出力されたアドレス信号とイネーブル信号ＥＮ_ＢＢとを入力する。そして、アドレス信号が周辺回路ＩＰ１を指定するアドレス信号（ＩＰ１）である場合、アドレスデコーダ１２はライトバッファＷＢ１（１１）およびイネーブル信号同期化回路１３にイネーブル信号ＥＮ_ＷＢ１を出力する。ライトバッファＷＢ１（１１）は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１が供給されるタイミングで、バスブリッジ３から出力されたライトデータＤ１を取り込む。
【００４０】
イネーブル信号同期化回路１３にハイレベルのイネーブル信号ＥＮ_ＷＢ１が供給されると、イネーブル信号同期化回路１３は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）にライトデータＤ１を転送するタイミングを示す同期化完了信号１９を生成し、イネーブルパルス生成回路１４に出力する。イネーブルパルス生成回路１４は、イネーブル信号同期化回路１３から出力された同期化完了信号１９を入力すると、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１をレジスタＲ１（１５）に出力する。レジスタＲ１（１５）にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１が供給されると、レジスタＲ１（１５）はライトバッファＷＢ１（１１）に保持されているライトデータＤ１を取り込む。
【００４１】
以上で説明した本実施の形態にかかるデータ転送システムを図１に示したプロセッサシステムに適用すると、マスタＭ１〜Ｍ３は、例えば図１に示すメインＰＥサブシステムを構成するメインＰＥａ、メインＰＥｂ、第１の命令メモリ、およびデータメモリ、並びにＨＳＭサブシステムが備えるセキュリティＰＥの少なくとも一つとすることができる。図２に示すシステムバス２および周辺バス４はそれぞれ、図１に示すシステムバスおよび周辺バスに対応する。ここで、図２に示すシステムバス２はデータＤ１〜Ｄ３を同時に転送可能なマルチレイヤーバスとすることができる。図２に示すバスブリッジ３は、図１に示すプロセッサシステムが備えるシステムバスと周辺バスとの間のＩＯサブシステム側に設けることができる。このとき、バスブリッジ３はクロックＣＬＫで動作するように構成する。なお、図１に示すシステムバスをマルチレイヤーバスとした場合、図１に示すシステムバスと周辺バスとの間に設けられたバスブリッジは、システムバスから複数のデータを同時に受け取ることができるように構成することができる。
【００４２】
図２に示すレジスタＲ１〜Ｒ３は、例えば図１に示すＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニット、ＷＤユニット、タイマに設ける。また、図２に示すライトバッファＷＢ１〜ＷＢ３は、各周辺装置（ＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニット、ＷＤユニット、タイマ）と周辺バスとの間に設ける。ここで、レジスタＲ１〜Ｒ３はクロックＣＬＫｐで動作し、ライトバッファＷＢ１〜ＷＢ３はクロックＣＬＫで動作する。例えば、図１に示すＣＡＮが図２に示す周辺回路ＩＰ１に対応する場合、図１に示すＣＡＮユニットにレジスタＲ１を設け、周辺バスとＣＡＮユニットとの間にライトバッファＷＢ１を設ける。このとき、ライトバッファＷＢ１はクロックＣＬＫで動作し、ＣＡＮユニットおよびＣＡＮユニットに設けられたレジスタＲ１はＣＬＫｐで動作する。
【００４３】
次に、本実施の形態にかかるデータ転送システムの動作について説明する。図４は、本実施の形態にかかるデータ転送システムの動作を説明するためのタイミングチャートである。図４において上段はバスブリッジ３の動作を示し、下段は周辺回路が備えるライトバッファＷＢ１〜ＷＢ３の動作を示している。図４に示すように、バスブリッジ３とライトバッファＷＢ１〜ＷＢ３はクロックＣＬＫと同期して動作している。
【００４４】
Ｔ１のタイミングで、バスブリッジ３はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＩＰ１）を周辺回路ＩＰ１が備えるアドレスデコーダ１２に、ライトデータＤ１をライトバッファＷＢ１にそれぞれ出力する。
【００４５】
Ｔ２のタイミングで、周辺回路ＩＰ１が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１をライトバッファＷＢ１に出力する。その後、Ｔ３のタイミングで、ライトバッファＷＢ１はバスブリッジ３から出力されたライトデータＤ１を取り込む。ライトバッファＷＢ１にライトデータＤ１が保持された時点でバスブリッジ３のトランザクションが終了する。
【００４６】
また、Ｔ３のタイミングで、バスブリッジ３はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＩＰ２）を周辺回路ＩＰ２が備えるアドレスデコーダ１２に、ライトデータＤ２をライトバッファＷＢ２にそれぞれ出力する。つまり、バスブリッジ３は、ライトバッファＷＢ１にライトデータＤ１を転送した後、当該ライトバッファＷＢ１からレジスタＲ１へのライトデータＤ１の転送の完了・未完了にかかわらずに次のライトデータＤ２を調停し出力する。
【００４７】
Ｔ４のタイミングで、周辺回路ＩＰ２が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ２をライトバッファＷＢ２に出力する。その後、Ｔ５のタイミングで、ライトバッファＷＢ２はバスブリッジ３から出力されたライトデータＤ２を取り込む。
【００４８】
また、Ｔ５のタイミングで、バスブリッジ３はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＩＰ３）を周辺回路ＩＰ３が備えるアドレスデコーダ１２に、ライトデータＤ３をライトバッファＷＢ３にそれぞれ出力する。
【００４９】
Ｔ６のタイミングで、周辺回路ＩＰ３が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ３をライトバッファＷＢ３に出力する。その後、Ｔ７のタイミングで、ライトバッファＷＢ３はバスブリッジ３から出力されたライトデータＤ３を取り込む。
【００５０】
図４に示すように、例えば、バスブリッジ３からライトバッファＷＢ１へライトデータＤ１を転送する場合、バスブリッジ３がライトデータＤ１を転送した後、２クロック後にライトバッファＷＢ１がライトデータＤ１を取り込んでいる。これは、ライトデータＤ２、Ｄ３についても同様である。この場合、バスブリッジ３から各ライトバッファＷＢ１〜ＷＢ３へのデータ転送は、レジスタＲ１〜Ｒ３へのデータ転送を待つことなく実施される。また、Ｔ１〜Ｔ７においてウェイト信号はロウレベルとなる。これは、バスブリッジ３からライトバッファＷＢ１〜ＷＢ３へのデータ転送が２クロックで完了するため、バスブリッジ３がライトバッファＷＢ１〜ＷＢ３へライトデータを転送する際にウェイト状態とする必要がないためである。
【００５１】
次に、図５を用いて、ライトバッファＷＢ１〜ＷＢ３からレジスタＲ１〜Ｒ３へライトデータが転送される場合の動作について説明する。なお、図５ではライトバッファＷＢ１からレジスタＲ１へライトデータが転送される場合についてのみ示しているが、ライトバッファＷＢ２からレジスタＲ２へライトデータが転送される場合、ライトバッファＷＢ３からレジスタＲ３へライトデータが転送される場合についても同様である。
【００５２】
図５に示すように、ライトバッファＷＢ１〜ＷＢ３はクロックＣＬＫで動作し、レジスタＲ１〜Ｒ３はクロックＣＬＫとは非同期のクロックＣＬＫｐで動作している。Ｔ２のタイミングでイネーブル信号ＥＮ_ＷＢ１がハイレベルになり、Ｔ３のタイミングでライトバッファＷＢ１にライトデータＤ１が保持される。また、Ｔ２のタイミングでハイレベルのイネーブル信号ＥＮ_ＷＢ１がイネーブル信号同期化回路１３に供給される。Ｔ２のタイミングの後、イネーブル信号同期化回路１３は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）にライトデータＤ１を転送するタイミングを示す同期化完了信号１９を生成する。そして、Ｔ８のタイミングで、イネーブル信号同期化回路１３はイネーブルパルス生成回路１４に同期化完了信号１９を出力する。
【００５３】
同期化完了信号１９がハイレベルになったタイミングＴ８の１クロック後のＴ９のタイミングで、イネーブルパルス生成回路１４は、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１をレジスタＲ１（１５）に出力する。レジスタＲ１（１５）にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１が供給されると、Ｔ１０のタイミングで、レジスタＲ１（１５）はライトバッファＷＢ１（１１）に保持されているライトデータＤ１を取り込む。このような動作により、ライトバッファＷＢ１からレジスタＲ１（１５）にライトデータが転送される。
【００５４】
このように、本実施の形態にかかるデータ転送システムでは、クロックＣＬＫで駆動するバスブリッジ３から当該クロックＣＬＫとは非同期のクロックＣＬＫｐで駆動するレジスタＲ１〜Ｒ３にライトデータを転送する際に、各レジスタＲ１〜Ｒ３に対応して設けられ、バスブリッジ３と同一のクロックで駆動するライトバッファＷＢ１〜ＷＢ３にライトデータを転送している。その後、各ライトバッファＷＢ１〜ＷＢ３と各レジスタＲ１〜Ｒ３を同期させることで、各ライトバッファＷＢ１〜ＷＢ３から各レジスタＲ１〜Ｒ３にライトデータを転送している。よって、バスブリッジ３からライトバッファＷＢ１〜ＷＢ３へのアクセスが同期して行われるので、バスブリッジ３から周辺回路ＩＰ１〜ＩＰ３（実際は、ライトバッファＷＢ１〜ＷＢ３）へのデータの転送を高速化することができる。換言すると、ライトバッファＷＢ１〜ＷＢ３を設けることで、バスブリッジ３からみた場合にレジスタＲ１〜Ｒ３を隠蔽することができるので、周辺回路ＩＰ１〜ＩＰ３へのデータ転送を高速化することができる。
【００５５】
図６、図７を用いて本発明の比較例について説明する。図６は比較例にかかるデータ転送システムを示すブロック図である。図６に示した比較例にかかるデータ転送システムは、周辺回路がライトバッファを備えていない点が、図１に示したデータ転送システムと異なる。これ以外の構成は、図１に示したデータ転送システムと基本的には同様である。
【００５６】
すなわち、図６に示した比較例にかかるデータ転送システムにおいて、マスタＭ１０１〜Ｍ１０３は、バスブリッジを介して周辺回路ＩＰ１０１〜ＩＰ１０３とアクセス可能に構成されている。マスタＭ１０１、Ｍ１０２、Ｍ１０３は、バスブリッジにシステムバスを介してライトデータＤ１０１、Ｄ１０２、Ｄ１０３をそれぞれ出力する。バスブリッジは、マスタＭ１０１〜Ｍ１０３からライトデータＤ１０１〜Ｄ１０３をそれぞれ入力し、入力したライトデータＤ１０１〜Ｄ１０３を調停し、調停後のライトデータＤ１０１〜Ｄ１０３を一つずつ周辺バスを介して周辺回路ＩＰ１〜ＩＰ３が備えるレジスタＲ１０１〜Ｒ１０３に出力する。ここで、バスブリッジはクロックＣＬＫで動作し、周辺回路ＩＰ１〜ＩＰ３（レジスタＲ１０１〜Ｒ１０３）はクロックＣＬＫとは非同期のクロックＣＬＫｐで動作する。
【００５７】
図７は、図６に示した比較例にかかるデータ転送システムの動作を説明するためのタイミングチャートである。図７において上段はバスブリッジの動作を示し、下段は周辺回路が備えるレジスタＲ１０１〜Ｒ１０３の動作を示している。図７に示すように、バスブリッジはクロックＣＬＫで動作し、レジスタＲ１０１〜Ｒ１０３はクロックＣＬＫとは非同期のクロックＣＬＫｐで動作している。
【００５８】
Ｔ１１１のタイミングで、バスブリッジはイネーブル信号ＥＮ_ＢＢ、アドレス信号（ＩＰ１０１）、およびライトデータＤ１０１を周辺回路ＩＰ１０１に出力する。Ｔ１０２のタイミングで、周辺回路ＩＰ１０１はバスブリッジに対してハイレベルのウェイト信号１２２を出力する。Ｔ１１１のタイミング以降、バスブリッジは周辺回路ＩＰ１０１にデータを転送するために周辺バスを占有し続ける。
【００５９】
Ｔ１１３のタイミングでバスブリッジと周辺回路が同期化すると、バスブリッジから周辺回路ＩＰ１０１のレジスタＲ１０１にデータが転送される。その後、Ｔ１１４のタイミングでウェイト信号がロウレベルとなり、バスブリッジは次のライトデータを転送可能な状態となる。このタイミングで、バスブリッジはライトデータＤ１０２を周辺回路ＩＰ１０２に出力する。以降、Ｔ１１１〜Ｔ１１４と同様の動作を繰り返す。
【００６０】
このように、図６に示した比較例にかかるデータ転送システムでは、バスブリッジとレジスタＲ１０１〜Ｒ１０３とが異なるクロックで動作するため、バスブリッジからレジスタＲ１０１〜Ｒ１０３にデータを転送するために、バスブリッジとレジスタＲ１０１〜Ｒ１０３とを同期化する必要があった。このため、バスブリッジからレジスタＲ１０１〜Ｒ１０３にライトデータを転送するのに時間がかかり、バスブリッジが一つのライトデータを転送する際に周辺バスを占有する時間が長くなるという問題があった。よって、バスブリッジがライトデータＤ１０１の次のライトデータＤ１０２を転送するには、バスブリッジからレジスタＲ１０１へのライトデータの転送が完了するのを待つ必要があり、バスブリッジからレジスタＲ１０１〜Ｒ１０３へのライトデータの転送に時間がかかるという問題があった。
【００６１】
これに対して本実施の形態にかかるデータ転送システムでは、バスブリッジ３と各レジスタＲ１〜Ｒ３との間に、バスブリッジ３と同一のクロックで駆動するライトバッファＷＢ１〜ＷＢ３を設けている。よって、バスブリッジ３からライトバッファＷＢ１〜ＷＢ３へのアクセスが同期して行われるので、バスブリッジ３から周辺回路ＩＰ１〜ＩＰ３（実際は、ライトバッファＷＢ１〜ＷＢ３）へのデータの転送を高速化することができる。換言すると、ライトバッファＷＢ１〜ＷＢ３を設けることで、バスブリッジ３からみた場合にレジスタＲ１〜Ｒ３を隠蔽することができるので、周辺回路ＩＰ１〜ＩＰ３へのデータ転送を高速化することができる。すなわち、本実施の形態にかかるデータ転送システムが備えるバスブリッジ３が一つのライトデータを転送するのに必要な時間（図４のＴ１〜Ｔ３。つまりクロックＣＬＫの２クロック分）は、比較例にかかるデータ転送システムが備えるバスブリッジが一つのライトデータを転送するのに必要な時間（図７のＴ１１１からＴ１１４）よりも大幅に短くなる。
【００６２】
以上で説明したように、本実施の形態にかかる発明により、システム性能を低下させることなくマスタから周辺回路へデータを転送することが可能なデータ転送システムおよびデータ転送方法を提供することができる。
【００６３】
実施の形態２
次に、本発明の実施の形態２について説明する。図８は、本実施の形態にかかるデータ転送システムを示すブロック図である。本実施の形態にかかるデータ転送システムでは、周辺回路ＩＰ１１が複数のライトバッファＷＢ１１〜ＷＢ１３と、ライトバッファＷＢ１１〜ＷＢ１３のそれぞれに対応する複数のレジスタＲ１１〜Ｒ１３とを備える点が実施の形態１と異なる。以下、本実施の形態にかかるデータ転送システムについて詳細に説明する。
【００６４】
マスタＭ１１（６）は、システムバス７、バスブリッジ８、および周辺バス９を介して、周辺回路ＩＰ１１（１０）とアクセス可能に構成されている。マスタＭ１１は、バスブリッジ８にシステムバス７を介してライトデータＤ１１、Ｄ１２、Ｄ１３をそれぞれ出力する。ここで、マスタＭ１１は、クロックＣＬＫと同期して動作してもよく、またクロックＣＬＫとは非同期のクロックで動作してもよい。
【００６５】
バスブリッジ８は、マスタＭ１１から出力されたライトデータＤ１１〜Ｄ１３をそれぞれ入力し、入力したライトデータＤ１１〜Ｄ１３を一つずつ周辺バス９を介して周辺回路ＩＰ１１が備えるライトバッファＷＢ１１〜ＷＢ１３に出力する。ここで、例えばライトデータＤ１１はライトバッファＷＢ１１に出力され、ライトデータＤ１２はライトバッファＷＢ１２に出力され、ライトデータＤ１３はライトバッファＷＢ１３に出力されるものとする。また、バスブリッジ８はクロックＣＬＫで動作する。
【００６６】
周辺回路ＩＰ１１は、ライトバッファＷＢ１１〜ＷＢ１３とレジスタＲ１１〜Ｒ１３とを備える。ライトバッファＷＢ１１〜ＷＢ１３は、バスブリッジ８から出力されたライトデータＤ１１〜Ｄ１３をそれぞれ保持する。ここで、バスブリッジ８およびライトバッファＷＢ１１〜ＷＢ１３は共に同一のクロックＣＬＫで動作する。なお、バスブリッジ８はライトデータＤ１１〜Ｄ１３と共に、イネーブル信号、アドレス信号をライトバッファＷＢ１１〜ＷＢ１３に出力してもよい。
【００６７】
また、ライトバッファＷＢ１１〜ＷＢ１３は、バスブリッジ８から出力されたライトデータＤ１１〜Ｄ１３が転送途中である場合、ウェイト信号９２としてハイレベルの信号を出力する。つまり、ウェイト信号がハイレベルである場合、バスブリッジ８は次のライトデータをライトバッファＷＢ１１〜ＷＢ１３に出力せずに待機する。
【００６８】
レジスタＲ１１〜Ｒ１３は、クロックＣＬＫとは非同期のクロックＣＬＫｐで動作する。ここで、クロックＣＬＫｐはクロックＣＬＫよりも遅いクロックとすることができる。例えば、ライトバッファＷＢ１１からレジスタＲ１１に、ライトバッファＷＢ１１に保持されているライトデータＤ１１を転送する場合、ライトバッファＷＢ１１とレジスタＲ１１とを同期化することでライトデータＤ１１を転送することができる。ライトバッファＷＢ１２、ＷＢ１３についても同様である。なお、ライトバッファＷＢ１１からレジスタＲ１１へのデータの転送速度は、バスブリッジ８からライトバッファＷＢ１１へのデータの転送速度と比べて十分に遅いものとする。
【００６９】
図９を用いて本実施の形態にかかるデータ転送システムが備える周辺回路ＩＰ１１について詳細に説明する。なお、以下で説明する周辺回路ＩＰ１１の構成は一例であり、同様の動作をする回路であればどのような構成であってもよい。
【００７０】
周辺回路ＩＰ１１は、ライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）、アドレスデコーダ２２、イネーブル信号同期化回路２３、イネーブルパルス生成回路２４、およびレジスタＲ１１〜Ｒ１３（２５_１〜２５_３）を備える。本実施の形態では、一つの周辺回路ＩＰ１１が複数のライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）と複数のレジスタＲ１１〜Ｒ１３（２５_１〜２５_３）とを備えている。ここで、ライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）およびアドレスデコーダ２２はクロックＣＬＫで動作する。また、イネーブル信号同期化回路２３、イネーブルパルス生成回路２４、およびレジスタＲ１１〜Ｒ１３（２５_１〜２５_３）は、クロックＣＬＫｐで動作する。
【００７１】
アドレスデコーダ２２は、バスブリッジ８から出力されたアドレス信号（ＷＢ１１〜ＷＢ１３）とイネーブル信号ＥＮ_ＢＢとを入力する。そして、アドレスデコーダ２２は、入力されたアドレス信号（ＷＢ１１〜ＷＢ１３）に対応するライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）およびイネーブル信号同期化回路２３にイネーブル信号ＥＮ_ＷＢ１１〜ＥＮ_ＷＢ１３を出力する。ライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１１〜ＥＮ_ＷＢ１３が供給されるタイミングで、バスブリッジ８から出力されたライトデータＤ１１〜Ｄ１３を取り込む。
【００７２】
具体的には、アドレスデコーダ２２は、アドレス信号（ＷＢ１１）を入力した場合、ライトバッファＷＢ１１（２１_１）にハイレベルのイネーブル信号ＥＮ_ＷＢ１１を出力する。ライトバッファＷＢ１１（２１_１）は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１１が供給されるタイミングで、バスブリッジ８から出力されたライトデータＤ１１を取り込む。同様に、アドレスデコーダ２２は、アドレス信号（ＷＢ１２）を入力した場合、ライトバッファＷＢ１２（２１_２）にハイレベルのイネーブル信号ＥＮ_ＷＢ１２を出力する。ライトバッファＷＢ１２（２１_２）は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１２が供給されるタイミングで、バスブリッジ８から出力されたライトデータＤ１２を取り込む。同様に、アドレスデコーダ２３は、アドレス信号（ＷＢ１３）を入力した場合、ライトバッファＷＢ１３（２１_３）にハイレベルのイネーブル信号ＥＮ_ＷＢ１３を出力する。ライトバッファＷＢ１３（２１_３）は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１３が供給されるタイミングで、バスブリッジ８から出力されたライトデータＤ１３を取り込む。
【００７３】
また、イネーブル信号同期化回路２３にハイレベルのイネーブル信号ＥＮ_ＷＢ１１〜ＥＮ_ＷＢ１３が供給されると、イネーブル信号同期化回路２３は、ライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）からレジスタＲ１１〜Ｒ１３（２５_１〜２５_３）にライトデータＤ１１〜Ｄ１３を転送するタイミングを示す同期化完了信号２９を生成し、イネーブルパルス生成回路２４に出力する。イネーブルパルス生成回路２４は、イネーブル信号同期化回路２３から出力された同期化完了信号２９を入力すると、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１１〜ＥＮ_ＲＥＧ１３をレジスタＲ１１〜Ｒ１３（２５_１〜２５_３）に出力する。レジスタＲ１１〜Ｒ１３（２５_１〜２５_３）にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１１〜ＥＮ_ＲＥＧ１３が供給されると、レジスタＲ１１〜Ｒ１３（２５_１〜２５_３）はライトバッファＷＢ１１〜ＷＢ１３（２１_１〜２１_３）に保持されているライトデータＤ１１〜Ｄ１３を取り込む。
【００７４】
次に、本実施の形態にかかるデータ転送システムの動作について説明する。図１０は、本実施の形態にかかるデータ転送システムの動作を説明するためのタイミングチャートである。図１０において上段はバスブリッジ８の動作を示し、下段は周辺回路ＩＰ１１が備えるライトバッファＷＢ１１〜ＷＢ１３の動作を示している。図１０に示すように、バスブリッジ８とライトバッファＷＢ１１〜ＷＢ１３はクロックＣＬＫと同期して動作している。
【００７５】
Ｔ１１のタイミングで、バスブリッジ８はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＷＢ１１）を周辺回路ＩＰ１１が備えるアドレスデコーダ１２に、ライトデータＤ１１をライトバッファＷＢ１１にそれぞれ出力する。
【００７６】
Ｔ１２のタイミングで、周辺回路ＩＰ１１が備えるアドレスデコーダ１２_１は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１１をライトバッファＷＢ１１に出力する。その後、Ｔ１３のタイミングで、ライトバッファＷＢ１１はバスブリッジ８から出力されたライトデータＤ１１を取り込む。
【００７７】
また、Ｔ１３のタイミングで、バスブリッジ８はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＷＢ１２）を周辺回路ＩＰ１１が備えるアドレスデコーダ１２に、ライトデータＤ１２をライトバッファＷＢ１２にそれぞれ出力する。
【００７８】
Ｔ１４のタイミングで、周辺回路ＩＰ１１が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１２をライトバッファＷＢ１２に出力する。その後、Ｔ１５のタイミングで、ライトバッファＷＢ１２はバスブリッジ８から出力されたライトデータＤ１２を取り込む。
【００７９】
また、Ｔ１５のタイミングで、バスブリッジ８はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＷＢ３）を周辺回路ＩＰ１１が備えるアドレスデコーダ１２に、ライトデータＤ１３をライトバッファＷＢ１３にそれぞれ出力する。
【００８０】
Ｔ１６のタイミングで、周辺回路ＩＰ１１が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１３をライトバッファＷＢ１３に出力する。その後、Ｔ１７のタイミングで、ライトバッファＷＢ１３はバスブリッジ８から出力されたライトデータＤ１３を取り込む。
【００８１】
次に、図１１を用いて、ライトバッファＷＢ１１〜ＷＢ１３からレジスタＲ１１〜Ｒ１３へデータが転送される場合の動作について説明する。なお、図１１ではライトバッファＷＢ１１からレジスタＲ１１へデータが転送される場合についてのみ示しているが、ライトバッファＷＢ１２からレジスタＲ１２へデータが転送される場合、ライトバッファＷＢ１３からレジスタＲ１３へデータが転送される場合についても同様である。
【００８２】
図１１に示すように、ライトバッファＷＢ１１〜ＷＢ１３はクロックＣＬＫで動作し、レジスタＲ１１〜Ｒ１３はクロックＣＬＫとは非同期のクロックＣＬＫｐで動作している。Ｔ１２のタイミングでイネーブル信号ＥＮ_ＷＢ１１がハイレベルになり、Ｔ１３のタイミングでライトバッファＷＢ１１にライトデータＤ１１が保持される。また、Ｔ１２のタイミングでハイレベルのイネーブル信号ＥＮ_ＷＢ１１がイネーブル信号同期化回路１３に供給される。Ｔ１２のタイミングの後、イネーブル信号同期化回路１３は、ライトバッファＷＢ１１からレジスタＲ１１にライトデータＤ１１を転送するタイミングを示す同期化完了信号２９を生成する。そして、Ｔ１８のタイミングで、イネーブル信号同期化回路１３はイネーブルパルス生成回路１４に同期化完了信号２９を出力する。
【００８３】
同期化完了信号２９がハイレベルになったタイミングＴ１８の１クロック後のＴ１９のタイミングで、イネーブルパルス生成回路１４は、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１１をレジスタＲ１１に出力する。レジスタＲ１１にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１１が供給されると、Ｔ２０のタイミングで、レジスタＲ１１はライトバッファＷＢ１１に保持されているライトデータＤ１１を取り込む。このような動作により、ライトバッファＷＢ１１からレジスタＲ１１にデータが転送される。
【００８４】
このように、本実施の形態にかかるデータ転送システムでは、クロックＣＬＫで駆動するバスブリッジ８から当該クロックＣＬＫとは非同期のクロックＣＬＫｐで駆動するレジスタＲ１１〜Ｒ１３にデータを転送する際に、各レジスタＲ１１〜Ｒ１３に対応して設けられ、バスブリッジ８と同一のクロックで駆動するライトバッファＷＢ１１〜ＷＢ１３にデータを転送している。その後、各ライトバッファＷＢ１１〜ＷＢ１３と各レジスタＲ１１〜Ｒ１３を同期させることで、各ライトバッファＷＢ１１〜ＷＢ１３から各レジスタＲ１１〜Ｒ１３にデータを転送している。よって、バスブリッジ８からライトバッファＷＢ１１〜ＷＢ１３へのアクセスが同期して行われるので、バスブリッジ８から周辺回路ＩＰ１１が備えるライトバッファＷＢ１１〜ＷＢ１３へのデータの転送を高速化することができる。換言すると、ライトバッファＷＢ１１〜ＷＢ１３を設けることで、バスブリッジ８からみた場合にレジスタＲ１１〜Ｒ１３を隠蔽することができるので、周辺回路ＩＰ１１へのデータ転送を高速化することができる。
【００８５】
以上で説明したように、本実施の形態にかかる発明により、システム性能を低下させることなくマスタから周辺回路へデータを転送することが可能なデータ転送システムおよびデータ転送方法を提供することができる。
【００８６】
実施の形態３
次に、本発明の実施の形態３について説明する。本実施の形態にかかるデータ転送システムでは、周辺回路の構成が実施の形態１の場合と異なる。これ以外は実施の形態１の場合と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。また、本実施の形態かかる発明は実施の形態２に対しても適用することができる。
【００８７】
実施の形態１にかかるデータ転送システムでは、ライトバッファからレジスタにライトデータを転送するのに必要な時間は、ライトバッファとレジスタの同期化に必要な時間に依存するため、マスタからレジスタにライトデータを転送する順番を任意に設定することはできなかった。また、マスタは、ライトバッファからレジスタにライトデータが転送されたか否かを確認することはできなかった。本実施の形態にかかるデータ転送システムでは、ライトバッファからレジスタにライトデータが転送されたか否かを示す同期化フラグ設定回路を周辺回路に設けることで、データ転送の完了をマスタが確認することができるようになる。更に、同期化フラグ設定回路を設けることで、マスタからレジスタにライトデータを転送する順番を任意に設定することができる。
【００８８】
図１２は、本実施の形態にかかるデータ転送システムが備える周辺回路を示すブロック図である。図１２に示す周辺回路では、同期化フラグ設定回路３１と完了信号同期化回路３２とを有する点が、実施の形態１にかかるデータ転送システムが備える周辺回路（図３参照）と異なる。なお、以下では周辺回路ＩＰ１について説明するが、周辺回路ＩＰ２、ＩＰ３についても同様である。
【００８９】
同期化フラグ設定回路３１は、アドレスデコーダ１２からハイレベルのイネーブル信号ＥＮ_ＷＢ１が出力されると、同期化フラグを"１"（ハイレベル）にセットする。また、同期化フラグ設定回路３１は、イネーブル信号同期化回路１３に同期化フラグ"１"を出力する。イネーブル信号同期化回路１３に同期化フラグ"１"が供給されると、イネーブル信号同期化回路１３は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）にライトデータＤ１を転送するタイミングを示す同期化完了信号１９を生成し、イネーブルパルス生成回路１４に出力する。イネーブルパルス生成回路１４は、イネーブル信号同期化回路１３から出力された同期化完了信号１９を入力すると、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１をレジスタＲ１（１５）に出力する。レジスタＲ１（１５）にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１が供給されると、レジスタＲ１（１５）はライトバッファＷＢ１（１１）に保持されているライトデータＤ１を取り込む。
【００９０】
また、完了信号同期化回路３２は、イネーブル信号同期化回路１３から出力された同期化完了信号１９を入力する。ここで、同期化完了信号１９はライトバッファＷＢ１（１１）からレジスタＲ１（１５）へのライトデータの転送の完了を示す信号である。同期化完了信号１９を入力した完了信号同期化回路３２は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）へのライトデータの転送が完了したので、同期化フラグ設定回路３１の同期化フラグを"０"にリセットする。
【００９１】
すなわち、同期化フラグ設定回路３１の同期化フラグがセット状態"１"の場合は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）へのライトデータの転送が完了していないことを示している。一方、同期化フラグ設定回路３１の同期化フラグがリセット状態"０"の場合は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）へのライトデータの転送が完了したことを示している。また、各周辺回路ＩＰ１〜ＩＰ３が備える同期化フラグ設定回路３１の同期化フラグは、各マスタＭ１〜Ｍ３に出力される。これにより、各マスタＭ１〜Ｍ３は、各レジスタＲ１〜Ｒ３にライトデータが転送されたか否かを確認することができる。
【００９２】
図１３は、本実施の形態にかかるデータ転送システムの動作を説明するためのフローチャートである。図１３に示すフローチャートでは、マスタＭ１から周辺回路ＩＰ１のレジスタＲ１にライトデータが転送される場合について示している。
【００９３】
Ｔ２１のタイミングで、バスブリッジ３はイネーブル信号ＥＮ_ＢＢおよびアドレス信号（ＩＰ１）を周辺回路ＩＰ１が備えるアドレスデコーダ１２に、ライトデータＤ１をライトバッファＷＢ１にそれぞれ出力する。
【００９４】
Ｔ２２のタイミングで、周辺回路ＩＰ１が備えるアドレスデコーダ１２は、ハイレベルのイネーブル信号ＥＮ_ＷＢ１をライトバッファＷＢ１に出力する。同期化フラグ設定回路３１は、アドレスデコーダ１２からハイレベルのイネーブル信号ＥＮ_ＷＢ１が出力されると、同期化フラグを"１"にセットする。また、同期化フラグ設定回路３１は、イネーブル信号同期化回路１３に同期化フラグ"１"を出力する。その後、Ｔ２３のタイミングで、ライトバッファＷＢ１はバスブリッジ３から出力されたライトデータＤ１を取り込む。
【００９５】
Ｔ２２のタイミングの後、イネーブル信号同期化回路１３は、ライトバッファＷＢ１（１１）からレジスタＲ１（１５）にライトデータＤ１を転送するタイミングを示す同期化完了信号１９を生成する。そして、Ｔ２４のタイミングで、イネーブル信号同期化回路１３はイネーブルパルス生成回路１４に同期化完了信号１９を出力する。
【００９６】
Ｔ２５のタイミングで、完了信号同期化回路３２は、イネーブル信号同期化回路１３から出力された同期化完了信号１９がハイレベルとなったので、同期化フラグ設定回路３１の同期化フラグを"０"にリセットする。
【００９７】
同期化完了信号１９がハイレベルになったタイミングＴ２４の１クロック後のＴ２６のタイミングで、イネーブルパルス生成回路１４は、ハイレベルのイネーブル信号ＥＮ_ＲＥＧ１をレジスタＲ１（１５）に出力する。レジスタＲ１（１５）にハイレベルのイネーブル信号ＥＮ_ＲＥＧ１が供給されると、Ｔ２７のタイミングで、レジスタＲ１（１５）はライトバッファＷＢ１（１１）に保持されているライトデータＤ１を取り込む。
【００９８】
図１４（ａ）は、実施の形態１にかかるデータ転送システムの動作を説明するための図であり、図１４（ｂ）は本実施の形態にかかるデータ転送システムの動作を説明するための図である。
【００９９】
同期化フラグ設定回路３１を持たない実施の形態１にかかるデータ転送システムでは、Ｔ３０のタイミングでマスタＭ１からライトバッファＷＢ１にライトデータが転送され、Ｔ３１のタイミングでマスタＭ２からライトバッファＷＢ２にライトデータが転送され、Ｔ３２のタイミングでマスタＭ３からライトバッファＷＢ３にライトデータが転送される。また、マスタＭ１からライトバッファＷＢ１にライトデータが転送された後、ライトバッファＷＢ１とレジスタＲ１とが同期化することで、レジスタＲ１にライトデータＤ１が転送される（Ｔ３３）。同様に、マスタＭ２からライトバッファＷＢ２にライトデータが転送された後、ライトバッファＷＢ２とレジスタＲ２とが同期化することで、レジスタＲ２にライトデータＤ２が転送される（Ｔ３６）。同様に、マスタＭ３からライトバッファＷＢ３にライトデータが転送された後、ライトバッファＷＢ３とレジスタＲ３とが同期化することで、レジスタＲ３にライトデータＤ３が転送される（Ｔ３５）。
【０１００】
ここで、各ライトバッファと各レジスタとが同期化するタイミングは、各ライトバッファと各レジスタにより異なる。このため、各ライトバッファから各レジスタにライトデータが転送される時間も異なる。また、各マスタは、ライトバッファからレジスタへライトデータが転送されたか否かを確認することはできなかった。よって、実施の形態１にかかるデータ転送システムでは、マスタからレジスタにライトデータを転送する順番を設定することはできなかった。
【０１０１】
これに対して、本実施の形態にかかるデータ転送システムでは、周辺回路が同期化フラグ設定回路３１を備えるため、レジスタへのデータ転送の順番を設定することができる。同期化フラグ設定回路３１を備える本実施の形態にかかるデータ転送システムの動作について、図１４（ｂ）を用いて説明する。なお、図１４（ｂ）に示す例では、レジスタＲ２にライトデータが転送された後に、マスタＭ３からレジスタＲ３にライトデータを転送するように設定されているものとする。
【０１０２】
Ｔ４０のタイミングでマスタＭ１からライトバッファＷＢ１にライトデータが転送され、Ｔ４１のタイミングでマスタＭ２からライトバッファＷＢ２にライトデータが転送される。また、Ｔ４２のタイミングでは、ライトバッファＷＢ２からレジスタＲ２へのデータ転送が完了していないため、周辺回路ＩＰ２の同期化フラグ設定回路３１の同期化フラグは"１"となる。このとき、マスタＭ３は、周辺回路ＩＰ２の同期化フラグ設定回路３１の同期化フラグが"１"であるので、ライトバッファＷＢ３にライトデータＤ３を出力しないで待機する。一方、マスタＭ１はライトデータの転送順によらずにレジスタＲ１へライトデータを転送することができるので、Ｔ４４のタイミングでマスタＭ１からライトバッファＷＢ１にライトデータを転送する。その後、マスタＭ３は、周辺回路ＩＰ２の同期化フラグ設定回路３１の同期化フラグが"０"になるまで、ライトデータＤ３を転送することなく待機する。
【０１０３】
Ｔ４６のタイミングで、ライトバッファＷＢ２からレジスタＲ２へライトデータＤ２が転送されると、周辺回路ＩＰ２の同期化フラグ設定回路３１の同期化フラグは"０"となる。そして、Ｔ４７のタイミングでマスタＭ３からライトバッファＷＢ３にライトデータＤ３が転送され、Ｔ４９のタイミングでレジスタＲ３にライトデータＤ３が転送される。
【０１０４】
本実施の形態にかかるデータ転送システムでは、例えばアクセス（データ転送）の順番を設定したいアプリケーションにおいて、次のアクセスを発行する前に同期化フラグ設定回路３１の同期化フラグを確認するようにソフトウェアを用いて設定してもよい。
【０１０５】
以上で説明したように、本実施の形態にかかるデータ転送システムでは、ライトバッファからレジスタへライトデータが転送されたか否かを示す同期化フラグ設定回路３１を周辺回路に設けているので、データ転送の完了をマスタが確認することができる。更に、同期化フラグ設定回路３１を設けることで、マスタからレジスタにライトデータを転送する順番を任意に設定することができる。
【０１０６】
なお、本実施の形態にかかるデータ転送システムでは、同期化フラグが"１"の場合、マスタはライトデータを転送することなく待機するので、マスタからレジスタへのライトデータの転送速度は実施の形態１にかかるデータ転送システムの場合よりも遅くなる。しかし、本実施の形態にかかるデータ転送システムでは、同期化フラグが"１"でマスタがライトバッファにアクセスしないで待機している間に、他のマスタがライトバッファにアクセスすることができる。図１４（ｂ）を用いて説明すると、Ｔ４２のタイミングでは同期化フラグが"１"であるため、マスタＭ３はライトバッファＷＢ３へアクセスせずに待機する。そして、マスタＭ３が待機しているＴ４４のタイミングで、マスタＭ１がライトバッファＷＢ１にアクセスすることができる。よって、システム性能を低下させることなくマスタから周辺回路へデータを転送することが可能となる。
【０１０７】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【０１０８】
１、６  マスタ
２、７  システムバス
３、８  バスブリッジ
４、９  周辺バス
５、１０  周辺回路
１１、２１  ライトバッファ
１２、２２  アドレスデコーダ
１３、２３  イネーブル信号同期化回路
１４、２４  イネーブルパルス生成回路
１５、２５  レジスタ
１９、２９  同期化完了信号
３１  同期化フラグ設定回路
３２  完了信号同期化回路
【図１】
2012216985.tif 000003
【図２】
2012216985.tif 000004
【図３】
2012216985.tif 000005
【図４】
2012216985.tif 000006
【図５】
2012216985.tif 000007
【図６】
2012216985.tif 000008
【図７】
2012216985.tif 000009
【図８】
2012216985.tif 000010
【図９】
2012216985.tif 000011
【図１０】
2012216985.tif 000012
【図１１】
2012216985.tif 000013
【図１２】
2012216985.tif 000014
【図１３】
2012216985.tif 000015
【図１４】
2012216985.tif 000016
【図１５】
2012216985.tif 000017
【図１６】
2012216985.tif 000018