説明

動的バスクロックを制御するための装置及び方法

【課題】本発明は動的バスクロックを制御するための装置及び方法に関する。
【解決手段】本発明による動作バスクロックを制御するための装置は、少なくとも一つのマスターモジュールと、少なくとも一つのスレーブモジュールと、前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュールが送受信するデータを媒介するバスと、前記少なくとも一つのマスターモジュールの動作情報(Activity)を考慮してバスクロックの周波数を決定するバス周波数制御機と、前記バス周波数制御機で決定した周波数を発生させて生成したクロックを前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュール及び前記バスに提供するクロック発生器と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動的バスクロックを制御するための装置及び方法に関し、特に、オン−チップバス(On−Chip Bus)の使用頻度を考慮してデジタルシステムのバスクロック周波数を制御するための装置及び方法に関する。
【背景技術】
【0002】
同期式(Synchronous)デジタルシステムは図1に示すようにバスを中心に少なくとも一つのマスターモジュール(Master Module)と少なくとも一つのスレーブモジュール(Slave Module)がデータを送受信する。
【0003】
図1は、従来技術によるデジタルシステムのバス構成を示している。
【0004】
図1に示すように少なくとも一つのマスターモジュール100−1、100−2、…、100−nはバス120を介して少なくとも一つのスレーブモジュール110−1、110−2、…、110−mとデータを送受信する。この時、前記マスターモジュール100−1、100−2、…、100−nとスレーブモジュール110−1、110−2、…、110−m及びバス120はクロック発生器130で生成した固定されたバスクロックBUS_CLKを使用する。前記クロック発生器130はデジタルシステムの最大性能を満たすための最大周波数を生成する。
【0005】
デジタルシステムは電力消費を低減するために動的電圧及び周波数制御(DVFS:Dynamic Voltage and Frequency Scaling)技術を使用する。
【0006】
DVFS技術を使用する場合、デジタルシステムはメインプロセッサ(CPU:Central Processing Unit)の動作情報(Activity)を測定してCPU又は前記デジタルシステムの全体の周波数を変更する。
【0007】
しかし、前記DVFS技術はCPUの動作情報のみを測定して前記CPUの電圧と周波数を調節する。これにより、デジタルシステムはDVFS技術によってCPUの周波数を変更することによってCPUの電力のみを減少させるという限界を持つ 。
【0008】
前記DVFS技術を用いてデジタルシステムの全体の周波数を変更する場合、CPU以外の独自のバスの帯域幅を要求するマスターモジュールが存在する場合、CPU中心のDVFS技術によってデジタルシステムの性能が低下する問題が発生し得る。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】韓国特許出願公開第10−2002−0050374号明細書
【発明の概要】
【発明が解決しようとする課題】
【0010】
したがって、本発明の目的は、デジタルシステムでバスクロックの周波数を変更してシステムの電力消耗を低減するための装置及び方法を提供することにある。
【0011】
本発明の他の目的は、デジタルシステムでオン−チップバス(On−Chip BuS)の使用頻度を考慮してバスクロックの周波数を変更するための装置及び方法を提供することにある。
【0012】
本発明のさらに他の目的は、デジタルシステムでオン−チップバスの使用頻度を考慮してバスクロックの周波数を段階的に変更するための装置及び方法を提供することにある。
【0013】
本発明のさらに他の目的は、デジタルシステムでマスターモジュールによるオン−チップバスの使用頻度を考慮してバスクロックの周波数を変更するための装置及び方法を提供することにある。
【課題を解決するための手段】
【0014】
本発明の目的を達成するための本発明の第1見地によれば、動的バスクロックを制御するための方法は、少なくとも一つのマスターモジュールに対する動作情報(Activity)を確認する過程と、前記少なくとも一つのマスターモジュールに対する動作情報の合計を算出する過程と、前記少なくとも一つのマスターモジュールに対する動作情報の合計を考慮してバスクロックの周波数を決定する過程と、を含むことを特徴とする。
【0015】
本発明の第2見地によれば、動的バスクロックを制御するための方法は、バスを使用するマスターモジュールが存在するかを確認する過程と、基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数を下げる過程と、基準時間内にバスを使用する少なくとも一つのマスターモジュールが存在する場合、バスクロックの周波数を上げる過程と、を含むことを特徴とする。
【0016】
本発明の第3見地によれば、動的バスクロックを制御するための装置は、少なくとも一つのマスターモジュールと、少なくとも一つのスレーブモジュールと、前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュールが送受信するデータを媒介するバスと、前記少なくとも一つのマスターモジュールの動作情報(Activity)を考慮してバスクロックの周波数を決定するバス周波数制御機と、前記バス周波数制御機で決定した周波数を発生させて生成したクロックを前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュール及び前記バスに提供するクロック発生器と、を含んで構成されることを特徴とする。
【0017】
本発明の第4見地によれば、動的バスクロックを制御するための装置は、少なくとも一つのマスターモジュールと、少なくとも一つのスレーブモジュールと、前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュールが送受信するデータを媒介するバスと、前記バスを使用するマスターモジュールの存在有無を考慮してバスクロックの周波数を決定するバス周波数制御機と、前記バス周波数制御機で決定した周波数を発生させて生成したクロックを前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュール及び前記バスに提供するクロック発生器と、を含んで構成されることを特徴とする。
【図面の簡単な説明】
【0018】
【図1】従来の技術によるデジタルシステムのバス構成を示す図である。
【図2】本発明によるデジタルシステムのバス構成を示す図である。
【図3】本発明の実施例によるバスAFS制御機の構成を示す図である。
【図4】本発明の実施例によるバスクロックの周波数を制御するための手順を示す図である。
【図5】本発明の他の実施例によるバスAFS制御機の構成を示す図である。
【図6】本発明の他の実施例によるバスクロックの周波数を制御するための手順を示す図である。
【図7】本発明のさらに他の実施例によるバスクロック周波数を制御するための手順を示す図である。
【図8】本発明の実施例によるデジタルシステムの周波数変更グラフを示す図である。
【図9】本発明のさらに他の実施例によるバスクロック周波数を制御するための手順を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の好ましい実施例を添付した図面に基づき詳細に説明する。なお、本発明を説明するにあたって、関連した公知機能又は構成に対する具体的な説明が本発明の要旨を不必要に曖昧にする可能性があると判断した場合、その詳細な説明は省略する。また、後述する用語は本発明での機能を考慮して定義された用語であり、これは使用者、運用者の意図又は慣例などによって異なることがある。したがって、その定義は本明細書全般に亘る内容をもとに決めるべきである。
【0020】
以下、本発明によるオン−チップバス(On−ChiP BuS)の使用頻度を考慮してデジタルシステムのバスクロックの周波数を変更するための技術を説明する。
【0021】
図2は、本発明によるデジタルシステムのバス構成を示している。
【0022】
図2に示すように少なくとも一つのマスターモジュール200−1、200−2、…、200−nはバス220を介して少なくとも一つのスレーブモジュール210−1、210−2、…、210−mとデータを送受信する。この時、前記マスターモジュール200−1、200−2、…、200−nとバス220及びスレーブモジュール210−1、210−2、…、210−mはクロック発生器240で生成したバスクロックBUS_CLKを使用して動作する。
【0023】
前記クロック発生器240はバスAFS(Adaptive Frequency Scaling)制御機230の制御によって前記マスターモジュール200−1、200−2、…、200−nとスレーブモジュール210−1、210−2、…、210−m及びバス220を動作させるためのバスクロックを発生させる。
【0024】
前記バスAFS制御機230は前記マスターモジュール200−1、200−2、…、200−nの前記バス220の使用有無によってバスクロックを発生させるように前記クロック発生器240を制御する。例えば、前記バスAFS制御機230は各々のマスターモジュール200−1、200−2、…、200−nのRVALID信号とRREADY信号によって該当マスターモジュール200−1、200−2、…、200−nの読み出しチャネル(read channel)に対する使用有無を判断する。また、前記バスAFS制御機230は各々のマスターモジュール200−1、200−2、…、200−nのWVALID信号とWREADY信号によって該当マスターモジュール200−1、200−2、…、200−nの書き込みチャネル(writechannel)に対する使用有無を判断する。
【0025】
前記バスAFS制御機230は下記図3に示すように構成される。
【0026】
図3は、本発明の実施例によるバスAFS制御機の構成を示している。
【0027】
図3に示すように前記バスAFS制御機230はチャネル確認部300−1、…、300−n、カウンター310−1、…、310−n、加重値制御部320、加算器(Adder)330、比較器(Comparator)340及び保存部350を含んで構成される。
【0028】
前記チャネル確認部300−1、…、300−nは各々のマスターモジュール200−1、200−2、…、200−nに対するバスの使用有無を確認する。例えば、前記チャネル確認部A300−1はマスターモジュールA200−1の読み出しチャネルバスと書き込みチャネルバスの使用有無を確認する。例えば、前記チャネル確認部A300−1はマスターモジュールA200−1のRVALID信号とRREADY信号によって読み出しチャネルバスの使用有無を確認する。また、前記チャネル確認部A300−1はマスターモジュールA200−1のWVALID信号とWREADY信号によって書き込みチャネルバスの使用有無を確認する。この時、前記チャネル確認部A300−1はマスターモジュールA200−1から受信したRVALID信号とRREADY信号をAND演算360−1_1し、WVALID信号とWREADY信号をAND演算360−1_2する。この後、前記チャネル確認部A300−1は前記読み出しチャネルのAND演算360−1_1と書き込みチャネルのAND演算360−1_2)に対するOR演算370−1を行ってマスターモジュールA200−1の読み出しチャネルと書き込みチャネルの使用有無を確認する。この時、前記チャネル確認部A300−1はOR演算370−1の結果をカウンターA310−1の「en」ピンまで伝送する。
【0029】
前記カウンター310−1、…、310−nは各々のチャネル確認部300−1、…、300−nから提供された各々のマスターモジュール200−1、200−2、…、200−nに対するバス使用情報に応じて該当マスターモジュールの動作情報を確認する。例えば、前記カウンター310−1、…、310−nは各々のマスターモジュール200−1、200−2、…、200−nがバスを使用する場合にのみカウントする。
【0030】
前記カウンター310−1、…、310−nは所定時間の間累積した各々のマスターモジュール200−1、200−2、…、200−nの動作情報を前記加重値制御部320に伝送する。例えば、前記カウンター310−1、…、310−nは所定時間累積された各々のマスターモジュール200−1、200−2、…、200−nの動作情報を多重ビット(Multi−bit)の形態に構成して前記加重値制御部320に伝送する。
【0031】
前記加重値制御部320は各々のカウンター310−1、…、310−nから提供された各々のマスターモジュール200−1、200−2、…、200−nの動作情報に互いに異なる加重値を適用する。例えば、前記加重値制御部320が少なくても一つのシフター(shifter)で構成される場合、各々のシフターは該当マスターモジュールの加重値の分だけ該当マスターモジュールのバス使用量をシフティング(shifting)する。
【0032】
前記加算器330は前記加重値制御部320から提供された加重値が適用された各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計を算出する。
【0033】
前記比較器340は前記加算器330から提供された各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計とバスクロックを変更するための基準値を比較して前記クロック発生器240で発生させるバスクロックの周波数を決定する。例えば、前記比較器340は前記保存部350からバスクロックを変更するための基準値情報を獲得する。この後、前記比較器340は前記比較器340から提供された各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計と前記基準値情報を比較する。もし、前記各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計が基準値1より小さい場合、前記比較器340は前記クロック発生器240で発生させるバスクロックの周波数を下げるように制御する。一方、前記各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計が基準値2より大きい場合、前記比較器340は前記クロック発生器240で発生させるバスクロックの周波数を上げるように制御する。この時、前記比較器340は前記クロック発生器240で最大バスクロックを発生させている場合、前記バスクロックを維持するように制御する。また、各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計が基準値1より大きく基準値2より小さい場合、前記比較器340は前記クロック発生器240で発生させるバスクロックを維持するように制御する。ここで、前記基準値1はバスクロックの周波数を下げるための低い基準値を表し、前記基準値2はバスクロックの周波数を上げるための高い基準値を表す。
【0034】
前記保存部350は前記比較器340でバスクロックを変更するための基準値を保存する。また、前記保存部350は前記加重値制御部320で各々のマスターモジュール200−1、200−2、…、200−nに適用した加重値情報を含む。
【0035】
上述した実施例で前記比較器340は前記加算器330で合算した各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計とバスクロックを変更するための基準値を比較する。
【0036】
他の実施例で前記加算器330は各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計を比率(Ratio)算出器に伝送する。前記比率算出器は前記各々のマスターモジュール200−1、200−2、…、200−nの動作情報に対する合計を考慮して前記マスターモジュール200−1、200−2、…、200−nの動作時間比率を算出する。この時、前記比較器340は前記比率算出器で算出したマスターモジュール200−1、200−2、…、200−nの動作時間比率と基準値を比較して前記クロック発生器240で発生させるバスクロックの周波数を決定することもできる。
【0037】
上述のように前記バスAFS制御機230が構成される場合、前記バスAFS制御機230は下記図4に示すようにバスクロックの周波数を制御する。
【0038】
図4は本発明の実施例によるバスクロックの周波数を制御するための手順を示している。
【0039】
図4に示すようにバスAFS制御機230は401ステップで各々のマスターモジュールに対するカウンターを初期化する。例えば、前記バスAFS制御機230は前記図3で前記カウンター310−1、…、310−nを初期化する。
【0040】
各々のマスターモジュールに対するカウンターを初期化した後、前記バスAFS制御機230は403ステップに進行して各々のマスターモジュールに対するカウンターを用いて各々のマスターモジュールに対する動作情報(Activity)を確認する。例えば、前記図3に示す前記カウンター310−1、…、310−nは各々のマスターモジュール200−1、200−2、…、200−nがバスを使用する場合にのみカウントする。
【0041】
この後、前記バスAFS制御機230は405ステップに進行して各々のマスターモジュールの動作情報に加重値を適用する。この時、前記バスAFS制御機230は各々のマスターモジュールの動作情報に互いに異なる加重値を適用する。
【0042】
各々のマスターモジュールの動作情報に加重値を適用した後、前記バスAFS制御機230は407ステップに進行して加重値が適用された各々のマスターモジュールの動作情報に対する合計を算出する。
【0043】
この後、前記バスAFS制御機230は409ステップに進行してマスターモジュールのバス使用頻度を表す各々のマスターモジュールの動作情報に対する合計を考慮してバスクロックの周波数を下げるか否かを確認する。例えば、前記バスAFS制御機230は前記407ステップで算出したマスターモジュールの動作情報に対する合計と基準値1を比較する。ここで、前記基準値1はバスクロックの周波数を下げるための低い基準値を表す。
【0044】
前記算出したマスターモジュールの動作情報に対する合計が前記基準値1より小さいか同じ場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が低いと認識する。これにより、前記バスAFS制御機230は411ステップに進行してバスクロックの周波数を下げる。例えば、前記バスAFS制御機230はバスクロックの周波数が最小化されるように制御する。
【0045】
一方、前記算出したマスターモジュールの動作情報に対する合計が前記基準値1より高い場合、前記バスAFS制御機230は413ステップに進行して各々のマスターモジュールの動作情報に対する合計を考慮してバスクロックの周波数を上げるか否かを確認する。例えば、前記バスAFS制御機230は前記マスターモジュールの動作情報に対する合計と基準値2を比較する。ここで、前記基準値2はバスクロックの周波数を上げるための高い基準値を表す。
【0046】
前記各々のマスターモジュールの動作情報に対する合計が前記基準値2より小さい場合、前記バスAFS制御機230は現在のバスクロックがマスターモジュールのバス使用頻度に適したものであると認識する。これにより、前記バスAFS制御機230は415ステップに進行してバスクロックの周波数を維持するように制御する。
【0047】
一方、前記各々のマスターモジュールの動作情報に対する合計が前記基準値2より大きいか同じ場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が高いと認識する。これにより、前記バスAFS制御機230は417ステップに進行してバスクロックの周波数を上げることができるかを確認する。すなわち、前記バスAFS制御機230は現在使用中のバスクロックの周波数とデジタルシステムがサポート可能な最大周波数が同じであるかを確認する。
【0048】
バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が同じ場合、前記バスAFS制御機230は前記415ステップに進行してバスクロックの周波数を維持するように制御する。
【0049】
一方、バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が異なる場合、前記バスAFS制御機230は419ステップに進行してバスクロックの周波数を上げる。例えば、前記バスAFS制御機230はバスクロックの周波数が最大になるように制御する。
【0050】
この後、前記バスAFS制御機230は本アルゴリズムを終了する。
【0051】
上述した実施例でバスAFS制御機230は各々のマスターモジュールの動作情報に加重値を適用してマスターモジュールのバス使用頻度を確認する。
【0052】
他の実施例でバスAFS制御機230は図5に示すようにマスターモジュールを区分せずにバス使用頻度を確認することができる。
【0053】
図5は本発明の他の実施例によるバスAFS制御機の構成を示している。
【0054】
図5に示すように前記バスAFS制御機230はチャネル確認部500、カウンター510、比較器(Comparator)520及び保存部530を含んで構成される。
【0055】
前記チャネル確認部500は前記マスターモジュール200−1、200−2、…、200−nがバスを使用しているかを確認する。すなわち、前記チャネル確認部500は前記マスターモジュール200−1、200−2、…、200−nの読み出しチャネルバスと書き込みチャネルバスの使用有無を確認する。例えば、前記チャネル確認部500は各々のマスターモジュール200−1、200−2、…、200−nから提供されたARVALID信号とAWVALID信号に対するOR演算540−1を行う。この後、前記チャネル確認部500は各々のマスターモジュール200−1、200−2、…、200−nに対するOR演算540−1、540−2、540−nの結果に対するOR演算550を行って前記マスターモジュール200−1、200−2、…、200−nがバスを使用しているかを確認する。以下の説明で前記各々のマスターモジュール200−1、200−2、…、200−nのOR演算540−1、540−2、540−nの結果に対するOR演算550をAVALID_ORと称する。
【0056】
この時、前記チャネル確認部500はいずれか一つのマスターモジュールでバスを要求する場合、「High」に設定されたAVALID_ORを前記カウンター510に伝送する。一方、前記チャネル確認部500はバスを使用するマスターモジュールが存在しない場合、「Low」に設定されたAVALID_ORを前記カウンター510に伝送する。
【0057】
前記カウンター510は前記チャネル確認部500から提供されたAVALID_ORによって駆動される。例えば、前記カウンター510は前記AVALID_ORが「High」の場合リセットされる。これにより、前記カウンター501は前記AVALID_ORが「High」の場合、前記比較器520にカウント値を伝送しない。一方、前記AVALID_ORが「Low」の場合、前記カウンター510はカウント値を前記比較器520に伝送する。
【0058】
前記比較器520は前記カウンター510から提供されたカウント値に応じて前記クロック発生器240で発生させるバスクロックの周波数を決定する。例えば、前記比較器520は前記保存部530からバスクロックの周波数を下げるための基準時間情報を獲得する。この後、前記比較器520は前記基準時間の間前記カウンター510から持続的にカウント値の提供を受けた場合、バスを使用するマスターモジュールが存在しないと認識する。これにより、前記比較器520はバスクロックの周波数を下げるように制御する。この時、前記カウンター510は前記比較器520の出力信号によってリセットされる。他の例として、前記比較器520は「High」であるAVALID_ORによって前記カウンター510がリセットされる場合、バスクロックの周波数を上げるように制御する。
【0059】
前記保存部530は前記比較器520でバスクロックを変更するための基準時間情報を保存する。
【0060】
上述した実施例で前記バスAFS制御機230は基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数を下げるように制御する。
【0061】
他の実施例で前記AFS制御機230は基準時間の間カウンター510のカウント値が発生した比率を考慮してバスクロックの周波数を決定することもできる。
【0062】
上述のように前記バスAFS制御機230が構成される場合、前記バスAFS制御機230は下記図6に示すようにバスクロックの周波数を制御する。
【0063】
図6は、本発明の他の実施例によるバスクロックの周波数を制御するための手順を示している。
【0064】
図6に示すように前記バスAFS制御機230は601ステップでカウンターを初期化する。例えば、前記バスAFS制御機230は前記図5で前記カウンター510を初期化する。
【0065】
この後、前記バスAFS制御機230は603ステップに進行してバスを使用するマスターモジュールが存在するかを確認する。例えば、前記バスAFS制御機230は少なくとも一つのマスターモジュールでARVALID信号又はAWVALID信号が発生しているかを確認する。
【0066】
前記603ステップでバスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230は605ステップに進行して基準時間に到達しているかを確認する。すなわち、前記バスAFS制御機230は前記601ステップで初期化したカウンターが前記基準時間の間持続的に駆動されるかを確認する。
【0067】
基準時間に到達していない場合、前記バスAFS制御機230は前記603ステップに進行してバスを使用するマスターモジュールが発生しているかを再度確認する。
【0068】
一方、基準時間に到達した場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が低いと認識する。これにより、前記バスAFS制御機230は607ステップに進行してバスクロックの周波数が最小化されるように制御する。
【0069】
前記603ステップでバスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が高いと認識する。これにより、前記バスAFS制御機230は609ステップに進行してバスクロックの周波数を上げることができるかを確認する。すなわち、前記バスAFS制御機230は現在使用中のバスクロックの周波数とデジタルシステムでサポート可能な最大周波数が同じであるかを確認する。図示していないが、前記バスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230は前記601ステップで初期化したカウンターをリセットする。
【0070】
バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が同じ場合、前記バスAFS制御機230は本アルゴリズムを終了する。この時、前記バスAFS制御機230はバスクロックの周波数を維持するように制御する。
【0071】
一方、バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が異なる場合、前記バスAFS制御機230は611ステップに進行してバスクロックの周波数が最大になるように制御する。
【0072】
この後、前記バスAFS制御機230は本アルゴリズムを終了する。
【0073】
上述した実施例でバスAFS制御機230はマスターモジュールのバス使用有無に応じてバスクロックの周波数を最大又は最小に変更するように制御する。
【0074】
他の実施例でバスAFS制御機230はマスターモジュールのバス使用有無に応じてバスクロックの周波数を段階的に変更するように制御することもできる。
【0075】
図7は本発明のさらに他の実施例によるバスクロックの周波数を制御するための手順を示している。
【0076】
図7に示すように前記バスAFS制御機230は701ステップでカウンターaを初期化する。例えば、前記バスAFS制御機230は前記図5で前記カウンター510を初期化する。
【0077】
この後、前記バスAFS制御機230は703ステップに進行してバスを使用するマスターモジュールが存在するかを確認する。例えば、前記バスAFS制御機230は少なくとも一つのマスターモジュールでARVALID信号又はAWVALID信号が発生するかを確認する。
【0078】
バスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が高いと認識する。これにより、前記バスAFS制御機230は705ステップに進行してバスクロックの周波数を上げることができるかを確認する。すなわち、前記バスAFS制御機230は現在使用中のバスクロックの周波数とデジタルシステムでサポート可能な最大周波数が同じであるかを確認する。図示していないが、前記バスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230は前記701ステップで初期化したカウンターをリセットする。
【0079】
バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が同じ場合、前記バスAFS制御機230は本アルゴリズムを終了する。この時、前記バスAFS制御機230はバスクロックの周波数を維持するように制御する。
【0080】
一方、バスクロックの周波数とデジタルシステムでサポート可能な最大周波数が異なる場合、前記バスAFS制御機230は707ステップに進行してバスクロックの周波数が最大になるように制御する。
【0081】
前記703ステップでバスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230は709ステップに進行して基準時間に到達しているかを確認する。すなわち、前記バスAFS制御機230は前記701ステップで初期化したカウンターが前記基準時間の間持続的に駆動されるかを確認する。
【0082】
基準時間が到達していない場合、前記バスAFS制御機230は前記703ステップに進行してバスを使用するマスターモジュールが発生するかを再度確認する。
【0083】
一方、基準時間に到達した場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が低いと認識する。これにより、前記バスAFS制御機230は711ステップに進行してバスクロックの周波数が一段階低くなるように制御する。
【0084】
この時、前記バスAFS制御機203は713ステップに進行してカウンターbを初期化する。ここで、前記カウンターbはバスクロックの周波数をさらに一段階下げるための第2基準時間を測定するために使用される。
【0085】
この後、前記バスAFS制御機230は715ステップに進行してバスを使用するマスターモジュールが存在するかを確認する。例えば、前記バスAFS制御機230は少なくとも一つのマスターモジュールでARVALID信号又はAWVALID信号が発生するかを確認する。
【0086】
バスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230は前記707ステップに進行してバスクロックの周波数が最大になるように制御する。
【0087】
一方、バスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230は717ステップに進行して第2基準時間に到達しているかを確認する。すなわち、前記バスAFS制御機230は前記713ステップで初期化したカウンターbが前記第2基準時間の間持続的に駆動されるかを確認する。
【0088】
第2基準時間に到達していない場合、前記バスAFS制御機230は前記715ステップに進行してバスを使用するマスターモジュールが発生するかを再度確認する。
【0089】
一方、第2基準時間に到達した場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が低いと認識する。これにより、前記バスAFS制御機230は719ステップに進行してバスクロックの周波数が最小化されるように制御する。
【0090】
この後、前記バスAFS制御機230は本アルゴリズムを終了する。
【0091】
上述のようにバスクロックの周波数を段階的に下げる場合、前記バスAFS制御機230は図8に示すようにバスクロックの周波数を制御できる。
【0092】
図8は、本発明の実施例によるデジタルシステムの周波数変更グラフを示している。
【0093】
図8に示すように第1基準時間Timeout1の間バスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230はA1時点800にバスクロックの周波数を一段階下げる。
【0094】
A2時点810にバスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230はバスクロックの周波数を最大まで上げる。
【0095】
前記A2時点810から第1基準時間の間バスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230はA3時点820にバスクロックの周波数を一段階下げる。ここで、前記第1基準時間は前記A2時点810からA3時点820までの時間区間と同じである。
【0096】
この後、A3時点820からA4時点830までバスを使用するマスターモジュールが存在しない場合、前記バスAFS制御機230はA4時点830でバスクロックの周波数が最小化されるように下げる。
【0097】
A5時点840にバスを使用するマスターモジュールが存在する場合、前記バスAFS制御機230はバスクロックの周波数を最大まで上げる。
【0098】
上述した実施例で前記バスAFS制御機230は二つのカウンターを用いて二段階でバスクロックの周波数を下げる。
【0099】
他の実施例で前記バスAFS制御機230は一つのカウンターを用いて基準時間の間カウンターがリセットされることなく駆動される場合、段階的にバスクロックの周波数を下げることもできる。
【0100】
図6及び図7のバスAFS制御機230は基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数を下げる。
【0101】
他の実施例でバスAFS制御機230は下記図9に示すように基準時間の間マスターモジュールのバス使用頻度に応じてバスクロックの周波数を下げることもできる。
【0102】
図9は本発明のさらに他の実施例によるバスクロック周波数を制御するための手順を示している。
【0103】
図9に示すように前記バスAFS制御機230は901ステップでカウンターを初期化する。例えば、前記バスAFS制御機230は前記図5で前記カウンター510を初期化する。
【0104】
カウンターを初期化した後、前記バスAFS制御機230は903ステップに進行してマスターモジュールのバス使用有無を確認する。例えば、前記バスAFS制御機230はマスターモジュールでARVALID信号又はAWVALID信号が発生する場合、前記マスターモジュールがバスを使用していると認識する。
【0105】
この後、前記バスAFS制御機230は905ステップに進行して基準時間に到達しているかを確認する。
【0106】
基準時間が到達していない場合、前記バスAFS制御機230は前記903ステップに進行してマスターモジュールのバス使用有無を確認する。
【0107】
一方、基準時間に到達した場合、前記バスAFS制御機230は907ステップに進行して基準時間の間マスターモジュールがバスを使用したバス使用量を確認する。例えば、前記901ステップで初期化したカウンターはマスターモジュールがバスを使用しない場合にのみカウントされる。これにより、前記バスAFS制御機230は基準時間の間前記カウンターのカウント値を考慮して基準時間の間マスターモジュールのバス使用量を確認する。
【0108】
この後、前記バスAFS制御機230は909ステップに進行して前記907ステップで確認したマスターモジュールのバス使用量を考慮してバスクロックの周波数を下げるかを確認する。例えば、前記バスAFS制御機230は前記907ステップで確認したバス使用量と基準値1を比較する。ここで、前記基準値1はバスクロックの周波数を下げるための低い基準値を表す。
【0109】
前記マスターモジュールのバス使用量が前記基準値1より小さいか同じ場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が低いと認識する。これにより、前記バスAFS制御機230は911ステップに進行してバスクロックの周波数を下げる。例えば、前記バスAFS制御機230はバスクロックの周波数が最小化されるように制御する。他の例として、前記バスAFS制御機230は予め決められたバスクロック変更周波数ステップによってバスクロックの周波数を一段階下げるように制御する。
【0110】
一方、前記マスターモジュールのバス使用量が前記基準値1より高い場合、前記バスAFS制御機230は913ステップに進行して前記確認したマスターモジュールのバス使用量を考慮してバスクロックの周波数を上げるか否かを確認する。例えば、前記バスAFS制御機230は前記マスターモジュールのバス使用量と基準値2を比較する。ここで、前記基準値2はバスクロックの周波数を上げるための高い基準値を表す。
【0111】
前記マスターモジュールのバス使用量が前記基準値2より小さい場合、前記バスAFS制御機230は現在使用中のバスクロックがマスターモジュールのバス使用頻度に適したものであると認識する。これにより、前記バスAFS制御機230は915ステップに進行してバスクロックの周波数を維持するように制御する。
【0112】
一方、前記マスターモジュールのバス使用量が前記基準値2より大きいか同じ場合、前記バスAFS制御機230はマスターモジュールのバス使用頻度が高いと認識する。これにより、前記バスAFS制御機230は917ステップに進行してバスクロックの周波数を上げることができるかを確認する。すなわち、前記バスAFS制御機230は現在使用するバスクロックの周波数とデジタルシステムがサポート可能な最大周波数が同じであるかを確認する。
【0113】
バスクロックの周波数とデジタルシステムがサポート可能な最大周波数が同じ場合、前記バスAFS制御機230は前記915ステップに進行してバスクロックの周波数を維持するように制御する。
【0114】
一方、バスクロックの周波数とデジタルシステムがサポート可能な最大周波数が異なる場合、前記バスAFS制御機230は919ステップに進行してバスクロックの周波数を上げる。例えば、前記バスAFS制御機230はバスクロックの周波数が最大になるように制御する。
【0115】
この後、前記バスAFS制御機230は本アルゴリズムを終了する。
【0116】
上述のようにオン−チップバス(On−Chip Bus)の使用頻度を考慮してデジタルシステムのバスクロックの周波数を変更することによって、バスクロックを使用するモジュールの電力消耗を低減することができる利点がある。
【0117】
一方、本発明の詳細な説明では具体的な実施例について説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能である。したがって、本発明の範囲は説明された実施例に局限して決めるべきではなく、後述する特許請求の範囲のみならず以下の特許請求の範囲と均等なものによって決められるべきである。
【符号の説明】
【0118】
200−1、200−2、…、200−n マスターモジュール
210−1、210−2、…、210−m スレーブモジュール
220 バス
230 バスAFS制御機
240 クロック発生器

【特許請求の範囲】
【請求項1】
動的バスクロックを制御するための方法において、
少なくとも一つのマスターモジュールに対する動作情報を確認する過程と、
前記少なくとも一つのマスターモジュールに対する動作情報の合計を算出する過程と、
前記少なくとも一つのマスターモジュールに対する動作情報の合計を考慮してバスクロックの周波数を決定する過程と、を含むことを特徴とする方法。
【請求項2】
前記動作情報を確認する過程は、
各々のマスターモジュールで読み出しチャネルバスと書き込みチャネルバスのうち少なくとも一つのバスを使用するための信号が発生するかを確認する過程を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記バスクロックの周波数を決定する過程は、
前記少なくとも一つのマスターモジュールに対する動作情報の合計が低い基準値より小さい場合、前記バスクロックの周波数を下げる過程と、
前記少なくとも一つのマスターモジュールに対する動作情報の合計が高い基準値より大きい場合、前記バスクロックの周波数を上げる過程と、
前記少なくとも一つのマスターモジュールに対する動作情報の合計が前記低い基準値より大きく、前記高い基準値より小さい場合、前記バスクロックの周波数を変更しない過程と、を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記少なくとも一つのマスターモジュールに対する動作情報を確認した後、各々のマスターモジュールの動作情報に加重値を適用する過程をさらに含み、
前記動作情報の合計を算出する過程は、
加重値が適用された各々のマスターモジュールに対する動作情報の合計を算出する過程を含むことを特徴とする請求項1に記載の方法。
【請求項5】
動的バスクロックを制御するための方法において、
バスを使用するマスターモジュールが存在するかを確認する過程と、
基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数を下げる過程と、
基準時間内にバスを使用する少なくとも一つのマスターモジュールが存在する場合、バスクロックの周波数を上げる過程と、を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記動作情報を確認する過程は、
各々のマスターモジュールで読み出しチャネルバスと書き込みチャネルバスのうち少なくとも一つのバスを使用するための信号が発生するかを確認する過程を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記バスクロックの周波数を下げる過程は、
基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数をシステムでサポート可能な最小周波数に変更する過程を含むことを特徴とする請求項5に記載の方法。
【請求項8】
前記バスクロックの周波数を下げる過程は、
基準時間の間バスを使用するマスターモジュールが存在しない場合、既設定された少なくとも一つのバスクロックの周波数調節ステップによってバスクロックの周波数を一段階下げる過程を含むことを特徴とする請求項5に記載の方法。
【請求項9】
前記バスクロックの周波数を一段階下げた後、第2基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数をシステムでサポート可能な最小周波数に変更する過程をさらに含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記バスクロックの周波数を上げる過程は、
基準時間内にバスを使用する少なくとも一つのマスターモジュールが存在する場合、バスクロックの周波数をシステムがサポート可能な最大周波数に変更する過程を含むことを特徴とする請求項5に記載の方法。
【請求項11】
動的バスクロックを制御するための装置において、
少なくとも一つのマスターモジュールと、
少なくとも一つのスレーブモジュールと、
前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュールが送受信するデータを媒介するバスと、
前記少なくとも一つのマスターモジュールの動作情報を考慮してバスクロックの周波数を決定するバス周波数制御機と、
前記バス周波数制御機で決定した周波数を発生させて生成したクロックを前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュール及び前記バスに提供するクロック発生器と、を含んで構成されることを特徴とする装置。
【請求項12】
前記バス周波数制御機は、
各々のマスターモジュールに対する動作情報を確認する少なくとも一つのチャネル確認部と、
前記少なくとも一つのマスターモジュールの動作情報に対する合計を算出する加算器と、
前記少なくとも一つのマスターモジュールの動作情報に対する合計と少なくとも一つの基準値を比較してバスクロックの周波数を決定する比較器と、を含んで構成されることを特徴とする請求項11に記載の装置。
【請求項13】
前記チャネル確認部は、各々のマスターモジュールで読み出しチャネルバスと書き込みチャネルバスのうち少なくとも一つのバスを使用するための信号が発生するかを確認することを特徴とする請求項12に記載の装置。
【請求項14】
前記比較器は、前記少なくとも一つのマスターモジュールの動作情報に対する合計が低い基準値より小さい場合、前記バスクロックの周波数を下げ、
前記少なくとも一つのマスターモジュールの動作情報に対する合計が高い基準値より大きい場合、前記バスクロックの周波数を上げ、
前記少なくとも一つのマスターモジュールの動作情報に対する合計が前記低い基準値より大きく前記高い基準値より小さい場合、前記バスクロックの周波数を変更しないことを特徴とする請求項12に記載の装置。
【請求項15】
前記少なくとも一つのチャネル確認部で確認した各々のマスターモジュールの動作情報に加重値を適用する加重値制御部をさらに含み、
前記比較器は、前記加重値制御部で加重値が適用された各々のマスターモジュールの動作情報に対する合計を算出し、
前記比較器は、前記加重値が適用された各々のマスターモジュールの動作情報に対する合計と少なくとも一つの基準値を比較してバスクロックの周波数を決定する比較器を含んで構成されることを特徴とする請求項12に記載の装置。
【請求項16】
動的バスクロックを制御するための装置において、
少なくとも一つのマスターモジュールと、
少なくとも一つのスレーブモジュールと、
前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュールが送受信するデータを媒介するバスと、
前記バスを使用するマスターモジュールの存在有無を考慮してバスクロックの周波数を決定するバス周波数制御機と、
前記バス周波数制御機で決定した周波数を発生させて生成したクロックを前記少なくとも一つのマスターモジュールと前記少なくとも一つのスレーブモジュール及び前記バスに提供するクロック発生器と、を含んで構成されることを特徴とする装置。
【請求項17】
前記バス周波数制御機は、
バスを使用するマスターモジュールが存在するかを確認するチャネル確認部と、
基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数を下げ、基準時間内にバスを使用する少なくとも一つのマスターモジュールが存在する場合、バスクロックの周波数を上げる比較器と、を含んで構成されることを特徴とする請求項16に記載の装置。
【請求項18】
前記チャネル確認部は、各々のマスターモジュールで読み出しチャネルバスと書き込みチャネルバスのうち少なくとも一つのバスを使用するための信号が発生するかを確認することを特徴とする請求項17に記載の装置。
【請求項19】
前記比較器は、基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数をシステムでサポート可能な最小周波数に変更することを特徴とする請求項17に記載の装置。
【請求項20】
前記比較器は、基準時間の間バスを使用するマスターモジュールが存在しない場合、既設定された少なくとも一つのバスクロックの周波数調節ステップによってバスクロックの周波数を一段階下げることを特徴とする請求項17に記載の装置。
【請求項21】
前記比較器は、前記バスクロックの周波数を一段階下げた後、第2基準時間の間バスを使用するマスターモジュールが存在しない場合、バスクロックの周波数をシステムでサポート可能な最小周波数に変更することを特徴とする請求項20に記載の装置。
【請求項22】
前記比較器は、基準時間内にバスを使用するマスターモジュールが存在する場合、バスクロックの周波数をシステムでサポート可能な最大周波数に変更することを特徴とする請求項17に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−101372(P2011−101372A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2010−248817(P2010−248817)
【出願日】平成22年11月5日(2010.11.5)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】416,Maetan−dong,Yeongtong−gu,Suwon−si,Gyeonggi−do,Republic of Korea
【Fターム(参考)】