(57)【特許請求の範囲】
【請求項１】
マイクロコンピュータであって、
周波数が可変の第１のクロックで動作するバスマスタと、
第２のクロックで動作するバススレーブと、
メインバスを介して前記バスマスタと接続され、周辺バスを介して前記バススレーブと接続されるバス制御手段とを含み、
前記バス制御手段は、前記第１のクロックの周波数が前記第２のクロックの周波数よりも高い場合は、前記周辺バス側のバス制御信号の変化タイミングを示す第１の同期信号を用いて前記バススレーブへのバス制御信号を生成し、前記第１のクロックの周波数が前記第２のクロックの周波数よりも低い場合は、前記メインバス側のバス制御信号の変化タイミングを示す第２の同期信号を用いて前記バスマスタへのバス制御信号を生成し、
前記バススレーブは、第１の周辺バスに接続される第１のバススレーブと、第２の周辺バスに接続される第２のバススレーブとを含み、
前記マイクロコンピュータはさらに、前記バスマスタからのライトアクセスを代行して行なうライトバッファを含み、
前記ライトバッファは、前記バスマスタが前記第１のバススレーブに対するライトアクセスを行なった後、前記第２のバススレーブに対して次のアクセスを行なう場合、前記第１のバススレーブから前記ライトアクセスに対する終了通知を受けた後に、前記バスマスタからの次のアクセスを受付ける、マイクロコンピュータ。
【請求項２】
前記バスマスタは、第１のバスマスタおよび第２のバスマスタを含み、
前記マイクロコンピュータはさらに、前記第１のバスマスタおよび前記第２のバスマスタからのアクセスを調停する調停手段を含み、
前記調停手段は、前記第１のバスマスタからのアクセスを優先して調停する設定がされている場合でも、割り込みまたはＩＯレジスタの設定が発生した場合には、前記第２のバスマスタからのアクセスを優先して調停する、請求項１記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）などのバスマスタがバスに接続される周辺ＩＯなどのバススレーブにアクセスする技術に関し、特に、バスマスタがバススレーブに効率的にアクセスできるように制御するマイクロコンピュータに関する。
【背景技術】
【０００２】
近年、半導体集積回路の高集積化が進み、ＣＰＵなどの複数のバスマスタや周辺ＩＯなどの複数のバススレーブが１つの半導体チップに集積されるようになってきた。このような半導体装置において、周辺ＩＯや外部バスといったバススレーブは、バスマスタの動作周波数よりも低速で動作し、バスマスタとバススレーブとの間の通信は同期信号によってクロックドメインの変換を行うのが一般的である。
【０００３】
また、バスマスタからバスに接続されたバススレーブに対してライトを行なう場合、ライトバッファを用いることによってサイクル性能の向上を図ることができる。
【０００４】
また、複数のバスマスタがバスを経由してバススレーブにアクセスするシステムにおいて、各バスマスタからのバスアクセス要求が競合した場合、予め定められた固定の優先順位に従って調停が行なわれるのが一般的である。これらに関連する技術として、下記の特許文献１〜２に開示された発明がある。
【０００５】
特許文献１は、スリープモードの場合でもシリアル通信を行うことが可能なマイクロコンピュータを提供することを目的とする。ＣＰＵの通常動作モードで生成するメインクロックとは別に、通常動作モードよりも消費電力量が少ないスリープモードでサブクロックを生成し、スリープモードにおいてサブクロックにより動作し、周辺回路とのシリアル通信を行うシリアル通信手段とを備える。さらに、受信データに基づいて、動作モードをスリープモードから通常動作モードに切り替えるウェイクアップが要求されるウェイクアップ要因が発生したか否かを判定するウェイクアップ要因判定手段と、ウェイクアップ要因が発生したと判定されたときに、動作モード切換手段に対し、動作モードをスリープモードから通常動作モードに切り替えるためのウェイクアップ信号を出力するウェイクアップ信号出力手段とを備える。
【０００６】
特許文献２は、低消費電力状態から動作状態への迅速な遷移と、低消費電力との双方の要求を満足させることができるデータプロセッサを提供することを目的とする。データプロセッサはスタンバイモード、ライトスタンバイモード及びスリープモードを有する。スリープモードではＣＰＵへの同期クロック信号の供給が停止され、その他の回路モジュールへ同期クロック信号が供給される。スタンバイモードではクロックパルスジェネレータの逓倍及び分周動作が停止され且つＣＰＵ及びその他の回路モジュールへの同期クロック信号の供給が停止される。ライトスタンバイモードではクロックパルスジェネレータの逓倍及び分周動作が可能にされ且つＣＰＵ及びその他の回路モジュールへの同期クロック信号の供給が停止される。ライトスタンバイモードはスタンバイモードよりもＣＰＵの命令実行可能状態への遷移が速く、しかも、スリープモードよりも低消費電力である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１６９５３９号公報
【特許文献２】特開２００２−１６３０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、バスマスタとバススレーブとの間の通信は同期信号によってクロックドメインを変換することによって行なわれるが、バスマスタの周波数に関係なく、周辺ＩＯや外部バスを高速で動作させたい場合、バススレーブの周波数をバスマスタの周波数よりも低速にする必要があるといった制約により、バスマスタとバススレーブとの周波数の組み合わせを自由に設定することができないといった問題点があった。
【０００９】
また、ライトバッファを用いた場合、ライトアクセスと直後のアクセスとの間で、異なるバスに接続されたバススレーブ同士のアクセス順を保証したいときは、最初のライトアクセス後、同じバススレーブに対してダミーリードを行なうなどの対策が必要となり、サイクル性能が低下するといった問題点があった。
【００１０】
また、複数のバスマスタからのバスアクセス要求が競合したときに固定優先順位で調停を行なった場合、割り込みなどのイベントが発生したときや、サイクル性能を必要としないバススレーブ間でＤＭＡ転送を行なうといったときでも、状況に合わせた柔軟なバス調停を行なうことができないといった問題点があった。
【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、バスマスタとバススレーブとの周波数の大小関係に依存せずにバスアクセスを行なうことが可能なマイクロコンピュータを提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施例によれば、ＣＰＵとタイマとを含んだマイクロコンピュータが提供される。ＣＰＵは、周波数が可変のクロック１で動作する。タイマは、クロック２で動作する。バス制御部は、メインバスを介してＣＰＵと接続され、周辺ＩＯバスを介してタイマと接続される。クロック１の周波数がクロック２の周波数よりも高い場合は、周辺ＩＯバス側のバス制御信号の変化タイミングを示す同期信号１を用いてタイマへのバス制御信号を生成し、クロック１の周波数がクロック２の周波数よりも低い場合は、メインバス側のバス制御信号の変化タイミングを示す同期信号２を用いてＣＰＵへのバス制御信号を生成する。
【発明の効果】
【００１３】
本発明の一実施例によれば、クロック１の周波数がクロック２の周波数よりも低い場合は、メインバス側のバス制御信号の変化タイミングを示す同期信号２を用いてＣＰＵへのバス制御信号を生成するので、ＣＰＵとタイマとの周波数の大小関係に依存せずにバスアクセスを行なうことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。
【図２】周波数変換論理回路１１の詳細を説明するための図である。
【図３】本発明の第１の実施の形態におけるマイクロコンピュータの構成をさらに詳細に説明するための図である。
【図４】本発明の第１の実施の形態におけるマイコンの動作を説明するためのタイミングチャートである。
【図５】ＩＣＬＫの周波数がＰＣＬＫの周波数よりも低い場合のマイコンの動作を説明するためのタイミングチャートである。
【図６】本発明の第２の実施の形態におけるマイコンの概略構成を示すブロック図である。
【図７】本発明の第２の実施の形態におけるマイコンのライトバッファ２２を使用しない場合の動作を説明するためのタイミングチャートである。
【図８】本発明の第２の実施の形態におけるマイコンのライトバッファ２２を使用する場合の動作を説明するためのタイミングチャートである。
【図９】本発明の第３の実施の形態におけるマイコンの概略構成を示すブロック図である。
【図１０】図９に示す調停論理回路３１をさらに詳細に説明するための図である。
【図１１】調停論理回路３１による調停方式の他の一例を示す図である。
【図１２】本発明の第４の実施の形態におけるマイコンの概略構成を示すブロック図である。
【図１３】本発明の第５の実施の形態におけるマイコンの概略構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるマイクロコンピュータの概略構成を示すブロック図である。このマイクロコンピュータ（以下、マイコンとも呼ぶ。）は、バスマスタであるＣＰＵ１と、バス制御部２と、バススレーブ（周辺ＩＯ）の一例であるタイマ３とを含む。
【００１６】
ＣＰＵ１は、周波数が可変のクロック１に応じて動作を行なう。また、タイマ３は、クロック１と周波数が異なるクロック２に応じて動作を行なう。ＣＰＵ１がタイマ３に対するアクセスを行なう場合、バス制御信号の周波数変換を行なう必要がある。
【００１７】
バス制御部２は、ＣＰＵ１に接続され、バス１２を介してタイマ３に接続される周波数変換論理回路１１を含む。周波数変換論理回路１１は、クロック１の周波数がクロック２の周波数よりも高い場合は、同期信号１を用いてバス制御信号の周波数変換を行なう。また、周波数変換論理回路１１は、クロック１の周波数がクロック２の周波数よりも低い場合は、同期信号２を用いてバス制御信号の周波数変換を行なう。
【００１８】
図２は、周波数変換論理回路１１の詳細を説明するための図である。周波数変換論理回路１１は、ＡＮＤ回路１３および１６と、フリップフロップ（以下、ＦＦとも呼ぶ。）１４および１５とを含む。
【００１９】
後述のように、クロック１の周波数がクロック２の周波数よりも高い場合に、同期信号１にパルスが出力され、同期信号２がハイレベル（以下、Ｈレベルと略す。）の状態を維持する。したがって、同期信号１がＨレベルになると、ＡＮＤ回路１３がバス制御信号の値をＦＦ１４に出力し、次のサイクル（クロック１の立ち上がり）で、ＦＦ１４はバス制御信号の値を保持する。この同期信号１は、周辺ＩＯバス側のバス制御信号の変化タイミングを示す信号である。
【００２０】
また、クロック１の周波数がクロック２の周波数よりも低い場合に、同期信号１がＨレベルの状態を維持し、同期信号２にパルスが出力される。同期信号２がＨレベルになると、ＡＮＤ回路１６がバス制御信号の値をＦＦ１５に出力し、次のサイクル（クロック２の立ち上がり）で、ＦＦ１５はバス制御信号の値を保持する。この同期信号２は、メインバス側のバス制御信号の変化タイミングを示す信号である。
【００２１】
図３は、本発明の第１の実施の形態におけるマイクロコンピュータの構成をさらに詳細に説明するための図である。マイクロコンピュータは、バス制御部２と、ＳＴＰＣＮＴ５１と、ＥＸＤＭＡＣ（External Direct Memory Access Controller）５２と、拡張バスマスタ５３と、ＯＣＤ（On Chip Debugger）５４と、ＤＴＣ（Data Transfer Controller）／ＤＭＡＣ５５と、ＣＩＦ（CPU Interface）５６と、バスエラー監視部５７と、レジスタ設定部５８と、マルチプレクサ５９と、ＥＸＤＭＡＣ（ＳＦＲ）６０と、機能ブロック群６１と、ＣＩＦ６２とを含む。
【００２２】
また、バス制御部２は、バスマスタ調停部７１と、内部メインバス制御部７２と、外部バスコントローラ７３と、ＥＸＤＭＡＩＦ７４とを含む。さらに、外部バスコントローラ７３は、ＣＳＣ（Chip Select Controller）９１と、ＳＤＲＡＭＣ（Synchronous Dynamic Random Access Memory Controller）９２とを含む。
【００２３】
内部メインバス制御部７２は、ＥＢＩＵ（External Bus Interface Unit）８１と、ＰＩＢＩＵ（Peripheral Internal BIU）８２と、ビッグエンディアンのＰＧＢＩＵ（Peripheral General BIU）８３と、リトルエンディアンのＰＧＢＩＵ８４と、ビッグエンディアンのＰＨＢＩＵ（Peripheral High-speed BIU）８５と、リトルエンディアンのＰＨＢＩＵ８６と、ＦＢＩＵ（Flash BIU）８７と、ＭＢＩＵ（Memory BIU）８８とを含む。これらは、内部メインバス１および内部メインバス２の両方に接続されている。
【００２４】
図１に示すＣＰＵ１は、ＣＩＦ５６を介して内部メインバス１に接続されており、各種ＢＩＵ８１〜８８を介して周辺ＩＯや外部バスなどのバススレーブに対するアクセスを行なう。たとえば、ＣＰＵ１は、ＥＢＩＵ８１、外部バスコントローラ７３およびマルチプレクサ５９を介して外部バスに対するアクセスを行なう。
【００２５】
また、ＣＰＵ１は、ＰＩＢＩＵ８２を介して、内部周辺バス１に接続されるＥＸＤＭＡＣ６０や機能ブロック群６１に対するアクセスを行なう。また、ＣＰＵ１は、ＰＧＢＩＵ８３を介して、内部周辺バス２に接続される周辺ＩＯに対するアクセスを行なう。
【００２６】
バスマスタ調停部７１は、バスマスタである拡張バスマスタ５３、ＯＣＤ５４およびＤＴＣ／ＤＭＡＣ５５と、内部メインバス２との間に接続され、バスマスタ５３〜５５からの内部メインバス２に対するアクセスを調停する。
【００２７】
なお、図３に示すその他の構成については、本願発明とは特に関連するものではないため、詳細な説明は行なわない。
【００２８】
図４は、本発明の第１の実施の形態におけるマイコンの動作を説明するためのタイミングチャートである。なお、このタイミングチャートは、ＣＰＵ１がＰＧＢＩＵ８３を介して内部周辺バス２に接続されるタイマ３などの周辺ＩＯにアクセスする場合を示しており、ＩＣＬＫ（クロック１）の周波数がＰＣＬＫ（クロック２）の周波数よりも高い場合を示している。
【００２９】
図４において、ＩＰＮＥＸＴ信号は、図１および図２に示す同期信号１に対応し、ＰＩＮＥＸＴ信号は、図１および図２に示す同期信号２に対応している。また、１Ｒおよび２Ｒは内部周辺バス２に対するリードサイクルを示し、３Ｗおよび４Ｗは内部周辺バス２に対するライトサイクルを示している。
【００３０】
まず、Ｔ１において、ＣＰＵ１が内部メインバス１に対して最初のリードアクセス（１Ｒ）に対応するバスアクセス要求（ＲＥＱ）信号を出力すると、ＰＧＢＩＵ８３はバスアクセス受付（ＡＣＫ）信号をＣＰＵ１に返す。
【００３１】
Ｔ２において、ＰＧＢＩＵ８３は、ＩＰＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱを受け付け、バスアクセス開始（ＢＳ＿Ｎ）信号を内部周辺バス２（タイマ３）に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からバスアクセス終了（ＤＣ＿Ｎ）信号を受ける。また、ＣＰＵ１は、内部メインバス１に対して２番目のリードアクセス（２Ｒ）に対応するＲＥＱ信号を出力する。
【００３２】
Ｔ３において、ＰＧＢＩＵ８３は、バスアクセス終了（ＥＮＤ）信号をＣＰＵ１に出力すると共に、２番目のリードアクセス（２Ｒ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００３３】
Ｔ４において、ＣＰＵ１は、内部メインバス１に対して３番目のライトアクセス（３Ｗ）に対応するＲＥＱ信号を出力する。
【００３４】
Ｔ５において、ＰＧＢＩＵ８３は、ＩＰＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱ（２Ｒ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。
【００３５】
Ｔ６において、ＰＧＢＩＵ８３は、ＥＮＤ信号（２Ｒ）をＣＰＵ１に出力すると共に、３番目のライトアクセス（３Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００３６】
Ｔ７において、ＣＰＵ１は、内部メインバス１に対して４番目のライトアクセス（４Ｗ）に対応するＲＥＱ信号を出力する。
【００３７】
Ｔ８において、ＰＧＢＩＵ８３は、ＥＮＤ信号（３Ｗ）をＣＰＵ１に出力すると共に、４番目のライトアクセス（４Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。また、ＰＧＢＩＵ８３は、ＩＰＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱ（３Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。
【００３８】
このように、ＩＣＬＫ（クロック１）の周波数がＰＣＬＫ（クロック２）の周波数よりも高い場合、ＰＧＢＩＵ８３は、図２に示す周波数変換論理回路１１を用いてＩＰＮＥＸＴ信号がＨレベルの次のサイクルでＢＳ＿Ｎ信号を生成するようにしている。
【００３９】
図５は、ＩＣＬＫの周波数がＰＣＬＫの周波数よりも低い場合のマイコンの動作を説明するためのタイミングチャートである。まず、Ｔ１において、ＣＰＵ１が内部メインバス１に対して最初のリードアクセス（１Ｒ）に対応するＲＥＱ信号を出力すると、ＰＧＢＩＵ８３はＡＣＫ信号をＣＰＵ１に返す。
【００４０】
Ｔ２において、ＰＧＢＩＵ８３は、ＰＩＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱを受け付け、バスアクセス開始（ＢＳ＿Ｎ）信号を内部周辺バス２（タイマ３）に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からバスアクセス終了（ＤＣ＿Ｎ）信号を受ける。また、ＣＰＵ１は、内部メインバス１に対して２番目のリードアクセス（２Ｒ）に対応するＲＥＱ信号を出力する。
【００４１】
Ｔ３において、ＰＧＢＩＵ８３は、ＥＮＤ信号（１Ｒ）をＣＰＵ１に出力すると共に、２番目のリードアクセス（２Ｒ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００４２】
Ｔ４において、ＣＰＵ１は、内部メインバス１に対して３番目のライトアクセス（３Ｗ）に対応するＲＥＱ信号を出力する。また、ＰＧＢＩＵ８３は、ＰＩＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱ（２Ｒ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。
【００４３】
Ｔ５において、ＰＧＢＩＵ８３は、ＥＮＤ信号（２Ｒ）をＣＰＵ１に出力すると共に、３番目のライトアクセス（３Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００４４】
Ｔ６において、ＣＰＵ１は、内部メインバス１に対して４番目のライトアクセス（４Ｗ）に対応するＲＥＱ信号を出力する。また、ＰＧＢＩＵ８３は、ＰＩＮＥＸＴ信号がＨレベルの次のサイクルでＥＮＤ信号（３Ｗ）をＣＰＵ１に出力すると共に、４番目のライトアクセス（４Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。また、ＰＧＢＩＵ８３は、ＰＩＮＥＸＴ信号がＨレベルの次のサイクルでＣＰＵ１からのＲＥＱ（３Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力する。このとき、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。
【００４５】
このように、ＩＣＬＫ（クロック１）の周波数がＰＣＬＫ（クロック２）の周波数よりも低い場合、ＰＧＢＩＵ８３は、図２に示す周波数変換論理回路１１を用いてＰＩＮＥＸＴ信号がＨレベルの次のサイクルでＡＣＫ信号、ＥＮＤ信号を生成するようにしている。
【００４６】
以上説明したように、本実施の形態におけるマイコンによれば、クロック１の周波数がクロック２の周波数よりも高い場合に、同期信号１に応じて内部周辺バス側のバス制御信号を生成し、クロック１の周波数がクロック２の周波数よりも低い場合に、同期信号２に応じて内部メインバス側のバス制御信号を生成するようにしたので、ＣＰＵと周辺ＩＯとの周波数の大小関係に依存せずにバスアクセスを行なうことが可能となる。これによって、周波数の大小関係の制約を排除することができ、周辺ＩＯのクロックを一定にしたまま、ＣＰＵの消費電力を削減することが可能となる。
【００４７】
また、ＣＰＵのクロック停止を前提としたスリープモードと比較した場合、本実施の形態においては、周辺ＩＯのレジスタのポーリングといったＣＰＵによるバス処理も行ないつつ、マイコン全体の消費電力を削減することが可能となる。
【００４８】
また、バスマスタがＤＭＡＣの場合にも、ＤＭＡＣのクロック周波数を下げて速度を必要としないデータ転送を行ないつつ、マイコン全体の消費電力を削減することが可能となる。
【００４９】
（第２の実施の形態）
図６は、本発明の第２の実施の形態におけるマイコンの概略構成を示すブロック図である。このマイコンは、ＣＰＵ１と、バス制御部４と、周辺ＩＯ１（５）と、周辺ＩＯ２（６）とを含む。
【００５０】
バス制御部４は、アドレス領域判定回路２１と、ライトバッファ２２と、セレクタ２３とを含む。セレクタ２３は、内部バス２４を介して周辺ＩＯ１（５）および周辺ＩＯ２（６）に接続される。ここで、たとえば、周辺ＩＯ１（５）が図３に示す内部周辺バス１（ＰＩＢＩＵ８２）に接続され、周辺ＩＯ２（６）が図３に示す内部周辺バス２（ＰＧＢＩＵ８３）に接続されているものとして説明する。
【００５１】
ライトバッファ２２は、ＣＰＵ１が周辺ＩＯ１（５）または周辺ＩＯ２（６）に対してライトアクセスを行なう場合に、そのライトデータ、およびアクセス属性情報（上位アドレス、書き込むデータのサイズ、書き込むデータのバイト位置）を書き込む。
【００５２】
たとえば、ＣＰＵ１が周辺ＩＯ１（５）にライトアクセスを行ない、次のアクセスを行う場合、次のアクセスのアクセス先が先行アクセスと同じ周辺ＩＯ１（５）のときは、先行アクセスのライトデータおよびアクセス属性情報をライトバッファ２２に書き込まれた時点で、ライトバッファ２２はＣＰＵ１に対してアクセスの終了を通知し、次のアクセスを受け付ける。
【００５３】
また、次のアクセスのアクセス先が先行アクセスとは異なる周辺ＩＯ２（６）のときは、先行アクセスである周辺ＩＯ１（５）からの終了通知を待ち、ＣＰＵ１に対してアクセスの終了を通知してから次のアクセスを受け付ける。
【００５４】
アドレス領域判定回路２１は、ＣＰＵ１から出力される上位アドレスに基いて、どの内部周辺バスに対するアクセスであるかを判定する。たとえば、図３に示す内部周辺バス１〜６は、それぞれ異なるアドレス領域にマッピングされており、ＣＰＵ１から出力される上位アドレスを参照することによって、どの内部周辺バスに対するアクセスであるかを判定することができる。
【００５５】
アドレス領域判定回路２１は、ライトバッファ２２を介してアクセスする必要がある周辺ＩＯ１（５）または周辺ＩＯ２（６）に対するアクセスの場合には、セレクタ２３にライトバッファ２２の出力信号を選択して出力させる。また、アドレス領域判定回路２１は、ライトバッファ２２を介してアクセスする必要がないアクセスの場合には、セレクタ２３にＣＰＵ１からの出力信号を選択して出力させる。
【００５６】
図７は、本発明の第２の実施の形態におけるマイコンのライトバッファ２２を使用しない場合の動作を説明するためのタイミングチャートである。なお、このタイミングチャートは、ＣＰＵ１がＰＩＢＩＵ８２およびＰＧＢＩＵ８３を介して内部周辺バス１および内部周辺バス２に接続される周辺ＩＯにアクセスする場合を示している。また、１Ｗおよび２Ｗは内部周辺バス２に対するライトサイクルを示し、３Ｗおよび４Ｗは内部周辺バス１に対するライトサイクルを示している。
【００５７】
まず、Ｔ１において、ＣＰＵ１が内部メインバス１に対して最初のライトアクセス（１Ｗ）に対応するバスアクセス要求（ＲＥＱ）信号を出力すると、ＰＧＢＩＵ８３はバスアクセス受付（ＡＣＫ）信号をＣＰＵ１に返す。
【００５８】
Ｔ２において、ＰＧＢＩＵ８３は、ＣＰＵ１からのＲＥＱを受け付け、バスアクセス開始（ＢＳ＿Ｎ）信号を内部周辺バス２に出力する。また、ＣＰＵ１は、内部メインバス１に対して２番目のライトアクセス（２Ｗ）に対応するＲＥＱ信号を出力する。
【００５９】
Ｔ３において、ＰＧＢＩＵ８３は、内部周辺バス２からバスアクセス終了（ＤＣ＿Ｎ）信号を受ける。
【００６０】
Ｔ４において、ＰＧＢＩＵ８３は、バスアクセス終了（ＥＮＤ）信号をＣＰＵ１に出力すると共に、２番目のライトアクセス（２Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００６１】
Ｔ５において、ＣＰＵ１は、内部メインバス１に対して３番目のライトアクセス（３Ｗ）に対応するＲＥＱ信号を出力する。
【００６２】
Ｔ６において、ＰＧＢＩＵ８３は、ＣＰＵ１からのＲＥＱ（２Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力する。Ｔ７において、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。
【００６３】
Ｔ８において、ＰＧＢＩＵ８３は、ＥＮＤ信号（２Ｗ）をＣＰＵ１に出力する。また、ＰＩＢＩＵ８２は、３番目のライトアクセス（３Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００６４】
Ｔ９において、ＰＩＢＩＵ８２は、ＣＰＵ１からのＲＥＱ（３Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス１に出力する。また、ＰＩＢＩＵ８２は、内部周辺バス１からＤＣ＿Ｎ信号を受ける。このとき、ＣＰＵ１は、内部メインバス１に対して４番目のライトアクセス（４Ｗ）に対応するＲＥＱ信号を出力する。
【００６５】
Ｔ１０において、ＰＩＢＩＵ８２は、ＥＮＤ信号（３Ｗ）をＣＰＵ１に出力すると共に、４番目のライトアクセス（４Ｗ）に対応するＡＣＫ信号をＣＰＵ１に返す。
【００６６】
図８は、本発明の第２の実施の形態におけるマイコンのライトバッファ２２を使用する場合の動作を説明するためのタイミングチャートである。図７と同様に、１Ｗおよび２Ｗは内部周辺バス２に対するライトサイクルを示し、３Ｗおよび４Ｗは内部周辺バス１に対するライトサイクルを示している。
【００６７】
まず、Ｔ１において、ＣＰＵ１が内部メインバス１に対して最初のライトアクセス（１Ｗ）に対応するバスアクセス要求（ＲＥＱ）信号を出力すると、ＰＧＢＩＵ８３はバスアクセス受付（ＡＣＫ）信号をＣＰＵ１に返す。
【００６８】
Ｔ２において、ＰＧＢＩＵ８３は、ＣＰＵ１からのＲＥＱを受け付け、バスアクセス開始（ＢＳ＿Ｎ）信号を内部周辺バス２に出力すると共に、バスアクセス終了（ＥＮＤ）信号をＣＰＵ１に出力する。また、ＣＰＵ１が、内部メインバス１に対して２番目のライトアクセス（２Ｗ）に対応するＲＥＱ信号を出力すると、ＰＧＢＩＵ８３はＡＣＫ信号（２Ｗ）をＣＰＵ１に返す。
【００６９】
Ｔ３において、ＣＰＵ１が内部メインバス１に対して３番目のライトアクセス（３Ｗ）に対応するＲＥＱ信号を出力する。Ｔ４において、ＰＧＢＩＵ８３は、内部周辺バス２からバスアクセス終了（ＤＣ＿Ｎ）信号を受ける。
【００７０】
Ｔ５において、ＰＧＢＩＵ８３は、ＣＰＵ１からのＲＥＱ（２Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス２に出力すると共に、ＥＮＤ信号（２Ｗ）をＣＰＵ１に出力する。このとき、ライトサイクル（３Ｗ）が内部周辺バス１に対するものであるため、ＰＩＢＩＵ８２は、ＣＰＵ１に対してＡＣＫ信号を返さずに、ＣＰＵ１を待機状態にする。
【００７１】
Ｔ６において、ＰＧＢＩＵ８３は、内部周辺バス２からＤＣ＿Ｎ信号を受ける。Ｔ７において、ＰＩＢＩＵ８２は、ＰＧＢＩＵ８３によるライトアクセス（２Ｗ）が終了したことを受けて、ＡＣＫ信号（３Ｗ）をＣＰＵ１に返す。
【００７２】
Ｔ８において、ＰＩＢＩＵ８２は、ＣＰＵ１からのＲＥＱ（３Ｗ）を受け付け、ＢＳ＿Ｎ信号を内部周辺バス１に出力すると共に、ＥＮＤ信号（３Ｗ）をＣＰＵ１に出力する。また、ＣＰＵ１が、内部メインバス１に対して４番目のライトアクセス（４Ｗ）に対応するＲＥＱ信号を出力すると、ＰＩＢＩＵ８２はＡＣＫ信号（４Ｗ）をＣＰＵ１に返す。
【００７３】
以上説明したように、本実施の形態におけるマイコンによれば、ＣＰＵ１が周辺ＩＯ１にライトアクセスを行ない、次のアクセスを行う場合、次のアクセスのアクセス先が先行アクセスとは異なる周辺ＩＯ２のときは、ライトバッファが、先行アクセスである周辺ＩＯ１からの終了通知を待ち、ＣＰＵ１に対してアクセスの終了を通知してから次のアクセスを受け付けるようにした。したがって、異なる内部周辺バスに接続される周辺ＩＯ同士のアクセス順を保証することが可能となる。
【００７４】
（第３の実施の形態）
図９は、本発明の第３の実施の形態におけるマイコンの概略構成を示すブロック図である。このマイコンは、ＣＰＵ１と、周辺ＩＯ５，６と、ＤＭＡＣ７と、バス制御部８とを含む。
【００７５】
バス制御部８は、ＣＰＵ１およびＤＭＡＣ７に接続され、バス３６を介して周辺ＩＯ５，６に接続される調停論理回路３１を含む。調停論理回路３１は、通常ＤＭＡＣ７の優先順位をＣＰＵ１よりも高くて優先順位固定でアクセスの調停を行なうが、割り込みやＩＯレジスタの設定などが発生した場合にはＣＰＵ１の優先順位をＤＭＡＣ７よりも高くして優先順位固定でアクセスの調停を行なう。調停論理回路３１による調停方式は、固定優先順位のほかにラウンドロビン方式などであってもよい。
【００７６】
図１０は、図９に示す調停論理回路３１をさらに詳細に説明するための図である。調停論理回路３１は、判定方式選択信号生成論理回路３２と、ＣＰＵ優先の調停回路３３と、ＤＭＡＣ優先の調停回路３４と、セレクタ３５とを含む。
【００７７】
調停回路３３は、ＣＰＵ１の優先順位をＤＭＡＣ７よりも高くしてアクセスの調停を行なう。また、調停回路３４は、ＤＭＡＣ７の優先順位をＣＰＵ１よりも高くしてアクセスの調停を行なう。
【００７８】
判定方式選択信号生成論理回路３２は、通常動作状態においてＤＭＡＣ７の優先順位をＣＰＵ１よりも高く設定するために、セレクタ３５に判定方式選択信号を出力して、調停回路（ＤＭＡＣ優先）３４から出力されるアクセス要求信号を選択させる。
【００７９】
判定方式選択信号生成論理回路３２は、ＩＯレジスタ出力や割り込みの発生を検出すると、ＣＰＵ１の優先順位をＤＭＡＣ７よりも高く設定するために、セレクタ３５に判定方式選択信号を出力して、調停回路（ＣＰＵ優先）３３から出力されるアクセス要求信号を選択させる。
【００８０】
なお、ＩＯレジスタ出力処理や割り込み処理が終了した場合には、ＣＰＵ１による設定などによってそれを検知し、元のＤＭＡＣ優先の状態に戻す。
【００８１】
図１１は、調停論理回路３１による調停方式の他の一例を示す図である。判定方式選択信号生成論理回路３２は、上述の調停方式以外に、優先順位トグル機能を有している。図１１（ａ）は、優先順位トグル機能がＯＦＦの場合のバスアクセスの優先順位を示している。ＥＸＤＭＡＣの優先順位が最も高く、拡張バスマスタ、ＤＭＡＣｐｌｕｓ、オペランドアクセス、命令フェッチの順に優先順位が低くなり、これらの優先順位は固定である。これらの優先順位は、調停回路（ＤＭＡＣ優先）３４に設定される。
【００８２】
判定方式選択信号生成論理回路３２は、優先順位トグル機能がＯＦＦに設定された場合には、判定方式選択信号をセレクタ３５に出力して、調停回路（ＤＭＡＣ優先）３４から出力されるアクセス要求信号を選択させる。
【００８３】
図１１（ｂ）は、優先順位トグル機能がＯＮの場合のバスアクセスの優先順位を示している。図１１（ｂ）の上半分に示すように、ＥＸＤＭＡＣの優先順位が最も高く、拡張バスマスタ、ＤＭＡＣｐｌｕｓの順に優先順位が低くなり、これらの優先順位が調停回路（ＤＭＡＣ優先）３４に設定される。
【００８４】
また、図１１（ｂ）の下半分に示すように、オペランドアクセス、命令フェッチの順に優先順位が低くなり、これらの優先順位が調停回路（ＣＰＵ優先）３３に設定される。
【００８５】
判定方式選択信号生成論理回路３２は、たとえばＣＰＵ１からのアクセス要求信号が受け付けられた後は、判定方式選択信号をセレクタ３５に出力して、調停回路（ＤＭＡＣ優先）３４から出力されるアクセス要求信号を選択させる。逆に、ＤＭＡＣ７からのアクセス要求信号が受け付けられた後は、判定方式選択信号をセレクタ３５に出力して、調停回路（ＣＰＵ優先）３３から出力されるアクセス要求信号を選択させる。このようにして、調停回路（ＣＰＵ優先）３３および調停回路（ＤＭＡ優先）３４から出力されるアクセス要求信号をセレクタ３５によって順次切り替えることによって、優先順位トグル機能を実現する。
【００８６】
以上説明したように、本実施の形態におけるマイコンによれば、ＩＯレジスタ出力や割り込みの発生を検出すると、調停論理回路３１がＣＰＵ１の優先順位をＤＭＡＣ７よりも高く設定するようにしたので、迅速な処理が必要とされる割り込み処理やＩＯレジスタ出力処理などを優先して行えるようになり、状況に合わせた柔軟なバス調停を行なうことが可能となる。
【００８７】
（第４の実施の形態）
図１２は、本発明の第４の実施の形態におけるマイコンの概略構成を示すブロック図である。このマイコンは、ＣＰＵ１と、ＤＭＡＣ７と、バス制御部９と、通信系周辺ＩＯ４１と、割り込み制御部４２と、ＲＡＭ４３とを含む。
【００８８】
バス制御部９は、ＣＰＵ１およびＤＭＡＣ７に接続され、バス３６を介して周波数変換回路１１に接続される調停論理回路３１と、バス１２を介して通信系周辺ＩＯ４１、割り込み制御部４２およびＲＡＭ４３に接続される周波数変換回路１１とを含む。
【００８９】
周波数変換回路１１は、図１に示す第１の実施の形態におけるマイコンに含まれるものと同様である。また、調停論理回路３１は、図９に示す第３の実施の形態におけるマイコンに含まれるものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００９０】
通信系周辺ＩＯ４１は、クロック２によって高速動作を行なうが、この通信系周辺ＩＯ４１とＲＡＭ４３との間でＤＭＡＣ７によるＤＭＡ転送が行なわれ、ＣＰＵ１がそのＤＭＡ転送が終了するまで待機している場合には、ＣＰＵ１に供給されるクロック１の周波数を下げて消費電力の削減を図ることができる。この場合、第１の実施の形態において説明したように、周波数変換回路１１によってバス制御信号の周波数変換が行なわれる。
【００９１】
また、調停論理回路３１によってＤＭＡＣ７の優先順位をＣＰＵ１よりも高く設定することによって、バスを効率的に動作させることができる。
【００９２】
そして、ＤＭＡＣ７によって一定のデータがＲＡＭ４３に転送されると、ＣＰＵ１に供給されるクロック１の周波数が上げられ、調停論理回路３１によってＣＰＵ１の優先順位をＤＭＡＣ７よりも高く設定することによって、ＣＰＵ１がＲＡＭ４３に対して高速に、かつ効率的にアクセスすることができるようになる。
【００９３】
以上説明したように、本実施の形態におけるマイコンによれば、バス制御部９において周波数変換回路１１と調停論理回路３１とが接続されるよう構成したので、第１の実施の形態および第３の実施の形態において説明した効果に加えて、さらに上述の効果を奏することが可能となる。
【００９４】
（第５の実施の形態）
図１３は、本発明の第５の実施の形態におけるマイコンの概略構成を示すブロック図である。このマイコンは、図１２に示す第４の実施の形態におけるマイコンと比較して、バス３６と周波数変換回路１１との間に、第２の実施の形態において説明したライトバッファ２２およびセレクタ２３が挿入されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【００９５】
図１３に示す構成とすることにより、連動して動作する通信系周辺ＩＯ４１と割り込み制御部４２との内部レジスタ設定時における書き込み順を保証しつつ、ＣＰＵ１からＲＡＭ４３への連続ライトアクセスの性能向上を図ることが可能となる。
【００９６】
以上説明したように、本実施の形態におけるマイコンによれば、第４の実施の形態におけるマイコンにさらにライトバッファ２２およびセレクタ２３を追加したので、第４の実施の形態において説明した効果に加えて、さらに上述の効果を奏することが可能となる。
【００９７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９８】
１  ＣＰＵ、２，４  バス制御部、３  タイマ、５，６  周辺ＩＯ、１１  周波数変換論理回路、１２，２４  バス、１３，１６  ＡＮＤ回路、１４，１５  ＦＦ、２１  アドレス領域判定回路、２２  ライトバッファ、２３，３５  セレクタ、３１  調停論理回路、３２  判定方式選択信号生成論理回路、３３，３４  調停回路、４１  通信系周辺ＩＯ、４２  割り込み制御部、４３  ＲＡＭ、５１  ＳＴＰＣＮＴ、５２  ＥＸＤＭＡＣ、５３  拡張バスマスタ、５４  ＯＣＤ、５５  ＤＴＣ／ＤＭＡＣ、５６  ＣＩＦ、５７  バスエラー監視部、５８  レジスタ設定部、５９  マルチプレクサ、６０  ＥＸＤＭＡＣ、６１  機能ブロック群、６２  ＣＩＦ、７１  バスマスタ調停部、７２  内部メインバス制御部、７３  外部バスコントローラ、７４  ＥＸＤＭＡＩＦ、８１  ＥＢＩＵ、８２  ＰＩＢＩＵ、８３，８４  ＰＧＢＩＵ、８５，８６  ＰＨＢＩＵ、８７  ＦＢＩＵ、８８  ＭＢＩＵ、９１  ＣＳＣ、９２  ＳＤＲＡＭＣ。
【図１】
0005528939.tif 000002
【図２】
0005528939.tif 000003
【図３】
0005528939.tif 000004
【図４】
0005528939.tif 000005
【図５】
0005528939.tif 000006
【図６】
0005528939.tif 000007
【図７】
0005528939.tif 000008
【図８】
0005528939.tif 000009
【図９】
0005528939.tif 000010
【図１０】
0005528939.tif 000011
【図１１】
0005528939.tif 000012
【図１２】
0005528939.tif 000013
【図１３】
0005528939.tif 000014