(57)【要約】【課題】  メモリトラフィックに適したクロックを発生させることにより、消費電力を低減する。【解決手段】  メモリトランザクションをキューイングするキューイングバッファを備えたメモリインタフェース回路において、前記キューイングバッファにおけるキューイング状態が所定の状態であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する判定手段と、前記判定手段の判定に基づきメモリクロックまたはメモリインタフェースクロックの周波数を増減するメモリクロック周波数更新手段と、を備えることを特徴とする。【選択図】    図１
2006099569.tif 000002
【特許請求の範囲】
【請求項１】
メモリトランザクションをキューイングするキューイングバッファを備えたメモリインタフェース回路において、
前記キューイングバッファにおけるキューイング状態が所定の状態であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する判定手段と、
前記判定手段の判定に基づきメモリクロックまたはメモリインタフェースクロックの周波数を増減するメモリクロック周波数更新手段と、
を備えることを特徴とするメモリインタフェース回路。
【請求項２】
前記キューイングバッファにおけるキューイング状態の履歴の情報を保持する記憶手段をさらに備え、
前記判定手段は、前記記憶手段からキューイング状態の情報を取得する、
ことを特徴とする請求項１に記載のメモリインタフェース回路。
【請求項３】
前記判定手段は、前記キューイングバッファにキューイングされているトランザクション数が閾値以上であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、
ことを特徴とする請求項１または請求項２に記載のメモリインタフェース回路。
【請求項４】
前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している頻度が所定の閾値を超えているか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、
ことを特徴とする請求項１または請求項２に記載のメモリインタフェース回路。
【請求項５】
前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に対して所定の割合以下となっている頻度が所定の閾値以下であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、
ことを特徴とする請求項１または請求項２に記載のメモリインタフェース回路。
【請求項６】
前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している状態が連続しているか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、
ことを特徴とする請求項１または請求項２に記載のメモリインタフェース回路。
【請求項７】
前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している状態が連続していると判定した場合、前記メモリクロックまたはメモリインタフェースクロックの周波数を最大周波数に設定することを判定する、
ことを特徴とする請求項１または請求項２に記載のメモリインタフェース回路。
【請求項８】
メモリトランザクションをキューイングするキューイングバッファを備えたメモリインタフェース回路に用いられるクロック制御方法であって、
判定手段が、キューイングバッファにおけるキューイング状態が所定の状態であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定し、
メモリクロック周波数更新手段が、前記判定手段の判定に基づきメモリクロックまたはメモリインタフェースクロックの周波数を増減する、
ことを特徴とするクロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリインタフェース回路及びクロック制御方法に関する。
【背景技術】
【０００２】
特許文献１には、原稿の読み取りが可能な待機状態などの省電力モードのときにはクロック生成回路からラインセンサへのクロック信号の供給を停止することにより、消費電力を低減することができる画像読み取り装置について開示されている。
【特許文献１】再公表ＷＯ０２／０１９６９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、デジタル複写機やスキャナは、様々な動作モードをとり、例えば、完全にＣＰＵ（central processing unit）が停止している状態や、ある程度ＣＰＵが動作しており、メモリのトラヒック量は多くはないが全くメモリアクセスが停止してはいないような状態などもある。しかし、特許文献１の技術によれば、クロックは、動作しているか、停止しているかの二者択一の状態しかとらない。従って、省電力モードであるときなど、メモリにアクセスする機能ブロックがシステム上動作中である場合、メモリトラヒックが少ないにもかかわらず、メモリクロックやメモリＩ／Ｆ（インタフェース）のクロックを動作させなければならない。すなわち、システム全体の処理負荷が軽いときであっても、メモリ及びメモリＩ／Ｆはフルパワーで動作させる必要があり、消費電力を効果的に低減することはできない。
【０００４】
本発明は、このような事情に鑑みてなされたものであり、メモリトラフィックに適したクロックを発生させることにより、消費電力を低減することができるメモリインタフェース回路及びクロック制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために本発明は、メモリトランザクションをキューイングするキューイングバッファを備えたメモリインタフェース回路において、前記キューイングバッファにおけるキューイング状態が所定の状態であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する判定手段と、前記判定手段の判定に基づきメモリクロックまたはメモリインタフェースクロックの周波数を増減するメモリクロック周波数更新手段と、を備えることを特徴とする。
【０００６】
また、本発明は、上述するメモリインタフェース回路であって、前記キューイングバッファにおけるキューイング状態の履歴の情報を保持する記憶手段をさらに備え、前記判定手段は、前記記憶手段からキューイング状態の情報を取得する、ことを特徴とする。
【０００７】
また、本発明は、上述するメモリインタフェース回路であって、前記判定手段は、前記キューイングバッファにキューイングされているトランザクション数が閾値以上であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、ことを特徴とする。
【０００８】
また、本発明は、上述するメモリインタフェース回路であって、前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している頻度が所定の閾値を超えているか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、ことを特徴とする。
【０００９】
また、本発明は、上述するメモリインタフェース回路であって、前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に対して所定の割合以下となっている頻度が所定の閾値以下であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、ことを特徴とする。
【００１０】
また、本発明は、上述するメモリインタフェース回路であって、前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している状態が連続しているか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定する、ことを特徴とする。
【００１１】
また、本発明は、上述するメモリインタフェース回路であって、前記判定手段は、過去一定期間において、キューイングされているトランザクション数が前記キューイングバッファにキューイング可能な最大数に達している状態が連続していると判定した場合、前記メモリクロックまたはメモリインタフェースクロックの周波数を最大周波数に設定することを判定する、ことを特徴とする。
【００１２】
また、本発明は、メモリトランザクションをキューイングするキューイングバッファを備えたメモリインタフェース回路に用いられるクロック制御方法であって、判定手段が、キューイングバッファにおけるキューイング状態が所定の状態であるか否かにより、メモリクロックまたはメモリインタフェースクロックの周波数の増減を判定し、メモリクロック周波数更新手段が、前記判定手段の判定に基づきメモリクロックまたはメモリインタフェースクロックの周波数を増減する、ことを特徴とするクロック制御方法である。
【発明の効果】
【００１３】
上記発明によれば、メモリデバイスのトラフィック量に応じてメモリクロックあるいはメモリインタフェースクロックの周波数を増減することができる。これにより、処理の負荷に応じた最適なメモリ帯域と消費電力とのトレードオフを動的に変更できる。
また、メモリバスのトラフィック量に応じてメモリクロックあるいはメモリインタフェースクロックの周波数を制御することができるため、システム全体の負荷を正確に反映することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、この発明の一実施形態について説明する。
図１は、本発明の一実施形態によるメモリインタフェース回路の構成を示すブロック図である。このメモリインタフェース回路は、例えば、複写機、プリンタ、ファクシミリ等の機能が使用可能なＭＦＰ（Multi Function Printer）などの画像データ処理装置に用いられる。メモリインタフェース回路は、メモリデバイスであるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）とのインタフェース（Ｉ／Ｆ）を有し、リフレッシュ回路１、ホストインタフェース回路２、アービター回路３、キューイングバッファ４、コマンドディスパッチャ回路５、デバイスマネージャ回路６、コマンド発生回路７、ストローブ発生回路８、ＯＰＢインタフェース回路９、及び、メモリクロック生成回路１０を備える。
【００１５】
リフレッシュ回路１は、アービター回路３へＳＤＲＡＭのリフレッシュ要求を行う。ホストインタフェース回路２は、メモリトランザクションの要求を行うホストのモジュールであり、ホストの各種要求をアビトレーションしてＳＤＲＡＭへのアクセス要求を発行する。アービター回路３は、メモリアクセス要求を調停し、リフレッシュを行うか、あるいは、メモリトランザクションを発生させるかを決定する。メモリトランザクションを発生する場合、キューイングバッファ４へキューイングする。キューイングバッファ４は、トランザクションファイルであり、メモリトランザクションを保持する。
【００１６】
コマンドディスパッチャ回路５は、キューイングバッファ４にキューイングされたトランザクションファイルについて、ＳＤＲＡＭに対してどのようなコマンドを発行するかを決定し、ＳＤＲＡＭに対するシーケンス等を制御する。例えば、一つのメモリに対してローアドレス／カラムアドレスを与える。デバイスマネージャ回路６は、メモリデバイス（ＳＤＲＡＭ）の状態を内部的にミラーリングしてコマンドディスパッチャ回路５へ通知し、コマンドをいつ発行できるかを調停する。コマンド発生回路７は、コマンドディスパッチャ回路５からのコマンド発生要求に応じてＳＤＲＡＭに対する信号を駆動する。
【００１７】
ストローブ発生回路８は、コマンド発生回路７が発行するリード／ライトのコマンドに同期してデータ転送のトリガを受け、データ転送のタイミング、すなわち、ホストインタフェース回路２との間のリード／ライトデータの受け渡しのタイミングを司る。例えば、ＳＤＲＡＭからメモリリードするときには、ＳＤＲＭＡへメモリリードを与える。そして、ＳＤＲＡＭからリードデータが返ってくるタイミングに併せてホストに対してリードのストローブを返す。ＳＤＲＡＭへメモリライトするときには、ＳＤＲＡＭにライトのタイミングに併せてホストに対してライトデータのストローブを与え、ライトするデータを引き出す。
ＯＰＢ（On-Chip Peripheral Bus）インタフェース回路９は、各種設定を行うためのレジスタであり、設定レジスタのためのインタフェースと、実際の設定レジスタからなるモジュールである。
メモリクロック生成回路１０は、ＳＤＲＡＭに対するメモリクロックあるいはメモリインタフェースクロックの周波数を制御する。
【００１８】
図２は、図１に示すメモリクロック生成回路１０の詳細な構成を示すブロック図である。
メモリクロック生成回路１０は、シフトレジスタ（記憶手段）１１ａ、１１ｂ、１１ｃ、１１ｄ（以下、総称して「シフトレジスタ１１」という）、トラフィックトレンド判定回路（判定手段）１２、メモリクロック周波数更新回路（メモリクロック周波数更新手段）１３、源発振器１４、及び、ＰＬＬ（Phase Locked Loop：位相ロックド・ループ）１５からなる。
シフトレジスタ１１は、キューイングバッファ４にキューイングされているトランザクションファイル数（キューバッファ残量）の履歴を保持する。トラフィックトレンド判定回路１２は、シフトレジスタ１１が保持するトランザクションファイル数の履歴を参照して得られるキューイング状態により、メモリクロック周波数の増減を判定する。メモリクロック周波数更新回路１３は、トラフィックトレンド判定回路１２の判定に従ったメモリクロック周波数を設定するためＰＬＬ１５へＰＬＬ逓倍率を与える。ＰＬＬ１５は、源発振器１４が発信する周波数に、メモリクロック周波数更新回路１３から受けたＰＬＬ逓倍率を与え、メモリクロック及びメモリインタフェースクロックを発生させる。
【００１９】
次に、メモリインタフェース回路の動作について説明する。
画像データ処理装置は、例えば、印刷データの生成が多い状態、印刷を行っていない待機状態（ＣＰＵが待機している）、印刷データを展開している状態など、任意のモードであるとする。
画像データ処理装置は、ホストインタフェース回路２を介してホストからのメモリアクセス要求を受ける。例えば、印刷を初めることを想定する。ＳＤＲＡＭ上には、スキャナで読み取った画像などのパターンがビットマップデータとして保持されている。印刷を始める場合、ＳＤＲＡＭにメモリにあるこのビットマップデータをリードするメモリトランザクションを発生させる。これにより、アービター回路３によって、メモリトランザクションがキューイングバッファ４にキューイングされる。
【００２０】
一方、メモリクロック生成回路１０は、キューイングバッファ４のメモリトランザクションの残量を定期的にサンプリングし、シフトレジスタ１１に保持する。このとき、これまでシフトレジスタ１１ｃに保持していたメモリトランザクション数をシフトレジスタ１１ｄに、シフトレジスタ１１ｂに保持していたメモリトランザクション数をシフトレジスタ１１ｃに、シフトレジスタ１１ａに保持していたメモリトランザクション数をシフトレジスタ１１ｂにシフトして保持するとともに、最新のメモリトランザクション数をシフトレジスタ１１ａに保持する。これにより、一定期間におけるメモリトランザクション数の履歴がシフトレジスタ１１に保持される。
【００２１】
トラフィックトレンド判定回路１２は、シフトレジスタ１１を参照し、キューイングバッファ４におけるメモリトランザクションのキューイング状態が、メモリクロック周波数を上げるための所定の状態であるか否かを判定する。ここでは、現在、キューイングバッファ４にキューイングされているメモリトランザクション数、すなわち、シフトレジスタ１１ａが保持しているメモリトランザクション数が、予め決められた一定の閾値以上であるか否かを判定する。
【００２２】
トラフィックトレンド判定回路１２は、現在キューイングバッファ４にキューイングされているメモリトランザクション数が閾値以上であると判定した場合、メモリクロック周波数を上げる判定結果をメモリクロック周波数更新回路１３へ与える。メモリクロック周波数更新回路１３は、現在のメモリクロック周波数を逓倍率で上げるメモリクロック周波数をＰＬＬ１５に設定する。ＰＬＬ１５は、源発振器１４が発信する周波数から、メモリクロック周波数更新回路１３により設定されたメモリクロック周波数のメモリクロック及びメモリインタフェースクロックを発生させる。
【００２３】
一方、トラフィックトレンド判定回路１２は、現在キューイングバッファ４にキューイングされているメモリトランザクション数が閾値を下回っていると判定した場合、メモリクロック周波数を下げる判定結果をメモリクロック周波数更新回路１３へ与える。メモリクロック周波数更新回路１３は、現在のメモリクロック周波数を逓倍率で下げるメモリクロック周波数をＰＬＬ１５に設定する。ＰＬＬ１５は、メモリクロック周波数更新回路１３により設定されたメモリクロック周波数のメモリクロック及びメモリインタフェースクロックを発生させる。
【００２４】
なお、キューイング状態の判定は、以下の（１）〜（３）のいずれかにより行うことでもよい。
（１）  過去一定期間において、キューイングバッファ４にキューイングされているトランザクション数が、キューイングバッファ４においてキューイング可能な最大数に達している頻度を求め、この頻度が一定の閾値を超えているか否かを判定する。トラフィックトレンド判定回路１２は、頻度が閾値を超えたと判定した場合はメモリクロック周波数を上げる判定結果を、頻度が閾値以下であると判定した場合はメモリクロック周波数を下げる判定結果を、メモリクロック周波数更新回路１３へ与える。
【００２５】
（２）  過去一定期間において、キューイングバッファ４にキューイングされているトランザクション数が、キューイングバッファ４においてキューイング可能な最大数に対して所定の割合以下となっている頻度を求め、この頻度が一定の閾値以下であるか否かを判定する。トラフィックトレンド判定回路１２は、頻度が閾値以下であると判定した場合はメモリクロック周波数を上げる判定結果を、頻度が閾値を上回っていると判定した場合はメモリクロック周波数を下げる判定結果を、メモリクロック周波数更新回路１３へ与える。
【００２６】
（３）  過去一定期間において、キューイングバッファ４にキューイングされているトランザクション数が、キューイングバッファ４においてキューイング可能な最大数に達している状態が所定期間連続しているか否かを判定する。トラフィックトレンド判定回路１２は、キューイング可能な最大数に達している状態が所定期間連続していると判定した場合はメモリクロック周波数を上げる判定結果を、連続していないと判定した場合はメモリクロック周波数を下げる判定結果を、メモリクロック周波数更新回路１３へ与える。なお、キューイング可能な最大数に達している状態が所定期間連続していると判定した場合、トラフィックトレンド判定回路１２は、メモリクロック周波数を最大周波数とする判定結果をメモリクロック周波数更新回路１３へ与えることでもよい。メモリクロック周波数更新回路１３は、最大周波数のメモリクロック周波数をＰＬＬ１５に設定する。
【００２７】
上記実施の形態によれば、シフトレジスタ１１は、キューイングバッファ４から定期的にメモリトランザクションの残量を読み出し、その履歴を参照する。メモリトラヒックが多ければ多いほど、その瞬間瞬間にキューイングバッファ４にキューイングされているトランザクションの量が多い。トラフィックトレンド判定回路１２は、シフトレジスタ１１が保持するメモリトランザクション数の推移からメモリトラヒックが多いのか少ないのかを判定する。そして、トラヒックが多ければメモリクロック及びメモリインタフェースクロックの周波数を上げ、トラヒックが少なければ周波数を下げるように切り替える。
キューイングバッファ４のキューイング状態を参照することにより、急激にトラヒック量が増えてメモリアクセスの要求が増えた場合に、その状態を機敏に反映してメモリクロック及びメモリインタフェースクロックの周波数を切り替えることができきる。
なお、一定期間内に発生したメモリトランザクション数により判定を行ってもよい。
【００２８】
上記により、画像データ処理装置が様々な動作モードをとる場合に、動作モードに応じてメモリクロック及びメモリインタフェースクロックを停止あるいは動作させるといった二者択一の状態とするのではなく、メモリのアクセス頻度やバス帯域に応じて、連続的に変化させることができる。例えば、画像データ処理装置にある程度のＣＰＵ情報が与えられており、メモリのトラヒック量は多くはないが全くメモリアクセスが停止してはいないような負荷の軽い状態において、メモリクロック及びメモリインタフェースクロックを処理に必要な最低限の周波数まで下げることができ、消費電力を低減することができる。
【００２９】
なお、上記のメモリクロック生成回路１０の機能をソフトウェアにより実現してもよい。
図３は、メモリクロック生成回路１０の機能をソフトウェアにより実行する場合の処理フローを示す。同図において、ＣＰＵは、キューイングバッファ４のメモリトランザクションの残量を定期的にサンプリングし、その履歴を保持しておく（ステップＳ１１０）。そして、その履歴から、キューイングバッファ４におけるメモリトランザクションのキューイング状態が、メモリクロック周波数を上げるための所定の状態であるか否かを判断する（ステップＳ１２０）。メモリクロック周波数を上げるための所定の状態であると判断した場合はメモリクロック周波数を上げ（ステップＳ１２０：Ｙｅｓ、ステップＳ１３０）、そうではないと判断した場合はメモリクロック周波数を下げる（ステップＳ１２０：Ｎｏ、ステップＳ１４０）。
【００３０】
以上、本発明の実施の形態について説明したが、メモリインタフェース回路の各部は、専用のハードウェア（例えば、ワイヤードロジック等）により実現されるものであってもよく、また、メモリおよびＣＰＵ（中央処理装置）により構成され、各部の機能を実現するためのプログラムをメモリからロードして実行することによりその機能を実現させるものであってもよい。また、メモリインタフェース回路の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、メモリインタフェース回路の各部に必要な処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００３１】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの（伝送媒体ないしは伝送波）、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態によるメモリインタフェース回路の構成を示すブロック図である。
【図２】メモリクロック生成回路の構成を示すブロック図である。
【図３】メモリクロック周波数制御の処理フローである。
【符号の説明】
【００３３】
１・・・リフレッシュ回路
２・・・ホストインタフェース回路
３・・・アービター回路
４・・・キューイングバッファ
５・・・コマンドディスパッチャ回路
６・・・デバイスマネージャ回路
７・・・コマンド発生回路
８・・・ストローブ発生回路
９・・・ＯＰＢインタフェース回路
１０・・・メモリクロック生成回路
１１ａ、１１ｂ、１１ｃ、１１ｄ・・・シフトレジスタ（記憶手段）
１２・・・トラフィックトレンド判定回路（判定手段）
１３・・・メモリクロック周波数更新回路（メモリクロック周波数更新手段）
１４・・・源発振器
１５・・・ＰＬＬ
【図１】
2006099569.tif 000003
【図２】
2006099569.tif 000004
【図３】
2006099569.tif 000005