(57)【要約】【課題】非同期で動作するＣＰＵと周辺ユニットを備えるマイクロコンピュータのスペックのワースト値を実測可能にする。【解決手段】周辺ユニット１５０は、ＣＰＵ１０２からのアクセスに対応する処理が完了するまでデータの再送を要求するリトライ要求信号ＲＴ１を出力する。ＦＦ１１６は、ストローブ信号ＳＴ１のタイミングで第２のリトライ要求信号ＲＴ２をラッチしたときにストローブ要求信号ＳＲを出力する。バス制御回路１１２とストローブ信号生成回路１１４は、ＦＦ１１６からストローブ要求信号ＳＲを受信するとデータとストローブ信号ＳＴ１の送出をそれぞれ行うことによって再送をする。リトライ回数制御部１２０は、予め設定された所定回数のうちの最終回の再送が確定されたときに、フリップフロップ１１６への第２のリトライ要求信号ＲＴ２の出力を停止する。【選択図】図１
2011150420.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵからのアクセスに対応する処理が完了するまでデータの再送を要求するリトライ要求信号を出力する周辺ユニットからの前記リトライ要求信号である第１のリトライ要求信号の受信に同期して第２のリトライ要求信号の出力を開始するリトライ回数制御部と、
データの送出に伴ってストロープ信号を出力するストローブ信号生成回路と、
データをバスに送出するバス制御回路と、
前記ストローブ信号と、前記リトライ回数制御制御部からの第２のリトライ要求信号が入力され、前記ストローブ信号のタイミングで前記第２のリトライ要求信号をラッチしたときにストローブ要求信号を出力すると共に、前記ストローブ要求信号の出力後にリセットされるフリップフロップを備えたバス・コントロールユニットであって、
前記ストローブ信号生成回路と前記バス制御回路は、前記フリップフロップから前記ストローブ要求信号を受け付けるとストローブ信号とデータの送出をそれぞれ行うことによって前記再送をし、
前記リトライ回数制御部は、
予め設定された所定回数のうちの最終回の前記再送が確定されたときに、前記フリップフロップへの前記第２のリトライ要求信号の出力を停止することを特徴とするバス・コントロールユニット。
【請求項２】
前記リトライ回数制御部は、前記フリップフロップへの前記第２のリトライ要求信号の出力を停止する際に、前記周辺ユニットからの前記第１のリトライ要求信号の出力が停止されているとき、前記周辺ユニットと前記フリップフロップへの前記ストローブ信号の出力を停止することを特徴とする請求項１に記載のバス・コントロールユニット。
【請求項３】
前記所定回数は、前記周辺ユニットが再送を要求しうる最大回数であることを特徴とする請求項１または２に記載のバス・コントロールユニット。
【請求項４】
前記所定回数は、アクセスされる前記周辺ユニットに含まれる複数のレジスタ毎に設定されていることを特徴とする請求項１から３のいずれか１項に記載のバス・コントロールユニット。
【請求項５】
ＣＰＵと、
前記ＣＰＵからのアクセスに対応する処理が完了するまでデータの再送を要求するリトライ要求信号を出力する周辺ユニットとを備えたマイクロコンピュータにおいて、
前記周辺ユニットからの前記リトライ要求信号である第１のリトライ要求信号の受信に同期して第２のリトライ要求信号の出力を開始するリトライ回数制御部と、
データの送出に伴ってストロープ信号を出力するストローブ信号生成回路と、
データをバスに送出するバス制御回路と、
前記ストローブ信号と、前記リトライ回数制御制御部からの第２のリトライ要求信号が入力され、前記ストローブ信号のタイミングで前記第２のリトライ要求信号をラッチしたときにストローブ要求信号を出力すると共に、前記ストローブ要求信号の出力後にリセットされるフリップフロップを備えたバス・コントロールユニットとを有し、
前記ストローブ信号生成回路と前記バス制御回路は、前記フリップフロップから前記ストローブ要求信号を受け付けるとストローブ信号とデータの送出をそれぞれ行うことによって前記再送をし、
前記リトライ回数制御部は、
予め設定された所定回数のうちの最終回の前記再送が確定されたときに、前記フリップフロップへの前記第２のリトライ要求信号の出力を停止することを特徴とするマイクロコンピュータ。
【請求項６】
前記リトライ回数制御部は、前記フリップフロップへの前記第２のリトライ要求信号の出力を停止する際に、前記周辺ユニットからの前記第１のリトライ要求信号の出力が停止さているとき、前記周辺ユニットと前記フリップフロップへの前記ストローブ信号の出力を停止することを特徴とする請求項５に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵと非同期で動作する周辺ユニットを備えたシステムにおけるバス制御技術に関する。
【背景技術】
【０００２】
マイクロコンピュータの設計手法として、ＣＰＵと周辺ユニットを別々に設計し、それらを接続することで１つのマイクロコンピュータとして成立させる設計手法が存在する。
【０００３】
このようなマイクロコンピュータにおいて、ＣＰＵと周辺ユニットのクロック差を吸収しマイクロコンピュータを適切に動作させるのはバスおよびその制御を行う回路である。ＣＰＵや周辺ユニットは、バスとのインタフェースのみを考慮して個別に設計可能なため、マイクロコンピュータ全体を調整しながら設計する手法に比べて難易度が大幅に軽減される。
【０００４】
特許文献１には、ＣＰＵの動作クロックとは非同期で動作する周辺ユニットに対してアクセスを行わせる際、所定の時間内に周辺ユニットの処理が完了しない場合、周辺ユニットがリトライ要求信号を発行してＣＰＵのアクセスサイクルを引き延ばすことによりＣＰＵと周辺ユニットのインタフェースを実現させる技術が開示されている。
【０００５】
図７は、特許文献１の図１であり、特許文献１の技術を適用したマイクロコンピュータ１を示す。
【０００６】
マイクロコンピュータ１は、ＣＰＵ２、バス・コントロールユニット３、周辺ユニット４、発振器５を備える。
【０００７】
ＣＰＵ２とバス・コントロールユニット３は、発振器５から供給されるクロック５１に同期して動作する同期式回路であり、周辺ユニット４は、発振器５から供給されるクロック５１に同期して動作しない非同期式回路である。
【０００８】
ＣＰＵ２、バス・コントロールユニット３、周辺ユニット４はバス３５で接続されている。
【０００９】
バス・コントロールユニット３は、バスの制御を行うバス制御回路３１と、ストローブ信号を生成するストローブ信号生成回路３２と、ストローブ信号に同期して周辺ユニット４から供給されるリトライ要求信号をサンプリングしてラッチするフリップフロップ（以下ＦＦという）３３とを内蔵している。周辺ユニット４は、インタフェース回路４１とレジスタ４２を有し、インタフェース回路４１は、リトライ要求信号３７の生成やレジスタ４２へのリード／ライトを制御する。
【００１０】
インタフェース回路４１は、ＣＰＵのアクセスサイクル期間中に周辺ユニット４の処理が間に合わない場合、リトライ要求信号３７をＦＦ３３へ出力する。
【００１１】
ストローブ生成回路３２は、ＣＰＵ２からのアクセスに応じてストローブ信号３６の出力を開始する。このストローブ信号３６は、ＦＦ３３とインタフェース回路４１に入力される。
【００１２】
ＦＦ３３は、ストローブ信号生成回路３２からのストローブ信号３６の立下りエッジでリトライ要求信号３７をラッチする。ＦＦ３３によりラッチされた値は、ストローブ要求信号３８としてストローブ信号生成回路３２とバス制御回路３１に入力される。
【００１３】
図８を参照して、マイクロコンピュータ１の一動作例を説明する。図中「Ｓ＋数字」は、ステップを表す。
【００１４】
ＣＰＵ２が周辺ユニット４のレジスタ４２に対してライトアクセスを行う場合に、まずバス３５にアドレスとデータが出力される（Ｓ１）。そして、バス・コントロールユニット３のストローブ信号生成回路３２からストローブ信号３６が出力される（Ｓ２）。
【００１５】
周辺ユニット４は、ＣＰＵ２からのアクセスが開始されると、それに対応する処理が完了するまでリトライ要求信号３７を出力し続ける（Ｓ３〜）。
【００１６】
ＦＦ３３は、ストローブ信号３６の立下りエッジでリトライ要求信号３７をラッチしてバス制御回路３１とストローブ信号生成回路３２に出力する（Ｓ４）。このとき、ラッチされたレベルが、上記処理がまだ完了していないことを示すアクティブレベルであるため、バス制御回路３１は前回と同じデータをバス３５に再出力し、ストローブ信号生成回路３２は次回のストローブ信号発生タイミングで再度ストローブ信号３６を出力する（Ｓ５）。また、このとき、ストローブ信号生成回路３２は、ＦＦ３３にリセット信号３９を出力してＦＦ３３をリセットし、次のリトライに備える。
【００１７】
次いで、ステップＳ６で、周辺ユニット４は、処理が完了したため、リトライ要求信号３７の出力を停止する。
【００１８】
その後、ストローブ信号３６の立ち下がりエッジ（Ｓ７）で、ＦＦ３３は再度リトライ要求信号３７をラッチする（Ｓ８）。このとき、ラッチされたレベルが、上記アクセスが完了したことを示すインアクティブレベルであるため、ストローブ信号生成回路３２からのストローブ信号３６の出力が停止される。これにて、ＣＰＵ２によるアクセスが終了する。
【００１９】
このように、バス・コントロールユニット３は、ＣＰＵ２からのアクセスに伴って周辺ユニット４へのストローブ信号３６の出力を開始し、周辺ユニット４からのリトライ要求信号３７をストローブ信号３６のタイミングでラッチすると共に、ラッチしたレベルが、処理が完了していないことを示すアクティブレベルであるときにのみストローブ信号３６を出力する。こうすることにより、非同期で動作するＣＰＵ２と周辺ユニット４間のクロック差が吸収され、アクセスが正しく行われる。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２０００−１１２９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
ところで、図７に示すようなマイクロコンピュータ１では、ＣＰＵ２からのアクセスに対して周辺ユニット４による実際の処理時間が同一であっても、システム全体として該アクセスにかかった時間が異なってしまう場合がある。図９と図１０を参照してマイクロコンピュータ１の別の２つの動作例を説明する。
【００２２】
図９に示す例は、ステップＳ５まで、図８に示す例と同様である。しかし、ストローブ信号３６の立下りエッジ（Ｓ６）と、周辺ユニット４による処理の完了（リトライ要求信号３７の立下りエッジ（Ｓ７）が同一のタイミングである。このとき、ＦＦ３３がリトライ要求信号３７をラッチして得たレベルがインアクティブである（Ｓ８）。そのため、バス制御回路３１からのデータの再出力と、ストローブ信号生成回路３２からのストローブ要求信号３８の出力がなく、ステップＳ６、Ｓ７、Ｓ８のタイミングで、アクセスが完了する。この場合、アクセスにかかった時間は、ステップＳ１〜Ｓ６（Ｓ７、Ｓ８）までである。
【００２３】
ところで、本来、図９に示すようにステップＳ７のタイミングでストローブ信号３６とリトライ要求信号３７が同時に立ち下がるはずであるが、遅延により、ＦＦ３３に入力されるリトライ要求信号３７の立下りのタイミングが僅かに後にずれてしまう場合がある。この場合について、図１０を参照して説明する。
【００２４】
図１０に示す例は、ステップＳ６まで、図９に示す例と同様であり、しかし、遅延によりストローブ信号３６の立下り（Ｓ６）より少し後のタイミングでとリトライ要求信号３７が立ち下がる（Ｓ８）。この場合、ステップＳ６のタイミングでＦＦ３３がリトライ要求信号３７をラッチして得たレベルがアクティブレベルであるため（Ｓ７）、次回のストローブ信号発生タイミングでストローブ信号生成回路３２から再度ストローブ信号３６が出力される（Ｓ９）。
【００２５】
そして、該ストローブ信号３６の立下りエッジ（Ｓ１０）で、ＦＦ３３がラッチしたリトライ要求信号３７のレベルがインアクティブレベルとなり（Ｓ１１）、ステップＳ１１のタイミングで、上記アクセスが完了する。この場合、アクセスにかかった時間は、ステップＳ１〜Ｓ６（Ｓ７）より長いステップＳ１〜Ｓ１１である。そのため、リトライの回数は、図９に示す例より１回分多い。
【００２６】
図９と図１０に示すいずれの例においても、周辺ユニット４がＣＰＵ２からのアクセスに対する処理時間がＳ１〜Ｓ６である。しかし、ストローブ信号３６とリトライ要求信号３７の立下りのタイミングが近接している場合、少しの遅延でリトライ操作の回数が１回分違ってしまう恐れがある。これでは、システム全体としてアクセスにかかった時間が不定になってしまう。
【００２７】
対して、マイクロコンピュータ上で動作するソフトウェアの開発においては、ソフトウェアの提供と同時にスペックを提示することが必須である。
【００２８】
スペック値は、通常の使用条件での値の他に、ワーストケースを規定した値が必要である。スペック値の算出に当たっては、ＩＣＥ（インサーキットエミュレータ）やＯＣＤ（オンチップ・デバッグ・エミュレータ）などのエミュレータ、またはマイクロコンピュータにソフトウェアを組み込んだ形で実際に実機にて動作させて測定することが多いため、ワースト値で動作させる機能が要求される。
【００２９】
マイクロコンピュータ（ＯＣＤを含む）やＩＣＥにソフトウェアを組み込んで動作させて測定する場合、スペックのワースト値を測定するためには、周辺ユニットによる処理がワースト値（最長時間）で動作して初めてスペックのワースト値が測定できることになる。
【００３０】
しかし、図７に示すマイクロコンピュータ１のような、ＣＰＵ２からのアクセスに対して周辺ユニット４による処理時間が同一であっても、システム全体として該アクセスにかかる時間が変動的である場合には、測定すべきワーストケースでの測定が困難である。そのため、近似条件下での実測結果をもとに各要素の動作時間を理論値に換算するなどの代替手法を取らざるを得ない。これでは、スペックのワースト値の信頼性が低い。
【課題を解決するための手段】
【００３１】
本発明の一つの態様は、バス・コントロールユニットである。このバス・コントロールユニットは、リトライ回数制御部と、ストローブ信号生成回路と、バス制御回路と、フリップフロップを備える。
【００３２】
リトライ回数制御部は、ＣＰＵからのアクセスに対応する処理が完了するまでデータの再送を要求するリトライ要求信号を出力する周辺ユニットからのリトライ要求信号である第１のリトライ要求信号の受信に同期して第２のリトライ要求信号の出力を開始する。
【００３３】
ストローブ信号生成回路は、データの送出に伴ってストロープ信号を出力し、バス制御回路は、データをバスに送出する。
【００３４】
フリップフロップは、ストローブ信号と、第２のリトライ要求信号が入力され、ストローブ信号のタイミングで第２のリトライ要求信号をラッチしたときにストローブ要求信号を出力すると共に、ストローブ要求信号の出力後にリセットされる。
【００３５】
ストローブ信号生成回路とバス制御回路は、フリップフロップからストローブ要求信号を受け付けるとストローブ信号とデータの送出をそれぞれ行うことによって再送をする。
【００３６】
リトライ回数制御部は、予め設定された所定回数のうちの最終回の再送が確定されたときに、フリップフロップへの第２のリトライ要求信号の出力を停止する。
【００３７】
なお、上記態様のバス・コントロールユニットを方法や装置に置き換えて表現したもの、該バス・コントロールユニットを備えたマイクロコンピュータも本発明の態様としては有効である。
【発明の効果】
【００３８】
本発明にかかる技術によれば、非同期で動作するＣＰＵと周辺ユニットを備えるマイクロコンピュータのスペックのワースト値を実測可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施の形態にかかるマイクロコンピュータを示す図である。
【図２】図１に示すマイクロコンピュータにおける動作例を示すタイミング図である（その１）。
【図３】図１に示すマイクロコンピュータにおける動作例を示すタイミング図である（その２）。
【図４】図１のマイクロコンピュータに対してリトライ回数制御回路の具体例を示した図である。
【図５】図４に示すマイクロコンピュータにおける詳細の動作例を示すタイミング図である（その１）。
【図６】図４に示すマイクロコンピュータにおける詳細の動作例を示すタイミング図である（その２）。
【図７】特許文献１に開示されたマイクロコンピュータを示す図である。
【図８】図７に示すマイクロコンピュータの動作例を示すタイミング図である（その１）。
【図９】図７に示すマイクロコンピュータの動作例を示すタイミング図である（その２）。
【図１０】図７に示すマイクロコンピュータの動作例を示すタイミング図である（その３）。
【発明を実施するための形態】
【００４０】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。
【００４１】
図１は、本発明の実施の形態にかかるマイクロコンピュータ１００を示す。マイクロコンピュータ１００は、ＣＰＵ１０２と、発振器１０４と、バス・コントロールユニット１１０と、周辺ユニット１５０、バス１４０を備える。
【００４２】
ＣＰＵ１０２とバス・コントロールユニット１１０は、発振器１０４から供給されるクロックＣＬＫに同期して動作する同期式回路であり、周辺ユニット１５０は、クロックＣＬＫに同期して動作しない非同期式回路である。
【００４３】
バス・コントロールユニット１１０は、バス制御回路１１２と、ストローブ信号生成回路１１４と、フリップフロップ（以下ＦＦという）１１６と、リトライ回数制御回路１２０を備える。
【００４４】
周辺ユニット１５０は、インタフェース回路１５２と、レジスタ群１５４を備える。レジスタ群１５４には、複数のレジスタが含まれている。
【００４５】
上述した各機能ブロックのうち、ＣＰＵ１０２とバス制御回路１１２はバス１１８に接続されており、周辺ユニット１５０はバス１４０に接続されている。また、リトライ回数制御回路１２０は、バス１１８とバス１４０の両方に接続されている。
【００４６】
周辺ユニット１５０において、インタフェース回路１５２は、ＣＰＵ１０２からのアクセス（リード／ライト）に対して、該アクセスに対応する処理が終了するまでにデータの再送（リトライ）すなわちＣＰＵ１０２をウエイトさせるためのリトライ要求信号ＲＴ１の出力など、レジスタ群１５４に含まれるいずれかのレジスタへのアクセスの制御を行う。以下の説明において、周辺ユニット１５０により出力されるリトライ要求信号ＲＴ１を第１のリトライ要求信号という。
【００４７】
バス制御回路１１２は、アクセスの開始に伴ってバス１１８にデータを送出すると共に、ＦＦ１１６からの後述するストローブ要求信号ＳＲを受信するとデータの再送を行う。
【００４８】
ストローブ信号生成回路１１４は、上記データの送出に伴ってストローブ信号ＳＴ１を生成する。このストローブ信号ＳＴ１は、リトライ回数制御回路１２０に入力される。以下の説明において、ストローブ信号生成回路１１４により生成されたストローブ信号ＳＴ１を第１のストローブ信号という。
【００４９】
リトライ回数制御回路１２０は、周辺ユニット１５０からリトライが要求されたときのリトライの回数を制御するものであり、ストローブ信号生成回路１１４からの第１のストローブ信号ＳＴ１から第２のストローブ信号ＳＴ２を生成して周辺ユニット１５０とＦＦ１１６に出力し、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１から第２のリトライ要求信号ＲＴ２を生成してＦＦ１１６に出力する。
【００５０】
ＦＦ１１６は、Ｄ−ＦＦであり、Ｄ端子はリトライ回数制御回路１２０が生成した第２のリトライ要求信号ＲＴ２が入力されるデータ端子であり、Ｃ端子はリトライ回数制御回路１２０が生成した第２のストローブ信号ＳＴ２が入力されるクロック端子であり、Ｑ端子はストローブ要求信号ＳＲが出力される出力端子であり、Ｒ端子は、ストローブ信号生成回路１１４からのリセット信号ＲＥＳが入力されるリセット端子である。
【００５１】
例として、本実施の形態におけるＦＦ１１６は、Ｃ端子に入力される第２のストローブ信号ＳＴ２の立下りエッジで、Ｄ端子に入力される第２のリトライ要求信号ＲＴ２をラッチするエッジトリガ（ネガティブゴーイングトリガ）方式のものである。すなわち、ＦＦ１１６では、第２のストローブ信号ＳＴ２の立下りエッジの直前（セットアップ期間）と直後（ホールド期間）の第２のリトライ要求信号ＲＴ２の値のみが有効で、それ以外のデータが出力に影響を与えない。
【００５２】
第２のストローブ信号ＳＴ２の立下りエッジに対応する第２のリトライ要求信号ＲＴ２のレベルは、ラッチされてストローブ要求信号ＳＲとしてバス制御回路１１２とストローブ信号生成回路１１４に出力される。ストローブ要求信号ＳＲがアクティブレベルであれば、バス制御回路１１２はデータの再送を行い、ストローブ信号生成回路１１４は次のストローブ信号発行タイミングで第１のストローブ信号ＳＴ１を送出する。
【００５３】
ここで、リトライ回数制御回路１２０による第２のストローブ信号ＳＴ２と第２のリトライ要求信号ＲＴ２の生成を説明する。
【００５４】
リトライ回数制御回路１２０は、レジスタ群１５４のいずれかのレジスタに対するアクセスがあった場合に、リトライの回数が該レジスタに対して設定された最大可能な回数（以下Ｍと表示する）になるように制御するものである。具体的には、ストローブ信号生成回路３２から第１のストローブ信号ＳＴ１の出力開始に伴って第２のストローブ信号ＳＴ２を送出すると共に、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力開始に伴って第２のリトライ要求信号ＲＴ２の送出を開始する。そして、データの再送回数（すなわちリトライ回数）をカウントし、Ｍ回目のリトライが確定されるまで、第２のリトライ要求信号ＲＴ２と第２のストローブ信号ＳＴ２を出力し続ける。Ｍ回目のリトライが確定されれば、第２のリトライ要求信号ＲＴ２の出力を停止する。また、このとき、第１のストローブ信号ＳＴ１の出力が停止されていれば、第２のストローブ信号ＳＴ２の出力も停止する。
【００５５】
図２と図３は、ＣＰＵ１０２から周辺ユニット１５０におけるレジスタ群１５４のいずれかのレジスタにアクセスを行うときのタイミング図の例をそれぞれ示す。なお、例として、最大可能なリトライ回数Ｍが２であるとする。
【００５６】
図２は、２回目のリトライが確定される前に周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１が停止された場合の例である。この場合は、周辺ユニット１５０から１回のみリトライが要求されることになる。
【００５７】
アクセスの開始に伴って、バス制御回路１１２からバス１１８にデータが送出される（Ｓ１）。バス１１８に送出されたデータは、リード時にはＣＰＵ１０２に受け取られ、ライト時にはリトライ回数制御回路１２０を介して周辺ユニット１５０により受け取られる。
【００５８】
次いで、ストローブ信号生成回路１１４から第１のストローブ信号ＳＴ１が出力され、リトライ回数制御回路１２０から、第１のストローブ信号ＳＴ１と同様の第２のストローブ信号ＳＴ２が出力される（Ｓ２）。
【００５９】
そして、周辺ユニット１５０から第１のリトライ要求信号ＲＴ１の出力が開始され、それに応じてリトライ回数制御回路１２０から第２のリトライ要求信号ＲＴ２の出力が開始される（Ｓ３）。
【００６０】
そして、ＦＦ１１６は、第２のストローブ信号ＳＴ２の立下り（Ｓ４）で第２のリトライ要求信号ＲＴ２をラッチしたため、ストローブ要求信号ＳＲをバス制御回路１１２とストローブ信号生成回路１１４に出力する（Ｓ５）。この時点で１回目のリトライが確定される。
【００６１】
ステップＳ５でストローブ要求信号ＳＲが出力されたため、バス制御回路１１２はデータをバス１１８に再送し、ストローブ信号生成回路１１４は次のストローブ信号の発行タイミングで第１のストローブ信号ＳＴ１を再度出力する（Ｓ７）。この第１のストローブ信号ＳＴ１と同様の第２のリトライ要求信号ＲＴ２もリトライ回数制御回路１２０から周辺ユニット１５０とＦＦ１１６に出力される。
【００６２】
ステップＳ７より前のタイミングで周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力が停止される（Ｓ６）。しかし、２回目のリトライがまだ確定されていないため、リトライ回数制御回路１２０から第２のリトライ要求信号ＲＴ２が相変わらず出力され、ＦＦ１１６は、第２のリトライ要求信号ＲＴ２の立下り（Ｓ８）で第２のリトライ要求信号ＲＴ２をラッチし、ストローブ要求信号ＳＲを出力する（Ｓ９）。この時点で、２回目のリトライが確定される。
【００６３】
２回目のリトライが確定されたため、リトライ回数制御回路１２０は、第２のリトライ要求信号ＲＴ２出力を停止する（Ｓ１０）。また、このとき、第１のリトライ要求信号ＲＴ１が停止されているため、リトライ回数制御回路１２０は、第２のストローブ信号ＳＴ２の出力を停止する。以降、第１のストローブ信号ＳＴ１は周辺ユニット１５０とＦＦ１１６に伝達されない（Ｓ１１）。
【００６４】
ステップＳ９でストローブ要求信号ＳＲが出力されたため、バス制御回路１１２はデータを再度送出し、ストローブ信号生成回路１１４は次のストローブ信号の発行タイミングで第１のストローブ信号ＳＴ１を再度出力する（Ｓ１２）。
【００６５】
すなわち、データの２回目の再送が行われ、ＣＰＵ１０２にとって２回目のリトライが行われているように見えるが、２回目のデータの再送時にストローブ信号が周辺ユニット１５０に出力されていないので、周辺ユニット１５０はデータの受渡しをしない。２回目のようなリトライを、以下擬似リトライという。
【００６６】
２回目のリトライ（ここでは擬似リトライ）の実行をもって、アクセスが終了する。
【００６７】
すなわち、周辺ユニット１５０が要求しうる最大回数のうちの最終回すなわちＭ回目のリトライが確定される前に周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力が停止された場合に、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力期間に応じた回数のリトライが行われると共に、その後、リトライの回数がＭ回目に到達するまで擬似的なリトライが行われる。
【００６８】
図３は、２回目のリトライの確定後に周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１が停止された場合の例である。この場合は、周辺ユニット１５０から２回リトライが要求されることになる。
【００６９】
ステップＳ６までは図２と同様であるが、第１のリトライ要求信号ＲＴ１の立下りすなわち周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の停止（Ｓ９）のタイミングは、第２のストローブ信号ＳＴ２の立下り（Ｓ７）の後になっている。
【００７０】
ステップＳ７において、第１のリトライ要求信号ＲＴ１乃至第２のリトライ要求信号ＲＴ２が立ち下がり、第２のリトライ要求信号ＲＴ２が相変わらず出力されているため、ＦＦ１１６は、第２のリトライ要求信号ＲＴ２をラッチして、ストローブ要求信号ＳＲを出力する（Ｓ８）。これにて、２回目のリトライが確定される。
【００７１】
このとき、第１のリトライ要求信号ＲＴ１が出力されているため、リトライ回数制御回路１２０は、第２のストローブ信号ＳＴ２の出力を停止しない。従って、ステップＳ１１において第１のストローブ信号ＳＴ１が再度出力されるときに、周辺ユニット１５０とＦＦ１１６に第２のストローブ信号ＳＴ２も出力され（Ｓ１２）、２回目のリトライが実行され、アクセスが完了する。なお、この場合、２回目のリトライが擬似リトライではない。
【００７２】
すなわち、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力停止のタイミングが、周辺ユニット１５０が要求しうる最大回数のうちの最終回すなわちＭ回目のリトライが確定された後である場合において、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１の出力期間に応じて、Ｍ回目のリトライが行われる。
【００７３】
上記の説明から分かるように、本実施の形態のマイクロコンピュータ１００によれば、周辺ユニット１５０から出力された第１のリトライ要求信号ＲＴ１の長短に関わらず、必ずＭ回のリトライ（擬似的なリトライを含む）が行われる。そのため、周辺ユニット１５０内のレジスタに対するアクセス時間がワースト時間に固定され、マイクロコンピュータ１００のスペックのワースト値を実測可能になる。
【００７４】
図４は、マイクロコンピュータ１００に対して、リトライ回数制御回路１２０の詳細構成の例を示した図である。リトライ回数制御回路１２０は、アドレスデコーダ１２２、記憶部１２４、カウンタ１２６、模擬要求生成回路１２８、ラッチ回路１３０、ＯＲゲート１３２、ストローブ制御回路１３４、ＡＮＤゲート１３６を備える。
【００７５】
記憶部１２４には、周辺ユニット１５０のレジスタ群１５４に含まれる各レジスタのそれぞれの最大リトライ回数が格納されている。
【００７６】
アドレスデコーダ１２２は、ＣＰＵ１０２による周辺ユニット１５０へのアクセスのアドレス情報をデコードし、アクセスされるレジスタのアドレスを取得して記憶部１２４に出力する。
【００７７】
記憶部１２４は、アドレスデコーダ１２２により得られたアドレスが示すレジスタの最大リトライ回数Ｍをカウンタ１２６に出力する。
【００７８】
カウンタ１２６は、該レジスタの最大リトライ回数Ｍから、リトライが発生する毎にデクリメントする。また、カウンタ１２６は、模擬要求生成回路１２８とストローブ制御回路１３４に擬似リトライ要求制御信号Ｃ１とカウント信号Ｃ２をそれぞれ出力する。
【００７９】
擬似リトライ要求制御信号Ｃ１は、デフォルトがインアクティブであり、カウンタ１２６による１回目のカウントダウン時にアクティブにされ、カウント値が１であるときのカウントダウン時にインアクティブに戻される。
【００８０】
カウント信号Ｃ２は、デフォルトがアクティブであり、カウント値が１であるときのカウントダウン時にインアクティブにされ、その後、ＦＦ１１６のリセットの後から、次のアクセスの開始までの間の任意のタイミングでアクティブに戻される。
【００８１】
模擬要求生成回路１２８は、ＯＲゲート１３２に模擬リトライ要求信号ＭＲを出力するものであり、カウンタ１２６からの擬似リトライ要求制御信号Ｃ１がアクティブになったときに模擬リトライ要求信号ＭＲをアクティブにすると共に、擬似リトライ要求制御信号Ｃ１がインアクティブに戻されたときに模擬リトライ要求信号ＭＲをインアクティブにする。
【００８２】
ＯＲゲート１３２は、周辺ユニット１５０のインタフェース回路１５２からの第１のリトライ要求信号ＲＴ１と、模擬要求生成回路１２８からの模擬リトライ要求信号ＭＲが入力され、入力された２つの信号のＯＲ値（ＲＴ２）をＦＦ１１６のＤ端子に出力する。ＯＲゲート１３２からＦＦ１１６のＤ端子に出力されるＯＲ値ＲＴ２を、以下第２のリトライ要求信号という。
【００８３】
ストローブ制御回路１３４は、周辺ユニット１５０からの第１のリトライ要求信号ＲＴ１とカウンタ１２６からのカウント信号Ｃ２が入力され、ストローブ制御信号Ｃ３をＡＮＤゲート１３６に出力する。ストローブ制御信号Ｃ３は、第１のストローブ信号ＳＴ１を周辺ユニット１５０とＦＦ１１６に出力するか否かを制御する信号として機能するものである。ストローブ制御回路１３４は、カウント信号Ｃ２がアクティブであるときにアクティブであるストローブ制御信号Ｃ３を出力し、カウント信号Ｃ２がインアクティブになった時点では、第１のリトライ要求信号ＲＴ１がアクティブであるか否かに応じてストローブ制御信号Ｃ３のレベルを決める。具体的には、カウント信号Ｃ２がアクティブになったときに第１のリトライ要求信号ＲＴ１がアクティブであれば、アクティブであるストローブ制御信号Ｃ３を出力し続ける一方、カウント信号Ｃ２がアクティブになったときに第１のリトライ要求信号ＲＴ１がインアクティブであれば、カウント信号Ｃ２がアクティブになるまでストローブ制御信号Ｃ３をインアクティブにする。
【００８４】
ＡＮＤゲート１３６は、ストローブ信号生成回路１１４からの第１のストローブ信号ＳＴ１と、ストローブ制御回路１３４からのストローブ制御信号Ｃ３が入力され、入力された２つの信号のＡＮＤ値（ＳＴ２）を、ＦＦ１１６のＣ端子およびインタフェース回路１５２に出力する。ＡＮＤゲート１３６からＦＦ１１６のＣ端子およびインタフェース回路１５２に出力されるＡＮＤ値ＳＴ２を、以下第２のストローブ信号という。
【００８５】
ラッチ回路１３０は、リードアクセスに対して、擬似リトライ以外のときに、周辺ユニット１５０からバス１４０に出力されたデータをラッチしてバス制御回路１１２を介してバス１１８に出力する一方、擬似リトライのときには、前回と同じデータを出力する。また、ライトアクセスの場合、擬似リトライであるか否かに関わらず、バス制御回路１１２がバス１１８に送出したデータをラッチしてバス１４０に出力する。
【００８６】
図５は、ＣＰＵ１０２から周辺ユニット１５０におけるレジスタ群１５４のいずれかのレジスタにリードアクセスを行うときのタイミング図の例を示す。
【００８７】
タイミングＴ１において、ＣＰＵ１０２からのアクセス要求に応じて周辺ユニット１５０からデータがバス１４０に出力される。このとき、擬似リトライ要求制御信号Ｃ１はデフォルトのインアクティブであり、カウント信号Ｃ２はデフォルトのアクティブである。また、ストローブ制御信号Ｃ３もアクティブである。
【００８８】
タイミングＴ２において、周辺ユニット１５０からバス１４０に出力されたデータがリトライ回数制御回路１２０のラッチ回路１３０によりラッチされ、バス１１８に出力される。このとき、カウンタ１２６の値は、当該レジスタの最大リトライ回数（図５の例では「３」）に設定される。
【００８９】
タイミングＴ３で、ストローブ信号生成回路１１４から第１のストローブ信号ＳＴ１がＡＮＤゲート１３６に出力される。また、このとき、ストローブ制御信号Ｃ３がアクティブであるため、ＡＮＤゲート１３６からは第１のストローブ信号ＳＴ１と同様の第２のストローブ信号ＳＴ２が出力される。
【００９０】
タイミングＴ４で、周辺ユニット１５０のインタフェース回路１５２から第１のリトライ要求信号ＲＴ１の出力が開始される。このとき、模擬要求生成回路１２８からの模擬リトライ要求信号ＭＲがインアクティブであるが、第１のリトライ要求信号ＲＴ１がアクティブであるため、ＯＲゲート１３２から第２のリトライ要求信号ＲＴ２が出力される。
【００９１】
タイミングＴ５で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のリトライ要求信号ＲＴ２をラッチする。このとき、第２のリトライ要求信号ＲＴ２がアクティブであるため、ＦＦ１１６のＱ端子からのストローブ要求信号ＳＲが出力される。これにて、１回目のリトライが確定される。同時に、カウンタ１２６は、カウント値を１つデクリメントすると共に、擬似リトライ要求制御信号Ｃ１をアクティブにする。これにより、模擬要求生成回路１２８は、模擬リトライ要求信号ＭＲをアクティブにする。
【００９２】
タイミングＴ５においてストローブ要求信号ＳＲが出力されたため、タイミングＴ６で、ストローブ信号生成回路１１４はリセット信号ＲＥＳをアクティブにすることによりＦＦ１１６をリセットすると共に、次のストローブ信号発行タイミング（Ｔ７）で、第１のストローブ信号ＳＴ１を再び出力する。また、ストローブ制御信号Ｃ３が相変わらずアクティブであるため、ＡＮＤゲート１３６から第２のストローブ信号ＳＴ２が再び出力される。これにて、１回目のリトライが実行される。
【００９３】
タイミングＴ８で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のストローブ信号ＳＴ２をラッチする。このときも、タイミングＴ５のときと同様に、第２のリトライ要求信号ＲＴ２がアクティブであるため、ＦＦ１１６のＱ端子からストローブ要求信号ＳＲが出力される。これにて、２回目のリトライが確定される。同時にカウンタ１２６は、カウント値を１つデクリメントする。なお、擬似リトライ要求制御信号Ｃ１、カウント信号Ｃ２、ストローブ制御信号Ｃ３、第１のリトライ要求信号ＲＴ１、第２のリトライ要求信号ＲＴ２、模擬リトライ要求信号ＭＲはアクティブのままである。
【００９４】
タイミングＴ９で、周辺ユニット１５０において、リードアクセスに対する処理が完了したとしてインタフェース回路１５２より第１のリトライ要求信号ＲＴ１がインアクティブにされる。なお、擬似リトライ要求制御信号Ｃ１、カウント信号Ｃ２、ストローブ制御信号Ｃ３は、アクティブのままである。
【００９５】
タイミングＴ８においてストローブ要求信号ＳＲが出力されたため、タイミングＴ１０で、ストローブ信号生成回路１１４はリセット信号ＲＥＳをアクティブにすることによりＦＦ１１６をリセットすると共に、次のストローブ信号発行タイミング（Ｔ１１）で、第１のストローブ信号ＳＴ１を再び出力する。また、擬似リトライ要求制御信号Ｃ１がアクティブのままであるため、第１のリトライ要求信号ＲＴ１がインアクティブになったものの、ＯＲゲート１３２から出力される第２のリトライ要求信号ＲＴ２は相変わらずアクティブである。また、カウント信号Ｃ２、ストローブ制御信号Ｃ３もアクティブのままであるため、ＡＮＤゲート１３６からも第２のストローブ信号ＳＴ２が再び出力される。これにて、２回目のリトライが実行される。
【００９６】
タイミングＴ１２で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のストローブ信号ＳＴ２をラッチする。このときも、インタフェース回路１５２からの第１のリトライ要求信号ＲＴ１がインアクティブであるものの、模擬要求生成回路１２８からの模擬リトライ要求信号ＭＲがアクティブであるため、第２のリトライ要求信号ＲＴ２がアクティブであり、ＦＦ１１６のＱ端子からストローブ要求信号ＳＲが出力される。これにて、３回目のリトライが確定される。なお、この３回目のリトライは、擬似リトライである。同時に、カウンタ１２６は、カウント値を１つデクリメントする。これにより、擬似リトライ要求制御信号Ｃ１とカウント信号Ｃ２はインアクティブになる。なお、このとき、第１のリトライ要求信号ＲＴ１がインアクティブであるため、ストローブ制御信号Ｃ３もインアクティブになる。また、カウンタ１２６のカウント値が０になったタイミングＴ１３で模擬リトライ要求信号ＭＲもインアクティブにされる。
【００９７】
タイミングＴ１２においてストローブ要求信号ＳＲが出力されたため、ＦＦ１１６は再びリセットされる。そして、リセット信号ＲＥＳの立下りタイミングＴ１４において、ラッチ回路１３０は、周辺ユニット１５０からデータの出力が継続されているか否かに応じてバス１１８に出力するデータを切り替える。具体的には、第１のリトライ要求信号ＲＴ１がアクティブであり、すなわち周辺ユニット１５０からデータの出力が継続されている場合には、バス１４０上のデータをラッチしてバス１１８に出力する一方、第１のリトライ要求信号ＲＴ１がインアクティブであり、すなわち周辺ユニット１５０からデータの出力が無い場合には、前回のストローブ信号期間中にバス１４０からラッチしたデータをバス１１８に出力する。なお、図５の例では、タイミングＴ１４において、ラッチ回路１３０は、前回のストローブ信号期間中にバス１４０からラッチしたデータをバス１１８に出力する。
【００９８】
また、タイミングＴ１２においてストローブ要求信号ＳＲが出力されたため、ストローブ信号生成回路１１４は、次のストローブ信号発行タイミング（Ｔ１５）で、第１のストローブ信号ＳＴ１を再び出力する。これにより、擬似リトライとなる３回目のリトライが実行される。
【００９９】
その後、次のアクセスの開始前のタイミングＴ１６で、カウンタ１２６は、カウント信号Ｃ２をデフォルト状態のアクティブに戻し、次のアクセスに備える。同時にストローブ制御信号Ｃ３もアクティブに戻される。
【０１００】
図６は、ＣＰＵ１０２から周辺ユニット１５０におけるレジスタ群１５４のいずれかのレジスタにライトアクセスを行うときのタイミング図の例を示す。
【０１０１】
タイミングＴ１において、ライトアクセスの開始に伴って、バス制御回路１１２からバス１１８にデータが出力される。このとき、擬似リトライ要求制御信号Ｃ１はデフォルトのインアクティブであり、カウント信号Ｃ２はデフォルトのアクティブである。また、ストローブ制御信号Ｃ３もアクティブである。
【０１０２】
タイミングＴ２において、バス制御回路１１２からバス１１８に出力されたデータがリトライ回数制御回路１２０のラッチ回路１３０によりラッチされ、バス１４０に出力される。このとき、カウンタ１２６の値は、アクセスされるレジスタの最大リトライ回数（図６の例では「３」）に設定される。
【０１０３】
タイミングＴ３で、ストローブ信号生成回路１１４から第１のストローブ信号ＳＴ１がＡＮＤゲート１３６に出力される。また、このとき、ストローブ制御信号Ｃ３が相変わらずアクティブであるため、ＡＮＤゲート１３６から第１のストローブ信号ＳＴ１と同様の第２のストローブ信号ＳＴ２が出力される。
【０１０４】
タイミングＴ４で、周辺ユニット１５０のインタフェース回路１５２から第１のリトライ要求信号ＲＴ１の出力が開始される。このとき、模擬要求生成回路１２８からの模擬リトライ要求信号ＭＲがインアクティブのままであるが、第１のリトライ要求信号ＲＴ１がアクティブであるため、ＯＲゲート１３２からの第２のリトライ要求信号ＲＴ２もアクティブになる。
【０１０５】
タイミングＴ５で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のリトライ要求信号ＲＴ２をラッチする。このとき、第２のリトライ要求信号ＲＴ２がアクティブであるため、ＦＦ１１６のＱ端子からストローブ要求信号ＳＲが出力される。これにて、１回目のリトライが確定される。カウンタ１２６は、カウント値を１つデクリメントすると共に、擬似リトライ要求制御信号Ｃ１をアクティブにする。これにより、模擬要求生成回路１２８は、模擬リトライ要求信号ＭＲをアクティブにする。なお、カウント信号Ｃ２とストローブ制御信号Ｃ３は、アクティブのままである。
【０１０６】
タイミングＴ５においてストローブ要求信号ＳＲが出力されたため、タイミングＴ６で、ストローブ信号生成回路１１４はリセット信号ＲＥＳをアクティブにすることによりＦＦ１１６をリセットすると共に、次のストローブ信号発行タイミング（Ｔ７）で、第１のストローブ信号ＳＴ１を再び出力する。また、ストローブ制御信号Ｃ３が相変わらずアクティブであるため、ＡＮＤゲート１３６からも第２のストローブ信号ＳＴ２が再び周辺ユニット１５０とＦＦ１１６に入力される。ラッチ回路１３０は、バス１４０からデータをラッチしてバス１１８に再度出力する。これにて、１回目のリトライが実行される。
【０１０７】
タイミングＴ８で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のストローブ信号ＳＴ２をラッチする。このときも、タイミングＴ５のときと同様に、第２のリトライ要求信号ＲＴ２がアクティブであるため、ＦＦ１１６のＱ端子からストローブ要求信号ＳＲが出力される。これにて２回目のリトライが確定される。同時にカウンタ１２６は、カウント値を１つデクリメントする。なお、擬似リトライ要求制御信号Ｃ１、カウント信号Ｃ２、ストローブ制御信号Ｃ３、第１のリトライ要求信号ＲＴ１、第２のリトライ要求信号ＲＴ２、模擬リトライ要求信号ＭＲは、アクティブのままである。
【０１０８】
タイミングＴ９で、周辺ユニット１５０において、ライトアクセスに対する処理が完了したとしてインタフェース回路１５２より第１のリトライ要求信号ＲＴ１がインアクティブにされる。なお、擬似リトライ要求制御信号Ｃ１、カウント信号Ｃ２、ストローブ制御信号Ｃ３は、アクティブのままである。
【０１０９】
タイミングＴ８においてストローブ要求信号ＳＲが出力されたため、タイミングＴ１０で、ストローブ信号生成回路１１４はリセット信号ＲＥＳをアクティブにすることによりＦＦ１１６をリセットすると共に、次のストローブ信号発行タイミング（Ｔ１１）で、第１のストローブ信号ＳＴ１を再び出力する。また、擬似リトライ要求制御信号Ｃ１がアクティブのままであるため、第１のリトライ要求信号ＲＴ１がインアクティブになったものの、ＯＲゲート１３２から出力される第２のリトライ要求信号ＲＴ２は相変わらずアクティブである。また、ストローブ制御信号Ｃ３もアクティブのままであるため、タイミングＴ１１にてＡＮＤゲート１３６からも第２のストローブ信号ＳＴ２が再びＦＦ１１６のＣ端子に入力される。これにて２回目のリトライが実行される。
【０１１０】
タイミングＴ１２で、第１のストローブ信号ＳＴ１が立ち下がる。そのため、第２のストローブ信号ＳＴ２も立下り、ＦＦ１１６は、第２のストローブ信号ＳＴ２をラッチする。このとき、インタフェース回路１５２からの第１のリトライ要求信号ＲＴ１がインアクティブであるものの、模擬要求生成回路１２８からの模擬リトライ要求信号ＭＲがアクティブであるため、第２のリトライ要求信号ＲＴ２がアクティブであり、ＦＦ１１６のＱ端子からストローブ要求信号ＳＲが出力される。これにて、擬似リトライとなる３回目のリトライが確定される。同時にカウンタ１２６は、カウント値を１つデクリメントする。これにより、擬似リトライ要求制御信号Ｃ１とカウント信号Ｃ２はインアクティブになる。なお、このとき、第１のリトライ要求信号ＲＴ１がインアクティブであるため、ストローブ制御信号Ｃ３もインアクティブになる。また、カウンタ１２６のカウント値が０になったタイミングＴ１３で模擬リトライ要求信号ＭＲもインアクティブにされる。
【０１１１】
タイミングＴ１２においてストローブ要求信号ＳＲが出力されたため、ＦＦ１１６は再びリセットされる。
【０１１２】
また、ストローブ信号生成回路１１４は、次のストローブ信号発行タイミング（Ｔ１４）で、第１のストローブ信号ＳＴ１を再び出力する。ラッチ回路１３０は、前回と同じデータをバス１４０に出力する。また、ストローブ制御信号Ｃ３がインアクティブであるため、周辺ユニット１５０とＦＦ１１６へは第１のストローブ信号ＳＴ１が伝達されない。これにより、擬似リトライとなる３度目のリトライが実行される。
【０１１３】
その後、次のアクセスの開始前のタイミングＴ１５で、カウンタ１２６は、カウント信号Ｃ２をデフォルト状態のアクティブに戻し、次のアクセスに備える。これに伴って、ストローブ制御信号Ｃ３もアクティブに戻される。
【０１１４】
すなわち、本実施の形態のマイクロコンピュータ１００において、バス・コントロールユニット１１０は、ＣＰＵ１０２のアクセスに対して周辺ユニット１５０による第１のリトライ要求信号ＲＴ１の出力期間の長短に関わらず、リトライ（擬似リトライを含む）の回数を予め設定された最大回数になるように制御を行う。こうすることにより、周辺ユニット１５０内のレジスタに対するアクセス時間を固定することができ、マイクロコンピュータ１００のスペックのワースト値を実測可能になる。
【０１１５】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１１６】
例えば、マイクロコンピュータ１００において、周辺ユニット１５０におけるレジスタ群１５４に含まれるレジスタ毎に最大リトライ回数Ｍが設定されているが、全てのレジスタに対して同一の最大リトライ回数を設定するようにしてもよい。こうすることにより、アドレスデコーダ１２２を設けずに済み、記憶部１２４の容量も削減することができる。
【０１１７】
また、上述した実施の形態は、本発明にかかる技術をマイクロコンピュータに適用したものであり、周辺ユニット１５０に対するアクセスがＣＰＵからのものであるが、例えばＣＰＵの機能をエミュレーションするＩＣＥにより周辺ユニット１５０へアクセスするシステムに対しても本発明の技術を適用することができる。すなわち、図１に示すＣＰＵ１０２をＩＣＥに置き換えたシステムにもバス・コントロールユニット１１０を適用することができる。
【０１１８】
本発明にかかる技術は、ワーストケースの実測を可能にするのみならず、マイクロコンピュータの設計においても有利である。マイクロコンピュータ全体が同期クロックで動作する前提で設計する場合、周辺ユニットもマイクロコンピュータ内の最高クロック（例えばＣＰＵの動作クロック）で動作するように設計しなければならず、設計制約が多く、コストもかかる。
【０１１９】
そこで、周辺ユニットが低速クロックで動作するように設定し、バス・コントロールユニットにより高速クロックで動作するＣＰＵと周辺ユニットとを非同期接続を行うことで、設計の簡単化と機能の保証を実現することができる。この場合、本発明のバス・コントロールユニットのように、周辺ユニットに対するアクセス時間を固定することにより、設計時の容易性を維持しながら、動作時は、マイクロコンピュータ全体が同期して動作しているかのようにすることができる。
【符号の説明】
【０１２０】
１  マイクロコンピュータ  ２  ＣＰＵ
３  バス・コントロールユニット  ４  周辺ユニット
５  発振器  ３１  バス制御回路
３２  ストローブ信号生成回路  ３３  ＦＦ
３５  バス  ３６  ストローブ信号
３７  リトライ要求信号  ３８  ストローブ要求信号
４１  インタフェース回路  ４２  レジスタ
５１  クロック
１００  マイクロコンピュータ  １０２  ＣＰＵ
１０４  発振器  １１０  バス・コントロールユニット
１１２  バス制御回路  １１４  ストローブ信号生成回路
１１６  ＦＦ  １１８  バス
１２０  リトライ回数制御回路  １２２  アドレスデコーダ
１２４  記憶部  １２６  カウンタ
１２８  模擬要求生成回路  １３０  ラッチ回路
１３２  ＯＲゲート  １３４  ストローブ制御回路
１３６  ＡＮＤゲート  １４０  バス
１５０  周辺ユニット  １５２  インタフェース回路
１５４  レジスタ群    Ｃ１  擬似リトライ要求制御信号
Ｃ２  カウント信号  Ｃ３  ストローブ制御信号
ＭＲ  模擬リトライ要求信号  ＲＥＳ  リセット信号
ＲＴ１  第１のリトライ要求信号  ＲＴ２  第２のリトライ要求信号
ＳＲ  ストローブ要求信号    ＳＴ１  第１のストローブ信号
ＳＴ２  第２のストローブ信号
【図１】
2011150420.tif 000003
【図２】
2011150420.tif 000004
【図３】
2011150420.tif 000005
【図４】
2011150420.tif 000006
【図５】
2011150420.tif 000007
【図６】
2011150420.tif 000008
【図７】
2011150420.tif 000009
【図８】
2011150420.tif 000010
【図９】
2011150420.tif 000011
【図１０】
2011150420.tif 000012