(57)【要約】【課題】  帯域幅調整装置及び方法を提供する。【解決手段】  プロセッサの動的な状況に応じて外部メモリに備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリの帯域幅を動的に調整する方法が開示される。一態様による帯域幅調整方法は、プロセッサの動的状況を示す動的状況情報を収集する段階及び動的状況情報に基づいてプロセッサの前記動的状況を判断し、動的状況に応じて複数の入出力端子の少なくとも一部を入出力端子ごとに活性化または非活性化させることで、複数の入出力端子を介する帯域幅を動的に調整する段階を含む。【選択図】      図１
2014219978.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの動的状況に対応する情報を収集する段階と、
前記収集された情報に基づいて前記プロセッサの前記動的状況を判断する段階と、
前記判断された動的状況に応じて前記複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、帯域幅を動的に調整する段階と、を含むことを特徴とする帯域幅調整方法。
【請求項２】
プロセッサの動的状況を判断する段階と、
前記動的状況に基づいて前記プロセッサとメモリとの間の帯域幅を電圧または周波数の変更なしに調整する段階と、を含むことを特徴とする帯域幅調整方法。
【請求項３】
前記帯域幅を動的に調整する段階は、前記動的状況に応じて前記帯域幅を拡張しなければならない場合に前記複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化する段階を含むことを特徴とする請求項１又は２に記載の帯域幅調整方法。
【請求項４】
前記帯域幅を動的に調整する段階は、前記動的状況に応じて前記帯域幅を縮小しなければならない場合に前記複数の入出力端子から活性化された入出力端子のうちの少なくとも１つを非活性化する段階を含むことを特徴とする請求項１乃至３のいずれか一項に記載の帯域幅調整方法。
【請求項５】
前記収集された情報は、キャッシュミス率であることを特徴とする請求項１に記載の帯域幅調整方法。
【請求項６】
前記動的状況は、前記プロセッサのキャッシュミス率に基づいて決定することを特徴とする請求項２に記載の帯域幅調整方法。
【請求項７】
前記帯域幅を動的に調整する段階は、前記キャッシュミス率と予め設定された閾値とを比較して、前記キャッシュミス率が前記閾値よりも高い場合、前記帯域幅を拡張すべきと判断し、前記収集されたキャッシュミス率が前記閾値よりも低い場合、前記帯域幅を縮小すべきと判断する段階を含むことを特徴とする請求項５又は６に記載の帯域幅調整方法。
【請求項８】
前記収集された情報は、前記プロセッサが処理するサイクル当たりの命令語の数であることを特徴とする請求項１に記載の帯域幅調整方法。
【請求項９】
前記動的状況は、前記プロセッサのキャッシュミス率に基づいて決定することを特徴とする請求項２に記載の帯域幅調整方法。
【請求項１０】
前記帯域幅を動的に調整する段階は、収集されたサイクル当たりの命令語と予め設定された閾値とを比較して、前記収集されたサイクル当たりの命令語数が前記閾値よりも低い場合、前記帯域幅を拡張すべきと判断し、前記収集されたサイクル当たりの命令語数が前記閾値よりも高い場合、前記帯域幅を縮小すべきと判断する段階を含むことを特徴とする請求項８又は９に記載の帯域幅調整方法。
【請求項１１】
前記帯域幅を動的に調整する段階の後に、前記プロセッサの前記動的状況と調整された帯域幅との間の関連性がない場合、前記調整された帯域幅をデフォルト帯域幅に復帰する段階をさらに含むことを特徴とする請求項１又は２に記載の帯域幅調整方法。
【請求項１２】
前記デフォルト帯域幅に復帰する段階は、帯域幅が調整された後の収集されたプロセッサの動的状況に対応する情報に基づいて、前記動的状況の関連性の有無を判断することを特徴とする請求項１１に記載の帯域幅調整方法。
【請求項１３】
前記帯域幅を動的に調整する段階の後に、前記帯域幅が最大帯域幅に調整され、その調整により前記動的状況が改善されなければ、前記調整された帯域幅をデフォルト帯域幅に復帰する段階をさらに含むことを特徴とする請求項１又は２に記載の帯域幅調整方法。
【請求項１４】
プロセッサの動的状況に対応する情報を収集する情報収集部と、
前記収集された情報に基づいて前記プロセッサの前記動的状況を判断し、前記動的状況に応じて前記複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、帯域幅を動的に調整するポート開閉部と、を含むことを特徴とする帯域幅調整装置。
【請求項１５】
前記ポート開閉部は、前記動的状況に応じて前記帯域幅を拡張しなければならない場合に前記複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化し、前記動的状況に応じて前記帯域幅を縮小しなければならない場合に前記複数の入出力端子から活性化された入出力端子のうちの少なくとも１つを非活性化することを特徴とする請求項１４に記載の帯域幅調整装置。
【請求項１６】
前記収集された情報は、キャッシュミス率であることを特徴とする請求項１４に記載の帯域幅調整装置。
【請求項１７】
前記ポート開閉部は、収集されたキャッシュミス率と予め設定された閾値とを比較して、前記キャッシュミス率が前記閾値よりも高い場合、前記帯域幅を拡張すべきと判断し、前記収集されたキャッシュミス率が前記閾値よりも低い場合、前記帯域幅を縮小すべきと判断することを特徴とする請求項１６に記載の帯域幅調整装置。
【請求項１８】
前記収集された情報は、前記プロセッサが処理するサイクル当たりの命令語の数であることを特徴とする請求項１４又は１５に記載の帯域幅調整装置。
【請求項１９】
前記ポート開閉部は、収集されたサイクル当たりの命令語の数と予め設定された閾値とを比較して、前記収集されたサイクル当たりの命令語数が前記閾値よりも低い場合、前記帯域幅を拡張すべきと判断し、前記収集されたサイクル当たりの命令語数が前記閾値よりも高い場合には前記帯域幅を縮小すべきと判断することを特徴とする請求項１８に記載の帯域幅調整装置。
【請求項２０】
前記帯域幅を動的に調整した後、前記プロセッサの前記動的状況と調整された帯域幅との間の関連性がない場合、前記調整された帯域幅をデフォルト帯域幅に復帰する帯域幅復帰部をさらに含むことを特徴とする請求項１４乃至１９のいずれか一項に記載の帯域幅調整装置。
【請求項２１】
前記帯域幅復帰部は、
前記帯域幅が最大帯域幅に調整され、その調整により前記動的状況が改善されなければ、前記調整された帯域幅をデフォルト帯域幅に復帰することを特徴とする請求項２０に記載の帯域幅調整装置。
【請求項２２】
複数の入出力端子のうちの少なくとも１つの端子を活性化または非活性化させることで、プロセッサとメモリとの間の帯域幅を動的に調整するポート開閉部を含むことを特徴とする帯域幅調整装置。
【請求項２３】
プロセッサの性能を判断するために用いる情報を収集する情報収集部をさらに含むことを特徴とする請求項２２に記載の帯域幅調整装置。
【請求項２４】
プロセッサの性能が前記ポート開閉部によって調整された帯域幅と関連性がなければ、前記調整された帯域幅をデフォルト帯域幅に復帰する帯域幅復帰部をさらに含むことを特徴とする請求項２２又は２３に記載の帯域幅調整装置。
【請求項２５】
プロセッサ及びメモリをさらに含み、前記メモリはオフチップメモリであることを特徴とする請求項２２乃至２４のいずれか一項に記載の帯域幅調整装置。
【請求項２６】
前記情報収集部は、
キャッシュミス率及びプロセッサによって処理されたサイクル当たりの命令語数のうちの少なくとも１つをプロセッサの性能を判断するために用いる情報として収集することを特徴とする請求項２３に記載の帯域幅調整装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帯域幅調整装置及び方法に関し、特に、プロセッサの動的な状況に応じて外部メモリに備えられた複数の入出力（Ｉ／Ｏ）端子のうちの１つ以上をそれぞれ活性化または非活性化させることで、外部メモリの帯域幅を調整するコンピュータ装置、コンピュータ装置の帯域幅調整方法及び帯域幅調整装置に関する。
【背景技術】
【０００２】
コンピュータ装置は、１つ以上のプロセッサと、データが検索されたり、プロセッサからデータが伝送されたりする１つ以上の外部メモリとを含むことができる。大量データ処理に必要なアプリケーションを実行するためには、プロセッサに外部メモリが追加として必要とされる。例えば、イメージ処理、オーディオ処理、３次元（３Ｄ）グラフィックスの処理を含むアプリケーションの実行は、オフチップ（ｏｆｆ−ｃｈｉｐ）メモリのような外部メモリにデータ伝送または外部メモリからデータ受信を必要とする。
【０００３】
しかしながら、オフチップメモリ帯域幅の性能は、多様な要因により制限されている。提供されたオフチップメモリ帯域幅がアプリケーションにより必要なデータ伝送率を持続することができなければ、プロセッサの性能は利用可能帯域幅により減少される。また、そのようなコンピュータ装置に使用される外部メモリの帯域幅の増加は、入出力メモリパワーの増加、コンピュータ装置によるパワー消耗の増加につながる。
【発明の概要】
【課題を解決するための手段】
【０００４】
一態様によれば、帯域幅調整方法は、プロセッサの動的状況に対応する情報を収集する段階と、収集された情報に基づいてプロセッサの動的状況を判断する段階と、判断された動的状況に応じて複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、帯域幅を動的に調整する段階とを含むことができる。
【図面の簡単な説明】
【０００５】
【図１】プロセッサ、外部メモリ及び帯域幅調整装置を含むコンピュータ装置を例示する図である。
【図２】コンピュータ装置の帯域幅調整方法を例示するフローチャートである。
【図３Ａ】図２の帯域幅調整方法の帯域幅調整段階の一例をより詳細に示したフローチャートである。
【図３Ｂ】図２の帯域幅調整方法の帯域幅調整段階の他の例をより詳細に示したフローチャートである。
【図３Ｃ】図２の帯域幅調整方法の帯域幅調整段階のさらに他の例をより詳細に示したフローチャートである。
【図３Ｄ】図２の帯域幅調整方法の帯域幅調整段階のさらに他の例をより詳細に示したフローチャートである。
【図４】コンピュータ装置の帯域幅調整方法を例示する他のフローチャートである。
【図５】帯域幅調整装置を例示する図である。
【図６】帯域幅調整装置を例示する他の図である。
【図７】帯域幅調整装置を含む装置の一実施形態を示す図である。
【発明を実施するための形態】
【０００６】
＜発明の概要＞
一態様によれば、帯域幅調整方法は、プロセッサの動的状況に対応する情報を収集する段階と、収集された情報に基づいてプロセッサの動的状況を判断する段階と、判断された動的状況に応じて複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、帯域幅を動的に調整する段階とを含むことができる。
【０００７】
幅を動的に調整する段階は、動的状況に応じて帯域幅を拡張しなければならない場合に複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化する段階を含むことができる。
【０００８】
帯域幅を動的に調整する段階は、動的状況に応じて帯域幅を縮小しなければならない場合に複数の入出力端子から活性化された入出力端子のうちの少なくとも１つを非活性化する段階を含むことができる。
【０００９】
このとき、収集された情報はキャッシュミス率とすることができる。帯域幅を動的に調整する段階は、収集されたキャッシュミス率と予め設定された閾値とを比較して、キャッシュミス率が閾値よりも高い場合、帯域幅を拡張すべきと判断する段階を含むことができる。
【００１０】
帯域幅を動的に調整する段階は、収集されたキャッシュミス率と予め設定された閾値とを比較して、収集されたキャッシュミス率が閾値よりも低い場合、帯域幅を縮小すべきと判断する段階を含むことができる。このとき、収集された情報はプロセッサが処理するサイクル当たりの命令語の数とすることができる。
【００１１】
帯域幅を動的に調整する段階は、収集されたサイクル当たりの命令語と予め設定された閾値とを比較して、収集されたサイクル当たりの命令語数が閾値よりも低い場合、帯域幅を拡張すべきと判断する段階を含むことができる。
【００１２】
帯域幅を動的に調整する段階は、収集されたサイクル当たりの命令語と予め設定された閾値とを比較して、収集されたサイクル当たりの命令語数が閾値よりも高い場合、帯域幅を縮小すべきと判断する段階を含むことができる。
【００１３】
帯域幅を動的に調整する段階の後に、プロセッサの動的状況と調整された帯域幅との間の関連性がない場合、調整された帯域幅をデフォルト帯域幅に復帰する段階をさらに含むことができる。
【００１４】
デフォルト帯域幅に復帰する段階は、帯域幅が調整された後の収集されたプロセッサの動的状況に対応する情報に基づいて、動的状況の関連性の有無を判断することができる。
【００１５】
帯域幅を動的に調整する段階の後に、前記帯域幅が最大帯域幅に調整され、その調整によって動的状況が改善されなければ、調整された帯域幅をデフォルト帯域幅に復帰する段階をさらに含むことができる。
【００１６】
一態様によれば、帯域幅調整装置は、プロセッサの動的状況に対応する情報を収集する情報収集部と、収集された情報に基づいてプロセッサの動的状況を判断し、動的状況に応じて複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、帯域幅を動的に調整するポート開閉部とを含むことができる。
【００１７】
ポート開閉部は、動的状況に応じて帯域幅を拡張しなければならない場合に複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化することができる。ポート開閉部は、動的状況に応じて帯域幅を縮小しなければならない場合に複数の入出力端子から活性化された入出力端子のうちの少なくとも１つを非活性化することができる。
【００１８】
このとき、収集された情報はキャッシュミス率とすることができる。ポート開閉部は、収集されたキャッシュミス率と予め設定された閾値とを比較して、キャッシュミス率が閾値よりも高い場合、帯域幅を拡張すべきと判断することができる。
【００１９】
ポート開閉部は、収集されたキャッシュミス率と予め設定された閾値とを比較して、収集されたキャッシュミス率が閾値よりも低い場合、帯域幅を縮小すべきと判断することができる。
【００２０】
収集された情報は、プロセッサが処理するサイクル当たりの命令語の数とすることができる。
【００２１】
ポート開閉部は、収集されたサイクル当たりの命令語と予め設定された閾値とを比較して、収集されたサイクル当たりの命令語数が閾値よりも低い場合、帯域幅を拡張すべきと判断することができる。
【００２２】
ポート開閉部は、収集されたサイクル当たりの命令語と予め設定された閾値とを比較して、収集されたサイクル当たりの命令語数が閾値よりも高い場合には帯域幅を縮小すべきと判断することができる。
【００２３】
帯域幅を動的に調整した後、プロセッサの動的状況と調整された帯域幅との間の関連性がない場合、調整された帯域幅をデフォルト帯域幅に復帰する帯域幅復帰部をさらに含むことができる。
【００２４】
帯域幅復帰部は、帯域幅が調整された後の収集されたプロセッサの動的状況に対応する情報に基づいて、動的状況の関連性の有無を判断することができる。帯域幅復帰部は、帯域幅が最大帯域幅に調整され、その調整により動的状況が改善されなければ、調整された帯域幅をデフォルト帯域幅に復帰することができる。
【００２５】
他の態様によれば、帯域幅調整方法は、プロセッサの動的状況を判断する段階と、動的状況に基づいてプロセッサとメモリとの間の帯域幅を、電圧または周波数の変更なしに調整する段階を含むことができる。
【００２６】
調整する段階は、動的状況に基づいて帯域幅を拡張する場合、複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化する段階を含むことができる。
【００２７】
調整する段階は、動的状況に基づいて帯域幅を縮小する場合、複数の入出力端子から活性化された入出力端子のうちの少なくとも１つを非活性化する段階を含むことができる。このとき、動的状況は、プロセッサのキャッシュミス率に基づいて決定することができる。動的状況は、プロセッサが処理するサイクル当たりの命令語の数に基づいて決定することができる。
【００２８】
帯域幅を調整する段階の後に、プロセッサの動的状況と調整された帯域幅との間の関連性がない場合、調整された帯域幅をデフォルト帯域幅に復帰する段階をさらに含むことができる。復帰する段階において、帯域幅が調整された後の動的状況に基づいて、関連性の有無を判断することができる。
【００２９】
他の態様によれば、帯域幅調整装置は、複数の入出力端子のうちの少なくとも１つの端子を活性化または非活性化させることで、プロセッサとメモリとの間の帯域幅を動的に調整するポート開閉部を含むことができる。
【００３０】
帯域幅調整装置は、プロセッサの性能を判断するために用いる情報を収集する情報収集部をさらに含むことができる。帯域幅調整装置は、プロセッサの性能がポート開閉部によって調整された帯域幅と関連性がなければ、調整された帯域幅をデフォルト帯域幅に復帰する帯域幅復帰部をさらに含むことができる。
【００３１】
帯域幅調整装置は、プロセッサ及びメモリをさらに含み、メモリはオフチップ（ｏｆｆ−ｃｈｉｐ）メモリとすることができる。
【００３２】
情報収集部は、キャッシュミス率及びプロセッサによって処理されたサイクル当たりの命令語の数のうちの少なくとも１つをプロセッサの性能を判断するために用いる情報として収集することができる。
【００３３】
＜発明の詳細＞
【００３４】
以下、添付図面を参照して実施のための例を詳細に説明する。
【００３５】
図１は、プロセッサ、外部メモリ及び帯域幅調整装置を含むコンピュータ装置を例示する図である。図１を参照すると、コンピュータ装置１００は、プロセッサ１０、外部メモリ３０、帯域幅調整装置５０を含む。一実施形態によるコンピュータ装置１００は、映像処理、音声処理及び３次元グラフィックスのように、大量のデータ処理を必要とする応用プログラムを行う装置とすることができる。例えば、コンピュータ装置１００はビデオ信号処理装置、音声信号処理装置または高速コンピュータの１つとすることができる。または、コンピュータ装置１００は、プロセッサ１０、外部メモリ３０及び帯域幅調整装置５０を含む単一チップシステム（ＳｏＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）として実現することができる。帯域幅調整装置５０は、外部メモリの帯域幅を調整するメモリ帯域幅調整装置とすることができる。
【００３６】
プロセッサ１０は、外部メモリ３０のアクセスを支援し、外部メモリ３０から伝送されたデータを処理することができる。プロセッサ１０は、映像処理、音声処理及び３次元グラフィックスのように大量のデータを処理するための演算処理装置とすることができる。例えば、プロセッサ１０は、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、グラフィック処理処置（ＧＰＵ：ｇｒａｐｈｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、デジタル信号処理処置（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）のいずれか１つとすることができる。このようなプロセッサ１０は、内部から発生する多様なイベントに関する情報を多様な方式で外部に提供することができる。例えば、プロセッサ１０は、特定イベント発生時点に特定レジスタの値を調節する方式でイベントに関する情報を外部に提供することができる。このようなプロセッサにより提供されたイベント情報はプロセッサ１０の動的な状況を示す動的状況情報として用いられる。
【００３７】
外部メモリ３０は、コンピュータ装置１００の運営及び動作に必要な多様なプログラム及びデータなどを保存するオフチップメモリとすることができる。外部メモリ３０は、プロセッサ１０とのデータ伝送のための複数の入出力端子を備えることができる。入出力端子は、データ伝送のために用いる入出力ポート、入出力ピンなどを意味する。このような外部メモリ３０は、入出力端子が活性化された状態でのみデータをプロセッサ１０に伝送することができる。一実施形態による外部メモリ３０は、プロセッサ１０を効果的に支援するために高い帯域幅を有する記憶装置とすることができる。例えば、外部メモリ３０は、３次元積層ＤＲＡＭ（３Ｄ  ｓｔａｃｋｉｎｇ  ＤＲＡＭ）とすることができる。
【００３８】
帯域幅調整装置５０は、プロセッサ１０の動的状況に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、プロセッサ電圧または周波数の調整なしに外部メモリ３０の帯域幅を動的に調整することができる。このような帯域幅調整装置５０については図５及び図６を参照して以下のように詳細に説明する。
【００３９】
このようなコンピュータ装置１００は、入出力端子レベルで外部メモリ３０の帯域幅を調整することで、帯域幅を微細に調節することができる。また、コンピュータ装置１００はプロセッサの動的な状況を考慮して外部メモリ３０の帯域幅を調整することで、応用プログラムの作業負荷に応じて要求される帯域幅に合わせて外部メモリ３０の帯域幅を動的に調整することができる。これにより、高い帯域幅を有する外部メモリ３０で消費する漏洩エネルギーを低減することができ、応用プログラム実行による電力消耗を減少させることができる。
【００４０】
図２は、コンピュータ装置の帯域幅調整方法を例示するフローチャートである。図２を参照すると、帯域幅調整方法は、動的状況情報収集段階２１０、帯域幅調整段階２３０を含む。
【００４１】
動的状況情報収集段階２１０は、プロセッサ１０の動作または状態を示したり、対応する情報を収集したりすることができる。プロセッサ１０の動作や状態はプロセッサの動的状況として参照される。例えば、動的状況情報は、プロセッサ１０から発生する特定イベントに関する情報、またはプロセッサ１０が処理する特定イベントに関する情報を含むことができる。特定イベントに関する情報はプロセッサ１０によって提供される。他の例として、動的状況情報はプロセッサ１０のキャッシュミス率に対する情報を含むことができる。さらに他の例として、動的状況情報はプロセッサ１０が処理するサイクル当たりの命令語数（ＩＰＣ：ｉｎｓｔｒｕｃｔｉｏｎｓ  ｐｅｒ  ｃｙｃｌｅ）に対する情報を含むことができる。さらに他の例として、動的状況情報はプロセッサ１０のバッファメモリアクセスに対する情報を含むことができる。
【００４２】
一実施形態による動的状況情報収集段階２１０は、プロセッサ１０の特定レジスタ値を読み出して動的状況情報を収集することができる。他の実施形態による動的状況情報収集段階２１０は、バイオス（ＢＩＯＳ：ｂａｓｉｃ  ｉｎｐｕｔ  ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）に予め実現された手段を介して動的状況情報を収集することができる。さらに他の実施形態による動的状況情報収集段階２１０は、別に備えた装置を介して動的状況情報を収集することができる。
【００４３】
帯域幅調整段階２３０は、収集された動的状況情報に基づいて外部メモリ３０に備えた複数の入出力端子のうちの少なくとも１つを活性化または非活性化させることで、外部メモリ３０の帯域幅を調整することができる。入出力端子を活性化させることは、入出力（Ｉ／Ｏ）端子をオンにする（連結する）ことを意味し、また、入出力端子を非活性化させることは、入出力端子をオフにする（開放）することを意味する。入出力端子は入出力（Ｉ／Ｏ）ポートまたは単にポートとも表現することができる。
【００４４】
図２の実施形態において、収集された動的状況情報を分析の結果、より広い帯域幅が必要であると判断することができる。この場合、複数の入出力端子から非活性化された入出力端子のうちの少なくとも１つを活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張されることができる。同様に、収集された動的状況情報を分析した結果、より狭い帯域幅であっても十分であると判断される。この場合、複数の入出力端子から活性化されている入出力端子のうちの少なくとも１つを非活性化させると、新たに非活性化された入出力端子に該当する分の帯域幅が縮小される。
【００４５】
帯域幅を調整するために周波数だけ、または電圧及び周波数を一緒に、変動させる技法も存在する。しかし、低電圧で駆動される回路の場合、電圧のスイング幅が狭い。よって、帯域幅調節範囲が小さく、帯域幅を微細調整することが困難である。よって、周波数だけまたは電圧及び周波数を変動させて帯域幅を調整する技法によれば、帯域幅を調整することができる段階の数が数個に限定されるのが一般的である。
【００４６】
一方、図２の実施形態では、複数の入出力端子をピン単位で開閉することで、帯域幅の拡張と縮小を微細に調節することができる特徴がある。例えば、複数の入出力端子を実現している現存する３Ｄ積層ＤＲＡＭの場合、最小帯域幅から最大帯域幅との間の帯域幅段階の数は数千個となる。さらに、図２の実施形態のように、複数の入出力端子をピン単位で開閉することで、帯域幅を調整する技法は、帯域幅を調整するために電圧を調整する技法に比べて簡単な論理回路を介して実現することができる。既に実現されている３−ステートピン（ｔｒｉ−ｓｔａｔｅ  ｐｉｎ）が利用できるからである。
【００４７】
図３Ａは、図２の帯域幅調整方法の帯域幅調整段階の一例を、より詳細に示したフローチャートである。図３Ａを参照すると、帯域幅調整段階２３０は、収集された動的状況情報に基づいてプロセッサ１０の動的性能の変化を判断することができる（２３１ａ）。そして、帯域幅調整段階２３０は、判断された結果に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリ３０の帯域幅を調整することができる（２３３ａ）。
【００４８】
段階２３１ａにおいて、収集された動的状況情報を分析した結果、プロセッサ１０の動的性能変化に応じてより広い帯域幅が必要とされると判断される。この場合、帯域幅調整段階２３３ａで複数の入出力端子から非活性化された入出力端子の少なくとも一部を活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張される。帯域幅拡張により入出力端子に発生するボトルネック現象が改善され、全般的な処理性能を向上させることができる。
【００４９】
同様に、段階２３１ａにおいて、収集された動的状況情報を分析した結果、プロセッサ１０の動的性能変化に応じてより狭い帯域幅であっても十分であると判断される。この場合、帯域幅調整段階２３３ａで複数の入出力端子から活性化された入出力端子の少なくとも一部を非活性化させると、新たに非活性化された入出力端子に該当する分の帯域幅が縮小される。帯域幅縮小によって入出力端子で消費される電力を節減することで、全般的な電力効率を向上させることができる。
【００５０】
図３Ｂは、図２の帯域幅調整方法の帯域幅調整段階の他の例をより詳細に示したフローチャートである。図３Ｂを参照すると、帯域幅調整段階２３０は収集されたキャッシュミス率と予め設定された閾値とを比較することで、外部メモリ３０によるデータ待機時間増加によるプロセッサ１０の動的性能の変化を判断することができる（２３１ｂ）。そして、帯域幅調整段階２３０は判断された結果に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリ３０の帯域幅を調整することができる（２３３ａ）。段階２３１ｂにおいて、収集されたキャッシュミス率と閾値とを比較した結果、プロセッサ１０の動的性能変化に応じてより広い帯域幅が必要であると判断することができる。この場合、帯域幅調整段階２３３ｂで複数の入出力端子から非活性化された入出力端子の少なくとも一部を活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張される。帯域幅拡張により入出力端子から発生するボトルネック現象を改善して全般的な処理性能を向上させることができる。
【００５１】
例えば、キャッシュミス率が閾値より高いと外部メモリ３０からのデータ待機時間が増加したことを意味する。データ待機時間が増加すると、プロセッサ１０の動的性能は低下する。よって、キャッシュミス率が閾値より高いとプロセッサ１０の動的性能が減少したものと判断し、非活性化されている入出力端子のうちの少なくとも一部を新たに活性化させることで、新たに活性化された入出力端子に該当する分の帯域幅を増加させることができる。
【００５２】
他の例として、帯域幅調整段階２３０は、最近連続的に収集された所定回数のキャッシュミス率と予め設定された閾値と比較することができる。例え、キャッシュミス率が閾値よりも高いと判断される回数が所定回数以上であれば、プロセッサ１０の動的性能が減少したと判断することができる。例えば、最近収集された５回のキャッシュミス率のうち３回以上が閾値よりも高い場合、プロセッサ１０の動的性能が減少したと判断することができる。複数のキャッシュミス率と閾値とを比較してプロセッサ１０の動的性能の変化を判断する場合、単一のキャッシュミス率と閾値とを比較するより、プロセッサ１０の動的性能の変化をより正確に判断することができる。
【００５３】
同様に、段階２３１ｂにおいて、収集されたキャッシュミス率と閾値とを比較した結果、プロセッサ１０の動的性能変化に応じてより狭い帯域幅であっても十分であると判断される。この場合、帯域幅調整段階２３３ｂにおいて複数の入出力端子から活性化された入出力端子の少なくとも一部を非活性化させると、新たに非活性化された入出力端子に該当する分の帯域幅が縮小される。帯域幅縮小により入出力端子で消費される電力を節減することで、全般的な電力効率を向上させることができる。
【００５４】
図３Ｃは、図２の帯域幅調整方法の帯域幅調整段階のさらに他の例をより詳細に示したフローチャートである。図３Ｃを参照すると、帯域幅調整段階２３０は、予め設定された基準によって所定区間のうち収集されたサイクル当たりの命令語に対する平均値を計算し、計算された平均値の変化を感知してプロセッサの並列的動作性能変化によるプロセッサ１０の動的性能の変化を判断することができる。そして、帯域幅調整段階２３０は、判断された結果に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリの帯域幅を動的に調整することができる（２３３ｃ）。
【００５５】
段階２３１ｃにおいて、収集されたサイクル当たりの命令語ＩＰＣが変化することによって、プロセッサ１０の動的性能が低下されて、より広い帯域幅が必要であると判断することができる。この場合、帯域幅調整段階２３３ｂにおいて複数の入出力端子から非活性化された入出力端子の少なくとも一部を活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張される。帯域幅拡張により入出力端子から発生するボトルネック現象を改善して全般的な処理性能を向上させることができる。
【００５６】
例えば、収集されたサイクル当たりの命令語に基づいて予め設定された基準に応じて所定区間のサイクル当たりの命令語に対する平均値を計算し、計算されたサイクル当たりの命令語の平均値の減少が感知されると、プロセッサ１０の動的性能が減少したと判断することができる（２３１ｃ）。例えば、最近収集された５回のサイクル当たりの命令語に対する平均値が、直前平均値よりも減少したらプロセッサ１０の動的性能が減少したと判断することができる。または、最近収集された５回のサイクル当たりの命令語に対する平均値が予め設定された基準ＩＰＣ値よりも小さくなる場合、プロセッサ１０の動的性能が減少したと判断することができる。プロセッサ１０の動的性能が減少されたと判断した場合、入出力端子の電源をもっと活性化させることで、外部メモリ３０の帯域幅を増加させることができる。帯域幅調整段階２３３ｃにおいて複数の入出力端子から非活性化された入出力端子の少なくとも一部を活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張される。帯域幅拡張により入出力端子から発生するボトルネック現象を改善して全般的な処理性能を向上させることができる。
【００５７】
同様に、段階２３１ｃにおいて、サイクル当たりの命令語の平均値が上昇したことで、プロセッサ１０の動的性能が向上したと判断することができる。これにより、プロセッサ１０の動的性能と電力消費のトレードオフを考慮して、より狭い帯域幅を用いることで十分であると判断される。この場合、帯域幅調整段階２３３ｃにおいて複数の入出力端子から活性化された入出力端子の少なくとも一部を非活性化することができる。新たに非活性化された入出力端子に該当する分の帯域幅が縮小される。帯域幅縮小により入出力端子で消費される電力を節減することで、全般的な電力効率を向上させることができる。
【００５８】
図３Ｄは、図２の帯域幅調整方法の帯域幅調整段階のさらに他の例をより詳細に示したフローチャートである。帯域幅調整段階２３０は、収集された２つ以上の動的状況情報に基づいてプロセッサ１０の動的性能変化を判断し、判断された結果に応じて外部メモリ３０の帯域幅を調整することができる。例えば、図３Ｄでは、キャッシュミス率及びサイクル当たりの命令語など２つの動的状況情報に基づいてプロセッサ１０の動的性能変化を判断する。
【００５９】
図３Ｄを参照すると、帯域幅調整段階２３０は、収集されたキャッシュミス率と予め設定された閾値とを比較することで、外部メモリ３０のデータ待機時間増加によるプロセッサ１０の動的性能の変化を判断することができる（２３１ｂｄ）。それと共に、段階２３１ｃｄにおいて、収集されたサイクル当たりの命令語ＩＰＣが変化することによって、プロセッサ１０の動的性能の変化を判断することができる。
【００６０】
段階２３２においては、段階２３１ｂｄ及び段階２３１ｃｄでの判断結果に基づいて、帯域幅を拡張すべきか、縮小すべきか、または帯域幅を調整しなくてよいかを判断する。
【００６１】
例えば、段階２３２において帯域幅を拡張すべきと判断した場合、帯域幅調整段階２３３ｄにおいて複数の入出力端子から非活性化された入出力端子のうちの１つ以上を活性化させると、新たに活性化された入出力端子に該当する分の帯域幅が拡張されることができる。帯域幅拡張により入出力端子から発生するボトルネック現象を改善して全般的な処理性能を向上させることができる。
【００６２】
同様に、段階２３２において帯域幅を縮小すべきと判断した場合、帯域幅調整段階２３３ｄにおいて複数の入出力端子から活性化された入出力端子の少なくとも一部を非活性化することができる。新たに非活性化された入出力端子に該当する分の帯域幅が縮小される。帯域幅縮小により入出力端子で消費される電力を節減することで、全般的な電力効率を向上させることができる。
【００６３】
また、段階２３２において、帯域幅を調整しないまま現在の帯域幅を維持すべきと判断した場合、帯域幅は拡張したり縮小したりせず、現在の帯域幅が維持される（２３４ｄ）。
【００６４】
図４は、コンピュータ装置の帯域幅調整方法を例示する他のフローチャートである。図４を参照すると、帯域幅調整方法は、動的状況情報収集段階２１０、帯域幅調整段階２３０、帯域幅デフォルト復帰段階２５０を含む。動的状況情報収集段階２１０及び帯域幅調整段階２３０は、図２及び図３Ａないし図３Ｄと同一内容であってそれを参照するものとし、以下では、帯域幅デフォルト復帰段階２５０について詳細に説明する。
【００６５】
帯域幅デフォルト復帰段階２５０は、収集された動的状況情報に基づいた外部メモリの帯域幅調整にもかかわらずプロセッサの動的性能の変化がない場合、外部メモリの帯域幅をデフォルト帯域幅に復帰することができる。言い換えれば、プロセッサ１０の動的性能の変化が帯域幅と関係ないと判断された場合、外部メモリ３０の帯域幅をデフォルト帯域幅に復帰する。例えば、収集されたキャッシュミス率に基づいた帯域幅調整で帯域幅が最大帯域幅に達したにもかかわらず、その後に収集されたキャッシュミス率が閾値よりもずっと高い状態に維持することができる。この場合、帯域幅デフォルト復帰段階２５０において収集されたキャッシュミス率に基づいて判断されたプロセッサの動的性能の変化が帯域幅と関係ないものと判断して外部メモリ３０の帯域幅をデフォルト帯域幅に復帰することができる。プロセッサの動的性能の変化と関係なく拡張された帯域幅をデフォルト帯域幅に復帰することで、拡張された帯域幅により発生した消費電力を節減することができる。その結果、全般的な電力効率が向上される。
【００６６】
他の例として、収集されたサイクル当たりの命令語に基づいた外部メモリ３０の帯域幅調整で帯域幅が最大帯域幅に達したにもかかわらず、その後に計算されたサイクル当たりの命令語の平均値がずっと減少される。この場合、収集されたサイクル当たりの命令語に基づいて判断されたプロセッサの動的性能の変化が帯域幅と関係ないものと判断して外部メモリ３０の帯域幅をデフォルト帯域幅に復帰することができる。
【００６７】
一方、一実施形態による帯域幅調整方法は、コンピュータで読み出すことのできる記録媒体にコンピュータが読み出せるコードに実現することができる。コンピュータが読み出すことができる記録媒体は、コンピュータシステムにて読み出せるデータが保存されるすべての種類の記録装置を含む。
【００６８】
図５は、帯域幅調整装置を例示する図である。図５を参照すると、帯域幅調整装置５０は、動的状況情報収集部５１、ポート開閉部５３を含む。
【００６９】
動的状況情報収集部５１は、プロセッサ１０の動的状況を示す少なくとも１つの動的状況情報を収集する。この場合、動的状況情報収集部５１は、バイアスや運営体制に予め実現された手段とすることができるが、動的状況情報の収集のために別に実現された装置とすることができる。例えば、動的状況情報はプロセッサ１０によって提供されるプロセッサの特定イベントに関する情報とすることができる。他の例として、動的状況情報はキャッシュミス率またはサイクル当たりの命令語のうちの少なくとも１つとすることができる。
【００７０】
ポート開閉部５３は、収集された動的状況情報に基づいて外部メモリ３０に備えた複数の入出力端子のうちの少なくとも一部を活性化または非活性化させることで、外部メモリ３０の帯域幅を調整することができる。活性化または非活性化は入出力端子ごとにそれぞれ実行することができる。例えば、ポート開閉部５３は、メモリインターフェース上で入出力端子を開放（ｓｗｉｔｃｈ  ｏｆｆ）することで、その入出力端子を非活性化させることができる。また、入出力端子を接続（ｓｗｉｔｃｈ  ｏｎ）することで、その入出力端子を活性化させることができる。
【００７１】
一実施形態によるポート開閉部５３は、収集されたキャッシュミス率と予め設定された閾値とを比較することで、プロセッサ１０の動的性能の変化を判断することができる。例えば、キャッシュミス率が高い場合、データ待機時間が増加することになるので、プロセッサ１０の動的性能が低下されたと判断することができる。同様に、キャッシュミス率が低い場合、データ待機時間が短くなるので、プロセッサ１０の動的性能が向上したと判断することができる。ポート開閉部５３は、判断された結果に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリ３０の帯域幅を調整することができる。
【００７２】
他の実施形態によるポート開閉部５３は、サイクル当たりの命令語の平均値に基づいて予めプロセッサ１０の動的性能の変化を判断することができる。例えば、設定された基準によって所定区間のうち収集されたサイクル当たりの命令語に対する平均値を計算し、計算された平均値の変化を感知することができる。そして、ポート開閉部５３は、判断された結果に応じて外部メモリ３０に備えた複数の入出力端子をそれぞれ活性化または非活性化させることで、外部メモリの帯域幅を動的に調整することができる。
【００７３】
さらに他の実施形態によるポート開閉部５３は、収集された２つ以上の動的状況情報キャッシュミス率、サイクル当たりの命令語などに基づいてプロセッサ１０の動的性能変化を判断し、判断された結果に応じて外部メモリ３０の帯域幅を調整することができる。
【００７４】
このような帯域幅調整装置５０は、入出力端子のレベルで外部メモリ３０の帯域幅を調整することで、帯域幅を微細に調節することができる。また、帯域幅調整装置５０は、プロセッサの動的な状況を考慮して外部メモリ３０の帯域幅を調整することで、応用プログラムの作業負荷に応じて要求される帯域幅に合わせて外部メモリ３０の帯域幅を動的に調整することができる。これをより、高い帯域幅を有する外部メモリ３０で消費する漏洩エネルギーを低減することができ、応用プログラム実行による電力消耗を減少させることができる。
【００７５】
図６は、帯域幅調整装置を例示する他の図である。図６を参照すると、帯域幅調整装置５０は、動的状況情報収集部５１、ポート開閉部５３、帯域幅デフォルト復帰部５５を含む。動的状況情報収集部５１及びメモリポート開閉部５３は、と同一内容であってそれを参照するものとし、以下では、帯域幅デフォルト復帰部５５について詳細に説明する。
【００７６】
帯域幅デフォルト復帰部５５は、収集された動的状況情報に基づいた外部メモリの帯域幅調整にもかかわらず、プロセッサの動的性能の変化がない場合、外部メモリの帯域幅をデフォルト帯域幅に復帰することができる。言い換えれば、帯域幅デフォルト復帰部５５は収集された動的状況情報に基づいて判断されたプロセッサ１０の動的性能の変化が帯域幅と関係ないと判断された場合、外部メモリ３０の帯域幅をデフォルト帯域幅に復帰する。
【００７７】
例えば、帯域幅デフォルト復帰部５５は、収集されたキャッシュミス率に基づいた帯域幅調整で帯域幅が最大帯域幅に達したにもかかわらず、その後に収集されたキャッシュミス率が閾値よりもずっと高い場合、収集されたキャッシュミス率に基づいて判断されたプロセッサの動的性能の変化が帯域幅と関係ないものと判断して外部メモリ３０の帯域幅をデフォルト帯域幅に復帰することができる。
【００７８】
他の例として、帯域幅デフォルト復帰部５５は、収集されたサイクル当たりの命令語に基づいた外部メモリ３０の帯域幅調整で帯域幅が最大帯域幅に達したにもかかわらず、その後に計算されたサイクル当たりの命令語の平均値がずっと減少する場合、収集されたサイクル当たりの命令語に基づいて判断されたプロセッサの動的性能の変化が帯域幅と関係ないものと判断して外部メモリ３０の帯域幅をデフォルト帯域幅に復帰することができる。
【００７９】
帯域幅デフォルト復帰部５５は、ポート開閉部５３を介して帯域幅をデフォルト帯域幅に復帰することができる。
【００８０】
図７は、帯域幅調整装置を含む装置の一実施形態を示す図である。
【００８１】
帯域幅調整装置はコンピュータ装置の一部とすることができる。本実施形態において、この装置は、プロセッサ７２０と外部メモリ７３０を含むシステムオンチップ７１０を含むことができる。外部メモリ７３０とプロセッサ７２０とは入出力端子を介してデータを交換することができる。帯域幅を調整するための演算はプロセッサ７２０と係わる動的状況情報を収集し、キャッシュミス率またはそのプロセッサ７２０によって処理されたサイクル当たりの命令語の平均値を予め設定された閾値と比較することを含むことができる。しかし、開示された実施形態による帯域幅調整装置の実現は、図７に示す内容に制限されない。一方、図７に示す実施形態は、システムオンチップを含むことができ、他の実施形態によれば、帯域幅調整装置は、パッケージ、印刷回路基板または他の開示された技術に含まれたシステムに実現される。
【００８２】
一方、本実施形態は、コンピュータで読み出すことのできる記録媒体に、コンピュータが読み出せるコードに実現することができる。コンピュータが読み出すことができる記録媒体は、コンピュータシステムにて読み出すことができるデータが保存されたすべての種類の記録装置を含む。
【００８３】
コンピュータが読み出すことのできる記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、また搬送波（例えば、インターネットを介する伝送）の形態で実現することを含む。また、コンピュータが読み出すことのできる記録媒体は、ネットワークに接続されたコンピュータシステムに分散され、分散方式でコンピュータが読み出しすることができるコードが保存されて実行される。そして、本実施形態を実現するための機能的なプログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論することができる。
【００８４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００８５】
１０    プロセッサ
３０    外部メモリ
５０    帯域幅調整装置
５１    動的状況情報収集部
５３    ポート開閉部
５５    帯域幅復帰部
７１０  システムオンチップ
７２０  プロセッサ
７３０  外部メモリ
１００  コンピュータ装置
【図１】
2014219978.tif 000003
【図２】
2014219978.tif 000004
【図３Ａ】
2014219978.tif 000005
【図３Ｂ】
2014219978.tif 000006
【図３Ｃ】
2014219978.tif 000007
【図３Ｄ】
2014219978.tif 000008
【図４】
2014219978.tif 000009
【図５】
2014219978.tif 000010
【図６】
2014219978.tif 000011
【図７】
2014219978.tif 000012