(57)【要約】【課題】バスの動作タイミングを適切に調整することができるデータ通信制御装置の提供。【解決手段】本発明によるデータ通信制御装置は、ＣＰＵコア１０と周辺機器６０の間にバスブリッジ２０を備え、前記ＣＰＵコアと前記バスブリッジの間は、高速バス７０で接続され、前記周辺機器と前記バスブリッジの間は、低速バス７２で接続され、前記周辺機器から前記バスブリッジを介して前記ＣＰＵコアへデータを送信する際に、前記周辺機器から前記バスブリッジへの前記低速バスによるデータの送信方法を、シリアル通信とパラレル通信の間で動的又は静的に切り換える切換制御部３０，６２Ａを備えることを特徴とする。【選択図】図２
2011164903.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵコアと周辺機器との間のデータ通信を制御するデータ通信制御装置であって、
ＣＰＵコアと周辺機器の間にバスブリッジを備え、
前記ＣＰＵコアと前記バスブリッジの間は、高速バスで接続され、
前記周辺機器と前記バスブリッジの間は、低速バスで接続され、
前記周辺機器から前記バスブリッジを介して前記ＣＰＵコアへデータを送信する際に、前記周辺機器から前記バスブリッジへ前記低速バスで送信されてくるデータが前記バスブリッジのバッファに所定ビット数格納されたときに、前記高速バスで前記所定ビット数のデータを前記ＣＰＵコアに送信するように構成され、
前記周辺機器から前記バスブリッジへの前記低速バスによるデータの送信方法を、シリアル通信とパラレル通信の間で動的又は静的に切り換える切換制御部を備えることを特徴とする、データ通信制御装置。
【請求項２】
前記切換制御部は、前記ＣＰＵコアの処理負荷、前記周辺機器の応答性、前記周辺機器の使用頻度、及び、前記ＣＰＵコアへ送るデータ量のうちの少なくともいずれか１つに基づいて、前記切換を実行する、請求項１に記載のデータ通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵコアと周辺機器との間のデータ通信を制御するデータ通信制御装置に関する。
【背景技術】
【０００２】
従来から、シリアル受信入力信号をパラレル受信信号に変換するシリアル−パラレル変換用の受信ブロックと、パラレル送信信号をシリアル送信出力信号に変換するパラレル−シリアル変換用の送信ブロックと、複数の入出力ポートと、受信ブロック又は送信ブロックとセレクタで選択された入出力ポートとを接続する通信データバスと、セレクタで選択された入出力ポートに接続可能なＭＰＵ接続用のＣＰＵデータバスと、通信データバス及びＣＰＵデータバスに接続されるデータレジスタとを有し、該データレジスタが送信ブロックに送る送信データ又は受信ブロックからの受信データを格納する固定チャンネル型ゲートアレイが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平08-147140号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、単一のマイコンで、従来複数のマイコンで実現していた機能を実現する場合、又は、マルチコアタイプのマイコンで、従来複数のマイコンで実現していた機能を実現する場合、これらの機能間の相違、必要とされる帯域の相違、必要とされる応答性の相違等を考慮する必要がある。このため、これらの相違等に応じて複数の帯域を保証する複数のバスを搭載する必要が生じるが、かかる複数のバスを搭載することはコスト面から不利である。
【０００５】
そこで、本発明は、バスの動作タイミングを適切に調整することができるデータ通信制御装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一局面によれば、ＣＰＵコアと周辺機器との間のデータ通信を制御するデータ通信制御装置であって、
ＣＰＵコアと周辺機器の間にバスブリッジを備え、
前記ＣＰＵコアと前記バスブリッジの間は、高速バスで接続され、
前記周辺機器と前記バスブリッジの間は、低速バスで接続され、
前記周辺機器から前記バスブリッジを介して前記ＣＰＵコアへデータを送信する際に、前記周辺機器から前記バスブリッジへ前記低速バスで送信されてくるデータが前記バスブリッジのバッファに所定ビット数格納されたときに、前記高速バスで前記所定ビット数のデータを前記ＣＰＵコアに送信するように構成され、
前記周辺機器から前記バスブリッジへの前記低速バスによるデータの送信方法を、シリアル通信とパラレル通信の間で動的又は静的に切り換える切換制御部を備えることを特徴とする、データ通信制御装置が提供される。
【発明の効果】
【０００７】
本発明によれば、バスの動作タイミングを適切に調整することができるデータ通信制御装置が得られる。
【図面の簡単な説明】
【０００８】
【図１】本発明によるデータ通信制御装置の一実施例を具現化するマイコン１の要部構成を示す図である。
【図２】図１のバスブリッジ２０と周辺機能６０の機能概念図である。
【図３】バスブリッジ２０と周辺機能６０との間等のデータ授受の流れを示すフローチャートである。
【図４】図４（Ａ）は、パラレルでデータが出力される際のパラレル通信波形を示し、図４（Ｂ）は、シリアルでデータが出力される際のパラレル通信波形を示す図である。
【図５】シリアル・パラレル制御部３０において採用されてもよいシリアル・パラレルの選択観点の一例を示す表図である。
【図６】静的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【図７】図６に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。
【図８】半動的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【図９】図８に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。
【図１０】完全な動的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【図１１】図１０に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。
【図１２】ソフトウェアを利用して実装した場合のシリアル・パラレル制御部３０の詳細の一例を示す図である。
【図１３】図１２のソフトウェア部３０Ｂの動作フローチャートを示す。
【図１４】その他の実施例によるバスブリッジ２０と周辺機能６０の機能概念図である。
【図１５】その他の実施例によるバスブリッジ２０と周辺機能６０の機能概念図である。
【図１６】図１５に示すその他の実施例によるバスブリッジ２０と周辺機能６０の間等のデータ授受の流れを示すフローチャートである。
【図１７】図１６に示すフローチャートに関連して、ＣＰＵコア１０による周辺機能６０Ａ，６０Ｂ，６０Ｃへのアクセスの順序の一例を示す図である。
【図１８】図１７に示したフローチャートに従って実行されるシリアル通信の動作波形を示す図である。
【図１９】本発明によるデータ通信制御装置のその他の一実施例（実施例２）を具現化するマイコン２の要部構成を示す図である。
【図２０】本発明によるデータ通信制御装置のその他の一実施例（実施例３）を具現化するマイコン３の要部構成を示す図である。
【図２１】３つの統合前マイコン１００，１０２、１０４の機能を、マイコン１に統合した場合を示す概念図である。
【図２２】統合前マイコン１００と統合前マイコン１０２（又は１０４）の動作波形の相違を示す図である。
【図２３】図２３（Ａ）は、マイコン１における４８ＭＨｚ帯域割当てのパラレル通信波形を示し、図２３（Ｂ）は、マイコン１における４８ＭＨｚ帯域割当てのシリアル通信波形を示す図である。
【図２４】統合前マイコン２００，２０２、２０４の機能を、上述の実施例２によるマイコン２に統合した場合を示す概念図である。
【図２５】統合前マイコン３００，３０２、３０４の機能を、上述の実施例３によるマイコン３に統合した場合を示す概念図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。
【００１０】
図１は、本発明によるデータ通信制御装置の一実施例（実施例１）を具現化するマイコン１の要部構成を示す図である。
【００１１】
マイコン１は、ＣＰＵコア１０を備える。ＣＰＵコア１０には、レイテンシの小さい高速バス７０が接続される。高速バス７０には、ローカルメモリ５０と、バスブリッジ２０とが接続される。バスブリッジ２０には、レイテンシの大きい低速バス７２が接続される。バスブリッジ２０は、高速バス７０と低速バス７２（ＰＢ）間の周波数変換を行う。低速バス７２には、シリアルインターフェース、Ａ／Ｄコンバータ、ＣＡＮ、タイマー機能等の周辺機能６０が接続されている。ここでは、一例として、高速バス７０は、バス幅が６４ビットであり、動作周波数が１９２ＭＨｚである。低速バス７２は、バス幅が８ビットであり、動作周波数が９．６ＭＨｚである。
【００１２】
図２は、図１のバスブリッジ２０と周辺機能６０の機能概念図である。図２では、代表として、特定の１つの周辺機能６０Ａ（本例では、ＣＡＮ）が示される。他の周辺機能に関しては、周辺機能６０Ａと同様であってよい。
【００１３】
バスブリッジ２０は、図２に示すように、データを蓄積するバッファ２２と、アドレス・リクエスト管理部（ＡＲＣ）２４と、終了制御部（ＦＣ）２６と、データ分配部（ＤＤ）２８と、シリアル・パラレル制御部３０とを備える。
【００１４】
アドレス・リクエスト管理部２４は、ＣＰＵコア１０からのアドレス・リクエストを解釈し、周辺機能６０Ａにアドレス・リクエストを発行する。終了制御部２６は、周辺機能６０Ａから送られる終了フラグを解釈する。また、終了制御部２６は、必要データ量を管理し、終了フラグをＣＰＵコア１０に送る。
【００１５】
データ分配部２８は、周辺機能６０Ａからシリアル又はパラレル（バス）で送信されたデータをバッファ２２に分配・格納する。
【００１６】
シリアル・パラレル制御部３０は、低速バス７２のシリアル・パラレル設定レジスタ３２（後述）を参照して、シリアルでデータ出力するかパラレルでデータ出力するかの信号（シリアル・パラレル切換信号）を周辺機能６０Ａ及びデータ分配部２８へ送る。シリアル・パラレル制御部３０の構成及び機能等は、後に詳説する。
【００１７】
周辺機能６０Ａは、図２に示すように、シリアル・パラレル制御部６２Ａと、出力段６４Ａとを備える。
【００１８】
シリアル・パラレル制御部６２Ａは、シリアル・パラレル制御部３０からのシリアル・パラレル切換信号に従って、周辺機能６０Ａの出力段６４Ａからシリアルでデータ出力するかパラレルでデータ出力するかを切り換える。
【００１９】
図３は、バスブリッジ２０と周辺機能６０Ａとの間等のデータ授受の流れを示すフローチャートである。
【００２０】
ステップ３００では、シリアル・パラレル制御部３０は、シリアルでデータ出力するかパラレルでデータ出力するかを判断する。この判断方法の詳細は、後述する。シリアルでデータ出力する場合は、ステップ３０２に進み、データ分配部（ＤＤ）２８をシリアル変換に指定すると共に、周辺機能６０Ａにシリアル通信でデータ出力することを通知する。他方、パラレルでデータ出力する場合は、ステップ３０４に進み、データ分配部（ＤＤ）２８をパラレル変換に指定すると共に、周辺機能６０Ａにパラレル通信でデータ出力することを通知する。
【００２１】
ステップ３０６では、ＣＰＵコア１０から周辺機能６０Ａ（ＣＡＮ）へのアドレス・リクエストが発行されると、バスブリッジ２０のアドレス・リクエスト管理部２４がアドレス・リクエストを解釈し、対応する周辺機能６０Ａを選択してアドレス・リクエストを送信する。このアドレス・リクエストが送信されると、あるレイテンシ経過後に、周辺機能６０Ａから低速バス７２にてパラレル通信方式でデータが出力される。この際、低速バス７２は、低速バス７２の８本の線ＰＢ（７：０）が使用され、データがバッファ２２に格納される（ステップ３０８）。
【００２２】
ステップ３１０では、ＣＰＵコア１０から周辺機能６０Ａ（ＣＡＮ）へのアドレス・リクエストが発行されると、バスブリッジ２０のアドレス・リクエスト管理部２４がアドレス・リクエストを解釈し、対応する周辺機能６０Ａを選択してアドレス・リクエストを送信する。このアドレス・リクエストが送信されると、あるレイテンシ経過後に、周辺機能６０Ａから低速バス７２にてシリアル通信方式でデータが出力される。この際、低速バス７２は、特定の１本の線ＰＢ（０）が使用される。このようにして、データは、低速バス７２からデータ分配部（ＤＤ）２８に送られる。続くステップ３１２では、データ分配部（ＤＤ）２８において、周辺機能６０Ａからのデータをシリアル方式に応じて整理してバッファ２２に格納する。
【００２３】
ステップ３１４では、ＣＰＵコア１０が必要とするデータ（例えば６４ビット分のデータ）がバッファ２２に格納されると、周辺機能６０Ａから終了フラグが送信され、周辺機能６０Ａから通知された終了フラグを終了制御部２６が解釈し、ＣＰＵコア１０に通知する。
【００２４】
ステップ３１６では、バッファ２２に格納されたデータ（例えば６４ビット分のデータ）を高速バス７０でＣＰＵコア１０に転送する。
【００２５】
図４（Ａ）は、パラレルでデータが出力される際のパラレル通信波形を示し、図３のステップ３０６．３０８の処理に対応する。図４（Ｂ）は、シリアルでデータが出力される際のパラレル通信波形を示し、図３のステップ３１０．３１２の処理に対応する。
【００２６】
パラレルでデータが出力される場合、図４（Ａ）に示すように、アドレス・リクエストが発行されると、あるレイテンシ（本例では、２サイクル）経過後に、周辺機能６０Ａから低速バス７２にデータが８ビットずつ出力される。図４（Ａ）において、五角形の記号で指示されるデータ０，１，．．．，７は、８ビットのデータの集合を表す。バスブリッジ２０のバッファ２２に低速バス７２から６４ビットのデータが溜まると、高速バス７０を介し６４ビットのデータ（図中、五角形の記号で指示されるデータ＃０）がＣＰＵコア１０に送られる。即ち、動作クロック数で、アドレス発行から１８０サイクル後に高速バス７０にデータが返されることになる。
【００２７】
他方、シリアルでデータが出力される場合、図４（Ｂ）に示すように、アドレス・リクエストが発行されると、あるレイテンシ（本例では、２サイクル）経過後に、周辺機能６０Ａから低速バス７２にデータが１ビットずつ出力される。バスブリッジ２０のバッファ２２に低速バス７２から６４ビットのデータが溜まると、高速バス７０を介し６４ビットのデータ（図中、五角形の記号で指示されるデータ＃０）がＣＰＵコア１０に送られる。即ち、動作クロック数で、アドレス発行から１３００サイクル後に高速バス７０にデータが返されることになる。
【００２８】
このように本実施例では、ＣＰＵコア１０からのアドレス・リクエストに応じて、周辺機能６０からＣＰＵコア１０にデータを返す際、シリアルでデータ出力を行うか若しくはパラレルでデータ出力を行うかを切り換えることで、データを返すタイミングを調整することができる（以下、この機能を、「データ転送タイミング調整機能」ともいう）。
【００２９】
図５は、シリアル・パラレル制御部３０において採用されてもよいシリアル・パラレルの選択観点の一例を示す表図である。
【００３０】
図５に示すように、シリアル・パラレルの選択（切換）は、割当帯域（ＣＰＵコア１０の処理負荷）、周辺機能６０の応答性、周辺機能６０の使用頻度、及び、送信データ量の少なくともいずれか１つに基づいて実現されてもよい。
【００３１】
割当帯域（ＣＰＵコア１０の処理負荷）に基づく場合、割当帯域が高い場合は、パラレルが選択され、割当帯域が低い場合は、シリアルが選択される。これは、割当帯域が高い場合は、データを速く送信する要求が高いのに対して、割当帯域が低い場合は、データを速く送信する必要がないためである。割当帯域が高いか低いかを判断するための閾値は、上述のようなシリアル時においてＣＰＵコア１０への６４ビットのデータの送信に要する時間（上記の例では、１３００サイクル）や、パラレル時において同データ送信に要する時間（上記の例では、１８０サイクル）、及びそれらの間の時間差と割当帯域との関係を考慮して任意に設定されてもよい。
【００３２】
周辺機能６０の応答性に基づく場合、周辺機能６０の応答性が速い場合は、パラレルが選択され、周辺機能６０の応答性が遅い場合は、シリアルが選択される。これは、応答性の速い周辺機能６０の場合は、データを速く送信する要求が高いのに対して、応答性の低い周辺機能６０の場合は、データを速く送信する必要がないためである。周辺機能６０の応答性が速いか遅いかを判断するための閾値は、上述のようなシリアル時においてＣＰＵコア１０への６４ビットのデータの送信に要する時間や、パラレル時において同データ送信に要する時間、及びそれらの間の時間差と周辺機能６０の応答性との関係を考慮して任意に設定されてもよい。
【００３３】
周辺機能６０の使用頻度に基づく場合、周辺機能６０の使用頻度が多い場合は、パラレルが選択され、周辺機能６０の使用頻度が少ない場合は、シリアルが選択される。これは、周辺機能６０の使用頻度が多い場合は、複数の処理で周辺機能６０を使用する場合が多く、周辺機能６０の占有を防ぐためにデータを速く送信する要求が高いのに対して、周辺機能６０の使用頻度が少ない場合は、周辺機能６０を長時間占有しても問題にならない場合が多く、データを速く送信する必要がないためである。周辺機能６０の使用頻度が多いか少ないかを判断するための閾値は、同様に、上述のようなシリアル時においてＣＰＵコア１０への６４ビットのデータの送信に要する時間や、パラレル時において同データ送信に要する時間、及びそれらの間の時間差と周辺機能６０の使用頻度との関係を考慮して任意に設定されてもよい。
【００３４】
送信データ量に基づく場合、送信データ量が多い場合は、パラレルが選択され、送信データ量が少ない場合は、シリアルが選択される。これは、送信データ量が多い場合は、データを速く送信する要求が高いのに対して、送信データ量が少ない場合は、データを速く送信する必要がないためである。送信データ量が多いか少ないかを判断するための閾値は、同様に、上述のようなシリアル時においてＣＰＵコア１０への当該送信データ量のデータの送信に要する時間や、パラレル時において同データ送信に要する時間、及びそれらの間の時間差を考慮して任意に設定されてもよい。
【００３５】
シリアル・パラレル制御部３０は、図５に示すような選択観点に従って、シリアル・パラレルの選択（切換）を静的又は動的に行う。ここで、静的とは、スタートアップでシリアル・パラレルの設定を行い、動作中はシリアル・パラレルの変更が不可であることを意味する。動的とは、スタートアップでシリアル・パラレルの設定を行い、一部の動作のみシリアル・パラレルの設定を変更する半動的な態様や、シリアル・パラレルの設定を動作毎、機能毎、処理毎等で判定し、シリアル・パラレルの設定を変更する完全な動的な態様を含んでよい。
【００３６】
図６は、静的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【００３７】
シリアル・パラレル制御部３０は、図６に示すように、シリアル・パラレル設定レジスタ３２と、シリアル・パラレル切換回路３４とを備える。
【００３８】
シリアル・パラレル設定レジスタ３２は、ＣＰＵコア１０から送られてくるシリアル・パラレル設定値（低速バス７２のシリアル・パラレルの切換設定情報）を保持するレジスタである。
【００３９】
シリアル・パラレル切換回路３４は、シリアル・パラレル設定レジスタ３２の設定情報（シリアル・パラレル設定値）に基づいてシリアル・パラレル切換信号を発生する。尚、このシリアル・パラレル切換信号は、図３のステップ３０２−３０４で利用される。
【００４０】
図７は、図６に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。
【００４１】
図７に示すように、マイコン１のスタートアップ処理において、ＣＰＵコア１０から送られてくるシリアル・パラレル設定値に基づいてシリアル・パラレル設定レジスタ３２が設定される。尚、この処理は、図３のステップ３００の判断処理の一例に相当する。
【００４２】
図８は、半動的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【００４３】
シリアル・パラレル制御部３０は、図８に示すように、シリアル・パラレル設定レジスタ３２と、シリアル・パラレル切換回路３４と、必要ビット数判定器３６と、処理判定器３８とを備える。
【００４４】
必要ビット数判定器３６は、ＣＰＵコア１０から送られてくるビット数情報に基づいて、単ビットのみのデータ授受（例えばフラグ情報のみのデータ授受）であるか否かを判定する。処理判定器３８は、ＣＰＵコア１０から送られてくる処理情報に基づいて、周辺機能６０に実行させる処理が所定の処理であるか否かを判定する。所定の処理は、図５に示した観点から速い通信速度を必要としない場合等が想定され、例えばポーリング動作や、高速に動く周辺機能６０用のハードウェアが提供されているが実際は低速な機能であってよい場合等が該当する。
【００４５】
図９は、図８に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。図９に示す処理は、図３のステップ３００の判断処理の一例に相当する。
【００４６】
ステップ９００では、マイコン１のスタートアップ処理において、ＣＰＵコア１０から送られてくるシリアル・パラレル設定値に基づいてシリアル・パラレル設定レジスタ３２が設定される。このとき、ＣＰＵコア１０から送られてくるシリアル・パラレル設定値は、デフォルト値である。
【００４７】
ステップ９０２では、必要ビット数判定器３６において、ＣＰＵコア１０から送られてくるビット数情報に基づいて、単ビットのみのデータ授受であるか否かが判定される。単ビットのみのデータ授受である場合は、ステップ９０６に進み、それ以外の場合は、ステップ９０４に進む。
【００４８】
ステップ９０４では、処理判定器３８において、ＣＰＵコア１０から送られてくる処理情報に基づいて、周辺機能６０に実行させる処理が所定の処理であるか否かが判定される。所定の処理である場合は、ステップ９０６に進み、それ以外の場合は、ステップ９０８に進む。
【００４９】
ステップ９０６では、シリアル・パラレル切換信号が“シリアル”に設定され送信される（図３のステップ３０２参照）。
【００５０】
ステップ９０８では、シリアル・パラレル設定レジスタ３２のデフォルト設定に基づいてシリアル・パラレル切換信号が生成される。例えば、シリアル・パラレル設定レジスタ３２のデフォルト設定が“パラレル”である場合は、シリアル・パラレル切換信号が“パラレル”に設定され送信される（図３のステップ３０４参照）。
【００５１】
図１０は、完全な動的な切換を実現するときのシリアル・パラレル制御部３０の詳細の一例を示す図である。
【００５２】
シリアル・パラレル制御部３０は、図１０に示すように、シリアル・パラレル設定レジスタ３２と、シリアル・パラレル切換回路３４と、必要ビット数判定器３６と、処理判定器３８と、スケジュール判定器３９とを備える。
【００５３】
図１０に示す構成は、図８に示した構成に比べて、スケジュール判定器３９を追加した点が異なるが、半動的な態様との動作上の相違は、シリアル・パラレルのデフォルト設定を行わず、図５に示した観点等を用いて、動的にシリアル・パラレルの切換を行う点である。
【００５４】
図１１は、図１０に示したシリアル・パラレル制御部３０の動作を示すフローチャートである。図１１に示す処理は、図３のステップ３００の判断処理の一例に相当する。
【００５５】
ステップ１１００では、スケジュール判定器３９において、ＣＰＵコア１０から送られてくるスケジュール情報に基づいて、スケジュール割当が小さいか否か（即ち割当帯域が小さいか否か）が判定される。スケジュール割当が小さい場合は、ステップ１１０６に進み、それ以外の場合は、ステップ１１０２に進む。
【００５６】
ステップ１１０２では、必要ビット数判定器３６において、ＣＰＵコア１０から送られてくるビット数情報に基づいて、単ビットのみのデータ授受であるか否かが判定される。単ビットのみのデータ授受である場合は、ステップ１１０６に進み、それ以外の場合は、ステップ１１０４に進む。
【００５７】
ステップ１１０４では、処理判定器３８において、ＣＰＵコア１０から送られてくる処理情報に基づいて、周辺機能６０に実行させる処理が所定の処理であるか否かが判定される。所定の処理は、図８及び図９に関連して説明した所定の処理と同様であってよい。所定の処理である場合は、ステップ１１０６に進み、それ以外の場合は、ステップ１１０８に進む。
【００５８】
ステップ１１０６では、シリアル・パラレル切換信号が“シリアル”に設定され送信される（図３のステップ３０２参照）。
【００５９】
ステップ１１０８では、シリアル・パラレル切換信号が“パラレル”に設定され送信される（図３のステップ３０４参照）。
【００６０】
図１２は、ソフトウェアを利用して実装した場合のシリアル・パラレル制御部３０の詳細の一例を示す図である。図１２に示すシリアル・パラレル制御部３０は、図１０に示した構成に対して、必要ビット数判定器３６と、処理判定器３８と、スケジュール判定器３９とが、ソフトウェア部３０Ｂで構成されている点が主に異なる。ハードウェア部３０Ａは、図６に示した構成と同様であってよい。ソフトウェア部３０Ｂは、図５に示した観点から判定を行い、判定結果に応じたシリアル・パラレル設定値を出力する。ハードウェア部３０Ａには、シリアル・パラレル設定値がソフトウェア部３０Ｂから入力される。尚、ソフトウェア部３０Ｂは、ＣＰＵコア１０により実現されてもよい。
【００６１】
図１３は、図１２のソフトウェア部３０Ｂの動作フローチャートを示す。
【００６２】
ステップ１３００では、マイコン１のスタートアップ処理においてシリアル・パラレル設定レジスタ３２が設定される。このとき、シリアル・パラレル設定値は、所定の初期値であってよい。
【００６３】
ステップ１３０２では、ソフトウェア部３０Ｂのスケジュール判定器３９において、スケジュール情報に基づいて、スケジュール割当が小さいか否か（即ち割当帯域が小さいか否か）が判定される。スケジュール割当が小さい場合は、ステップ１３０８に進み、それ以外の場合は、ステップ１３０４に進む。
【００６４】
ステップ１３０４では、ソフトウェア部３０Ｂの必要ビット数判定器３６において、ビット数情報に基づいて、単ビットのみのデータ授受であるか否かが判定される。単ビットのみのデータ授受である場合は、ステップ１３０８に進み、それ以外の場合は、ステップ１３０６に進む。
【００６５】
ステップ１３０６では、ソフトウェア部３０Ｂの処理判定器３８において、処理情報に基づいて、周辺機能６０に実行させる処理が所定の処理であるか否かが判定される。所定の処理は、図８及び図９に関連して説明した所定の処理と同様であってよい。所定の処理である場合は、ステップ１３０８に進み、それ以外の場合は、ステップ１３１０に進む。
【００６６】
ステップ１３０８では、シリアル・パラレル設定値“シリアル”が生成され、シリアル・パラレル設定レジスタ３２が“シリアル”に設定される。これに伴い、シリアル・パラレル切換信号“シリアル”が送信される（図３のステップ３０２参照）。
【００６７】
ステップ１３１０では、シリアル・パラレル設定値“パラレル”が生成され、シリアル・パラレル設定レジスタ３２が“パラレル”に設定される。これに伴い、シリアル・パラレル切換信号“パラレル”が送信される（図３のステップ３０４参照）。
【００６８】
図１４は、その他の実施例によるバスブリッジ２０と周辺機能６０の機能概念図である。図１４では、上述の図２と同様、代表として、特定の１つの周辺機能６０Ａ（本例では、ＣＡＮ）が示される。他の周辺機能に関しては、周辺機能６０Ａと同様であってよい。
【００６９】
図１４に示す実施例は、周辺機能６０Ａの回路変更を行わずに、図２に示した実施例と同様の機能を実現するものである。具体的には、図２に示した周辺機能６０Ａ（ＣＡＮ）の中でシリアル出力かパラレル出力かを切り替えるための機能（シリアル・パラレル制御部６２Ａ）に代えて、シリアル・パラレル変換機（ＣＶ）８０が設けられる。図２に示した実施例と同様であってよい構成は、図２に示した同一の参照符号を付して説明を省略する。
【００７０】
シリアル・パラレル変換機８０は、図１４に示すように、バスブリッジ２０と周辺機能６０Ａとの間に設けられ、周辺機能６０Ａからの出力である低速バス（ＰＢ（７：０））７２に接続する。シリアル・パラレル変換機８０には、バスブリッジ２０のシリアル・パラレル制御部３０から上述と同様のシリアル・パラレル切換信号が入力される。シリアル・パラレル変換機８０は、シリアル・パラレル切換信号に応じて、低速バス（ＰＢ（７：０））７２のデータを変換して送信する。シリアル・パラレル変換機８０で変換されたデータは、バスブリッジ２０に送られ、図３に示したデータ処理と同様の処理によりＣＰＵコア１０に送られる。
【００７１】
図１５は、その他の実施例によるバスブリッジ２０と周辺機能６０の機能概念図である。図１５では、複数の周辺機能６０Ａ，６０Ｂ，６０Ｃに同時にアクセスすることが可能な構成が示される。図示の例では、周辺機能６０として、ＣＡＮである周辺機能６０Ａに加えて、２つのＡ／Ｄコンバータ（以下、それぞれ、Ａ／Ｄ，Ａ／Ｄ２ともいう）である周辺機能６０Ｂ，６０Ｃの合計３つが存在する場合が想定される。
【００７２】
バスブリッジ２０は、図１５に示すように、データを蓄積するバッファ２２と、アドレス・リクエスト管理部（ＡＲＣ）２４と、アドレス・リクエスト順記憶部（ＡＲＭ）２５と、終了制御部（ＦＣ）２６と、データ分配部（ＤＤ）２８と、シリアル・パラレル制御部３０とを備える。
【００７３】
バッファ２２は、複数の周辺機能６０Ａ，６０Ｂ，６０Ｃへの同時のアクセスが可能となるように、複数設けられる。図示の例では、バッファ２２は、低速バス７２の各線に対応して計８つのバッファ２２０，２２１，．．．，２２７からなる。各バッファ２２０，２２１，．．．，２２７は、高速バス７０に選択的に接続される。各バッファ２２０，２２１，．．．，２２７は、周辺機能６０Ａ，６０Ｂ，６０Ｃからシリアルでデータを送る場合に、低速バス７２のＰＢ（０）のデータをバッファ（ＢＦ０）２２０に格納し、低速バス７２のＰＢ（１）のデータをバッファ（ＢＦ１）２２１に格納し、といった具合に格納することで、複数の周辺機能６０Ａ，６０Ｂ，６０Ｃからデータを同時に送信できるように構成されている。
【００７４】
アドレス・リクエスト順記憶部２５は、ＣＰＵコア１０から発行されたアドレス・リクエストの順番を記憶し、周辺機能６０Ａ，６０Ｂ，６０Ｃから高速バス７０へデータを送付する際の順番を保持するために使用される。
【００７５】
周辺機能６０Ａ，６０Ｂ，６０Ｃは、それぞれ、シリアル・パラレル制御部６２Ａ，６２Ｂ，６２Ｃと、出力段６４Ａ，６４Ｂ，６４Ｃとを備える。図示の例では、全ての周辺機能６０Ａ，６０Ｂ，６０Ｃへのアドレス・リクエスト及び低速バス７２は、共有されているため、それぞれ、周辺機能６０Ａ，６０Ｂ，６０Ｃのそれぞれの入力バッファ（図示せず）及び出力段６４Ａ，６４Ｂ，６４Ｃに接続される。シリアル・パラレル制御部６２Ａ，６２Ｂ，６２Ｃは、上述の如く、バスブリッジ２０のシリアル・パラレル制御部３０からのシリアル・パラレル切換信号に従って、周辺機能６０Ａ，６０Ｂ，６０Ｃの出力段６４Ａ，６４Ｂ，６４Ｃからシリアルでデータ出力するかパラレルでデータ出力するかを切り換える。尚、図１５に示す構成においても、シリアル・パラレル制御部６２Ａ，６２Ｂ，６２Ｃに代えて、図１４に示したようなシリアル・パラレル変換機（ＣＶ）が設定されてもよい。
【００７６】
図１６は、図１５に示すその他の実施例によるバスブリッジ２０と周辺機能６０の間等のデータ授受の流れを示すフローチャートである。図１６に示すフローチャートは、一例として、図１７に示すような順でＣＰＵコア１０が周辺機能６０Ａ，６０Ｂ，６０Ｃにアクセスした場合に関する。ここでは、図１７に示すように、最初に、ＣＰＵコア１０から、周辺機能（Ａ／Ｄ）６０Ｂから６４ビットのデータを取得するアドレス・リクエストが発行され、２番目に、ＣＰＵコア１０から、周辺機能（ＣＡＮ）６０Ａから１６ビットのデータを取得するアドレス・リクエストが発行され、３番目に、ＣＰＵコア１０から、周辺機能（Ａ／Ｄ２）６０Ｃから３２ビットのデータを取得するアドレス・リクエストが発行される場合が想定される。
【００７７】
図１６を参照するに、ステップ１６００では、シリアル・パラレル制御部３０は、シリアルでデータ出力するかパラレルでデータ出力するかを判断する。この判断方法は、上述した方法のいずれかであってよい（図５等参照）。シリアルでデータ出力する場合は、ステップ１６０１に進み、データ分配部（ＤＤ）２８をシリアル変換に指定すると共に、周辺機能６０Ａ，６０Ｂ，６０Ｃのシリアル・パラレル制御部６２Ａ，６２Ｂ，６２Ｃにシリアル通信でデータ出力することを通知する。他方、パラレルでデータ出力する場合は、ステップ１６３１に進み、データ分配部（ＤＤ）２８をパラレル変換に指定すると共に、シリアル・パラレル制御部６２Ａ，６２Ｂ，６２Ｃにパラレル通信でデータ出力することを通知する。
【００７８】
ステップ１６０２では、ＣＰＵコア１０から周辺機能６０Ｂ（Ａ／Ｄ）へのアドレス・リクエストが発行される。
【００７９】
ステップ１６０３では、バスブリッジ２０のアドレス・リクエスト管理部２４がアドレス・リクエストを解釈し、対応する周辺機能６０Ｂ（Ａ／Ｄ）を選択してアドレス・リクエストを送信する。これと同時に、アドレス・リクエスト管理部２４は、アドレス・リクエスト順記憶部２５に、周辺機能６０Ｂ（Ａ／Ｄ）へのアクセスが１番最初のリクエストである旨を記録する。ステップ１６０３の処理が終了すると、ステップ１６０４以降の処理と、ステップ１６１１以降の処理が、並列的に実行される。
【００８０】
ステップ１６１１では、ＣＰＵコア１０から周辺機能６０Ａ（ＣＡＮ）へのアドレス・リクエストが発行される。
【００８１】
ステップ１６１２では、バスブリッジ２０のアドレス・リクエスト管理部２４がアドレス・リクエストを解釈し、対応する周辺機能６０Ａ（ＣＡＮ）を選択してアドレス・リクエストを送信する。これと同時に、アドレス・リクエスト管理部２４は、アドレス・リクエスト順記憶部２５に、周辺機能６０Ａ（ＣＡＮ）へのアクセスが２番目のリクエストである旨を記録する。ステップ１６１２の処理が終了すると、ステップ１６０４以降の処理と、ステップ１６１３以降の処理と、ステップ１６２１以降の処理が、並列的に実行される。
【００８２】
ステップ１６２１では、ＣＰＵコア１０から周辺機能６０Ｃ（Ａ／Ｄ２）へのアドレス・リクエストが発行される。
【００８３】
ステップ１６２２では、バスブリッジ２０のアドレス・リクエスト管理部２４がアドレス・リクエストを解釈し、対応する周辺機能６０Ｃ（Ａ／Ｄ２）を選択してアドレス・リクエストを送信する。これと同時に、アドレス・リクエスト管理部２４は、アドレス・リクエスト順記憶部２５に、周辺機能６０Ｃ（Ａ／Ｄ２）へのアクセスが３番目のリクエストである旨を記録する。ステップ１６２２の処理が終了すると、ステップ１６０４以降の処理と、ステップ１６１３以降の処理と、ステップ１６２３以降の処理が並列的に実行される。
【００８４】
ステップ１６０４，１６１３，１６２３では、それぞれ、上記ステップ１６０３，１６１２，１６２２の処理後、あるレイテンシ経過後、アドレス・リクエストに応答して、周辺機能６０Ｂ（Ａ／Ｄ）、周辺機能６０Ａ（ＣＡＮ）及び周辺機能６０Ｃ（Ａ／Ｄ２）からそれぞれ低速バス７２の線ＰＢ（０），ＰＢ（１），ＰＢ（２）を介してシリアルデータ通信が開始される。周辺機能６０Ｂ（Ａ／Ｄ）、周辺機能６０Ａ（ＣＡＮ）及び周辺機能６０Ｃ（Ａ／Ｄ２）からの各データは、バスブリッジ２０のデータ分配部（ＤＤ）２８に送られる。
【００８５】
ステップ１６０５，１６１４，１６２４では、それぞれ、データ分配部（ＤＤ）２８において、周辺機能６０Ｂ（Ａ／Ｄ）、周辺機能６０Ａ（ＣＡＮ）及び周辺機能６０Ｃ（Ａ／Ｄ２）からの各データをシリアル方式に応じて整理してバッファ２２０，２２１，２２２にそれぞれ格納する。
【００８６】
ステップ１６０６では、ＣＰＵコア１０が必要とするデータ（本例では、６４ビット分のデータ）がバッファ２２０に格納されると、周辺機能６０Ｂ（Ａ／Ｄ）から終了フラグが送信され、周辺機能６０Ｂ（Ａ／Ｄ）から通知された終了フラグを終了制御部２６が解釈し、ＣＰＵコア１０に通知し、ステップ１６０７に進む。
【００８７】
ステップ１６０７では、バッファ２２０に格納されたデータ（本例では、６４ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。ステップ１６０７の処理（データ転送）が終了すると、後述のステップ１６１６の判定条件が満たされることになる。
【００８８】
ステップ１６１５では、ＣＰＵコア１０が必要とするデータ（本例では、１６ビット分のデータ）がバッファ２２１に格納されると、周辺機能６０Ａ（ＣＡＮ）から終了フラグが送信され、周辺機能６０Ａ（ＣＡＮ）から通知された終了フラグを終了制御部２６が解釈する。
【００８９】
ステップ１６１６では、上記のステップ１６０７での周辺機能６０Ｂ（Ａ／Ｄ）からのデータ（Ａ／Ｄデータ）のＣＰＵコア１０への転送が完了したか否かが判定される。Ａ／ＤデータのＣＰＵコア１０への転送が完了している場合は、周辺機能６０Ａ（ＣＡＮ）に係る終了フラグをＣＰＵコア１０に通知し、ステップ１６１７に進む。他方、Ａ／ＤデータのＣＰＵコア１０への転送が完了していない場合は、Ａ／ＤデータのＣＰＵコア１０への転送が完了するまで待ち状態となる。
【００９０】
ステップ１６１７では、バッファ２２１に格納されたデータ（本例では、１６ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。ステップ１６１７の処理（データ転送）が終了すると、後述のステップ１６２６の判定条件が満たされることになる。
【００９１】
ステップ１６２５では、ＣＰＵコア１０が必要とするデータ（本例では、３２ビット分のデータ）がバッファ２２２に格納されると、周辺機能６０Ｃ（Ａ／Ｄ２）から終了フラグが送信され、周辺機能６０Ｃ（Ａ／Ｄ２）から通知された終了フラグを終了制御部２６が解釈する。
【００９２】
ステップ１６２６では、上記ステップ１６１７での周辺機能６０Ａ（ＣＡＮ）からのデータ（ＣＡＮデータ）のＣＰＵコア１０への転送が完了したか否かが判定される。ＣＡＮデータの転送が完了している場合は、周辺機能６０Ｃ（Ａ／Ｄ２）に係る終了フラグをＣＰＵコア１０に通知し、ステップ１６２７に進む。他方、ＣＡＮデータの転送が完了していない場合は、ＣＡＮデータのＣＰＵコア１０への転送が完了するまで待ち状態となる。
【００９３】
ステップ１６２７では、バッファ２２２に格納されたデータ（本例では、３２ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。これにより、シリアル通信が完了する。尚、このようにして実行されるシリアル通信の動作波形が図８に示されている。
【００９４】
パラレル通信の場合、アドレス・リクエストの順番に対応して、周辺機能６０Ｂ（Ａ／Ｄ）、周辺機能６０Ａ（ＣＡＮ）及び周辺機能６０Ｃ（Ａ／Ｄ２）の順にパラレルによりデータが送信される。
【００９５】
具体的には、ステップ１６３２では、周辺機能６０Ｂ（Ａ／Ｄ）からバスブリッジ２０にデータがパラレルで送信される。即ち、低速バス７２の８本の線ＰＢ（７：０）を使用して周辺機能６０Ｂ（Ａ／Ｄ）からデータがパラレルで送信される。
【００９６】
ステップ１６３３では、低速バス７２の８本の線ＰＢ（７：０）により周辺機能６０Ｂ（Ａ／Ｄ）からのデータがバッファ２２０に格納される。
【００９７】
ステップ１６３４では、ＣＰＵコア１０が必要とするデータ（本例では、６４ビット分のデータ）がバッファ２２０に格納されると、周辺機能６０Ｂ（Ａ／Ｄ）から終了フラグが送信され、周辺機能６０Ｂ（Ａ／Ｄ）から通知された終了フラグを終了制御部２６が解釈し、ＣＰＵコア１０に通知する。そして、バッファ２２０に格納されたデータ（本例では、６４ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。この転送が終了すると、ステップ１６３５に進む。
【００９８】
ステップ１６３５では、周辺機能６０Ａ（ＣＡＮ）からバスブリッジ２０にデータがパラレルで送信される。即ち、低速バス７２の８本の線ＰＢ（７：０）を使用して周辺機能６０Ａ（ＣＡＮ）からデータがパラレルで送信される。
【００９９】
ステップ１６３６では、低速バス７２の８本の線ＰＢ（７：０）により周辺機能６０Ａ（ＣＡＮ）からのデータがバッファ２２０に格納される。
【０１００】
ステップ１６３７では、ＣＰＵコア１０が必要とするデータ（本例では、１６ビット分のデータ）がバッファ２２０に格納されると、周辺機能６０Ａ（ＣＡＮ）から終了フラグが送信され、周辺機能６０Ａ（ＣＡＮ）から通知された終了フラグを終了制御部２６が解釈し、ＣＰＵコア１０に通知する。そして、バッファ２２０に格納されたデータ（本例では、１６ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。この転送が終了すると、ステップ１６３８に進む。
【０１０１】
ステップ１６３８では、周辺機能６０Ｃ（Ａ／Ｄ２）からバスブリッジ２０にデータがパラレルで送信される。即ち、低速バス７２の８本の線ＰＢ（７：０）を使用して周辺機能６０Ｃ（Ａ／Ｄ２）からデータがパラレルで送信される。
【０１０２】
ステップ１６３９では、低速バス７２の８本の線ＰＢ（７：０）により周辺機能６０Ｃ（Ａ／Ｄ２）からのデータがバッファ２２０に格納される。
【０１０３】
ステップ１６４０では、ＣＰＵコア１０が必要とするデータ（本例では、３２ビット分のデータ）がバッファ２２０に格納されると、周辺機能６０Ｃ（Ａ／Ｄ２）から終了フラグが送信され、周辺機能６０Ｃ（Ａ／Ｄ２）から通知された終了フラグを終了制御部２６が解釈し、ＣＰＵコア１０に通知する。そして、バッファ２２０に格納されたデータ（本例では、３２ビット分のデータ）が高速バス７０でＣＰＵコア１０に送られる。この転送が終了すると、パラレル通信が完了する。
【０１０４】
図１８は、図１７に示したフローチャートに従って実行されるシリアル通信の動作波形を示す図である。
【０１０５】
図１５に示すその他の実施例によれば、低速バス７２は、１つの周辺機能６０（例えば、周辺機能６０Ｂ）へのアクセスがなされていても、低速バス７２の空いている線ＰＢ（１）、ＰＢ（２）等で他の周辺機能６０（例えば、周辺機能６０Ａ，６０Ｃ）とのデータ授受を行うことができる。これにより、アドレス・リクエスト発行後のレイテンシの隠蔽効果を期待することができる。また、ＣＰＵコア１０から周辺機能６０Ａ，６０Ｂ，６０Ｃへのアクセス順を保存しているので、その順序でＣＰＵコア１０に周辺機能６０Ａ，６０Ｂ，６０Ｃからのデータを渡すことができる。
【０１０６】
図１９は、本発明によるデータ通信制御装置のその他の一実施例（実施例２）を具現化するマイコン２の要部構成を示す図である。
【０１０７】
本実施例２は、上述の実施例１（図１等参照）に対して、マイコン２が、複数のＣＰＵコア１０Ａ，１０Ｂを搭載するマルチコア・マイコンである点が主に異なる。図１９に示すように、ＣＰＵコア１０Ａ，１０Ｂは、共通のバスブリッジ２０に高速バス７０Ａ，７０Ｂに接続され、バスブリッジ２０を介して、共通の低速バス７２により周辺機能６０に接続される。ここでは、一例として、高速バス７０Ａ，７０Ｂは、バス幅が６４ビットであり、動作周波数が９６ＭＨｚである。低速バス７２は、バス幅が８ビットであり、動作周波数が９．６ＭＨｚである。
【０１０８】
マイコン２は、上述の実施例１で説明したものと同様のデータ転送タイミング調整機能（図２、図１４、図１５等）を有してよい。この場合、シリアル・パラレル制御部３０におけるシリアル・パラレルの切換判断は、図５に示した観点を考慮しつつ、ＣＰＵコア１０Ａからのアドレス・リクエストであるか又はＣＰＵコア１０Ｂからのアドレス・リクエストであるかに応じて動的な態様で実現されてもよい。
【０１０９】
尚、図１９に示す実施例２では、マルチコア・マイコンのコア数は２であったが、ＣＰＵコアは３つ以上存在してもよい。また、図示の例では、特定の１つの周辺機能（本例では、ＣＡＮ）が示されているが、他の周辺機能（Ａ／Ｄコンバータ）の場合も同様であり、また、複数の周辺機能が存在してもよい。
【０１１０】
図２０は、本発明によるデータ通信制御装置のその他の一実施例（実施例３）を具現化するマイコン３の要部構成を示す図である。
【０１１１】
本実施例３は、上述の実施例２（図１９）に対して、マイコン２が、複数のＣＰＵコア１０Ａ，１０Ｂを搭載するマルチコア・マイコンである点が共通するが、ＣＰＵコア１０Ａ，１０Ｂがそれぞれ独立にバスブリッジ２０Ａ，２０Ｂを有している点が主に異なる。ＣＰＵコア１０Ａ，１０Ｂは、それぞれ、バスブリッジ２０Ａ，２０Ｂを介して、低速バス７２Ａ，７２Ｂにより周辺機能６０Ａ１，６０Ａ２に接続される。ここでは、一例として、高速バス７０Ａ，７０Ｂは、バス幅が６４ビットであり、動作周波数が９６ＭＨｚである。低速バス７２Ａ，７２Ｂは、バス幅が８ビットであり、動作周波数が９．６ＭＨｚである。
【０１１２】
マイコン２は、上述の実施例１で説明したものと同様のデータ転送タイミング調整機能（図２、図１４、図１５等）を有してよい。この場合、バスブリッジ２０Ａ，２０Ｂ内のそれぞれのシリアル・パラレル制御部（図示せず）におけるシリアル・パラレルの切換は、図５に示した観点を考慮して静的な態様で実現されてよい。
【０１１３】
尚、図２０に示す実施例３では、マルチコア・マイコンのコア数は２であったが、ＣＰＵコアは３つ以上存在してもよい。また、図示の例では、特定の１つの周辺機能（本例では、ＣＡＮ）が示されているが、他の周辺機能（Ａ／Ｄコンバータ）の場合も同様であり、また、複数の周辺機能が存在してもよい。
【０１１４】
次に、本発明の好適な適用例として、複数のマイコンを上述のマイコン１，２，３へ統合する例について説明する。
【０１１５】
図２１は、３つのマイコン１００，１０２、１０４（以下、上述のマイコン１との区別のため、統合前マイコン１００，１０２、１０４という）の機能を、上述の実施例１によるマイコン１に統合した場合を示す概念図である。尚、統合の際に、統合前マイコン１００，１０２、１０４の一部の機能が省略・改良等されてもよいし、統合前マイコン１００，１０２、１０４には存在しない新たな機能が付加されてもよい。
【０１１６】
統合前マイコン１００は、動作周波数が９６ＭＨｚであり、統合前マイコン１００が使用していた高速バスは、バス幅が６４ビットであり、動作周波数が９６ＭＨｚであり、統合前マイコン１００が使用していた低速バスは、バス幅が８ビットであり、動作周波数が９．６ＭＨｚであると想定する。
【０１１７】
統合前マイコン１０２、１０４は、動作周波数が４８ＭＨｚであり、統合前マイコン１００が使用していた高速バスは、バス幅が６４ビットであり、動作周波数が４８ＭＨｚであり、統合前マイコン１００が使用していた低速バスは、バス幅が８ビットであり、動作周波数が１．２ＭＨｚであると想定する。
【０１１８】
尚、マイコン１において、高速バス７０は、動作周波数が１９２ＭＨｚであるが、これは、統合前マイコン１００，１０２、１０４の高速バスの各動作周波数の合計に合わせて設定されている。また、マイコン１において、低速バス７２は、動作周波数が９．６ＭＨｚであるが、これは、統合前マイコン１００の低速バスの動作周波数（一番高い動作周波数）に合わせて設定されている。マイコン１において、高速バス７０及び低速バス７２のバス幅は、統合前マイコン１００，１０２、１０４における同バス幅に合わせて設定されている。
【０１１９】
図２２は、統合前マイコン１００と統合前マイコン１０２（又は１０４）の動作波形の相違を示す図であり、図２２（Ａ）は、統合前マイコン１００の動作波形を示し、図２２（Ｂ）は、統合前マイコン１０２（又は１０４）の動作波形を示す。図２２に示すように、統合前マイコン１００では、アドレス発行から９０サイクル後に高速バスにデータが返されるのに対して、統合前マイコン１０２（又は１０４）では、アドレス発行から３６０サイクル後に高速バスにデータが返される。このように、統合前マイコン１００と統合前マイコン１０２（又は１０４）においては、マイコン同士のバスの動作速度に相違から、データ出力タイミングに関してマイコン間で性能差が存在する。
【０１２０】
また、統合前マイコン１００に関しては、（統合後の）マイコン１に対して低速バス７２の動作周波数に相違がないため、統合前後でデータ出力タイミングに関して相違が発生しないが、統合前マイコン１０２（又は１０４）に関しては、（統合後の）マイコン１に対して低速バス７２の動作周波数に相違が存在するため、統合前後でデータ出力タイミングに関して相違が生じる。
【０１２１】
図２３（Ａ）は、マイコン１における４８ＭＨｚ帯域割当てのパラレル通信波形を示し、図２３（Ｂ）は、マイコン１における４８ＭＨｚ帯域割当てのシリアル通信波形を示す図である。
【０１２２】
図２３（Ａ）に示すように、マイコン１における４８ＭＨｚ帯域割当てのパラレル通信では、アドレス発行から４５サイクル後に高速バスにデータが返される。他方、図２３（Ｂ）に示すように、マイコン１における４８ＭＨｚ帯域割当てのシリアル通信では、アドレス発行から３２５サイクル後に高速バスにデータが返される。ここで、図２２（Ｂ）に示したように、統合前マイコン１０２（又は１０４）では、アドレス発行から３６０サイクル後に高速バスにデータが返される。従って、マイコン１においては、統合前マイコン１０２（又は１０４）の機能についてシリアル通信によりデータの授受を行えば、統合前後のデータ出力タイミングの差異を小さくすることができることが分かる。
【０１２３】
この場合、図５に示した観点からは、統合前マイコン１００の機能に係る処理の場合は、割当帯域が高いので、パラレル通信が選択され、統合前マイコン１０２（又は１０４）の機能に係る処理の場合は、割当帯域が低いので、シリアル通信が選択されてよい。これにより、統合前後でのソフトウェア変更工数を不要又は最小限にすることができる。
【０１２４】
図２４は、統合前マイコン２００，２０２、２０４の機能を、上述の実施例２によるマイコン２に統合した場合を示す概念図である。尚、統合の際に、統合前マイコン２００，２０２、２０４の一部の機能が省略・改良等されてもよいし、統合前マイコン２００，２０２、２０４には存在しない新たな機能が付加されてもよい。
【０１２５】
統合前マイコン２００は、動作周波数が９６ＭＨｚであり、統合前マイコン２００が使用していた高速バスは、バス幅が６４ビットであり、動作周波数が９６ＭＨｚであり、統合前マイコン２００が使用していた低速バスは、バス幅が８ビットであり、動作周波数が９．６ＭＨｚであると想定する。統合前マイコン２００の機能は、マイコン２のＣＰＵコア１０Ａに移設される。
【０１２６】
統合前マイコン２０２、２０４は、動作周波数が４８ＭＨｚであり、統合前マイコン２０２、２０４が使用していた高速バスは、バス幅が６４ビットであり、動作周波数が４８ＭＨｚであり、統合前マイコン２０２、２０４が使用していた低速バスは、バス幅が８ビットであり、動作周波数が２．４ＭＨｚであると想定する。統合前マイコン２０２、２０４の機能は、マイコン２のＣＰＵコア１０Ｂに移設される。
【０１２７】
尚、マイコン２において、高速バス７０Ａは、動作周波数が９６ＭＨｚであるが、これは、統合前マイコン２００の高速バスに合わせて設定されている。また、高速バス７０Ｂは、動作周波数が９６ＭＨｚであるが、これは、統合前マイコン２０２、２０４の高速バスの各動作周波数の合計に合わせて設定されている。また、マイコン２において、低速バス７２は、動作周波数が９．６ＭＨｚであるが、これは、統合前マイコン２００の低速バスの動作周波数（一番高い動作周波数）に合わせて設定されている。また、マイコン２において、高速バス７０Ａ，７０Ｂ及び低速バス７２のバス幅は、統合前マイコン２００，２０２、２０４における同バス幅に合わせて設定されている。
【０１２８】
このような統合態様においても、図２１に示した統合態様と同様、統合前後でバスの動作速度（高速バス、低速バスの双方）が異なるため、上述のようなデータ転送タイミング調整機能が有用となる。この場合、ＣＰＵコア１０Ａからのアドレス・リクエストである場合は、割当帯域が高いので、パラレル通信が選択され、ＣＰＵコア１０Ｂからのアドレス・リクエストである場合は、割当帯域が低いので、シリアル通信が選択されてよい。これにより、統合前後でのソフトウェア変更工数を不要又は最小限にすることができる。
【０１２９】
図２５は、統合前マイコン３００，３０２、３０４の機能を、上述の実施例３によるマイコン３に統合した場合を示す概念図である。尚、統合の際に、統合前マイコン３００，３０２、３０４の一部の機能が省略・改良等されてもよいし、統合前マイコン３００，３０２、３０４には存在しない新たな機能が付加されてもよい。
【０１３０】
統合前マイコン３００は、動作周波数が９６ＭＨｚであり、統合前マイコン１００が使用していた高速バス７０は、バス幅が６４ビットであり、動作周波数が９６ＭＨｚであり、統合前マイコン３００が使用していた低速バス７２は、バス幅が８ビットであり、動作周波数が９．６ＭＨｚであると想定する。統合前マイコン３００の機能は、マイコン３のＣＰＵコア１０Ａに移設される。
【０１３１】
統合前マイコン３０２、３０４は、動作周波数が４８ＭＨｚであり、統合前マイコン３０２、３０４が使用していた高速バスは、バス幅が６４ビットであり、動作周波数が４８ＭＨｚであり、統合前マイコン３０２、３０４が使用していた低速バスは、バス幅が８ビットであり、動作周波数が２．４ＭＨｚであると想定する。統合前マイコン３０２、３０４の機能は、マイコン３のＣＰＵコア１０Ｂに移設される。
【０１３２】
尚、マイコン３において、高速バス７０Ａは、動作周波数が９６ＭＨｚであるが、これは、統合前マイコン３００の高速バスに合わせて設定されている。また、高速バス７０Ｂは、動作周波数が９６ＭＨｚであるが、これは、統合前マイコン３０２、３０４の高速バスの各動作周波数の合計に合わせて設定されている。また、マイコン３において、低速バス７２Ａ，７２Ｂは、動作周波数が９．６ＭＨｚであるが、これは、統合前マイコン３００の低速バスの動作周波数（一番高い動作周波数）に合わせて設定されている。また、マイコン３において、高速バス７０Ａ，７０Ｂ及び低速バス７２のバス幅は、統合前マイコン３００，３０２、３０４における同バス幅に合わせて設定されている。
【０１３３】
このような統合態様においても、図２１に示した統合態様と同様、統合前後で高速バス、低速バスの性能差がある場合（本例では、ＣＰＵコア１０Ｂに統合される統合前マイコン３０２、３０４）に、ＣＰＵコア１０Ａ側は通常通り低速バス７２Ａをそのまま使用し、ＣＰＵコア１０Ｂ側は上述の切換（本例では静的な切換）によるシリアル通信により統合前後のバスの転送速度の相違を小さくすることができる。
【０１３４】
以上説明した本発明の好適な適用例によれば、とりわけ、以下のような優れた効果が奏される。
【０１３５】
統合前後のマイコンのバスの動作タイミングを保証することで、統合前後でのソフトウェア変更工数を不要にすることが可能となる。また、複数のＥＣＵの機能統合時にプログラミング構造を維持することが可能となりコスト低減が可能となる。また、バス線を分離して２系統以上持つ必要が無いため、コストデメリットなしに機能統合を行うことが可能である。また、バストポロジー（ＡＰＢ，ＮＰＢ等）によらずに統合が可能となるため統合前のマイコンのバス構成を気にする必要が無くなり、統合マイコンの自由度が増大する。更に、速度面で余裕がある（遅くデータ伝送してもよい）ものについては本機能により活性化する出力段の数を減らせるため消費電力低減効果を得ることができる。
【０１３６】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
【符号の説明】
【０１３７】
１，２，３    マイコン
１０，１０Ａ，１０Ｂ    ＣＰＵコア
２０，２０Ａ，２０Ｂ    バスブリッジ
２２，２２０，２２１，２２２    バッファ
２４    アドレス・リクエスト管理部
２５    アドレス・リクエスト順記憶部
２６    終了制御部
２８    データ分配部
３０    シリアル・パラレル制御部
３０Ａ    ハードウェア部
３０Ｂ    ソフトウェア部
３２    シリアル・パラレル設定レジスタ
３４    シリアル・パラレル切換回路
３６    必要ビット数判定器
３８    処理判定器
３９    スケジュール判定器
５０    ローカルメモリ
６０，６０Ａ，６０Ｂ，６０Ｃ，６０Ａ１，６０Ａ２    周辺機能
６２Ａ，６２Ｂ，６２Ｃ    シリアル・パラレル制御部
６４Ａ，６４Ｂ，６４Ｃ    出力段
７０，７０Ａ，７０Ｂ    高速バス
７２，７２Ａ，７２Ｂ    低速バス
８０    シリアル・パラレル変換機
【図１】
2011164903.tif 000003
【図２】
2011164903.tif 000004
【図３】
2011164903.tif 000005
【図５】
2011164903.tif 000006
【図６】
2011164903.tif 000007
【図７】
2011164903.tif 000008
【図８】
2011164903.tif 000009
【図９】
2011164903.tif 000010
【図１０】
2011164903.tif 000011
【図１１】
2011164903.tif 000012
【図１２】
2011164903.tif 000013
【図１３】
2011164903.tif 000014
【図１４】
2011164903.tif 000015
【図１５】
2011164903.tif 000016
【図１６】
2011164903.tif 000017
【図１７】
2011164903.tif 000018
【図１８】
2011164903.tif 000019
【図１９】
2011164903.tif 000020
【図２０】
2011164903.tif 000021
【図２１】
2011164903.tif 000022
【図２２】
2011164903.tif 000023
【図２３】
2011164903.tif 000024
【図２４】
2011164903.tif 000025
【図２５】
2011164903.tif 000026
【図４】
2011164903.tif 000027