(57)【要約】【課題】バスクロック周波数を変更可能にして、モジュールを最低動作周波数近傍の周波数で動作させ、消費電力を低減する。【解決手段】  バスクロック及びデータの伝送が可能なバス１と、前記バスに接続されて前記バスクロックに応じた動作周波数で動作して所定の機能を達成する複数の機能ブロックＭ１，Ｍ２，…と、前記バスに前記バスクロックを供給するバスクロック発生源３と、前記バスの使用状態に基づいて前記バスクロック発生源を制御して前記バスクロックの周波数を変更する調停手段４とを具備したことを特徴とする。【選択図】      図１
2006072597.tif 000002
【特許請求の範囲】
【請求項１】
バスクロック及びデータの伝送が可能なバスと、
前記バスに接続されて前記バスクロックに応じた動作周波数で動作して所定の機能を達成する複数の機能ブロックと、
前記バスに前記バスクロックを供給するバスクロック発生源と、
前記バスの使用状態に基づいて前記バスクロック発生源を制御して前記バスクロックの周波数を変更する調停手段とを具備したことを特徴とするデータ処理装置。
【請求項２】
前記調停手段は、前記複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じて前記バスクロックの周波数を変更することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記調停手段は、前記機能ブロックをその機能を達成可能な最低の動作周波数で動作させるために必要な最低の周波数に前記バスクロックの周波数を設定することを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記調停手段は、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、前記バスクロックの周波数を変更してバスの使用を許可することを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
バスの使用を要求するためのリクエストが発生すると、リクエストを発生した１つ以上の機能ブロックの機能を達成させるために必要な最低の動作周波数を求める手順と、
前記バスにバスクロックを供給するバスクロック源を制御して前記最低の動作周波数に基づくバスクロック周波数のバスクロックを発生させる手順とを具備したことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスクロックに応じた動作周波数でデータ伝送を行う複数のモジュールによって構成されるデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
従来、各種電子機器等においては、例えば、携帯電話、ＰＤＡ、電子辞書等のように、ＬＣＤ等の表示部を備えたものが多い。これらの電子機器においては、ＣＰＵ（中央処理装置）、ＬＣＤコントローラ等の各モジュール同士をバスを用いて接続することで構成されることがある。各モジュールのバスの使用権（以下、バス権という）は、アービター（以下、調停回路という）によって制御される。
【０００３】
ところで、これらの電子機器は、携帯性を重視したものが多く、小型軽量化と共に、低消費電力化が図られている。例えば、特許文献１においては、内部回路の状態を維持しつつクロック信号の供給を停止し、待機時の消費電流を低減する提案が開示されている。また、特許文献２においては、リフレッシュ周期の異なるＤＲＡＭに対して必要最低限のリフレッシュを実行できるようにしてシステム電流を抑制する技術が開示されている。また、特許文献３においては、各ＤＲＡＭに合わせたクロックドライバを用意して、周波数を切換える技術が開示されている。
【特許文献１】特開２０００−３３９９５９号公報
【特許文献２】特開平６−１７６５６７号公報
【特許文献３】特開２００２−１３２５７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、電子辞書等においては、使用中においては常時ＬＣＤを駆動する必要があり、クロック信号の供給を停止させることはできない。このため、特許文献１の手法だけでは、十分に消費電力を低減させることはできない。また、特許文献２では、バスの使用状態を考慮することなくリフレッシュ周期を制御しており、システムの動作に応じた低消費電力化を図ることはできない。また、特許文献３においても、バスの使用状態は考慮されておらず、システムの動作に応じた低消費電力化を図ることはできない。また、特許文献３の提案では、周波数を切換えるために個々に分周回路を備える必要があり、複数の分周回路を同時に動作させるために、比較的大きな電力を消費してしまうという問題があった。
【０００５】
本発明はかかる問題点に鑑みてなされたものであって、バスに供給するクロック（バスクロック）の周波数を可変とすることによって、低消費電力化を図ることができるデータ処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、バスクロック及びデータの伝送が可能なバスと、前記バスに接続されて前記バスクロックに応じた動作周波数で動作して所定の機能を達成する複数の機能ブロックと、前記バスに前記バスクロックを供給するバスクロック発生源と、前記バスの使用状態に基づいて前記バスクロック発生源を制御して前記バスクロックの周波数を変更する調停手段とを具備したことを特徴とする。
【０００７】
このような構成によれば、機能ブロックはバスクロックに応じた動作周波数で動作する。調停手段はバスクロック発生源を制御してバスクロックの周波数を変更する。例えば、バスを使用する機能ブロックの数が少ない場合には、調停手段は、バスを使用する機能ブロックが機能を達成できる範囲内でその動作周波数を低くするように、バスクロック周波数を変化させる。これにより、各機能ブロックの消費電力を抑制することができる。
【０００８】
また、前記調停手段は、前記複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じて前記バスクロックの周波数を変更することを特徴とする。
【０００９】
このような構成によれば、バスを使用する機能ブロックが多い場合にはバスクロック周波数を高くし、少ない場合にはバスクロック周波数を低くする。これにより、各機能ブロックはその機能を達成可能な範囲内でその動作周波数を低くすることができる。これにより、各機能ブロックの消費電力を抑制することができる。
【００１０】
また、前記調停手段は、前記機能ブロックをその機能を達成可能な最低の動作周波数で動作させるために必要な最低の周波数に前記バスクロックの周波数を設定することを特徴とする。
【００１１】
このような構成によれば、各機能ブロックはその機能を達成可能な最低の動作周波数で動作するので、消費電力を十分に低減することができる。
【００１２】
また、前記調停手段は、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、前記バスクロックの周波数を変更してバスの使用を許可することを特徴とする。
【００１３】
このような構成によれば、バスの使用に優先順位が付されている場合において、優先順位が比較的低い機能ブロックについても、所定の閾値以上のリクエスト待ち時間後には必ずバスを使用することができる。これにより、消費電力を抑制しながら、バスの効率的な利用を可能にすることができる。
【００１４】
本発明に係るデータ処理方法は、バスの使用を要求するためのリクエストが発生すると、リクエストを発生した１つ以上の機能ブロックの機能を達成させるために必要な最低の動作周波数を求める手順と、前記バスにバスクロックを供給するバスクロック源を制御して前記最低の動作周波数に基づくバスクロック周波数のバスクロックを発生させる手順とを具備したことを特徴とする。
【００１５】
このような構成によれば、バスの使用を要求するためのリクエストが発生すると、各機能ブロックの機能を達成させるために必要な最低の動作周波数が求められる。この最低動作周波数に応じたクロック周波数を発生させるように、バスクロック源が制御される。これにより、各機能ブロックは最低の動作周波数で動作することになり、消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は本発明の一実施の形態に係るデータ処理装置を示すブロック図である。
【００１７】
本実施の形態のデータ処理装置は、ＣＰＵ（中央処理装置）や各種コントローラ等のモジュール（機能ブロック）Ｍ１，Ｍ２，…が共通のバス１によってデータを伝送する構成となっている。バス１は、データを伝送するデータバス、アドレスを伝送するアドレスバス、クロックを伝送するクロックバス及びコントロール信号を伝送するコントロールバスを含む。バス１には複数のモジュールＭ１，Ｍ２，…が接続されている。
【００１８】
モジュールＭ１，Ｍ２，…は単独で所定の機能を実現する機能ブロックである。例えば、モジュールＭ１，Ｍ２，…としては、ＣＰＵ、ＬＣＤ（液晶表示装置）コントローラ等の表示コントローラやＵＳＢコントローラ等の各種インタフェースコントローラ等がある。
【００１９】
バス１にはＲＡＭ２も接続されている。ＲＡＭ２は各種データを記憶することができ、例えば、各モジュールＭ１，Ｍ２，…で共有するデータ等を格納することができるようになっている。
【００２０】
バス１にはバスクロック源３からクロック（バスクロック）が供給されるようになっている。バスクロック源３はクロックを生成してバス１に供給する。各モジュールＭ１，Ｍ２，…は、バスクロック源３からのクロックに同期して動作するようになっている。バスクロック源３は調停回路（arbiter）４によって制御されるようになっている。
【００２１】
調停回路４は、各モジュールＭ１，Ｍ２，…のバス権の制御を行うようになっている。モジュールＭ１，Ｍ２，…はバス１によってデータを伝送する場合には、バスの使用を求めるリクエストを調停回路４に発する。調停回路４は、このリクエストを受けて、各モジュールＭ１，Ｍ２，…にバス１の使用を許可するバス権を与えるようになっている。この場合には、調停回路４は、バス１の使用状態に応じてバス権の設定を制御する。また、調停回路４は、優先順位を設定し、特定のモジュールに優先的にバス権を設定することができるようになっている。
【００２２】
なお、各モジュールＭ１，Ｍ２，…には、図示しない制御信号線が接続されており、各モジュールを選択するチップセレクト信号ＣＳ及び書込みを指示するライトイネーブル信号ＷＥ等が制御信号線を介して個別に供給可能となっている。
【００２３】
本実施の形態においては、調停回路４は、バス権を設定すると共に、バスクロック源３が発生するクロックの周波数についても制御するようになっている。
【００２４】
図２は図１中のバスクロック源３の具体的な構成を示すブロック図である。
【００２５】
発振回路１１には外部からクロックＣｌｋが入力される。発振回路１１はクロックＣｌｋに基づいて、所定周波数のクロックｃｌｋを発生する。また、発振回路１１はクロックＣｌｋをＰＬＬ（Phase Locked Loop）回路１２にも与える。ＰＬＬ回路１２は、入力されたクロックＣｌｋの周波数を逓倍して出力する。発振回路１１からのクロックｃｌｋとＰＬＬ回路１２からのクロックＣｌｋのｎ逓倍のクロック（以下、クロックｎ×Ｃｌｋという）はセレクタ１３に与えられる。
【００２６】
セレクタ１３は調停回路４に制御されて、クロックｃｌｋとクロックｎ×Ｃｌｋとの一方を選択して分周回路１４に出力する。分周回路１４は、入力されたクロックを分周する。例えば、分周回路１４は分周比を１〜１／ｎ倍の範囲で可変である。分周回路１４の分周比は調停回路４に制御されるようになっている。
【００２７】
分周回路１４の出力がバスクロックとしてバス１に供給されるようになっている。ＰＬＬ回路１２の逓倍数及び分周回路１４の分周比の可変範囲を適宜設定することにより、調停回路４の制御によって、バスクロック源３は所望の周波数のバスクロックを発生することができるようになっている。
【００２８】
なお、バスクロック源３は、バス１に接続されているモジュールＭ１，Ｍ２，…を十分に高速に動作させるために必要な十分に高い周波数のクロックを発生することができるようになっている。
【００２９】
次に、このように構成された実施の形態の動作について図３及び図４を参照して説明する。図３はバス１に流れるバスクロック及びデータの関係を示すタイミングチャートである。図３（ａ）はバスクロック源３からバス１に供給されるバスクロックＣＬＫを示し、図３（ｂ）はモジュールに供給されるチップセレクト信号ＣＳを示し、図３（ｃ）はモジュールに供給されるライトイネーブル信号ＷＥを示し、図３（ｄ）はバス１を介して伝送されるデータＤを示している。
【００３０】
各モジュールＭ１，Ｍ２，…はバス１に流れるバスクロックに応じてデータの伝送を行う。図３（ａ）に示すバスクロックＣＬＫがに対して、図３（ｂ）及び図３（ｃ）に示すローアクティブのチップセレクト信号ＣＳ及びライトイネーブル信号ＷＥが発生したものとする。この場合には、チップセレクト信号ＣＳによって選択されたモジュールがライトイネーブルＷＥのタイミングで書き込みを開始し、バスクロックＣＬＫに同期してデータＤを伝送する。
【００３１】
従って、データＤの伝送は、バスクロックＣＬＫの周波数に応じた速度となる。即ち、各モジュールＭ１，Ｍ２，…は、自己の動作可能な周波数に拘わらず、バスクロックＣＬＫの周波数に応じた速度で動作することになる。
【００３２】
本実施の形態では、調停回路４は、各モジュールＭ１，Ｍ２，…を最低動作周波数で動作させることを可能にするように、バスクロックを制御するようになっている。いま、モジュールＭ１，Ｍ２，Ｍ３が正常にその機能を達成するために必要な最低限の動作周波数（以下、最低動作周波数という）が夫々Ａ ＭＨｚ，Ｂ ＭＨｚ，Ｃ ＭＨｚであるものとする。各モジュールＭ１，Ｍ２，Ｍ３が単独で動作するものとすると、調停回路４は、バス１に流れるバスクロックＣＬＫとして最低動作周波数に所定のマージンα（１以上の正数）を乗じた夫々Ａ・α ＭＨｚ，Ｂ・α ＭＨｚ，Ｃ・α ＭＨｚを設定する。これにより、各モジュールＭ１，Ｍ２，Ｍ３は最低限その機能を達成することができる。
【００３３】
また、例えば、ＣＰＵと表示制御コントローラが同時にＲＡＭにアクセルする場合のように、複数のモジュールが同時に動作することもある。この場合には、調停回路４は、バス１に、動作するモジュールの最低動作周波数の和に所定のマージンαを乗じた周波数のバスクロックを流すようになっている。例えば、
モジュールＭ１，Ｍ２を同時に動作させる場合のバスクロック周波数を、（Ａ＋Ｂ）・α＝Ｄ ＭＨｚ
モジュールＭ１，Ｍ３を同時に動作させる場合のバスクロック周波数を、（Ａ＋Ｃ）・α＝Ｅ ＭＨｚ
モジュールＭ２，Ｍ３を同時に動作させる場合のバスクロック周波数を、（Ｂ＋Ｃ）・α＝Ｆ ＭＨｚ
モジュールＭ１，Ｍ２，Ｍ３を同時に動作させる場合のバスクロック周波数を、（Ａ＋Ｂ＋Ｃ）・α＝Ｇ ＭＨｚ
に設定する。
【００３４】
図４は調停回路４によるバスクロックの設定の手順を示している。図４のステップＳ１において、調停回路４は各モジュールＭ１，Ｍ２，…からリクエストが発生しているか否かを判定する。リクエストが発生すると、調停回路４はリクエストを発したモジュールの最低動作周波数を検出する（ステップＳ２）。また、調停回路４は同時に複数のリクエストが発生しているかを検出し（ステップＳ３）、複数モジュールの動作可能周波数を調べる（ステップＳ４）。
【００３５】
次に、調停回路４は、ステップＳ５において、現在バス権を有するモジュールにリクエストを発したモジュールを加えて、必要なバスクロック周波数を算出する。次に、調停回路４は算出した動作周波数の変更をバスクロック源３に指示する（ステップＳ６）。次に、再びリクエストを確認しリクエスト本数に変更があればバスクロック周波数をそれに応じて変更する（ステップＳ7）。
【００３６】
バスクロック源３は、調停回路４の指示に従って、セレクタ１３及び分周回路１４を制御して、バスクロックの周波数を必要なバスクロック周波数に変更してバス１に供給する。
【００３７】
例えば、モジュールＭ１のみからリクエストが発生しているものとすると、バスクロック源３からのバスクロックＣＬＫの周波数はＡ・α ＭＨｚとする。同様に、
モジュールＭ２のみからリクエストが発生している場合のバスクロック周波数はＢ・α ＭＨｚとし、
モジュールＭ３のみからリクエストが発生している場合のバスクロック周波数はＣ・α ＭＨｚとし、
モジュールＭ１，Ｍ２からリクエストがあった場合のバスクロック周波数はＤ ＭＨｚとし、
モジュールＭ２，Ｍ３からリクエストがあった場合のバスクロック周波数はＥ ＭＨｚとし、
モジュールＭ１，Ｍ３からリクエストがあった場合のバスクロック周波数はＦ ＭＨｚとし、
モジュールＭ１〜Ｍ３からリクエストがあった場合のバスクロック周波数はＧ ＭＨｚとする。
【００３８】
これにより、各モジュール単体では最低動作周波数に近い周波数で動作させつつ、複数モジュール動作時に必要なバス帯域を確保することができる。
【００３９】
ところで、上述したように、調停回路４は各モジュールＭ１，Ｍ２，…が取得するバス権に優先順を設定することもできる。いま、例えば、所定のモジュールＭＡ，ＭＢ，ＭＣについて、ＭＡ，ＭＢ，ＭＣの順で優先順を設定するものとする。この場合には、これらのモジュールからのリクエストに対して、ＭＡ，ＭＢ，ＭＣの順で優先的にバス権が設定される。
【００４０】
図５はこの場合の調停回路４によるクロック変更動作を示すフローチャートである。図５において図４と同一の手順には同一符号を付して説明を省略する。
【００４１】
例えば、優先順位が高いモジュール同士が互いに頻繁にリクエストを発生し、さらに比較的低いモジュールがリクエストを発生し、それらモジュールのバスクロック周波数設定値が低消費電力化の為、デバイス的に動作可能な最大周波数より低く設定されている場合、バスクロック周波数に余裕があるにも拘わらず優先順が比較的低いモジュールにバス権がなかなか付与されないことも考えられる。そこで、図５の例では、ステップＳ１１において、リクエストを発したモジュールのリクエスト待ち時間を検出する。この待ち時間を所定の閾値と比較する（ステップＳ１２）。リクエストを発したモジュールのリクエスト待ち時間が所定の閾値よりも小さい場合には、ステップＳ８において待機させる。リクエスト待ち時間が所定の閾値よりも大きくなると、ステップＳ１３において、調停回路４は、バスクロックの周波数を高くし、リクエストを発した優先順位が比較的低いモジュールにバス権を割当てる（ステップＳ１４）。
【００４２】
バスクロック源３は、調停回路４に制御されて、バスクロックの周波数を高くする。こうして、比較的優先順位が低いモジュールについても、リクエスト待ち時間を短縮して、バス１を利用することを可能にしている。
【００４３】
図６は図１の実施の形態を電子辞書に適用した場合の構成を示すブロック図である。図６において図１と同一の構成要素には同一符号を付して説明を省略する。図６の例は、モジュールとしてＣＰＵＭC ，ＵＳＢ等のインタフェースコントローラ（Ｉ／Ｆ）ＭI 及びＬＣＤコントローラ（ＬＣＤＣ）ＭL を採用し、ＬＣＤ４を備えたものである。ＣＰＵＭC には、作業用のＲＡＭ２１及び電子辞書プログラムを格納するＲＯＭ２２が接続されている。
【００４４】
ＣＰＵＭC 、Ｉ／ＦＭI 及びＬＣＤＣＭL は、夫々最低動作周波数が例えばＡ ＭＨｚ，Ｂ ＭＨｚ，Ｃ ＭＨｚである。ＣＰＵＭC は、電子辞書プログラムを実行して装置全体を制御する。即ち、ＣＰＵＭC は、作業ＲＡＭ２１を用いながら、ＲＯＭ２２に格納された電子辞書プログラムを実行する。Ｉ／ＦＭI は、例えばＵＳＢコントローラ等によって構成されており、外部機器との間でのデータの送受を行う。
【００４５】
ＬＣＤＣＭL は、ＬＣＤ４を駆動してＬＣＤ４の画面上に電子辞書としての各種画面表示を行う。ＬＣＤＣＭL が表示に用いる表示データはＲＡＭ２に格納されている。ＬＣＤＣＭL は、ＲＡＭ２に格納されている表示データを読出して、ＬＣＤ４に供給することでＬＣＤ４の画面上に表示を行う。
【００４６】
本実施の形態においては、調停回路４は、ＣＰＵＭC 、Ｉ／ＦＭI 及びＬＣＤＣＭL を最低動作周波数で動作させることができる。例えば、電子辞書においては、ユーザがＬＣＤ４の画面表示を見ているだけで、操作をしない時間が長いことがある。このような場合には、図６の電子辞書においては、ＬＣＤＣＭL がＲＡＭ２から読出した表示データをＬＣＤ４に供給するだけの動作を行うことになる。この場合には、バス１の帯域はＬＣＤＣＭL のみによって占有される。
【００４７】
ＬＣＤＣＭL は、同一の表示データをＲＡＭ２から読出してＬＣＤ４に供給するために必要な比較的低速の動作を行えばよい。そこで、本実施の形態においては、調停回路４は、ＬＣＤＣＭL が最低動作周波数で動作するように、バスクロックの制御を行う。即ち、この場合には、バスクロック源３を制御して、バスクロック周波数をＡ・α ＭＨｚに設定する。
【００４８】
これにより、ＬＣＤＣＭL は、その機能を達成可能で且つ最低動作周波数に近い動作周波数で動作する。ＬＣＤＣＭL の動作周波数が低く、その消費電力は十分に低減される。
【００４９】
なお、他のモジュールからリクエストが発生した場合には、上述したように、調停回路４によってバスクロック周波数が各モジュールの動作周波数に応じて高く設定されることは明らかである。
【００５０】
このように、本実施の形態においては、バスに供給するバスクロック周波数を可変にしており、リクエストを発生しているモジュールの最低動作周波数に応じてバスクロック周波数を設定している。これにより、各モジュールを最低動作周波数近傍の周波数で動作させることができ、消費電力を低減することができる。
【００５１】
なお、上記実施の形態においては、調停回路は、全モジュールを最低動作周波数で動作させることが可能であるが、各モジュールの動作に応じて、バスクロック周波数を決定してもよい。例えば、表示コントローラについては最低動作周波数で動作させ、ＣＰＵについては最高動作周波数で動作させるようにしてもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施の形態に係るデータ処理装置を示すブロック図。
【図２】図１中のバスクロック源３の具体的な構成を示すブロック図。
【図３】実施の形態の動作を説明するためのフローチャート。
【図４】実施の形態の動作を説明するためのフローチャート。
【図５】調停回路４によるクロック変更動作を示すフローチャート。
【図６】図１の実施の形態を電子辞書に適用した場合の構成を示すブロック図。
【符号の説明】
【００５３】
１…バス、２…ＲＡＭ、３…バスクロック源、４…調停回路、Ｍ１，Ｍ２，Ｍ３…モジュール。  
【図１】
2006072597.tif 000003
【図２】
2006072597.tif 000004
【図３】
2006072597.tif 000005
【図４】
2006072597.tif 000006
【図５】
2006072597.tif 000007
【図６】
2006072597.tif 000008