(57)【要約】【課題】非同期クロックによるデータ転送では、メタステーブル対策のため、同期設計に比べレイテンシが増加し、データ転送性能が劣化する。【解決手段】プロセッサ１０１と、当該プロセッサ１０１に接続されたサブモジュール１０３と、プロセッサ１０１とサブモジュール１０３との間のデータ転送を監視する外部アクセス監視部２０４と、当該監視の結果に応じてプロセッサクロックをサブモジュールクロックと同期となるように遷移させるか、非同期となるように遷移させるかを制御する同期・非同期制御部２０７とを設ける。具体的には、プロセッサ１０１がサブモジュール１０３にアクセスする頻度に応じて、アクセス頻度が高い場合にはプロセッサクロックをサブモジュールクロックと同期となるように遷移させ、アクセス頻度が低い場合にはプロセッサクロックをサブモジュールクロックと非同期となるように遷移させる。【選択図】図１
2010113645.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに接続されたサブモジュールと、
前記プロセッサと前記サブモジュールとの間のデータ転送を監視する外部アクセス監視部と、
前記外部アクセス監視部による監視の結果に応じて前記プロセッサのクロックを前記サブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたコンピュータシステムであって、
前記外部アクセス監視部は、
前記プロセッサと前記サブモジュールとの間の一定期間毎のアクセス回数を計測するアクセス計測部と、
前記アクセス計測部による計測の結果と規定カウント値とを比較する比較器とを有し、
前記同期・非同期制御部は、前記比較器による前記規定カウント値との比較の結果に応じて、前記一定期間内のアクセス回数が前記規定カウント値以上である場合には前記プロセッサのクロックが前記サブモジュールのクロックと同期となるように遷移させる一方、前記一定期間内のアクセス回数が前記規定カウント値未満である場合には前記プロセッサのクロックが前記サブモジュールのクロックと非同期となるように遷移させることを特徴とするコンピュータシステム。
【請求項２】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックを前記サブモジュールのクロックと非同期から同期へ遷移させる場合に、前記プロセッサのクロックを、前記サブモジュールのクロックと同期となる周波数の中で最も高い周波数に設定することを特徴とするコンピュータシステム。
【請求項３】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックを前記サブモジュールのクロックと非同期から同期へ遷移させる場合に、前記プロセッサのクロックを、前記サブモジュールのクロックと同期となる周波数の中で、同期へ遷移する直前の周波数に最も近い周波数へ遷移させることを特徴とするコンピュータシステム。
【請求項４】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックを前記サブモジュールのクロックと同期から非同期へ遷移させる場合に、前記プロセッサのクロックを、前記プロセッサの動作可能な周波数の中で最も高い周波数に設定することを特徴とするコンピュータシステム。
【請求項５】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックの同期・非同期間の遷移後の前記プロセッサのクロックの周波数を記録する周波数保持部を有し、前記プロセッサのクロックを、以前に前記周波数保持部に記録された周波数へ遷移させることを特徴とするコンピュータシステム。
【請求項６】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックを、ユーザにより任意に設定された周波数へ遷移させることを特徴とするコンピュータシステム。
【請求項７】
請求項１記載のコンピュータシステムにおいて、
前記プロセッサのクロックに対する前記同期・非同期制御部による制御を有効にするか無効にするかを設定するための手段を更に備えたことを特徴とするコンピュータシステム。
【請求項８】
請求項１記載のコンピュータシステムにおいて、
前記アクセス計測部によるアクセス回数の計測期間がユーザによって任意に変更可能であることを特徴とするコンピュータシステム。
【請求項９】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサのクロックの同期・非同期間の遷移後の前記プロセッサの実行アドレスを記録する遷移アドレス保持部を有し、前記遷移アドレス保持部に記録された実行アドレスを前記プロセッサが実行する前に、予め前記プロセッサのクロックを前記サブモジュールのクロックと同期又は非同期に遷移させることを特徴とするコンピュータシステム。
【請求項１０】
請求項１記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、
前記プロセッサのクロックの同期・非同期間の遷移後の前記プロセッサの実行アドレスを記録する遷移アドレス保持部と、
前記プロセッサのクロックの同期・非同期動作期間を計測する動作期間計測部と、
前記動作期間計測部による計測の結果と規定時間とを比較する比較器とを有し、
前記比較器による前記規定時間との比較の結果に応じて、前記プロセッサのクロックの遷移間隔が前記規定時間以上である場合には前記遷移アドレス保持部へ前記プロセッサの実行アドレスを記録させる一方、前記プロセッサのクロックの遷移間隔が前記規定時間未満である場合には前記遷移アドレス保持部へ前記プロセッサの実行アドレスを記録させないようにしつつ、前記遷移アドレス保持部に記録された実行アドレスを前記プロセッサが実行する前に、予め前記プロセッサのクロックを前記サブモジュールのクロックと同期又は非同期に遷移させることを特徴とするコンピュータシステム。
【請求項１１】
請求項１０記載のコンピュータシステムにおいて、
前記動作期間計測部による計測の結果と比較する規定時間がユーザによって任意に変更可能であることを特徴とするコンピュータシステム。
【請求項１２】
プロセッサと、
前記プロセッサに接続されたサブモジュールと、
前記プロセッサが発行した命令を解析する命令解析部と、
前記命令解析部による解析の結果に応じて前記プロセッサのクロックを前記サブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたことを特徴とするコンピュータシステム。
【請求項１３】
請求項１２記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記命令解析部によって解析された命令がロード命令又はストア命令である場合には、前記プロセッサのクロックが前記サブモジュールのクロックと同期となるような遷移を行わせないことを特徴とするコンピュータシステム。
【請求項１４】
請求項１２記載のコンピュータシステムにおいて、
前記同期・非同期制御部は、前記プロセッサが有するキャッシュ又はバッファのデータを前記サブモジュールへ書き出す命令が発行された場合には、前記プロセッサのクロックが前記サブモジュールのクロックと同期となるように遷移させることを特徴とするコンピュータシステム。
【請求項１５】
請求項１２記載のコンピュータシステムにおいて、
前記プロセッサのクロックに対する前記同期・非同期制御部による制御を有効にするか無効にするかを設定するための手段を更に備えたことを特徴とするコンピュータシステム。
【請求項１６】
プロセッサと、
前記プロセッサに接続されたサブモジュールと、
前記プロセッサのアクセス先を示すアドレスを解析するアドレス解析部と、
前記アドレス解析部による解析の結果に応じて前記プロセッサのクロックを前記サブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたことを特徴とするコンピュータシステム。
【請求項１７】
請求項１６記載のコンピュータシステムにおいて、
前記プロセッサのクロックに対する前記同期・非同期制御部による制御を有効にするか無効にするかを設定するための手段を更に備えたことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサのクロックをバスやメモリ等のサブモジュールのクロックと同期又は非同期となるように制御する機能を持つコンピュータシステムに関するものである。
【背景技術】
【０００２】
現在、多くのプロセッサのクロックはバスやメモリ等のサブモジュールのクロックと同期となるように設計されている。同期設計の場合、プロセッサクロックの周波数がサブモジュールクロックの周波数の逓倍に固定される必要がある。このため、プロセッサは、自身の最大動作周波数で動作できない可能性がある。例えば、プロセッサの最大動作周波数が３５０ＭＨｚ、バスの最大動作周波数が１００ＭＨｚだったとする。この場合、同期設計とすると、プロセッサの動作周波数を３００ＭＨｚにする必要がある。また、消費電力を削減させるためにプロセッサクロックの周波数を下げる場合を考えると、同期設計かつバスの動作周波数を変更しないものとしたとき、プロセッサクロックの周波数は１００ＭＨｚ、２００ＭＨｚしか選択できず、２５０ＭＨｚ等、よりきめ細かなクロック周波数を選択することができない。
【０００３】
このような課題を解決する手段の１つとして非同期方式の回路設計が知られている。非同期方式の場合、データはプロセッサとサブモジュールとの間を転送されるが、プロセッサクロック及びサブモジュールクロックは独立で非同期のクロックであり、一方のクロック周波数が他方のクロック周波数の逓倍であることを要求しない。したがって、プロセッサ及びサブモジュールの各々は、独自のクロック周期で動作し、これら２つの間のデータ転送を処理する。
【０００４】
プロセッサとサブモジュールとの間の非同期クロックによるデータ転送では、メタステーブル対策のため、同期設計に比べレイテンシが増加する。このレイテンシの増加により、データ転送性能が劣化することがあった。
【０００５】
これに対する従来の解決手段として、同期・非同期制御部を有するコンピュータシステムの技術が知られている。この技術によれば、プロセッサとサブモジュールとの間のデータ転送の間に、プロセッサクロックがサブモジュールクロックに一時的に同期するように構成される。そして、データ転送の完了後、同期が不能にされ、プロセッサクロックがサブモジュールクロックに対して非同期となる（特許文献１参照）。
【特許文献１】特開平１０−２２２２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のコンピュータシステムでは、プロセッサとサブモジュールとの間のデータ転送が行われる度に、プロセッサクロックをサブモジュールクロックと同期となるように遷移させる必要がある。例えばシングル転送のように、プロセッサとサブモジュールとの間でデータ転送が連続で行われない場合は、データ転送開始前にプロセッサのクロックを非同期から同期に切り替え、１つのデータ転送が完了するとすぐにプロセッサのクロックを同期から非同期に切り替える。
【０００７】
このようにプロセッサとサブモジュールとの間のデータ転送数が少ない場合、非同期から同期、同期から非同期へのクロックの切り替えが、非同期間のデータ受け渡しによるレイテンシ増加より長くなってしまう。その結果、プロセッサとサブモジュールとの間を同期にする効果がなくなったり、非同期で動作させていた以上にデータ転送における性能劣化が発生したりするという課題を有していた。
【０００８】
本発明は、上記従来の課題を解決するものであり、同期・非同期制御部を有するコンピュータシステムにおいて、データ転送数にかかわらず、非同期クロックによるデータ転送における性能劣化を軽減することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る第１のコンピュータシステムは、プロセッサと、当該プロセッサに接続されたサブモジュールと、プロセッサとサブモジュールと間のデータ転送を監視する外部アクセス監視部と、当該外部アクセス監視部による監視の結果に応じてプロセッサのクロックをサブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたものである。外部アクセス監視部は、プロセッサとサブモジュールとの間の一定期間毎のアクセス回数を計測するアクセス計測部と、当該アクセス計測部による計測の結果と規定カウント値とを比較する比較器とを有する。同期・非同期制御部は、比較器による規定カウント値との比較の結果に応じて、一定期間内のアクセス回数が規定カウント値以上である場合にはプロセッサのクロックがサブモジュールのクロックと同期となるように遷移させる一方、一定期間内のアクセス回数が規定カウント値未満である場合にはプロセッサのクロックがサブモジュールのクロックと非同期となるように遷移させる。
【００１０】
また、本発明に係る第２のコンピュータシステムは、プロセッサと、当該プロセッサに接続されたサブモジュールと、プロセッサが発行した命令を解析する命令解析部と、当該命令解析部による解析の結果に応じてプロセッサのクロックをサブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたものである。
【００１１】
また、本発明に係る第３のコンピュータシステムは、プロセッサと、当該プロセッサに接続されたサブモジュールと、プロセッサのアクセス先を示すアドレスを解析するアドレス解析部と、当該アドレス解析部による解析の結果に応じてプロセッサのクロックをサブモジュールのクロックと同期又は非同期に制御する同期・非同期制御部とを備えたものである。
【発明の効果】
【００１２】
本発明に係る第１のコンピュータシステムによれば、プロセッサとサブモジュールとの間のデータ転送を監視する構成を採用したことにより、データ転送の頻度に応じて、プロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移させることが可能となるため、非同期クロックによるデータ転送における性能劣化を軽減できるという効果を奏する。
【００１３】
また、本発明に係る第２のコンピュータシステムによれば、プロセッサが発行する命令を解析する構成を採用したことより、プロセッサとサブモジュールとの間のデータ転送前にプロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移すべきかが分かるため、非同期クロックによるデータ転送における性能劣化を更に軽減できるという効果を奏する。
【００１４】
また、本発明に係る第３のコンピュータシステムによれば、プロセッサがサブモジュールにアクセスするアドレスを解析する構成を採用したことより、プロセッサがサブモジュールにアクセスするアクセス先に応じて、プロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態における同期・非同期制御部を有するコンピュータシステムについて、図面を参照しながら説明する。
【００１６】
《実施形態１》
図１は、実施形態１のコンピュータシステムの構成図である。図１において、１０１はプロセッサであり、１０２はプロセッサ１０１にクロックを供給するプロセッサクロック供給部である。１０３はバスやメモリ等のサブモジュールであり、１０４はサブモジュール１０３にクロックを供給するサブモジュールクロック供給部である。２０１はプロセッサクロックのサイクル数をカウントするサイクルカウンタであり、２０２はプロセッサ１０１がサブモジュール１０３にアクセスする回数を計測するアクセス計測部であり、２０３はアクセス回数の計測値（アクセス計測値）と規定カウント値とを比較する比較器であり、２０４は外部アクセス監視部である。２０７は同期・非同期制御部であり、２０５はプロセッサクロックとサブモジュールクロックとの各々の周波数を監視する周波数監視部であり、２０６はプロセッサクロックの周波数を遷移させる周波数遷移部である。
【００１７】
図２は、実施形態１におけるコンピュータシステムのフローチャートである。図２において、ステップ３０１はスタート状態であり、プロセッサ１０１の起動時である。次にステップ３０２に移行し、サイクルカウンタ値とアクセス計測値とをクリアし、プロセッサ１０１をサブモジュール１０３に対して非同期に動作させる。次にステップ３０３に移行し、プロセッサ１０１がサブモジュール１０３にアクセスすると、アクセス計測部２０２によって、ステップ３０４に移行し、アクセス計測値に１を加算する。次にステップ３０５に移行し、アクセス計測値が規定カウント値以上かどうかを比較器２０３にて判定し、規定カウント値以上だった場合は、ステップ３０６に移行し、サイクルカウンタ値とアクセス計測値とをクリアし、かつプロセッサクロックをサブモジュールクロックと同期となるように遷移させる。ステップ３０３及びステップ３０５で条件を満たさなかった場合は、ステップ３０７へ移行し、サイクルカウンタ値が規定サイクル数以上かを判定し、規定サイクル数以上だった場合は、ステップ３０８に移行し、サイクルカウンタ値とアクセス計測値とをクリアし、ステップ３０３に移行する。ステップ３０７で条件を満たさなかった場合は、そのままステップ３０３に移行する。
【００１８】
ステップ３０６で同期へ遷移すると、ステップ３０９へ移行し、ステップ３０３と同様にプロセッサ１０１がサブモジュール１０３にアクセスすると、アクセス計測部２０２によって、ステップ３１０に移行し、アクセス計測値に１を加算する。次にステップ３１１に移行し、アクセス計測値が規定カウント値以上かどうかを比較器２０３にて判定し、規定カウント値以上だった場合は、ステップ３１２に移行し、サイクルカウンタ値とアクセス計測値とのクリアを行い、ステップ３０９に移行する。ステップ３０９及びステップ３１１で条件を満たさなかった場合は、ステップ３１３へ移行し、サイクルカウンタ値が規定サイクル数以上かを判定し、規定サイクル数以上だった場合は、ステップ３１４に移行し、サイクルカウンタ値とアクセス計測値とをクリアし、かつプロセッサクロックをサブモジュールクロックと非同期となるように遷移させ、ステップ３０３へ移行する。ステップ３１３で条件を満たさなかった場合は、そのままステップ３０９に移行する。
【００１９】
本実施形態によれば、プロセッサ１０１がサブモジュール１０３にアクセスする頻度に応じて、アクセス頻度が高い場合にはプロセッサクロックをサブモジュールクロックと同期となるように遷移させ、アクセス頻度が低い場合にはプロセッサクロックをサブモジュールクロックと非同期となるように遷移させることが可能となるため、非同期クロックによるデータ転送における性能劣化を軽減できるという効果を奏する。
【００２０】
なお、実施形態１の規定カウント値や規定サイクル数は、固定である必要はなく、設定レジスタ等を用意して、ユーザがこれを自由に設定できるようにしてもよい。
【００２１】
また、同期・非同期制御機能を、レジスタ等を用意して、有効又は無効に制御できるようにしてもよい。
【００２２】
また、実施形態１中の周波数遷移部２０６は、プロセッサクロックを非同期から同期へ遷移させる場合、サブモジュールクロックと同期となる周波数の中で最も高い周波数へ遷移させたり、サブモジュールクロックと同期となる周波数の中で、同期へ遷移する直前の周波数に最も近い周波数へ遷移させたりしてもよい。また、プロセッサクロックを同期から非同期へ遷移させる場合には、プロセッサ１０１の動作可能な周波数の中で最も高い周波数へ遷移させることとしてもよい。設定レジスタ等を用意して、プロセッサクロックを予め設定しておいたクロック周波数へ遷移させてもよい。
【００２３】
《実施形態２》
図３は、実施形態２のコンピュータシステムの構成図であって、実施形態１のコンピュータシステムに、プロセッサクロックの周波数を記録する周波数保持部４０１が追加されたものである。
【００２４】
図４は、実施形態２におけるコンピュータシステムのフローチャートである。実施形態１のフローチャートとの違いはステップ５０１とステップ５０２とが追加され、ステップ３０６とステップ３１４とが変更されている点であり、その他の部分については図２と同様である。
【００２５】
ステップ３０２においてプロセッサ１０１が非同期動作を開始した後、ステップ５０１に移行し、周波数保持部４０１によってプロセッサ１０１の非同期クロック周波数を記録する。この情報を用いて、次にステップ３１４において同期から非同期へ遷移する場合は、プロセッサクロックがステップ５０１で記録した非同期周波数となるように遷移する。同様に、ステップ３０６で同期へ遷移した後、ステップ５０２に移行し、周波数保持部４０１によってプロセッサ１０１の同期クロック周波数を記録する。この情報を用いて、次にステップ３０６において非同期から同期へ遷移する場合は、プロセッサクロックがステップ５０２で記録した同期周波数となるように遷移する。
【００２６】
本実施形態によれば、プロセッサクロックの周波数をユーザが決定しなくても、自動でプロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移させることが可能になるという効果を奏する。ただし、プロセッサクロックを、ユーザにより任意に設定された周波数へ遷移させることも勿論可能である。
【００２７】
なお、初めて非同期から同期へ遷移する場合は、ステップ３０６で記録された同期周波数が存在しないため、実施形態１と同様に、サブモジュールクロックと同期であれば周波数は特に定めない。
【００２８】
《実施形態３》
図５は、実施形態３のコンピュータシステムの構成図であって、実施形態１のコンピュータシステムに、遷移アドレス保持部６０１と、プロセッサ１０１の実行アドレスと遷移アドレス保持部６０１が記録しているアドレスとを比較する比較器６０２とが追加されたものである。
【００２９】
図６は、実施形態３におけるコンピュータシステムのフローチャートである。実施形態１のフローチャートとの違いはステップ７０１とステップ７０２とステップ７０３とステップ７０４とが追加されている点であり、その他の部分については図２と同様である。
【００３０】
ステップ３０２においてプロセッサ１０１が非同期動作を開始した後、ステップ７０１に移行し、プロセッサクロックが非同期から同期へ遷移したときに遷移アドレス保持部６０１に記録された同期遷移アドレスと、実行アドレスとが一致するかを比較器６０２で比較する。１回目は遷移アドレス保持部６０１にアドレス値が記録されていないため、ステップ３０３へ移行する。
【００３１】
ステップ３０６においてプロセッサクロックが非同期から同期へ遷移した後、ステップ７０２へ移行し、プロセッサクロックが非同期から同期へ遷移したときの実行アドレスを同期遷移アドレスとして遷移アドレス保持部６０１に記録する。
【００３２】
２回目以降ステップ７０１へ移行した時、ステップ７０２で記録したアドレスと実行アドレスとが一致した場合は、ステップ３０６へ移行する。
【００３３】
ステップ７０２においてプロセッサクロックが非同期から同期へ遷移したときの実行アドレスを遷移アドレス保持部６０１に記録した後、ステップ７０３へ移行し、プロセッサクロックが同期から非同期へ遷移したときに遷移アドレス保持部６０１に記録された非同期遷移アドレスと、実行アドレスとが一致するか比較器６０２にて比較する。１回目は遷移アドレス保持部６０１にアドレス値が記録されていないため、ステップ３０９へ移行する。
【００３４】
ステップ３１４においてプロセッサクロックが同期から非同期へ遷移した後、ステップ７０４へ移行し、プロセッサクロックが同期から非同期へ遷移したときの実行アドレスを非同期遷移アドレスとして遷移アドレス保持部６０１に記録する。
【００３５】
２回目以降ステップ７０３へ移行した時、ステップ７０４で記録したアドレスと実行アドレスとが一致した場合は、ステップ３１４へ移行する。
【００３６】
本実施形態によれば、プロセッサクロックがサブモジュールクロックと同期又は非同期となるように遷移する箇所が予め分かるので、実際のデータ転送よりも前にプロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移でき、非同期クロックによるデータ転送における性能劣化をより軽減できるという効果を奏する。
【００３７】
なお、実施形態３の遷移アドレス保持部６０１は、同期用の遷移アドレスか非同期用の遷移アドレスかが分かればよく、同期用、非同期用に各々持っていてもよい。また、記録できるアドレスが１つ以上あればよい。
【００３８】
《実施形態４》
図７は、実施形態４のコンピュータシステムの構成図であって、実施形態３のコンピュータシステムに、プロセッサ１０１のクロックの同期・非同期動作期間、すなわちプロセッサクロックがサブモジュールクロックと同期又は非同期となるように遷移してから、次に非同期又は同期となるように遷移するまでの時間を計測する動作期間計測部８０１と、動作期間計測部８０１で計測した時間を規定時間と比較する比較器８０２とが追加されたものである。
【００３９】
図８は、実施形態４におけるコンピュータシステムのフローチャートである。実施形態３のフローチャートとの違いはステップ９０１とステップ９０２とステップ９０３とステップ９０４とが追加され、ステップ３０２とステップ３０６とステップ３１４とが変更されている点であり、その他の部分については図６と同様である。
【００４０】
ステップ３０２においてプロセッサ１０１が非同期動作を開始した時に、動作期間計測部８０１によって非同期動作時間を計測し始め、ステップ３０６において、サイクルカウンタ値とアクセス計測値とをクリアし、プロセッサクロックをサブモジュールクロックとの非同期から同期へ遷移させるとともに、非同期動作時間の計測を終える。次にステップ９０１へ移行し、非同期動作時間が規定時間以上かどうか判定し、規定時間以上であればステップ７０２へ移行し、遷移アドレス保持部６０１によりプロセッサクロックが非同期から同期へ遷移した実行アドレスを記録する。次にステップ９０２へ移行し、動作期間計測部８０１によって同期動作時間を計測し始める。
【００４１】
ステップ９０１で条件を満たさなかった場合は、遷移アドレス保持部６０１によりプロセッサクロックが非同期から同期へ遷移した実行アドレスを記録せずに、ステップ９０２へ移行し、動作期間計測部８０１によって同期動作時間を計測し始める。
【００４２】
同期から非同期への遷移時も同様に、ステップ３１４でサイクルカウンタ値とアクセス計測値とをクリアし、プロセッサクロックをサブモジュールクロックとの同期から非同期へ遷移させるとともに、同期動作時間の計測を終える。次にステップ９０３へ移行し、同期動作時間が規定時間以上かどうか判定し、規定時間以上であればステップ７０４へ移行し、遷移アドレス保持部６０１によりプロセッサクロックが同期から非同期へ遷移した実行アドレスを記録する。次にステップ９０４へ移行し、動作期間計測部８０１によって非同期動作時間を計測し始める。
【００４３】
ステップ９０３で条件を満たさなかった場合は、遷移アドレス保持部６０１によりプロセッサクロックが同期から非同期へ遷移した実行アドレスを記録せずに、ステップ９０４へ移行し、動作期間計測部８０１によって非同期動作時間を計測し始める。
【００４４】
本実施形態によれば、動作期間計測部８０１の計測結果が規定時間よりも長い場合だけ遷移アドレス保持部６０１を更新することとしたので、同期動作時間又は非同期動作時間が短い場合に、同期又は非同期への遷移のオーバーヘッドが出やすくなるが、このオーバーヘッドによる性能劣化を軽減できるという効果を奏する。
【００４５】
なお、実施形態４の規定時間は、固定である必要はなく、設定レジスタ等を用意して、ユーザが自由に設定できるようにしてもよい。
【００４６】
《実施形態５》
図９は、実施形態５のコンピュータシステムの構成図である。図９において、１００１はプロセッサ１０１の実行する命令を監視する命令監視部であり、１００２は命令監視部１００１によって得られた命令と規定命令とを比較する比較器であり、１００３は命令解析部である。
【００４７】
図１０は、実施形態５におけるコンピュータシステムのフローチャートである。ステップ３０２においてプロセッサ１０１が非同期動作を開始した後、ステップ１１０１に移行し、命令監視部１００１によって得られたプロセッサ１０１の実行命令が規定命令と一致するかどうかを比較器１００２にて判定する。実行命令が規定命令と一致しなければ、次の命令を解析するためステップ１１０１に戻る。実行命令が規定命令と一致すれば、ステップ１１０２へ移行し、プロセッサクロックをサブモジュールクロックと同期となるように遷移させる。次にステップ１１０３へ移行し、ステップ１１０１と同様に実行命令が規定命令と一致するかを判定する。実行命令が規定命令と一致すれば、次の命令を解析するためステップ１１０３に戻る。実行命令が規定命令と一致しなければ、ステップ１１０４へ移行し、プロセッサクロックをサブモジュールクロックと非同期となるように遷移させる。次にステップ１１０１へ移行し、次の命令を解析する。
【００４８】
例えば、命令解析部１００３によって解析された命令がロード命令又はストア命令である場合には、プロセッサクロックがサブモジュールクロックと同期となるような遷移を行わせないこととするのがよい。また、プロセッサ１０１がキャッシュ又はバッファを有する場合には、当該キャッシュ又はバッファ内のデータをサブモジュール１０３へ書き出す命令が発行されたとき、プロセッサクロックがサブモジュールクロックと同期となるように遷移させるのがよい。
【００４９】
本実施形態によれば、プロセッサ１０１がサブモジュール１０３にアクセスする前に、プロセッサクロックをサブモジュールクロックと同期又は非同期へ遷移させることができるため、非同期動作による性能劣化をより軽減できるという効果を奏する。
【００５０】
なお、実施形態５の規定命令は、固定である必要はなく、設定レジスタ等を用意して、ユーザが自由に設定できるようにしてもよい。
【００５１】
また、同期・非同期制御機能を、レジスタ等を用意して、有効又は無効に制御できるようにしてもよい。
【００５２】
《実施形態６》
図１１は、実施形態６のコンピュータシステムの構成図である。図１１において、１２０１はプロセッサ１０１のアクセス先を示すアドレスを監視するアドレス監視部であり、１２０２はアドレス監視部１２０１によって得られたアドレスと規定アドレスとを比較する比較器であり、１２０３はアドレス解析部である。
【００５３】
図１２は、実施形態６におけるコンピュータシステムのフローチャートである。ステップ３０２においてプロセッサ１０１が非同期動作を開始した後、ステップ１３０１に移行し、アドレス監視部１２０１によって得られたアクセスアドレスが規定アドレスと一致するかどうかを比較器１２０２にて判定する。アクセスアドレスが規定アドレスと一致しなければ、次のアクセスアドレスを解析するためステップ１３０１に戻る。アクセスアドレスが規定アドレスと一致すれば、ステップ１３０２へ移行し、プロセッサクロックをサブモジュールクロックと同期となるように遷移させる。次にステップ１３０３へ移行し、ステップ１３０１と同様にアクセスアドレスが規定アドレスと一致するかどうかを判定する。アクセスアドレスが規定アドレスと一致すれば、次のアクセスアドレスを解析するためステップ１３０３に戻る。アクセスアドレスが規定アドレスと一致しなければ、ステップ１３０４へ移行し、プロセッサクロックをサブモジュールクロックと非同期となるように遷移させる。次にステップ１３０１へ移行し、次のアクセスアドレスを解析する。
【００５４】
本実施形態によれば、プロセッサ１０１がサブモジュール１０３にアクセスするアクセス先に応じて、プロセッサクロックをサブモジュールクロックと同期又は非同期となるように遷移させることができるという効果を奏する。
【００５５】
なお、実施形態６の規定アドレスは、固定である必要はなく、設定レジスタ等を用意して、ユーザが自由に設定できるようにしてもよい。
【００５６】
また、同期・非同期制御機能を、レジスタ等を用意して、有効又は無効に制御できるようにしてもよい。
【産業上の利用可能性】
【００５７】
本発明の同期・非同期制御部を有するコンピュータシステムは、簡単なハードウェアを実装することで、データ転送頻度にかかわらず、非同期クロックによるデータ転送における性能劣化を軽減することが可能であり、非同期設計技術の１つとして有用である。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態１に係るコンピュータシステムのブロック図である。
【図２】実施形態１における同期・非同期遷移動作を示すフローチャートである。
【図３】本発明の実施形態２に係るコンピュータシステムのブロック図である。
【図４】実施形態２における同期・非同期遷移動作を示すフローチャートである。
【図５】本発明の実施形態３に係るコンピュータシステムのブロック図である。
【図６】実施形態３における同期・非同期遷移動作を示すフローチャートである。
【図７】本発明の実施形態４に係るコンピュータシステムのブロック図である。
【図８】実施形態４における同期・非同期遷移動作を示すフローチャートである。
【図９】本発明の実施形態５に係るコンピュータシステムのブロック図である。
【図１０】実施形態５における同期・非同期遷移動作を示すフローチャートである。
【図１１】本発明の実施形態６に係るコンピュータシステムのブロック図である。
【図１２】実施形態６における同期・非同期遷移動作を示すフローチャートである。
【符号の説明】
【００５９】
１０１  プロセッサ
１０２  プロセッサクロック供給部
１０３  サブモジュール
１０４  サブモジュールクロック供給部
２０１  サイクルカウンタ
２０２  アクセス計測部
２０３，６０２，８０２，１００２，１２０２  比較器
２０４  外部アクセス監視部
２０５  周波数監視部
２０６  周波数遷移部
２０７  同期・非同期制御部
４０１  周波数保持部
６０１  遷移アドレス保持部
８０１  動作期間計測部
１００１  命令監視部
１００３  命令解析部
１２０１  アドレス監視部
１２０３  アドレス解析部
【図１】
2010113645.tif 000003
【図２】
2010113645.tif 000004
【図３】
2010113645.tif 000005
【図４】
2010113645.tif 000006
【図５】
2010113645.tif 000007
【図６】
2010113645.tif 000008
【図７】
2010113645.tif 000009
【図８】
2010113645.tif 000010
【図９】
2010113645.tif 000011
【図１０】
2010113645.tif 000012
【図１１】
2010113645.tif 000013
【図１２】
2010113645.tif 000014