(57)【要約】【課題】  高速側バスのＣＰＵ等が低速側バスの周辺モジュール等に対してデータ読み出し等のアクセスを行う際のアクセスレイテンシを短縮して性能を向上する。【解決手段】  ＣＰＵ４１とＲＡＭ４２が接続されるＣＰＵバス４０と、周辺モジュール５１が１つ以上接続される周辺バス５０と、各バスに接続されバス間の信号の同期化処理を行うバスブリッジ制御部１と、各モジュールにクロック信号を供給するクロック生成部３０と、周辺バス５０の信号が確定するタイミングを示す値が設定され、その設定値をタイミング信号としてバスブリッジ制御部１に供給する設定部２０とを有する。ＣＰＵ４１から周辺モジュール５１へのアクセスで、バスブリッジ制御部１は、前記タイミング信号に従ったタイミングで周辺バス５０のデータを保持して、ＣＰＵバス４０に転送する。【選択図】図１
2006164119.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、前記プロセッサが使用するメモリとが接続される第１のバスと、
１つ以上の周辺モジュールが接続され、前記第１のバスより低速な第２のバスと、
前記第１と第２のバスに接続され、その間で信号の同期化処理を行うバスブリッジ制御部と、
前記第１と第２のバスに接続される各モジュールに対してクロック信号を供給するクロック生成部とを有するデータ処理装置であって、
前記第２のバスの信号が確定するタイミングを示す値が設定されその設定値の信号を前記バスブリッジ制御部に対して供給する設定部を有し、
前記プロセッサが前記周辺モジュールへアクセスを行う場合に、前記バスブリッジ制御部は、前記同期化処理において、前記設定部から供給される信号に従ったタイミングで前記第２のバスの信号を保持することを特徴とするデータ処理装置。
【請求項２】
プロセッサと、前記プロセッサが使用するメモリとが接続される第１のバスと、
１つ以上の周辺モジュールが接続され、前記第１のバスより低速な第２のバスと、
前記第１と第２のバスに接続され、その間で信号の同期化処理を行うバスブリッジ制御部と、
前記第１と第２のバスに接続される各モジュールに対してクロック信号を供給するクロック生成部とを有するデータ処理装置であって、
前記第２のバスの信号が確定するタイミングを示す値が設定されその設定値の信号を前記バスブリッジ制御部に対して供給する設定部を有し、
前記プロセッサが前記周辺モジュールへデータ読み出しのためのアクセスを行う場合に、前記バスブリッジ制御部は、前記第１のバスからのコマンドとアドレスの入力をもとに前記データ読み出しのためのコマンドとアドレスを前記第２のバスへ出力し、これに応じて前記周辺モジュールから読み出されるデータを、前記設定部から供給される信号に従ったタイミングで保持し、前記第１のバスへ出力することを特徴とするデータ処理装置。
【請求項３】
請求項２記載のデータ処理装置において、
前記タイミングを示す値は、前記第２のバスの信号の出力における前記第１のバスのクロックサイクル数で表わされ、前記設定部に格納されていることを特徴とするデータ処理装置。
【請求項４】
請求項２記載のデータ処理装置において、
前記タイミングを示す値は、前記第２のバスの信号の出力における時間で表わされ、前記設定部に格納されていることを特徴とするデータ処理装置。
【請求項５】
請求項２記載のデータ処理装置において、
前記タイミングを示す値は、前記第１のバスと第２のバスとのクロック比で表わされ、前記設定部に格納されていることを特徴とするデータ処理装置。
【請求項６】
請求項２記載のデータ処理装置において、
前記設定部は、不揮発性メモリを有し、
前記不揮発性メモリに、前記タイミングを示す値が格納されていることを特徴とするデータ処理装置。
【請求項７】
請求項６記載のデータ処理装置において、
前記プロセッサによって前記設定部の前記不揮発性メモリに対する前記タイミングを示す値の書き込みや読み出しが行われることを特徴とするデータ処理装置。
【請求項８】
請求項２記載のデータ処理装置において、
前記設定部は、前記タイミングを示す値として前記周辺モジュールの数によらない１種類の値が設定され、この１種類の値の信号を前記バスブリッジ制御部に対して供給し、
前記バスブリッジ制御部は、すべての前記周辺モジュールに対するアクセスにおける同期化処理において、前記１種類の値を共通に使用することを特徴とするデータ処理装置。
【請求項９】
請求項２記載のデータ処理装置において、
前記設定部は、前記タイミングを示す値として前記周辺モジュールごとの値が設定され、これら１つ以上の値の信号を前記バスブリッジ制御部に対して供給し、
前記バスブリッジ制御部は、前記周辺モジュールに対するアクセスにおける同期化処理で、前記１つ以上の値の信号から最も前記第２のバスの信号が確定するタイミングが遅いものを選択して使用することを特徴とするデータ処理装置。
【請求項１０】
請求項２記載のデータ処理装置において、
前記設定部は、前記タイミングを示す値として前記周辺モジュールごとの値が設定され、これら１つ以上の値の信号を前記バスブリッジ制御部に対して供給し、
前記バスブリッジ制御部は、前記周辺モジュールに対するアクセスにおける同期化処理で、前記１つ以上の値の信号からアクセス先の周辺モジュールに応じたものを選択して使用することを特徴とするデータ処理装置。
【請求項１１】
請求項２記載のデータ処理装置において、
前記周辺モジュールは、自モジュールにおける前記第２のバスの信号が確定するタイミングを示す値の信号を前記設定部に対して供給し、
前記設定部は、前記周辺モジュールから供給される信号から前記バスブリッジ制御部に対して供給する信号を生成して供給することを特徴とするデータ処理装置。
【請求項１２】
請求項１１記載のデータ処理装置において、
前記周辺モジュールから供給される信号は、その値が前記第２のバスの信号の出力における前記第１のバスのクロックサイクル数で表わされることを特徴とするデータ処理装置。
【請求項１３】
請求項１１記載のデータ処理装置において、
前記周辺モジュールから供給される信号は、その値が前記第２のバスの信号の出力における時間で表わされることを特徴とするデータ処理装置。
【請求項１４】
請求項１１記載のデータ処理装置において、
前記設定部は、前記周辺モジュールから供給される信号をもとに、１種類の値の信号を前記バスブリッジ制御部に供給し、
前記バスブリッジ制御部は、すべての前記周辺モジュールに対するアクセスにおける同期化処理において、前記１種類の値を共通に使用することを特徴とするデータ処理装置。
【請求項１５】
請求項１１記載のデータ処理装置において、
前記設定部は、前記周辺モジュールから供給される信号をもとに、前記タイミングを示す値として前記周辺モジュールごとの値が設定され、これら１つ以上の値の信号を前記バスブリッジ制御部に対して供給し、
前記バスブリッジ制御部は、前記周辺モジュールに対するアクセスにおける同期化処理で、前記１つ以上の値の信号から最も前記第２のバスの信号が確定するタイミングが遅いものを選択して使用することを特徴とするデータ処理装置。
【請求項１６】
請求項１１記載のデータ処理装置において、
前記設定部は、前記周辺モジュールから供給される信号をもとに、前記タイミングを示す値として前記周辺モジュールごとの値が設定され、これら１つ以上の値の信号を前記バスブリッジ制御部に対して供給し、
前記バスブリッジ制御部は、前記周辺モジュールに対するアクセスにおける同期化処理で、前記１つ以上の値の信号からアクセス先の周辺モジュールに応じたものを選択して使用することを特徴とするデータ処理装置。
【請求項１７】
請求項２記載のデータ処理装置において、
システム構成の変更に伴って、前記設定部に設定される前記タイミングを示す値の設定を稼動中に書き換える手段を有し、
前記バスブリッジ制御部は、前記クロック生成部から供給される更新指示信号に従ったタイミングで、前記設定部から供給される信号の適用を更新して前記同期化処理に使用することを特徴とするデータ処理装置。
【請求項１８】
請求項２記載のデータ処理装置において、
リセットの直後に前記設定部における設定値が不定状態となる場合に、
前記バスブリッジ制御部は、前記同期化処理で、前記クロック生成部から供給される設定完了信号に従って、
前記設定が未完了状態では、前記リセットの期間中に確定するクロック同期信号を、前記第２のバスの信号が確定するタイミングを示す信号として使用し、
前記設定が完了状態では、前記設定部から供給される信号を使用することを特徴とするデータ処理装置。
【請求項１９】
プロセッサと、前記プロセッサが使用するメモリとが接続される第１のバスと、
１つ以上の周辺モジュールが接続され、前記第１のバスより低速な第２のバスと、
前記第１と第２のバスに接続され、その間で信号の同期化処理を行うバスブリッジ制御部と、
前記第１と第２のバスに接続される各モジュールに対してクロック信号を供給するクロック生成部とを有するデータ処理装置であって、
前記第２のバスの信号が確定するタイミングを示す値が設定されその設定値の信号を前記バスブリッジ制御部に対して供給する設定部を有し、
前記バスブリッジ制御部は、前記第１のバスのコマンドを入力して前記第２のバスへのコマンドを発行し、前記第２のバスのデータの出力期間を示す信号を出力するコマンド発行制御部と、前記第１のバスのアドレスを入力して前記第２のバスへのアドレスを発行するアドレス発行制御部と、前記クロック生成部からの第１のバスのクロックとクロック同期信号を入力してカウントするカウンタ部と、前記カウンタ部のカウント値と前記設定部から供給される信号を入力して一致検出する一致検出部と、前記一致検出部の出力値と前記出力期間を示す信号とを入力して論理積をとる論理積回路部と、前記第２のバスのデータと前記第１のバスのクロックを入力して、前記論理積回路部から信号がアサートされるタイミングで前記第２のバスのデータを保持し、前記第１のバスへ出力するレジスタとを有する構成であり、
前記プロセッサが前記周辺モジュールへアクセスを行う場合に、前記バスブリッジ制御部は、前記同期化処理において、前記設定部から供給される信号に従ったタイミングで前記第２のバスの信号を保持することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ等のデータ処理装置に関し、特に、異なる周波数のバスが接続された構成においてバス間の信号の同期化処理を行うデータ処理装置に関する。
【背景技術】
【０００２】
一般的に、コンピュータシステムにおいては階層的なバス構造を有することが多い。例えば、ＣＰＵやメモリなどのモジュールが接続される高速な第１のバス（ＣＰＵバスとも称する）の下に、周辺モジュールが接続される低速な第２のバス（周辺バスとも称する）が繋がる構成である。バスは周波数が高くなるほど配線容量や寄生容量などの電気的負荷による影響を受けやすいため、高速なＣＰＵバスに接続されるモジュール数は限定される。そのため、それほど速度を要求しない周辺モジュールについては、ＣＰＵバスよりも低速な周辺バスに接続する構成とすることで、前記影響を回避している。また、周辺バスの周波数を低くすることで、消費電力を抑えることができる。
【０００３】
例えば特許文献１記載の技術は、異なる周波数のバス間のデータ転送において非同期回路を用いることなく実現することを目的としている。また、低い周波数側のバスから高い周波数側のバスへの転送については明記されていない。
【特許文献１】特開平６−３４２４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記階層的なバス構造を持つコンピュータシステムにおいて、階層的なバス構造によるメリットを有する一方、階層的なバス構造により発生する問題点もある。異なる周波数のバス間での信号の転送において、データや制御信号といったバスインタフェース信号の受け渡しを行う際に、同期化処理が必要となる。バス間の信号の同期化処理（ブリッジ処理とも称する）を行うバスブリッジ制御部において、低速側から高速側のバスへとデータを転送する場合などにおけるアクセスレイテンシが長くなり、その間に高速側のバスがストール状態となってしまう。そのため、高速側のバスにおける性能が低下してしまう。
【０００５】
従来は、ＣＰＵバスと周辺バスとの周波数差はそれほど大きくなかったため、同期化処理による性能低下はそれほど問題にはならなかった。しかしながら、最近ではＣＰＵバスの周波数が著しく向上しているのに対し、周辺バスについてはＣＰＵバスに比べて周波数を上げることができない状況にある。その理由は、接続されるモジュールの短期開発のために過去に設計されたモジュールを流用することが多いためや、前記低消費電力の実現のため等である。ＣＰＵバスと周辺バスとの速度差の拡大傾向により、前記同期化処理による性能低下の問題が無視できない状況になってきている。
【０００６】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、異なる周波数のバスが接続され、バス間の信号の同期化処理を行うバスブリッジ制御部を有するデータ処理装置において、高速側バスのＣＰＵ等のモジュールが低速側バスの周辺モジュール等に対してデータ読み出し等のためのアクセスを行う場合におけるアクセスレイテンシを短縮して性能を向上できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のデータ処理装置は、以下に示す技術的手段を備えることを特徴とする。
【０００８】
本発明のデータ処理装置は、動作周波数の異なるバスが、ブリッジ処理を行うバスブリッジ制御部を介して接続される構成において、バス間の信号の同期化処理における低速側バスの信号が確定するタイミングを示す信号を前記バスブリッジ制御部に対して供給する回路部分である周辺バス信号確定タイミング設定部（設定部と略称する）を備える。
【０００９】
本データ処理装置は、例えば、プロセッサやプロセッサが使用するメモリ等のモジュールが接続される高速側の第１のバス（ＣＰＵバス）と、１つ以上の周辺モジュールが接続される低速側の第２のバス（周辺バス）と、前記第１と第２のバスに接続されバス間の信号の同期化処理を行うバスブリッジ制御部と、バスブリッジ制御部を含む各モジュールに対してクロック信号を供給するクロック生成部と、前記第２のバスの信号が確定するタイミングを示す値（タイミング値）が設定され、その設定値を前記同期化処理に用いるためのタイミング信号としてバスブリッジ制御部に対し供給する設定部とを有する構成である。
【００１０】
バスブリッジ制御部は、プロセッサが周辺モジュールへアクセスを行う場合に、前記第１と第２のバス間の信号の同期化処理で、前記タイミング信号に従ったタイミングで、前記第２のバスの信号を保持（取り込み）する。前記第２のバスの信号とは特にデータや制御信号である。
【００１１】
特に、前記第１のバス上のプロセッサが前記第２のバス上の周辺モジュールに対するデータ読み出しのアクセスを行う場合に、バスブリッジ制御部は、前記第２のバス上の周辺モジュールから読み出されたデータを、前記タイミング信号に従ったタイミングで保持し、前記第１のバスへ出力する。
【００１２】
なお、本明細書における用語として、前記第２のバスの「信号」とは、「データ」と「制御信号」を含む。「データ」とは、例えば周辺モジュールからの読み出しデータなどである。「制御信号」とは、「データ」以外の各種制御用信号であり、「コマンド」や「アドレス」は除く。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、同期化処理においてシステム構成に応じた最適なタイミングで低速側のバスの信号を保持でき、高速側のバスのＣＰＵ等が低速側のバスの周辺モジュール等に対してデータ読み出し等のためのアクセスを行う場合におけるアクセスレイテンシを短縮して、性能を向上できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００１５】
本発明の各実施の形態のデータ処理装置では、ＣＰＵバス上のＣＰＵがバスブリッジ制御部のブリッジ処理を介して周辺バス上の周辺モジュールへアクセスを行う際、バスブリッジ制御部は、設定部から供給されるタイミング信号に従ったタイミングで、バス間の信号の同期化処理を行う。特に、ＣＰＵバス上のＣＰＵが周辺バス上の周辺モジュールに対するデータ読み出しのアクセスを行う際に、バスブリッジ制御部は、周辺バス上の周辺モジュールからの読み出しデータをＣＰＵバス側へ転送する際において、前記タイミング信号に従ったタイミングで周辺バス上のデータを保持し、ＣＰＵバス側へ出力する処理を行う。
【００１６】
＜前提技術＞
図１５に、本発明の前提となる従来技術として、異なる周波数のバスの間でデータ転送を行う、公知の一般的なデータ処理装置の構成例を示す。まず、この前提技術となるデータ処理装置について説明する。このデータ処理装置は、ＣＰＵバス４０、ＣＰＵ４１、ＲＡＭ４２、周辺バス５０、第１の周辺モジュール（周辺モジュール＃１）５１−１〜第Ｎの周辺モジュール（周辺モジュール＃Ｎ）５１−Ｎ、バスブリッジ制御部１０１、クロック生成部３０とから構成される。ＣＰＵバス４０は、周辺バス５０よりも高速な周波数で動作するバスである。ＣＰＵバス４０と周辺バス５０では、コマンドバス（例えば４ビット）、アドレスバス（例えば３２ビット）、データバスなどを区別せずにまとめて１つの線で示している。
【００１７】
ＣＰＵバス４０に、プロセッサであるＣＰＵ４１と、ＣＰＵ４１が使用する主メモリやキャッシュメモリとしてのＲＡＭ４２と、バスブリッジ制御部１０１が接続される。周辺バス５０に、第１から第ＮまでのＮ個（１つ以上）の周辺モジュール５１｛５１−１，５１−２，……，５１−Ｎ｝と、バスブリッジ制御部１０１とが接続される。クロック生成部３０は、バスブリッジ制御部１０１を含む各モジュールに対してクロック信号を供給する。周辺モジュール５１は、例えばＤＭＡ（ダイレクトメモリアクセス）コントローラやタイマーといったモジュールである。
【００１８】
バスブリッジ制御部１０１は、ＣＰＵバス４０と周辺バス５０との間での信号の同期化処理（ブリッジ処理）を行うもので、ＣＰＵ４１が周辺モジュール５１に対してアクセスする場合に、ＣＰＵ４１に代わって周辺モジュール５１へアクセスを行う。
【００１９】
次に、図１６に、従来のバスブリッジ制御部１０１の内部構成例を示す。このバスブリッジ制御部１０１の構成例は、特にＣＰＵ４１が周辺モジュール５１に対するデータ読み出しのアクセスを行う際に係わる読み出し制御部の部分の構成を示すものであり、レジスタ１１と、ＡＮＤ回路部１４と、周辺バスコマンド発行制御部１５と、周辺バスアドレス発行制御部１１２と、ＣＰＵバス４０や周辺バス５０との間で各信号を入出力する信号線とを有して構成される。
【００２０】
周辺バスコマンド発行制御部１５は、ＣＰＵバス４０からＣＰＵバスコマンド４３を入力し、周辺バス５０に対して周辺バスコマンド１５２を出力し、ＡＮＤ回路部１４に対して周辺バスデータ出力期間信号（出力期間信号と略称する）１５１を出力する。出力期間信号１５１は、周辺バスデータ５４の出力期間を示す信号である。
【００２１】
ＣＰＵバスコマンド４３は、ＣＰＵバス４０からバスブリッジ制御部１０１へ入力される、ＣＰＵ４１からのリードコマンド等のコマンドである。周辺バスコマンド１５２は、バスブリッジ制御部１０１から周辺バス５０へ出力される、周辺モジュール５１からの読み出し等のためのコマンドである。周辺バスデータ５４は、周辺バス５０からバスブリッジ制御部１０１へ入力される、周辺モジュール５１からの読み出しデータ等のデータである。ＣＰＵバスデータ１１１は、バスブリッジ制御部１０１からＣＰＵバス４０へ出力される、周辺モジュール５１からＣＰＵ４１へのリードデータ等のデータである。
【００２２】
周辺バスアドレス発行制御部１１２は、ＣＰＵバス４０からＣＰＵバスアドレス４４を入力し、周辺バス５０に対して周辺バスアドレス１１２１を出力する。ＣＰＵバスアドレス４４は、ＣＰＵバス４０からバスブリッジ制御部１０１へ入力される、ＣＰＵ４１からの周辺モジュール５１に対するデータ読み出しアドレス等のアドレスである。周辺バスアドレス１１２１は、バスブリッジ制御部１０１から周辺バス５０へ出力される、周辺モジュール５１からのデータ読み出し等のためのアドレスである。
【００２３】
ＡＮＤ回路部１４は、クロック生成部３０からクロック同期信号３２を入力し、周辺バスコマンド発行制御部１５から出力期間信号１５１を入力して、論理積をとって、レジスタ１１に対して周辺バスデータ保持イネーブル信号（イネーブル信号と略称する）１４１を出力する。イネーブル信号１４１は、レジスタ１１における周辺バスデータ５４の保持をイネーブル状態にする信号である。
【００２４】
レジスタ１１は、周辺バス５０から周辺バスデータ５４を入力し、クロック生成部３０からＣＰＵバスクロック３１を入力し、ＡＮＤ回路部１４から入力されるイネーブル信号１４１がイネーブル状態の時に周辺バスデータ５４を保持して、ＣＰＵバス４０にＣＰＵバスデータ１１１として出力する。
【００２５】
前記ＣＰＵバスクロック３１は、ＣＰＵバス４０における動作クロックである。図示していない周辺バスクロック（３３）は、周辺バス５０における動作クロックである。クロック同期信号３２は、ＣＰＵバスクロック３１と周辺バスクロック（３３）とを同期させるための信号である。
【００２６】
また、図１７は、前記図１５及び図１６で示したデータ処理装置の動作の一例をタイムチャートで示したものである。ｔ０〜ｔ１６は、ＣＰＵバスクロック３１のサイクルに対応した時間の単位を示す。本例では、ＣＰＵバスクロック３１と周辺バスクロック３３とのクロック比が８：１となっている場合を示している。クロック同期信号３２については、周辺バスクロック３３の立ち上がりタイミングに対応したｔ７，ｔ１５のタイミングでアサートしている。
【００２７】
本例では、ＣＰＵバス４０からのＣＰＵバスコマンド４３の入力に基づき周辺バスコマンド発行制御部１５で発行される読み出し用の周辺バスコマンド１５２（図１７中「Ｒ」で示す）と、周辺バスアドレス発行制御部１１２で発行される読み出し用の周辺バスアドレス１１２１（「Ａ」で示す）とが、ｔ０からｔ７の期間に出力された場合を示している。なお、ＣＰＵ４１からのＣＰＵバスコマンド４３とＣＰＵバスアドレス４４については図示していないが、ｔ０よりも前にバスブリッジ制御部１０１に入力されている。そして、この周辺バスコマンド１５２に対する周辺バスデータ５４（「Ｄ」で示す）が、ｔ８からｔ１５の期間に出力された場合を示している。この場合に、周辺バスコマンド発行制御部１５から出力される出力期間信号１５１も、同じｔ８からｔ１５の期間に出力される。
【００２８】
そして、ＡＮＤ回路部１４は、出力期間信号１５１とクロック同期信号３２とのＡＮＤ論理をとり、図１７中に示すようにｔ１５のタイミングでイネーブル信号１４１をアサートする。レジスタ１１は、イネーブル信号１４１がアサートされたｔ１５のタイミングで周辺バスデータ５４を保持し、次のｔ１６のタイミングでＣＰＵバスデータ１１１（「Ｄ」で示す）として出力する。
【００２９】
このようなデータ処理装置において、バスブリッジ制御部１０１の同期化処理では、周辺バス５０のデータの内容は、クロック同期信号３２のアサートよりも前に確定している。しかしながら、周辺バスデータ５４がクロック同期信号３２よりもかなり早いタイミングで確定する場合においても、クロック同期信号３２を用いて周辺バスデータ５４を保持している。すなわち、本例の場合なら、ｔ８での周辺バスデータ５４の出力開始からｔ８〜ｔ１４の期間だけ遅れて周辺バスデータ５４が保持される。そのため、その時間分、ＣＰＵバス４０へのＣＰＵバスデータ１１１の転送が遅れてしまう。周辺バスデータ５４の転送が完了するまでＣＰＵバス４０はストール状態となり、その結果、ＣＰＵ４１の性能が低下することとなる。前記ストール状態とは、周辺バス５０のデータ内容が確定してから取り込んでＣＰＵバス４０に出力するまでに待ち時間が発生することを指している。
【００３０】
（実施の形態１）
図１は、本発明の実施の形態１におけるデータ処理装置１０の構成を示す。このデータ処理装置１０は、ＣＰＵバス４０と、ＣＰＵ４１と、ＲＡＭ４２と、周辺バス５０と、第１の周辺モジュール（周辺モジュール＃１）５１−１〜第Ｎの周辺モジュール（周辺モジュール＃Ｎ）５１−Ｎと、バスブリッジ制御部１と、クロック生成部３０と、周辺バス信号確定タイミング設定部（設定部）２０とを有して構成される。バスブリッジ制御部１と設定部２０以外の各部は、前提技術の構成と同様である。なお設定部２０をバスブリッジ制御部１の外部に設けた構成として示しているが、バスブリッジ制御部１の内部に設けた構成も可能である。
【００３１】
ＣＰＵ４１と、ＲＡＭ４２と、バスブリッジ制御部１は、ＣＰＵバス４０に接続される。第１から第ＮのＮ個（１つ以上）の周辺モジュール５１｛５１−１，５１−２，……，５１−Ｎ｝と、バスブリッジ制御部１は、周辺バス５０に接続される。バスブリッジ制御部１は、ＣＰＵバス４０と周辺バス５０とを接続し、設定部２０とクロック生成部３０にも接続される。クロック生成部３０は、バスブリッジ制御部１、ＣＰＵ４１、ＲＡＭ４２、各周辺モジュール５１に接続され、それぞれに対してクロック信号を供給する。
【００３２】
設定部２０は、当該設定部２０に対して設定される周辺バス信号確定タイミング値（タイミング値）２１の信号を、バスブリッジ制御部１に対してタイミング信号として供給する。タイミング値２１は、同期化処理における、周辺バス５０のデータや制御信号が確定するタイミングを示す値であり、バスブリッジ制御部１が周辺バス５０の信号を保持するタイミングを示している。
【００３３】
本データ処理装置１０において、ＣＰＵバス４０上のＣＰＵ４１が周辺バス５０上の周辺モジュール５１に対してアクセスを行う場合に、バスブリッジ制御部１は、ＣＰＵ４１がＣＰＵバス４０に出力したコマンドを取り込み、周辺バス５０を経由して周辺モジュール５１にアクセスを行う。バスブリッジ制御部１は、ＣＰＵ４１から周辺バス５０側の周辺モジュール５１へのアクセスにおけるバス間の信号の同期化処理において、設定部２０から供給されるタイミング信号に従ったタイミングで、周辺バス５０上の転送対象となる信号を内部に保持（取り込み）して、ＣＰＵバス４０側へと出力する。特に、バスブリッジ制御部１は、ＣＰＵ４１からのリードコマンドによるデータ読み出しのための周辺モジュール５１へのアクセスの際に、周辺バス５０上に出力した読み出しコマンドに応じて周辺モジュール５１から読み出したデータを、前記タイミング信号に従ったタイミングで保持して、ＣＰＵバス４０側へと転送する。
【００３４】
設定部２０は、タイミング値２１が設定・保持される不揮発性メモリであるタイミング設定レジスタ２５が内蔵された構成を有する。本構成は、特に設定部２０に対して外部から設定を行う構成に対応している。設定部２０の外部に有するＣＰＵ４１などのモジュールから、タイミング設定レジスタ２５に対して、タイミング値２１の設定値を読み書きする。例えばＣＰＵ４１は、ＣＰＵバス４０や制御信号線などを介して、タイミング設定レジスタ２５に対し、タイミング値２１の設定値の書き込みを行う。
【００３５】
タイミング値２１は、データ処理装置１０のシステム構成、すなわちＣＰＵバス４０や周辺バス５０の動作周波数や周辺モジュール５１の構成などによって定まる。データ処理装置１０は、例えば、システム構成の変更に伴ってタイミング値２１が変更される場合に、新たに定まるタイミング値２１を、ＣＰＵ４１からタイミング設定レジスタ２５に対して書き込み、設定を更新する。
【００３６】
図２（ａ）〜（ｅ）は、各実施の形態における設定部２０の構成と設定部２０に格納されるタイミング値２１の設定例を示す。（ａ）は実施の形態１、（ｂ）は実施の形態２、（ｃ）は実施の形態３、（ｄ）は実施の形態４、（ｅ）は実施の形態７にそれぞれ対応している。
【００３７】
図２（ａ）は、実施の形態１で設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の一例を示す。実施の形態１では、周辺バス５０の信号が確定する最短のタイミングが、ＣＰＵバス４０のクロックサイクル数で表現される。本例では設定値が「２」となっており、これは周辺バス５０におけるデータや制御信号が確定する最短のタイミングが、周辺バス５０の信号の出力開始を起点とした、ＣＰＵバス４０のクロックサイクル数における３クロック目であることを表している。なおこの設定値としては、バスブリッジ制御部１の内部にあるカウンタ（後述するカウンタ部１２）のカウンタ値と比較するために、前記クロックサイクル数「３」から「１」を引いた「２」が設定されている。当然ながら、この設定値は周辺バス５０の信号が確定しているタイミングを示す値であれば構わないため、最短の確定タイミング以外の値、すなわちそれよりも遅いタイミングの値を設定してもよい。本例の場合なら、図２（ａ）に示す設定値を「２」以上としてよい。この設定値の範囲は、バスブリッジ制御部１内のカウンタ（カウンタ部１２）の最大カウント値によって決まる。例えば、「０」から「７」までカウント可能な３ビットのカウンタである場合は、設定可能な値は「０」から「７」までの範囲となる。
【００３８】
図３は、前記図１に示されるバスブリッジ制御部１の構成の一例を示す図である。本例では、バスブリッジ制御部１における、読み出し制御部の部分について示している。バスブリッジ制御部１は、レジスタ１１、カウンタ部１２、一致検出部１３、ＡＮＤ回路部１４、周辺バスコマンド発行制御部１５、周辺バスアドレス発行制御部１１２、及び各信号の入出力のための信号線などを有して構成される。
【００３９】
レジスタ１１は、クロック生成部３０から供給されるＣＰＵバスクロック３１と、ＡＮＤ回路部１４からの周辺バスデータ保持イネーブル信号（イネーブル信号）１４１とをもとに、周辺バス５０から入力される周辺バスデータ５４を保持し、ＣＰＵバス４０に対してＣＰＵバスデータ１１１として出力する。
【００４０】
カウンタ部１２は、ＣＰＵバスクロック３１と、クロック生成部３０から供給されるクロック同期信号３２とを入力し、クロック同期信号３２が「Ｌｏ」のときにカウントアップ、「Ｈｉ」のときにカウンタクリアして、カウンタ値１２１として出力する。
【００４１】
一致検出部１３は、カウンタ部１２から入力されるカウンタ値１２１と、設定部２０から供給されるタイミング値２１とを一致比較し、その結果を一致検出値１３１として出力する。
【００４２】
ＡＮＤ回路部１４は、一致検出部１３から入力される一致検出値１３１と、周辺バスコマンド発行制御部１５から入力される周辺バスデータ出力期間信号（出力期間信号）１５１とのＡＮＤ論理をとり、その結果をイネーブル信号１４１として出力する。
【００４３】
周辺バスコマンド発行制御部１５は、ＣＰＵバス４０から入力されるＣＰＵバスコマンド４３や、周辺バス５０から入力される図示しない周辺バス有効データ出力期間信号などをもとに、ＡＮＤ回路部１４に対して出力期間信号１５１を、周辺バス５０に対して周辺バスコマンド１５２を出力する。
【００４４】
周辺バスアドレス発行制御部１１２は、ＣＰＵバス４０におけるＣＰＵバスアドレス４４をもとに、周辺バス５０に対して周辺バスアドレス１１２１を出力する。
【００４５】
本構成で、ＣＰＵ４１から周辺モジュール５１に対するリードコマンドがＣＰＵバスコマンド４３としてＣＰＵバス４０上に発行されると、バスブリッジ制御部１の処理を介して、周辺バス５０に対してデータ読み出し用のコマンドが周辺バスコマンド１５２として出力される。この周辺バスコマンド１５２に従って周辺モジュール５１から読み出されたデータが、周辺バスデータ５４としてバスブリッジ制御部１に入力される。設定部２０からのタイミング信号に従ったバスブリッジ制御部１での同期化処理で周辺バスデータ５４が保持され、ＣＰＵバス４０に対してＣＰＵバスデータ１１１として出力される。そしてＣＰＵ４１により、ＣＰＵバスデータ１１１がリードデータとして取得される。
【００４６】
図４は、前記図３に示されるカウンタ部１２の一例を示している。このカウンタ部１２の構成は、ＣＰＵバス４０と周辺バス５０の周波数比、すなわちＣＰＵバスクロック３１と図示していない周辺バスクロック（３３）のクロック比が８：１である場合に対応した例であり、「０」から「７」までカウント可能な３ビットのカウンタとなっている。このカウンタ部１２では、ＣＰＵバスクロック３１の周期でカウントを行い、クロック同期信号３２（図４中「Ｓ」で示す）が「Ｌｏ」（＝０）であればカウントアップ、「Ｈｉ」（＝１）であればカウンタクリアする。このカウンタの最大カウント数は、データ処理装置１０で使用されるクロック比に応じて決定される。例えば、クロック比が１６：１まで使用される場合は、カウンタ部１２の構成を「０」から「１５」までカウント可能な４ビットのカウンタにすることで、そのすべてのタイミングに対応できる。
【００４７】
図５は、前記図１〜図４で示されるバスブリッジ制御部１の動作を説明するタイムチャートの一例を示している。ｔ０〜ｔ１６は、ＣＰＵバスクロック３１のサイクルに対応した時間の単位を示す。本例では、ＣＰＵバスクロック３１と周辺バスクロック３３とのクロック比は８：１となっている。クロック同期信号３２については、周辺バスクロック３３の立ち上がりタイミングに対応したｔ７，ｔ１５でアサートしている。なおＣＰＵバスコマンド４３、ＣＰＵバスアドレス４４などについては前提技術と同様であり、図示を省略している。
【００４８】
本例では、バスブリッジ制御部１での同期化処理における周辺バス５０の信号の確定タイミングとして、周辺バスデータ５４がＣＰＵバスクロック３１の３サイクル目で確定する場合の例を示している。すなわち、周辺バス５０上の或る周辺モジュール５１が出力した周辺バスデータ５４において、出力開始されるｔ８からの最初の１，２サイクル目ではデータの内容が保証されていない不定値であり、３サイクル目以降に内容が保証された確定状態となる。この場合、この３サイクル目以降のタイミングを、タイミング値２１として選択して設定可能であり、本例では特に最短の確定タイミングとなる３サイクル目がタイミング値２１として設定されている。この場合、設定部２０で設定されるタイミング値２１、すなわちバスブリッジ制御部１に供給されるタイミング信号の値は、「２」となる。カウンタ部１２は、前記図４で説明した３ビットのカウンタであり、そのカウンタ値１２１は、ＣＰＵバスクロック３１のサイクルに対応して「０」から「７」までのカウントが繰り返されている。
【００４９】
また本例の場合、一致検出部１３で検出される一致検出値１３１は、タイミング値２１とカウンタ値１２１とが一致するｔ２とｔ１０のタイミングでアサートされる。ここで、ＣＰＵバス４０からのＣＰＵバスコマンド４３の入力によって周辺バスコマンド発行制御部１５で発行される読み出し用の周辺バスコマンド１５２（図５中、「Ｒ」で示す）と、ＣＰＵバスアドレス４４の入力によって周辺バスアドレス発行制御部１１２で発行される周辺バスアドレス１１２１とが、ｔ０からｔ７の期間に出力され、この読み出し用の周辺バスコマンド１５２に応じた周辺バスデータ５４が、周辺バス５０で周辺モジュール５１からｔ８からｔ１５の期間に出力された場合を示している。この場合、周辺バスコマンド発行制御部１５から発行される出力期間信号１５１も、同じｔ８からｔ１５の期間に出力される。
【００５０】
続いて、ＡＮＤ回路部１４は、周辺バスデータ出力期間信号１５１と一致検出値１３１とのＡＮＤ論理をとり、ｔ１０のタイミングでイネーブル信号１４１をアサートする。このｔ１０のタイミングは、周辺バス５０の信号の確定タイミングであるＣＰＵバスクロック３１の３サイクル目である。レジスタ１１は、イネーブル信号１４１がアサートされたｔ１０のタイミングで周辺バスデータ５４を保持し、次のｔ１１のタイミングでＣＰＵバスデータ１１１（図５中、「Ｄ」で示す）としてＣＰＵバス４０へ出力する。
【００５１】
このように、バスブリッジ制御部１の同期化処理では、設定部２０からのタイミング信号に従ったタイミングで、周辺バスデータ５４がレジスタ１１で保持されＣＰＵバスデータ１１１としてＣＰＵバス４０へ転送される。前記図１７に示す構成に比べると、周辺バス５０からＣＰＵバス４０への周辺バスデータ５４の保持、転送のタイミングが、ｔ１６からｔ１１へと短縮されており、その分、ＣＰＵ４１からの周辺モジュール５１に対するアクセスの効率が向上している。
【００５２】
なお、本例では周辺モジュール５１に対するデータ読み出しのアクセスにおける同期化処理を示しているが、これに限らず、データ書き込みのアクセスなどにおいても、周辺バス５０からバスブリッジ制御部１へ入力する制御信号について、前記周辺バスデータ５４の場合と同様にその確定タイミングで処理を行わせることが可能である。前記バスブリッジ制御部１へ入力する制御信号は、例えばデータ書き込み可能であることをしらせる信号などである。また、本例では２つのバスが接続された構造について説明しているが、３つ以上のバスが接続される構造においても同様の処理が可能である。
【００５３】
（実施の形態２）
次に、実施の形態２のデータ処理装置１０について説明する。実施の形態２は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、周辺バス５０のデータが確定する最短の時間である周辺バス信号確定最短時間（最短時間と略称する）２２を設定した形態である。
【００５４】
図２（ｂ）は、設定部２０にタイミング値２１として最短時間２２が設定された構成の一例を示す。この最短時間２２とは、周辺バス５０に繋がる１つ以上の周辺モジュール５１のうち全周辺モジュール５１の信号が確定する最短の時間を示している。すなわち、この最短時間２２は、最も信号の確定タイミングが遅い周辺モジュール５１によって決まる。本例では最短時間２２の設定値が１５ｎｓである場合を示している。設定部２０は、この設定値を、タイミング信号としてバスブリッジ制御部１に供給する。また実施の形態１と同様に、最短時間より大きい値を設定してもよい。
【００５５】
図６は、前記図２（ｂ）に示される最短時間２２を設定部２０に設定した構成におけるバスブリッジ制御部１の一構成例を示している。この構成内容及び動作については、前記図３で示したものと基本的に同等である。異なるのは、設定部２０におけるタイミング値２１が最短時間２２となり、バスブリッジ制御部１の内部に周辺バス信号確定タイミング算出部（タイミング算出部と称する）１６が追加されていることである。
【００５６】
タイミング算出部１６は、設定部２０に設定され供給される最短時間２２をもとに、ＣＰＵバス４０の周波数に応じて、周辺バスデータ５４が確定する最短のタイミングをＣＰＵバス４０のクロックサイクル数によって算出し、周辺バス信号確定タイミング算出値（タイミング算出値と称する）１６１として一致検出部１３に出力する回路である。一致検出部１３は、カウンタ値１２１とタイミング算出値１６１とを入力して一致検出する。なお、タイミング算出部１６を設定部２０側に設けた形態としてもよい。
【００５７】
図７は、前記図６に示されるタイミング算出部１６の一構成例を示している。本例では、タイミング算出部１６において、対応可能なＣＰＵバス４０の周波数として、２００ＭＨｚ、１００ＭＨｚ、５０ＭＨｚの３種類を有し、各周波数において最短時間２２が、５ｎｓ、１０ｎｓ、１５ｎｓのそれぞれに設定された場合に対応したタイミング算出値１６１を算出可能な構成となっている。タイミング算出値１６１は、ＣＰＵバスクロック３１のサイクル数で表わされる。例えば、タイミング算出部１６に、あらかじめこれらのタイミング算出値１６１が設定されている構成としてもよいし、簡単な計算式によってタイミング算出値１６１の算出を行う回路としてもよい。
【００５８】
本例では、ＣＰＵバス４０の周波数が２００ＭＨｚの場合において、そのときのデータ転送処理で最短時間２２が５ｎｓの場合は、タイミング算出値１６１が「０」と算出される。すなわち、ＣＰＵバスクロック３１の１サイクル目で周辺バス５０の信号が確定していることを示す。同様に、最短時間２２が１０ｎｓの場合にタイミング算出値１６１が「１」、１５ｎｓの場合に「２」となる。また、ＣＰＵバス４０の周波数が１００ＭＨｚで、そのときの最短時間２２が５ｎｓ、１０ｎｓの場合にタイミング算出値１６１が「０」、１５ｎｓの場合に「１」となっている。また、ＣＰＵバス５０の周波数が５０ＭＨｚで、そのときの最短時間が５ｎｓ、１０ｎｓ、１５ｎｓの場合に、タイミング算出値１６１が「０」となっている。本例に示した各値の組み合わせ以外で使用する場合は、あらかじめタイミング算出部１６で必要な組み合わせを用意しておくことで対応できる。このように、実施の形態２では、ＣＰＵバス４０の周波数と最短時間２２に応じて、最適なデータ転送処理が可能である。
【００５９】
（実施の形態３）
次に、実施の形態３のデータ処理装置１０について説明する。実施の形態３は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、複数の周辺モジュール５１における周辺モジュール５１ごとの周辺バス信号確定タイミング値を設定した形態である。
【００６０】
図２（ｃ）は、設定部２０にタイミング値２１として周辺モジュール５１ごとのタイミング値２１が設定された構成の一例を示す。周辺モジュール識別情報である周辺モジュール名に対して、対応するタイミング値２１が実施の形態１と同様にＣＰＵクロック３１のサイクル数の形式で設定される。特に周辺モジュール５１ごとに異なるタイミング値２１となり得る。設定部２０から、各周辺モジュール５１に対応した複数のすべてのタイミング値２１がバスブリッジ制御部１に対し供給される。本例では、タイミング設定レジスタ２５で、第１の周辺モジュール５１−１におけるタイミング値２１の設定が「２」、第２の周辺モジュール５１−２における設定値が「１」、第Ｎの周辺モジュール５１−Ｎにおける設定値が「０」として、それぞれ設定されている。
【００６１】
図８は、前記図２（ｃ）に示すように周辺モジュール５１ごとにタイミング値２１を設定した構成におけるバスブリッジ制御部１の一構成例を示している。構成内容及び動作については、前記図３（実施の形態１）で示したものと基本的に同等である。異なるのは、設定部２０から供給されるタイミング値２１が、Ｎ個存在する周辺モジュール５１ごとのタイミング値＃１〜＃Ｎ｛２１−１，……，２１−Ｎ｝として用意され、また、バスブリッジ制御部１にタイミング選択回路部１７が追加されていることである。タイミング選択回路部１７は、複数のタイミング値＃１〜＃Ｎの中から、最大値、すなわち最も周辺バス５０の信号の確定タイミングが遅いものを選択し、タイミング選択値１７１として一致検出部１３へ出力する。一致検出部１３は、カウンタ値１２１とタイミング選択値１７１とで一致検出する。
【００６２】
これにより、実施の形態３では、バスブリッジ制御部１を介した周辺モジュール５１へのアクセスにおいて、最も遅いタイミングで周辺バスデータ５４が確定する周辺モジュール５１にあわせたタイミングでデータ転送処理を行うことができる。また、実施の形態１と同様に設定値としては最短タイミングよりも大きい値を設定してもよい。また、タイミング選択回路部１７を設定部２０側に設けた形態としてもよい。
【００６３】
（実施の形態４）
次に、実施の形態４のデータ処理装置１０について説明する。実施の形態４は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、複数の周辺モジュール５１における周辺モジュール５１ごとの周辺バス信号確定最短時間を設定した形態である。
【００６４】
図２（ｄ）は、設定部２０にタイミング値２１として周辺モジュール５１ごとの最短時間２２が設定された構成の一例を示す。タイミング設定レジスタ２５で、周辺モジュール名に対して、対応する最短時間２２が実施の形態２と同様の形式で設定される。特に周辺モジュール５１ごとに異なる最短時間２２となり得る。設定部２０から、各周辺モジュール５１に対応した複数のすべての最短時間２２の信号がバスブリッジ制御部１に対し供給される。本例では、タイミング設定レジスタ２５で、第１の周辺モジュール５１−１における最短時間２２が「２０」、第２の周辺モジュール５１−２における最短時間２２が「１５」、第Ｎの周辺モジュール５１−Ｎの最短時間２２が「５」として、それぞれ設定されている。
【００６５】
実施の形態４におけるバスブリッジ制御部１は、構成内容及び動作については、前記図６（実施の形態２）で示したものと基本的に同等である。異なるのは、供給される最短時間２２の信号が、Ｎ個存在する周辺モジュール５１ごとに最短時間＃１〜＃Ｎの各信号として用意され、また、バスブリッジ制御部１に最短時間選択回路部が追加されることである。最短時間選択回路部は、複数の最短時間２２の信号の中から、最大値、すなわち最も周辺バス５０の信号の確定タイミングが遅いものを選択し、これを最短時間選択値としてタイミング算出部１６へ出力する。タイミング算出部１６は、最短時間選択値をもとに、前記図６の場合と同様に、タイミング算出値１６１を出力する。
【００６６】
これにより、実施の形態４では、バスブリッジ制御部１を介した周辺モジュール５１へのアクセスにおいて、最も遅いタイミングで周辺バスデータ５４が確定する周辺モジュール５１にあわせてデータ転送処理を行うことができる。また、前記最短時間選択回路部を設定部２０側に設けた形態としてもよい。
【００６７】
（実施の形態５）
次に、実施の形態５のデータ処理装置１０について説明する。実施の形態５は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、複数の周辺モジュール５１における周辺モジュール５１ごとの周辺バス信号確定タイミング値を設定し、バスブリッジ制御部１でアクセス先の周辺モジュール５１に応じたタイミング値を選択して処理を行う形態である。
【００６８】
実施の形態５におけるバスブリッジ制御部１の構成は、構成内容及び動作については、前記図８（実施の形態３）で示したものと基本的に同等である。異なるのは、複数のタイミング値＃１〜＃Ｎ｛２１−１，……，２１−Ｎ｝からタイミング値を選択するセレクタがタイミング選択回路部１７の代わりに設けられ、周辺バスコマンド発行制御部１５から出力されるアクセス先判別信号をもとに、そのときのデータ転送処理に対応するタイミング値２１を前記セレクタで選択して、その選択信号をタイミング選択値として一致検出部１３に出力することである。前記アクセス先判別信号は、例えば周辺モジュール識別情報を含む信号である。また、周辺バスアドレス発行制御部１１２に入力されるＣＰＵバスアドレス４４などから、アクセス先判別信号を発行可能である。
【００６９】
これにより、実施の形態５では、バスブリッジ制御部１を介した周辺モジュール５１へのアクセスにおいて、アクセス先の周辺モジュール５１に応じた最短のタイミングでデータ転送処理を行うことができる。また、周辺モジュール５１のグループごとのタイミング値２１を設定する場合も同様である。
【００７０】
（実施の形態６）
次に、実施の形態６のデータ処理装置１０について説明する。実施の形態６は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、複数の周辺モジュール５１における周辺モジュール５１ごとの周辺バス信号確定最短時間を設定し、バスブリッジ制御部１でアクセス先の周辺モジュール５１に応じた最短時間を選択して処理を行う形態である。
【００７１】
実施の形態６におけるバスブリッジ制御部１の構成は、構成内容及び動作については、前記実施の形態５で示したものと基本的に同等である。異なるのは、複数の最短時間＃１〜＃Ｎの信号を選択するセレクタが設けられ、周辺バスアドレス発行制御部１１２から出力されるアクセス先判別信号をもとに、データ転送処理に対応する最短時間２２を前記セレクタで選択して、その選択信号を最短時間選択値としてタイミング算出部１６に出力することである。
【００７２】
これにより、実施の形態６では、バスブリッジ制御部１を介した周辺モジュール５１へのアクセスにおいて、アクセス先の周辺モジュール５１に応じて最短のタイミングでデータ転送処理を行うことができる。
【００７３】
（実施の形態７）
次に、実施の形態７のデータ処理装置１０について説明する。実施の形態７は、前記図１に示す設定部２０に内蔵されたタイミング設定レジスタ２５に格納されるタイミング値２１の設定値として、ＣＰＵバス４０と周辺バス５０との周波数比（クロック比）を設定した形態である。
【００７４】
図２（ｅ）は、設定部２０にタイミング値２１としてクロック比が設定された構成の一例を示す。タイミング設定レジスタ２５で、データ処理装置１０のシステム構成に対応して、ＣＰＵバスクロック３１と周辺バスクロック３３とのクロック比を示す値が設定される。本例ではクロック比の設定が８：１となっている。なお実際の設定値としては、比を表わす「８」などの値を設定してもよい。設定部２０から、設定されているクロック比に対応したクロック比信号が、バスブリッジ制御部１に対し供給される。
【００７５】
実施の形態７におけるバスブリッジ制御部１の構成は、構成内容及び動作については、前記図６（実施の形態２）で示したものと基本的に同等である。異なるのは、設定部２０から供給される信号がクロック比信号となり、タイミング算出部１６は、設定部２０から供給されるクロック比信号をもとに、ＣＰＵバス４０の周波数に応じて、周辺バス５０のデータが確定する最短のタイミングを、ＣＰＵバスクロック３１のサイクル数の形で算出し、タイミング算出値１６１として一致検出部１３に出力することである。
【００７６】
図９は、実施の形態７におけるタイミング算出部１６の一構成例を示している。タイミング算出部１６で、ＣＰＵバス４０と周辺バス５０とのクロック比が、８：１から１：１までのそれぞれに設定された場合に応じたタイミング算出値１６１を算出できるようになっている。本例では、クロック比が８：１から３：１までの場合ではタイミング算出値１６１が「２」、２：１の場合は「１」、１：１の場合は「０」と算出される。また、データ処理装置１０でこのようなクロック比以外を使用する場合は、あらかじめタイミング算出部１６でその使用されるクロック比に対応するタイミング値を用意しておくことで対応できる。
【００７７】
このように、実施の形態７では、ＣＰＵバス４０と周辺バス５０のクロック比の状態に応じて、最適なデータ転送処理が可能である。また、タイミング算出部１６を設定部２０側に設けた形態としてもよい。またタイミング算出部１６の構成は、前記図７の場合と同様に、あらかじめ各タイミング算出値１６１が設定されている構成としてもよいし、簡単な計算式によってタイミング算出値１６１の算出を行う回路としてもよい。
【００７８】
（実施の形態８）
次に、実施の形態８のデータ処理装置１０について説明する。実施の形態８は、前記図１に示す設定部２０に設定されるタイミング値２１及び設定部２０からバスブリッジ制御部１に供給するタイミング信号を、各周辺モジュール５１から出力されるタイミング値５２をもとに生成する形態である。
【００７９】
図１０は、実施の形態８のデータ処理装置１０の構成を示す。構成内容及び動作については、前記図１（実施の形態１）で示したものと基本的に同等である。異なるのは、第１から第Ｎの周辺モジュール｛５１−１，……，５１−Ｎ｝からそれぞれタイミング値５２｛５２−１，……，５２−Ｎ｝の信号が設定部２０に対して供給され、設定部２０がこれらタイミング値５２をもとにバスブリッジ制御部１に対し供給するタイミング信号を生成して供給することである。各周辺モジュール５１は、自モジュールから周辺バス５０へ出力するデータが確定するタイミングを示す値を、タイミング値５２として設定部２０に対して供給する。各周辺モジュール５１から出力されるタイミング値５２の内容は、実施の形態１におけるタイミング値２１、すなわちＣＰＵバス４０のクロックサイクル数で表わされる形式や、実施の形態２における最短時間２２で表わされる形式などと同様である。
【００８０】
設定部２０は、例えば、各周辺モジュール５１からのタイミング値５２をそのままタイミング信号としてバスブリッジ制御部１に供給する。あるいは、設定部２０は、各タイミング値５２をタイミング設定レジスタ２５に格納し、格納されている各タイミング値５２をもとにバスブリッジ制御部１に供給するタイミング信号を生成する。また、例えば、周辺モジュール５１は、自モジュールにおけるタイミング値５２の設定値を格納するレジスタを内部に有し、このレジスタからタイミング値５２を出力する。バスブリッジ制御部１は、タイミング信号の形式に応じて、実施の形態１〜６に示すような構成を有し、設定部２０からのタイミング信号を用いて同様に同期化処理を行う。
【００８１】
（実施の形態９）
次に、実施の形態９のデータ処理装置１０について説明する。実施の形態９は、前記図１に示す設定部２０に設定されるタイミング値２１の設定を、データ処理装置１０の稼動中に動的に書き換えた場合においても、バスブリッジ制御部１でのタイミング値２１の適用を適切なタイミングで行うことによってデータ転送処理を正常に実行可能とした形態である。
【００８２】
図１１は、実施の形態９におけるバスブリッジ制御部１の一構成例を示している。構成内容及び動作については、前記図３（実施の形態１）で示したものと基本的に同等である。異なるのは、設定部２０からタイミング値２１を入力して保持するレジスタ１１０と、このレジスタ１１０のデータ保持タイミングを指示する信号である周辺バス信号確定タイミング更新指示信号（更新指示信号と称する）３４が追加されていることである。更新指示信号３４は、クロック生成部３０から供給され、レジスタ１１０のデータ保持をイネーブル状態にする。レジスタ１１０は、タイミング値２１とＣＰＵバスクロック３１とを入力し、更新指示信号３４に従ってタイミング値２１を保持し、周辺バス信号確定タイミング更新信号（更新信号と称する）１１０１として一致検出部１３に出力する。一致検出部１３は、カウンタ値１２１と更新信号１１０１を入力して一致検出する。データ処理装置１０の稼動中にクロック比を変更した場合などにおいても、更新指示信号３４により、バスブリッジ制御部１で有効となるタイミング値２１を更新して正常なデータ転送処理が可能である。
【００８３】
図１２は、前記図１１で示すバスブリッジ制御部１の動作を説明するタイムチャートの一例を示している。データ処理装置１０で、稼動中に、ＣＰＵバスクロック３１と周辺バスクロック３３のいずれか一方または双方が動的に変更される。本例では、ＣＰＵバスクロック３１と周辺バスクロック３３とのクロック比が８：１から２：１へ動的に変更された場合の動作を示す。ｔ０〜ｔ７までの期間はクロック比が８：１の状態であり、ｔ８のタイミングでＣＰＵバスクロック３１の変更によりクロック比が２：１へ変更される場合である。この場合、クロック比の変更に伴って周辺バスデータ確定タイミングも変更する必要がある。変更前におけるタイミング値２１の設定が「２」であるとする。クロック比の変更に伴って、ｔ１のタイミングで、設定部２０に設定されるタイミング値２１を「２」から「１」へと書き換えたものとする。この場合、その後にクロック生成部３０からクロック同期信号３２と同タイミングであるｔ７のタイミングで、更新指示信号３４がアサートされる。そして、レジスタ１１０で、更新指示信号３４に従ってタイミング値２１が保持され、更新信号１１０１として一致検出部１３に出力される。一致検出部１３は、更新信号１１０１とカウンタ値１２１とを比較して一致検出値１３１を出力する。従って、図１２中に示すように、クロック比が８：１の状態では、書き換え直後のタイミング値２１（「１」）が示すｔ１のタイミング（２サイクル目）ではなく、書き換え前のタイミング値２１（「２」）が示すｔ２のタイミング（３サイクル目）で、一致検出値１３１がアサートされることとなる。そして一致検出値１３１に従ってレジスタ１１で周辺バスデータ（「Ｄ１」で示す）５４が保持され、ｔ３のタイミングでＣＰＵバスデータ（「Ｄ１」で示す）１１１として出力される。一方、クロック比が２：１の状態では、更新信号１１０１によって、書き換え後のタイミング値２１（「１」）が示すｔ９のタイミング（２サイクル目）で、一致検出値１３１がアサートされる。そして一致検出値１３１に従ってレジスタ１１で周辺バスデータ（「Ｄ２」で示す）５４が保持され、ｔ１０のタイミングでＣＰＵバスデータ（「Ｄ２」で示す）１１１として出力される。
【００８４】
このように、実施の形態９では、データ処理装置１０の稼動中におけるクロック比の変更などに応じてタイミング値２１の設定を動的に書き換えた場合においても、更新指示信号３４に従ってバスブリッジ制御部１で適用（反映）するタイミング値すなわち前記更新信号１１０１を更新することにより、データ転送処理を適切なタイミングで実行できる。
【００８５】
（実施の形態１０）
次に、実施の形態１０のデータ処理装置１０について説明する。実施の形態１０は、前記図１に示す構成において、ハードウェアリセット直後で設定部２０のタイミング値２１の設定値が不定状態である場合においても、クロック同期信号３２を用いることによってデータ転送処理を正常に実行可能とした形態である。
【００８６】
図１３は、実施の形態１０におけるバスブリッジ制御部１の一構成例を示している。構成内容及び動作については、前記図３で示したものと基本的に同等である。異なるのは、クロック生成部３０から供給される周辺バス信号確定タイミング設定完了信号（設定完了信号と称する）２１０をもとに、一致検出部１３から出力される一致検出値１３１とクロック同期信号３２とのどちらか一方を選択するセレクタ１９が追加されていることである。このセレクタ１９から出力される選択信号１９１がＡＮＤ回路部１４に入力される。設定完了信号２１０は、設定部２０のタイミング値２１の設定が正しく完了していることを示す信号である。本例ではクロック生成部３０から設定完了信号２１０を出力するが、他のモジュールから出力する形態としてもよい。
【００８７】
図１４は、前記図１３で示されるバスブリッジ制御部１の動作を説明するタイムチャートの一例を示している。本例では、データ処理装置１０におけるハードウェアリセット直後であるために、まだ設定部２０におけるタイミング値２１が不定状態である場合の動作を示す。ｔ０からｔ７までの期間ではタイミング値２１が不定状態であり、ｔ８のタイミングから正常なタイミング値２１である「２」が保証されている状態となるものとする。この場合、設定部２０からの正しいタイミング値２１の供給と同時に設定完了信号２１０がアサートされる。
【００８８】
設定完了信号２１０がアサートされる前にアクセスが発生したとする。例えば、周辺モジュール５１に対するデータ読み出しのためのアクセスで、「Ｄ１」で示す周辺バスデータ５４が出力され、次の同様のアクセスで、「Ｄ２」で示す周辺バスデータ５４が出力されている。この場合、最初のアクセスでは、タイミング値２１が不定状態なので、遅いタイミングであるクロック同期信号３２を用いたｔ７のタイミングで周辺バスデータ５４の転送を行う。すなわち、セレクタ１９では、設定完了信号２１０がアサートされていない状態ではクロック同期信号３２を選択する。一方、設定完了信号２１０のアサート後のアクセスでは、セレクタ１９でタイミング値２１を選択して用いて、ｔ１０のタイミング（３サイクル目）で周辺バスデータ５４の転送を行う。このように、実施の形態１０では、データ処理装置１０におけるハードウェアリセット直後で設定部２０の設定値が不定状態となる場合であっても、クロック同期信号３２を用いて正常にデータ転送処理を行うことができる。
【００８９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【００９０】
本発明は、異なる周波数のバス間での信号の同期化処理を行うマイクロコンピュータ等のコンピュータシステム全般に利用可能である。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態１におけるデータ処理装置の全体構成の一例を示す図である。
【図２】（ａ）〜（ｅ）は、本発明の各実施の形態におけるデータ処理装置での設定部の構成と、設定部のタイミング設定レジスタに格納される設定値の一例を示す図である。
【図３】本発明の実施の形態１におけるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図４】本発明の実施の形態１におけるデータ処理装置でのバスブリッジ制御部内のカウンタ部の構成を示す図である。
【図５】本発明の実施の形態１におけるデータ処理装置でのバスブリッジ制御部を中心としたデータ転送処理の一例を示すタイムチャートである。
【図６】本発明の実施の形態２におけるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図７】本発明の実施の形態２におけるデータ処理装置でのバスブリッジ制御部内のタイミング算出部の構成を示す図である。
【図８】本発明の実施の形態３におけるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図９】本発明の実施の形態７におけるデータ処理装置でのバスブリッジ制御部内のタイミング算出部の構成を示す図である。
【図１０】本発明の実施の形態８におけるデータ処理装置の全体構成の一例を示す図である。
【図１１】本発明の実施の形態９におけるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図１２】本発明の実施の形態９におけるデータ処理装置でのバスブリッジ制御部を中心としたデータ転送処理の一例を示すタイムチャートである。
【図１３】本発明の実施の形態１０におけるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図１４】本発明の実施の形態１０におけるデータ処理装置でのバスブリッジ制御部を中心としたデータ転送処理の一例を示すタイムチャートである。
【図１５】本発明の前提技術となるデータ処理装置でのバスブリッジ制御部の全体構成を示す図である。
【図１６】本発明の前提技術となるデータ処理装置でのバスブリッジ制御部の構成を示す図である。
【図１７】本発明の前提技術となるデータ処理装置でのバスブリッジ制御部を中心としたデータ転送処理の一例を示すタイムチャートである。
【符号の説明】
【００９２】
１，１０１…バスブリッジ制御部、１０…データ処理装置、１１…レジスタ、１２…カウンタ部、１３…一致検出部、１４…ＡＮＤ回路部、１５…周辺バスコマンド発行制御部、１６…周辺バス信号確定タイミング算出部、１７…タイミング選択回路部、２０…周辺バス信号確定タイミング設定部、２１，２１−１，２１−２，２１−Ｎ…周辺バス信号確定タイミング値、２２…周辺バス信号確定最短時間、２５…タイミング設定レジスタ、３０…クロック生成部、３１…ＣＰＵバスクロック、３２…クロック同期信号、３３…周辺バスクロック、３４…周辺バス信号確定タイミング更新指示信号、４０…ＣＰＵバス、４１…ＣＰＵ、４２…ＲＡＭ、４３…ＣＰＵバスコマンド、４４…ＣＰＵバスアドレス、５０…周辺バス、５１，５１−１，５１−２，５１−３…周辺モジュール、５２，５２−１，５２−２，５２−３…タイミング値、５４…周辺バスデータ、１１０…レジスタ、１１１…ＣＰＵバスデータ、１１２…周辺バスアドレス発行制御部、１２１…カウンタ値、１３１…一致検出値、１４１…周辺バスデータ保持イネーブル信号、１５１…周辺バスデータ出力期間信号、１５２…周辺バスコマンド、１６１…周辺バス信号確定タイミング算出値、１７１…タイミング選択値、２１０…周辺バス信号確定タイミング設定完了信号、１１０１…周辺バス信号確定タイミング更新信号、１１２１…周辺バスアドレス。
【図１】
2006164119.tif 000003
【図２】
2006164119.tif 000004
【図３】
2006164119.tif 000005
【図４】
2006164119.tif 000006
【図５】
2006164119.tif 000007
【図６】
2006164119.tif 000008
【図７】
2006164119.tif 000009
【図８】
2006164119.tif 000010
【図９】
2006164119.tif 000011
【図１０】
2006164119.tif 000012
【図１１】
2006164119.tif 000013
【図１２】
2006164119.tif 000014
【図１３】
2006164119.tif 000015
【図１４】
2006164119.tif 000016
【図１５】
2006164119.tif 000017
【図１６】
2006164119.tif 000018
【図１７】
2006164119.tif 000019