(57)【要約】【課題】バスマスタのクロック周波数が動的に変わる場合でも、バスマスタの不必要な待ちを抑えつつ、周辺モジュールのレジスタのライト間隔を保証する情報処理装置を提供する。【解決手段】バスマスタと１つ以上の周辺モジュール回路とを持つ情報処理装置であって、バスマスタは動作状況に応じて動的に周波数が変化するバスマスタ用クロックで動作し、周辺モジュールは１つ以上の周辺モジュール用クロックで動作し、周辺モジュールはバスマスタ用クロックで動作する１つ以上のレジスタと、周辺モジュール用クロックで動作する特殊レジスタを備え、特殊レジスタは、カウンタを備え、バスマスタが特殊レジスタにレジスタ値を書き込んだ場合に、特殊レジスタがレジスタ値をカウンタに設定した後にカウンタを起動し、カウンタがカウントを開始し、カウンタがカウント満了した場合に、特殊レジスタが周辺モジュールからの書込み応答を出力することを特徴とする。【選択図】図１
2018180966.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタと１つ以上の周辺モジュール回路とを持つ情報処理装置であって、
前記バスマスタは動作状況に応じて動的に周波数が変化するバスマスタ用クロックで動作し、
前記周辺モジュールは１つ以上の周辺モジュール用クロックで動作し、
前記周辺モジュールは前記バスマスタ用クロックで動作する１つ以上のレジスタと前記周辺モジュール用クロックで動作する特殊レジスタを備え、
前記特殊レジスタはカウンタを備え、
前記バスマスタが前記特殊レジスタにレジスタ値を書き込んだ場合に、前記特殊レジスタが前記レジスタ値を前記カウンタに設定した後に前記カウンタを起動し、前記カウンタがカウントを開始し、前記カウンタがカウント満了した場合に、前記特殊レジスタが周辺モジュールからの書込み応答を出力することを特徴とする情報処理装置。
【請求項２】
前記周辺モジュール用クロックが複数ある場合に、前記特殊レジスタをそれぞれの周辺モジュール用クロックの種類ごとに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特殊レジスタにさらにバスマスタ用クロックで動作するタイムアウト用カウンタを備え、
前記バスマスタが前記特殊レジスタにレジスタ値を書き込んだ場合に、前記特殊レジスタが前記レジスタ値を前記カウンタに設定した後に前記カウンタ及び前記タイムアウト用カウンタを起動し、前記カウンタ及び前記タイムアウト用カウンタがカウントを開始し、前記カウンタのカウントが満了した場合には前記特殊レジスタが周辺モジュールから書込み応答を出力し、タイムアウト用カウンタのカウントが満了した場合には前記特殊レジスタが周辺モジュールからエラー応答を出力することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。特にバスマスタのクロック周波数が動的に変わる場合においても、バスマスタの不必要な待ちを抑えつつ、周辺モジュールのレジスタのライト間隔を保証するための情報処理装置に関する。
【背景技術】
【０００２】
近年、ＣＰＵの性能向上のためにＣＰＵの動作クロック周波数の高速化が進んでいる。それに対し、周辺モジュールの動作クロック周波数は低速のままである。そのため、ＣＰＵの動作クロックと周辺モジュールの動作クロックの周波数差が大きくなってきている。
【０００３】
特許文献１では、ＣＰＵと周辺モジュールのクロック周波数の差が大きくなったことを要因として、ＣＰＵにストールが多く発生し、ＣＰＵの性能低下を課題とし、性能向上を図っている。
【０００４】
また、ＣＰＵの性能低下の対策として、特許文献２に記載がある書込バッファという仕組みが知られている。書込バッファはＣＰＵから来た書込命令を蓄積し、蓄積された命令を順次、実行する。このようにすることで、ＣＰＵは書込み応答を待たずに、次の命令を発行でき、性能低下を防ぐことが出来る。
【０００５】
周辺モジュールには、とあるレジスタに対して書込みアクセスを行なった後、次のレジスタに対して書込みアクセスをする際に、周辺モジュールの動作クロックで所定サイクル数の時間間隔を開ける、という要件を持つ場合がある。この要件に対し、従来では、ファームウエアの中でＮＯＰ命令を用いて周辺モジュールの動作クロックで所定サイクル数に相当する時間間隔を開けることを保証する方法がある。
【０００６】
しかし、近年のＣＰＵは、消費電力削減のために、ファームウエアの介在なしにＣＰＵのクロック周波数を動的に変化させる技術がある。例えば、機器の動作状況に応じてＣＰＵのクロック周波数を変化させる技術が知られている。ＣＰＵのクロック周波数を動的に変化させる場合、ＮＯＰ命令を用いた時間間隔を開ける方法では、ＣＰＵのクロック周波数の変化に応じて開けた時間が変化してしまうため、周辺モジュールの動作クロックで所定サイクルの時間間隔を開けることが出来なくなる。ＣＰＵのクロック周波数が動的に変化する場合でも周辺モジュールの動作クロックで所定サイクル数の時間間隔を開けることを保証するには、ＣＰＵのクロック周波数のバリエーションに対応したファームウエアを用意する必要があるが、煩雑である。そのため、周波数に依らない１つのファームウエアであることが望ましい。しかし、１つのファームウエアにした場合、ＮＯＰの回数で周辺モジュールのクロックで所定サイクル数分の時間を確保するためには、ＣＰＵのクロック周波数が最速の場合でも満たすファームウエアにする必要がある。しかし、そのファームウエアではＣＰＵのクロック周波数が低速に切り替わった場合に、ＣＰＵに不必要に待ちが発生する、という問題がある。
【０００７】
この問題について図９を用いて具体例を挙げて説明する。ＣＰＵ用クロックが動的に変化をして、ＣＰＵ用クロックが８００ＭＨｚ、周辺モジュール用クロックが１００ＭＨｚで動作する場合と、ＣＰＵ用クロックが２００ＭＨｚ、周辺モジュール用クロックが１００ＭＨｚで動作する場合があるとする。また、周辺モジュールのレジスタに対してライトアクセスをしてから次のライトアクセスをするまでに周辺モジュール用クロックで２サイクルの間隔を待つ、という要件があるとする。このような要件の場合、ＣＰＵ用クロックが８００ＭＨｚの場合にも要件を満たせるようにＣＰＵ用クロックで１６サイクル分のＮＯＰを入れて待つ方法が取られる。ＣＰＵ用クロックの周波数に依らない１つのファームウエアとするためＣＰＵ用クロックが２００ＭＨｚの場合も１６サイクル分のＮＯＰを入れる。
【０００８】
図９−ａはＣＰＵ用クロックが８００ＭＨｚ、周辺モジュール用クロックが１００ＭＨｚで動作する場合のタイミングチャートである。この場合、図中に示した「待ち時間」は非常に小さい。これに対し、図９−ｂはＣＰＵ用クロックが２００ＭＨｚ、周辺モジュール用クロックが１００ＭＨｚで動作する場合のタイミングチャートである。このときＣＰＵ用クロックの１６サイクルが周辺モジュール用クロックの２サイクルに対して長くなるため、「待ち時間」が長くなる。周辺モジュールの要件を満たしているにも関わらず、ＮＯＰを実施しているためＣＰＵが他の処理が出来ない。つまり、ＣＰＵにとって不必要な待ちが生じる。
【０００９】
また、近年のＣＰＵは、ＮＯＰ命令など意味の無いコードは、実行前に解釈をして実行しない場合もあり、ＮＯＰ命令を使って時間の保障すること自体が難しい、という問題もある。
【００１０】
そこで、ＮＯＰ命令を使わない別の方法として、レジスタに対してリードアクセスを繰り返し行うという方法も考えられる。しかし、リードアクセスを用いる場合、ＣＰＵの性能低下の対策として書込みバッファが備えられていると別の問題が生じる。その問題は、ＣＰＵは書込みバッファに蓄積された書込み命令が全て吐き出されないと読出し命令を実行することができず、読出し命令をして時間を確保しようとしても、なかなか読出し命令が実行されず、不必要にＣＰＵが待たされ性能低下が生じるという問題がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６‐１６４１１９号公報
【特許文献２】特許第３９３５２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記従来技術では、以上に述べたレジスタに対するライト間隔を保障するために生じるＣＰＵに生じる不必要な待ちに対する解決策については記載が無かった。
【００１３】
本発明は、上記の問題点に鑑み、ＣＰＵをはじめとしたバスマスタのクロック周波数が動的に変わる場合でも、バスマスタの不必要な待ちを抑えつつ、周辺モジュールのレジスタのライト間隔を保証するための情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために、本発明に係る情報処理装置は、
バスマスタと、１つ以上の周辺モジュール回路と、を持つ情報処理装置であって、前記バスマスタは動作状況に応じて動的に周波数が変化するバスマスタ用クロックで動作し、前記周辺モジュールは１つ以上の周辺モジュール用クロックで動作し、前記周辺モジュールは前記バスマスタ用クロックで動作する１つ以上のレジスタと前記周辺モジュール用クロックで動作する特殊レジスタを備え、前記特殊レジスタは、カウンタを備え、前記バスマスタが前記特殊レジスタにレジスタ値を書き込んだ場合に、前記特殊レジスタが前記レジスタ値を前記カウンタに設定した後に前記カウンタを起動し、前記カウンタがカウントを開始し、前記カウンタがカウント満了した場合に、前記特殊レジスタが周辺モジュールからの書込み応答を出力することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ＣＰＵをはじめとしたバスマスタのクロック周波数が動的に変わる場合でも、バスマスタの不必要な待ちを抑えつつ、周辺モジュールのレジスタのライト間隔を保証するための情報処理装置を提供することが出来る。
【図面の簡単な説明】
【００１６】
【図１】実施例１の情報処理装置の構成図
【図２】実施例１の特殊レジスタの構成図
【図３】情報処理装置のフローチャート
【図４】実施例２の情報処理装置の構成図
【図５】実施例３の情報処理装置の構成図
【図６】実施例３の特殊レジスタの構成図
【図７】実施例１のレジスタ説明
【図８】実施例２のレジスタ説明
【図９】課題である不必要な待ちの説明のためのタイムチャート
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の実施の形態１における情報処理装置の構成である。
【００１９】
情報処理装置はＣＰＵ１０と、周辺モジュール２０とクロック供給部３０を有する。ＣＰＵ１０と周辺モジュール２０とはバス４０で接続している。ＣＰＵ１０は、ＣＰＵコア１１０と書込バッファ１２０を有する。周辺モジュール２０は、レジスタＩＦ１３０、レジスタＡ１４０、レジスタＢ１５０、特殊レジスタ１６０を有する。レジスタＩＦ１３０は、ＣＰＵ１０からのレジスタに対してのアクセスを解釈し、レジスタＡ１４０、レジスタＢ１５０、特殊レジスタ１６０に振り分ける。レジスタＡ１４０とレジスタＢ１５０は周辺モジュール２０のレジスタであり、例えば周辺モジュールの各種機能の設定に用いる。
【００２０】
クロック供給部３０は、クロックを生成し各部に供給する。クロック供給部３０は、ＣＰＵ用クロック３１と周辺モジュール用クロック３２を生成し、ＣＰＵ用クロック３１をＣＰＵ１０と周辺モジュール２０に供給し、周辺モジュール用クロック３２を周辺モジュール２０に供給する。このとき、ＣＰＵ用クロック３１は動的に周波数を変化させる。
【００２１】
次に、レジスタアクセスを行なうときの信号の流れを、図１を用いて説明する。ＣＰＵコア１１０は、書込みバッファ１２０に対して書込みアクセス１１１を行なう。書込みバッファ１２０は、バス４０に対して書込みアクセス１２１を行なう。バス４０は周辺モジュール２０に対して書込みアクセス１２３を行なう。周辺モジュール２０のレジスタＩＦ１３０は、書込みアクセスの宛先を確認し、該当するレジスタに送出する。例えばレジスタＡ１４０に対しての書込みアクセスの場合は、レジスタＩＦ１３０はレジスタＡ１４０に対して書込みアクセス１４１を送信する。書込みアクセス１４１が起こった後、レジスタＡ１４０は書込み応答１４２をレジスタＩＦ１３０に送出する。
【００２２】
また、レジスタＢ１５０に対しての書込みアクセスの場合は、レジスタＩＦ１３０はレジスタＢ１５０に対して書込みアクセス１５１を送信する。書込みアクセス１５１が起こった後、レジスタＡ１５０は書込み応答１５２をレジスタＩＦ１３０に送出する。また、特殊レジスタ１６０に対しての書込みアクセスの場合は、レジスタＩＦ１３０は特殊レジスタ１６０に対して書込みアクセス１６１を送信する。書込みアクセス１６１が起こった後、特殊レジスタ１６０は書込み応答１６２をレジスタＩＦ１３０に送出する。
【００２３】
レジスタＩＦ１３０は、レジスタから受けとった書込み応答を受け取り、書込み応答１２４をバス４０に通知する。バス４０は書込み応答１２４を受け取り、ＣＰＵ１０に対して書込み応答１２２を送出する。ＣＰＵ内の書込みバッファ１２０は書込み応答１２２を受け、ＣＰＵコア１１０に対して書込み応答１１２を通知する。
【００２４】
次に特殊レジスタ１６０の詳細について、図２を用いて説明する。特殊レジスタ１６０は、レジスタＩＦ１３０からの書込みアクセス１６１と、クロック供給部３０からの周辺モジュール用クロック３２を入力とする。また、レジスタＩＦ１３０に対して書込み応答１６２を出力する。特殊レジスタ１６０は、内部にカウンタ２００を備える。カウンタ２００は、カウント設定値、スタート、クロックを入力とし、エンドを出力する。クロックには周辺モジュール用クロック３２を入力し、カウント用のクロックとして使用する。
【００２５】
書込みアクセス１６１には、データ２０１と特殊レジスタへの有効なアクセスであることを示すＶＡＬＩＤ２０２を含む。カウント設定値には、データ２０１を入力し、スタートには、ＶＡＬＩＤ２０２を入力する。カウンタ２００はカウント設定値のカウントが満了すると書込み応答１６２をエンドから出力する。
【００２６】
以上が特殊レジスタ１６０の説明である。
【００２７】
次に、情報処理装置の動作について、フローチャートである図３を用いて説明する。このとき、レジスタＡ１４０に書込みアクセスした後にレジスタＢ１５０に書込みアクセスするときには、周辺モジュールで２サイクル以上開けなくてはならない、という要件があるとする。
【００２８】
また、図７は情報処理装置のレジスタマップの一例である。アドレス、レジスタ名、Ｂｉｔ、フィールド名、機能を記載している。アドレス０ｘ００にはレジスタＡが割り当てられており、Ｂｉｔ１５−０にＦｕｎｃ０、Ｂｉｔ３１−１６にＦｕｎｃ１が割り当てられていることを示している。同様にアドレス０ｘ０４にはレジスタＢが割り当てられており、Ｂｉｔ３１−０にＦｕｎｃ２が割り当てられていることを示している。０ｘ０８には特殊レジスタが割り当てられており、Ｂｉｔ３１−Ｂｉｔ１６はＲｅｓｅｒｖｅｄ、Ｂｉｔ１５―０にＰｒｅｓｅｔ  Ｖａｌｕｅが割り当てられている。Ｐｒｅｓｅｔ  Ｖａｌｕｅにカウンタ設定値を周辺モジュール用クロックのサイクル数で指定する。
【００２９】
まずＳ３００において、ＣＰＵ１０が周辺モジュールのレジスタＡ１４０に対して、「第１の書込みアクセス」を発行する。「第１の書込みアクセス」は、書込みアクセス１２１、書込みアクセス１２３、書込みアクセス１４１を経て、レジスタＡ１４０に送られ、Ｆｕｎｃ１、Ｆｕｎｃ０を設定する。
【００３０】
Ｓ３１０において、「第１の書込みアクセス」を受けたレジスタＡ１４０は「第１の書込み応答」を出力する。「第１の書込み応答」は、書込み応答１６２、書込み応答１２４，書込み応答１２２を経て、ＣＰＵ１０に送られる。
【００３１】
Ｓ３２０において、ＣＰＵ１０が特殊レジスタ１６０に対して「第２の書込みアクセス」を発行する。「第２の書込みアクセス」は、書込みアクセス１２１、書込みアクセス１２３、書込みアクセス１６１を経て、特殊レジスタ１６０に送られる。ここでは、Ｐｒｅｓｅｔ  Ｖａｌｕｅに「２」を設定するために、「第２の書込みアクセス」で書き込むデータは「２」とする。
【００３２】
Ｓ３３０において、特殊レジスタ１６０は「第２の書込みアクセス」で受けた値である「２」をカウンタ設定値として設定し、カウンタのカウントをスタートする。
【００３３】
Ｓ３４０において、カウンタが満了するまでカウントを繰り返す。カウントが満了したらＳ３５０に遷移する。
【００３４】
Ｓ３５０において、カウントが満了した特殊レジスタ１６０は、「第２の書込み応答」を出力する。「第２の書込み応答」は、書込み応答１６２、書込み応答１２４、書込み応答１２２を経て、ＣＰＵ１０に送られる。
【００３５】
Ｓ３６０において、ＣＰＵ１０が周辺モジュールのレジスタＢ１５０に対して「第３の書込みアクセス」を発行する。「第３の書込みアクセス」は、書込みアクセス１２１、書込みアクセス１２３、書込みアクセス１５１を経て、レジスタＢ１５０に送られる。
【００３６】
Ｓ３７０において、「第３の書込みアクセス」を受けたレジスタＢ１５０は、「第３の書込み応答」を出力する。「第３の書込み応答」は、書込み応答１５２、書込み応答１２４、書込み応答１２２、書込み応答１１２を経て、ＣＰＵ１０に送られる。
【００３７】
以上が本実施例の説明であり、本実施例のようにすることで、レジスタのライトの間隔を周辺モジュールで所定サイクル数開けたい場合に確実に開けることが可能になる。とくにＣＰＵクロックが動的に変化する場合においても、不必要なＣＰＵの待ちを抑えつつ、周辺モジュール用クロックで所定サイクル数分の間隔を適切に開けることが可能となる。
【００３８】
また、本発明では書込みアクセスのみを使用して所定サイクル数の時間を待つことを可能としたため、ＮＯＰ命令が省かれて時間が足りなくなったり、リードアクセスが書込バッファに蓄積された書込命令で待たされたりすることも無い。
【００３９】
本実施例において、ＣＰＵ１０の中に書込バッファ１２０がある例として説明したが、無くても構わない。
【実施例２】
【００４０】
実施例１は、周辺モジュールが１つ、周辺モジュール用クロックが１つであった。本発明は周辺モジュールが複数ある場合や、周辺モジュールクロックが複数ある場合にも適用可能である。
【００４１】
本実施例２は、周辺モジュールが２つあり、それぞれの周辺モジュール用に周辺モジュール用クロックを持つ構成の例である。
【００４２】
図４が本実施例の構成図である。実施例１と同じ機能の箇所には同じ番号を付けている。図４の情報処理装置には、実施例１の情報処理装置に加え、周辺モジュール４２０をさらに備える。
【００４３】
また、クロック供給部４３０は、ＣＰＵ用クロック３１と周辺モジュール用クロック３２に加え、周辺モジュール用クロック４３２を生成する。そして、ＣＰＵ用クロック３１をＣＰＵ１０と周辺モジュール２０と周辺モジュール４２０に供給し、周辺モジュール用クロック３２を周辺モジュール２０に供給し、周辺モジュール用クロック４３２を周辺モジュール４２０に供給する。このとき、ＣＰＵ用クロック３１は動的に周波数を変化させる。
【００４４】
周辺モジュール４２０は、レジスタＩＦ４３０、レジスタＣ４４０、レジスタＤ４５０、特殊レジスタ４６０を有する。
【００４５】
レジスタＩＦ４３０は、ＣＰＵ１０からのレジスタアクセスを解釈し、レジスタＣ４４０、レジスタＤ４５０、特殊レジスタ４６０に振り分ける。レジスタＣ４４０とレジスタＤ４５０は周辺モジュール４２０のレジスタであり、各種機能の設定に用いる。特殊レジスタ４６０は特殊レジスタ１６０と同等の機能を有し、周辺用モジュールクロック４３２で動作する点が異なる。
【００４６】
次に、周辺モジュール４２０のレジスタに対してレジスタアクセスを行なうときの信号の流れを、図４を用いて説明する。ＣＰＵコア１１０は、書込みバッファ１２０に対して書込みアクセス１１１を行なう。書込みバッファ１２０は、バス４０に対して書込みアクセス１２１を行なう。バス４０は周辺モジュール４２０に対して書込みアクセス４２３を行なう。周辺モジュール４２０のレジスタＩＦ４３０は、書込みアクセスの宛先を確認し、該当するレジスタに送出する。
【００４７】
レジスタＣ４４０に対しての書込みアクセスの場合は、レジスタＩＦ４３０はレジスタＣ４４０に対して書込みアクセス４４１を送信する。書込みアクセス４４１が起こった後、レジスタＣ４４０は書込み応答４４２をレジスタＩＦ４３０に送出する。
【００４８】
また、レジスタＤ４５０に対しての書込みアクセスの場合は、レジスタＩＦ４３０はレジスタＤ４５０に対して書込みアクセス４５１を送信する。書込みアクセス４５１が起こった後、レジスタＤ４５０は書込み応答４５２をレジスタＩＦ４３０に送出する。
【００４９】
また、特殊レジスタ４６０に対しての書込みアクセスの場合は、レジスタＩＦ４３０は特殊レジスタ４６０に対して書込みアクセス４６１を送信する。書込みアクセス４６１が起こった後、特殊レジスタ４６０は書込み応答４６２をレジスタＩＦ４３０に送出する。
【００５０】
レジスタＩＦ４３０は、レジスタから受けとった書込み応答を受け取り、書込み応答４２４をバス４０に通知する。バス４０は書込み応答４２４を受け取り、ＣＰＵ１０に対して書込み応答１２２を送出する。ＣＰＵ内の書込みバッファ１２０は書込み応答１２２を受け、ＣＰＵコア１１０に対して書込み応答１１２を通知する。
【００５１】
本実施例のように周辺モジュール用クロックごとに特殊レジスタを設けることにより、各周辺モジュール用クロックで所定サイクル数の間隔を開けるという要件に対応することが可能になる。
【実施例３】
【００５２】
実施例１の構成においては消費電力削減のために周辺モジュール用クロックを停止した場合についてのケアがされていなかった。周辺モジュール用クロックを停止した場合、特殊レジスタに書込みアクセスすると書込み応答が返ってこなくなりＣＰＵがハングする可能性がある。
【００５３】
本実施例３においては、その点を考慮し、タイムアウトカウンタを別に設けた例である。図５が本実施例の構成図である。実施例と同じ機能の箇所には同じ番号を付けている。図５の情報処理装置の実施例１の情報処理装置と異なる点は、周辺モジュール２０内の特殊レジスタ５６０としている点である。特殊レジスタ５６０にはＣＰＵ用クロック３１を入力する。
【００５４】
次に特殊レジスタ５６０の詳細について図６を用いて説明する。特殊レジスタ５６０は、レジスタＩＦ１３０からの書込みアクセス１６１と、クロック供給部３０から周辺モジュール用クロック３２とＣＰＵ用クロック３１とを入力する。また、レジスタＩＦ１３０に対して書込み応答１６２を出力する。
【００５５】
特殊レジスタ５６０は、内部にカウンタ２００に加え、タイムアウトカウンタ６００を備える。内部のカウンタ２００は実施例１と同等である。
【００５６】
タイムアウトカウンタ６００は、リセット、スタート、クロックを入力し、エンドを出力する。クロックにはＣＰＵ用クロック３１を入力し、カウント用のクロックとして使用する。タイムアウトカウンタ６００は内部にカウント設定値６０１を持つ。書込みアクセス１６１に含まれる特殊レジスタ５６０への有効なアクセスを示すＶＡＬＩＤ２０２をスタートに入力する。カウンタが満了するとエンドからエラー応答６１１を出力する。
【００５７】
６２０は結合部である。結合部６２０はカウンタ２００のカウンタが満了して出力される正常な書込み応答６１０とタイムアウトカウンタ６００のカウンタが満了して出力されるエラー応答６１１を結合する。この結合部６２０の出力を特殊レジスタ５６０から書込み応答１６２として出力する。
【００５８】
周辺モジュールクロック３２が供給されているときには、カウンタ２００からの書込み応答６１０を使用する。また、書込み応答６１０をタイムアウトカウンタ６００のリセットに入力することによりタイムアウトカウンタ６００のカウントをリセットさせる。
【００５９】
消費電力削減のために周辺モジュールクロック３２が停止しているときに、特殊レジスタ５６０に書込みアクセスしてしまった場合には、タイムアウトカウンタがカウント設定値６０１分をＣＰＵ用クロックでカウントし、エラー応答６１１を出力する。
【００６０】
また、ここまではカウント設定値６０１を固定値として持つ場合で説明したが、レジスタアクセスで変更できるようにしても良い。例えば、図８は、レジスタアクセスで設定できるようにした場合の情報処理装置のレジスタマップである。図７と同様な部分は説明を省略する。０ｘ０８には特殊レジスタが割り当てられており、Ｂｉｔ３１−Ｂｉｔ１６はＴｉｍｅＯｕｔ  Ｖａｌｕｅがさらに割り当てている。このＴｉｍｅＯｕｔ  Ｖａｌｕｅにタイムアウトとするカウント設定値をＣＰＵ用クロックのサイクル数で指定することにより、カウント設定値を変更できるようにしても良い。
【００６１】
以上、本実施例のようにすることにより、周辺モジュール用クロックが停止した場合に書込みアクセスしたときにＣＰＵがハングすることを防ぐことが出来る。
【符号の説明】
【００６２】
１０  ＣＰＵ、２０  周辺モジュール、３０  クロック供給部、
４０  バス、１４０  レジスタＡ、１５０  レジスタＢ、
１６０  特殊レジスタ
【図１】
2018180966.tif 000003
【図２】
2018180966.tif 000004
【図３】
2018180966.tif 000005
【図４】
2018180966.tif 000006
【図５】
2018180966.tif 000007
【図６】
2018180966.tif 000008
【図７】
2018180966.tif 000009
【図８】
2018180966.tif 000010
【図９】
2018180966.tif 000011