【手続補正書】
【提出日】平成19年3月2日(2007.3.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムであって、
前記プロセッサシステムは、
前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、
前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する電力供給部と、
前記各プロセッサユニットに供給する動作クロックと動作電圧を設定するシステム制御レジスタと、
を備え、
前記プロセッサユニットのうちのいずれか一つが、並列処理のスケジューリングに基づいて各プロセッサユニットに供給する動作クロックと動作電圧を前記システム制御レジスタに設定し、
前記システム制御レジスタは、当該マルチプロセッサシステムを構成する複数の機能部位単位毎に対応するビットフィールドを複数設定し、当該ビットフィールドに設定された値に応じて前記機能部位単位毎に動作周波数と動作電圧をそれぞれ設定することを特徴とするマルチプロセッサシステム。
【請求項２】
前記プロセッサユニットは、予め複数の領域に区分けされたメモリを有し、
前記システム制御レジスタは、前記機能部位と前記メモリの複数の領域毎に対応したビットフィールドを有し、当該ビットフィールドに設定された値に応じて前記メモリの領域毎に動作周波数と動作電圧をそれぞれ設定することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記ビットフィールドは、個別のアドレスを有し、
前記プロセッサユニットは当該アドレスを参照して値を設定することで、前記ビットフィールドに対応した前記機能部位または前記メモリの一領域の動作周波数と動作電圧を設定することを特徴とする請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記機能部位は、プロセッサユニット内のメモリと、複数のプロセッサユニットで共有する共有メモリと、各プロセッサユニットを接続するローカルバスと、を含み、これら機能部位の少なくとも一つについて、機能部位単位毎に動作周波数または動作電圧をそれぞれ変更することを特徴とする請求項１または請求項３に記載のマルチプロセッサシステム。
【請求項５】
前記プロセッサユニットのうちのいずれか一つが、並列処理の処理時間が最小となるスケジューリングに基づいて、各プロセッサユニットに供給する動作クロックと動作電圧を前記システム制御レジスタに設定することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項６】
前記プロセッサユニットのうちのいずれか一つが、並列処理の許容時間以前に処理が終了したプロセッサユニットの動作クロックと動作電圧を遮断することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項７】
前記システム制御レジスタは、当該マルチプロセッサシステムのアドレス領域でプロセッサユニット毎に一意のアドレスが設定され、前記各プロセッサユニットからアクセス可能に設定されたことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項８】
前記システム制御レジスタは、前記プロセッサユニット毎に配置されたことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項９】
前記プロセッサユニットはローカルバスを介して接続され、前記システム制御レジスタは、前記ローカルバスに接続された制御テーブルに配置されて、前記プロセッサユニット毎の設定値を格納することを特徴とする請求項１にマルチプロセッサシステム。
【請求項１０】
単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、
入力プログラムを読み込む処理と、
前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、
前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、
前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックの演算に必要なコスト情報を求める処理と、
前記コスト情報に基づいて前記入力プログラムの処理時間が最小となるように、前記単位ブロックを前記プロセッサユニットに割り当てるスケジューリングコードを生成する処理と、
前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、
を計算機に実行させることを特徴とするマルチグレイン並列化コンパイラ。
【請求項１１】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な演算サイクル時間をコスト情報として求めることを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１２】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な電力をコスト情報として求めることを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１３】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するためプロセッサユニットに与える動作電圧及び動作クロックを変化または遮断するための制御コードを生成する処理を含むことを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１４】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニット以外のプロセッサユニットについて、動作クロック及び動作電源の供給を遮断するための制御コードを生成することを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１５】
前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、
前記前記スケジューリングコードを生成する処理は、
前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを１つのグループとして前記単位ブロックを割り当てることを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１６】
前記実行コードを生成し、目的コードとして出力する処理は、
前記各プロセッサユニットの種類に応じたローカルコンパイラを用いて前記実行コードを生成することを特徴とする請求項１０に記載のマルチグレイン並列化コンパイラ。
【請求項１７】
前記マルチプロセッサシステムは、前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する供給する電力供給部と、前記クロック供給部及び電力供給部がプロセッサユニットに供給する動作クロックと動作電圧とを設定するシステム制御レジスタを有し、
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するため前記システム制御レジスタに設定する値を変更する制御コードを生成する処理を含むことを特徴とする請求項１３に記載のマルチグレイン並列化コンパイラ。
【請求項１８】
単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、
入力プログラムを読み込む処理と、
前記入力プログラムの実行が完了すべき許容時間を設定する処理と、
前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、
前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、
前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックの演算に必要なコスト情報を求める処理と、
前記コスト情報に基づいて前記入力プログラムの処理時間が前記許容時間内となるように、前記単位ブロックを前記プロセッサユニットに割り当てるスケジューリングコードを生成する処理と、
前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、
を計算機に実行させることを特徴とするマルチグレイン並列化コンパイラ。
【請求項１９】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な演算サイクル時間をコスト情報として求めることを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２０】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な電力をコスト情報として求めることを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２１】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するためプロセッサユニットに与える動作電圧及び動作クロックを変化または遮断するための制御コードを生成する処理を含むことを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２２】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニット以外のプロセッサユニットについて、動作クロック及び動作電源の供給を遮断するための制御コードを生成することを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２３】
前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、
前記前記スケジューリングコードを生成する処理は、
前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを１つのグループとして前記単位ブロックを割り当てることを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２４】
前記実行コードを生成し、目的コードとして出力する処理は、
前記各プロセッサユニットの種類に応じたローカルコンパイラを用いて前記実行コードを生成することを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２５】
前記マルチプロセッサシステムは、前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する供給する電力供給部と、前記クロック供給部及び電力供給部がプロセッサユニットに供給する動作クロックと動作電圧とを設定するシステム制御レジスタを有し、
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するため前記システム制御レジスタに設定する値を変更する制御コードを生成する処理を含むことを特徴とする請求項１８に記載のマルチグレイン並列化コンパイラ。
【請求項２６】
単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムに実行させる目的プログラムを生成するコンパイラであって、
入力プログラムを読み込む処理と、
前記入力プログラムの実行が完了すべき許容時間を設定する処理と、
前記入力プログラムを解析し、前記入力プログラムを複数の粒度の単位ブロックに分割する処理と、
前記単位ブロック間の制御依存性、及びデータ依存性を解析し、前記単位ブロックの並列性を抽出する処理と、
前記マルチプロセッサシステムが具備する各プロセッサユニットで前記単位ブロックの演算に必要な電力コストを見積もる処理と、
前記入力プログラムの処理時間が前記許容時間内で、かつ前記電力コストが最小となるように、前記単位ブロックを前記プロセッサユニットに割り当てるスケジューリングコードを生成する処理と、
前記スケジューリングコードを入力プログラムに付加し、前記各プロセッサユニット毎の実行コードを生成し、目的コードとして出力する処理と、
を計算機に実行させることを特徴とするマルチグレイン並列化コンパイラ。
【請求項２７】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な演算サイクル時間をコスト情報として求めることを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項２８】
前記コスト情報を求める処理は、前記プロセッサユニットが前記単位ブロックを処理するために必要な電力をコスト情報として求めることを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項２９】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するためプロセッサユニットに与える動作電圧及び動作クロックを変化または遮断するための制御コードを生成する処理を含むことを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項３０】
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニット以外のプロセッサユニットについて、動作クロック及び動作電源の供給を遮断するための制御コードを生成することを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項３１】
前記プロセッサユニットは、特定用途プロセッサユニットと汎用プロセッサユニットとを含み、
前記前記スケジューリングコードを生成する処理は、
前記単位ブロックを処理するのに必要な前記特定用途プロセッサユニットを選択し、さらに少なくともひとつの汎用プロセッサユニットを選択し、これら特定用途プロセッサユニットと汎用プロセッサユニットを１つのグループとして前記単位ブロックを割り当てることを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項３２】
前記実行コードを生成し、目的コードとして出力する処理は、
前記各プロセッサユニットの種類に応じたローカルコンパイラを用いて前記実行コードを生成することを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【請求項３３】
前記マルチプロセッサシステムは、前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する供給する電力供給部と、前記クロック供給部及び電力供給部がプロセッサユニットに供給する動作クロックと動作電圧とを設定するシステム制御レジスタを有し、
前記スケジューリングコードを生成する処理は、
前記単位ブロックをスケジューリングによって割り当てられたプロセッサユニットで演算した際に、前記演算に必要とする時間が前記スケジューリングで許容された時間内であった場合は、
前記プロセッサユニットの演算に際して消費する電力を低減するため前記システム制御レジスタに設定する値を変更する制御コードを生成する処理を含むことを特徴とする請求項２６に記載のマルチグレイン並列化コンパイラ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明は、単一または複数種類のプロセッサユニットを複数個有するマルチプロセッサシステムであって、前記プロセッサシステムは、前記プロセッサユニットに複数のクロック周波数の内の一つを動作クロックとして供給するクロック供給部と、前記プロセッサユニットに複数の電圧の内の一つを動作電圧として供給する電力供給部と、前記各プロセッサユニットに供給する動作クロックと動作電圧を設定するシステム制御レジスタと、を備え、前記プロセッサユニットのうちのいずれか一つが、並列処理のスケジューリングに基づいて各プロセッサユニットに供給する動作クロックと動作電圧を前記システム制御レジスタに設定する。そして、前記システム制御レジスタは、当該マルチプロセッサシステムを構成する複数の機能部位単位毎に対応するビットフィールドを複数設定し、当該ビットフィールドに設定された値に応じて前記機能部位単位毎に動作周波数と動作電圧をそれぞれ設定する。