(57)【要約】  プロセッサ合成装置は、複数の命令のそれぞれが実行される際に、複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、当該複数の命令を含む命令セットを定義する命令セット情報（１０１）に基づいて、プロセッサモデル情報（１０２）で定義された、当該複数の演算器を含む回路構成に挿入する。プロセッサ合成装置は、停止回路を挿入した回路構成を定義するＲＴＬ記述であるプロセッサ合成情報（１２１）を生成する。
2017119123.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する取得部と、
前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する生成部と
を備えるプロセッサ合成装置。
【請求項２】
前記命令セット情報には、前記複数の命令のそれぞれで使用される演算器を示す情報が含まれ、
前記生成部は、前記命令セット情報から、前記複数の演算器のうち、前記複数の命令の少なくともいずれかで使用されない演算器を特定し、前記プロセッサモデル情報の回路構成にて、特定した演算器に前記停止回路を接続する請求項１に記載のプロセッサ合成装置。
【請求項３】
前記生成部は、前記複数の命令のそれぞれが実行される際に、実行される命令を検出し、検出結果を出力する検出回路と、前記検出回路からの検出結果に応じて、前記複数の演算器のうち、前記停止回路に停止させる演算器を選択する選択回路とを、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成にさらに挿入し、前記停止回路と前記検出回路と前記選択回路とを挿入した回路構成を定義する情報を前記プロセッサ合成情報として生成する請求項１又は２に記載のプロセッサ合成装置。
【請求項４】
前記命令セット情報の命令セットには、前記複数の命令に１対１で対応する複数の停止命令が含まれ、
前記複数の停止命令のそれぞれは、前記複数の演算器のうち、対応する命令で使用されない演算器を前記停止回路によって停止する命令である請求項１又は２に記載のプロセッサ合成装置。
【請求項５】
前記停止回路は、クロック又は電源を遮断することで、前記停止回路に接続された演算器を停止する回路であり、
前記取得部は、前記複数の演算器のそれぞれがクロック又は電源の遮断解除後に動作可能となるまでの時間を定義するプロセス情報をさらに取得し、
前記生成部は、前記取得部により取得されたプロセス情報に基づいて、前記プロセッサ合成情報の回路構成で、前記停止回路がクロック又は電源の遮断を開始してから解除するまでの時間を調整する請求項１から４のいずれか１項に記載のプロセッサ合成装置。
【請求項６】
取得部が、複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得し、
生成部が、前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成するプロセッサ合成方法。
【請求項７】
コンピュータに、
複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する処理と、
前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記命令セット情報に基づいて、前記プロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する処理と
を実行させるプロセッサ合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラムに関するものである。
【背景技術】
【０００２】
複雑化するプロセッサの開発を効率化する技術として、専用言語を用いてプロセッサのパイプライン構造及び命令セットを定義し、ＲＴＬ（Ｒｅｇｉｓｔｅｒ・Ｔｒａｎｓｆｅｒ・Ｌｅｖｅｌ）記述を出力するプロセッサ合成技術がある。ＲＴＬ記述とは、Ｖｅｒｉｌｏｇ、ＶＨＤＬといったハードウェア記述言語を用いてレジスタ間のデータ転送と論理演算との組み合わせで回路動作を表現する記述のことである。【０００３】
専用命令が増えることにより、専用命令を実現する演算器等の回路リソースが増加する。命令が実行されていないときでも、その命令で使用される演算器にはクロック及び電源が供給されるため、電力が消費されてしまう。そのため、専用命令の増加に伴い、消費電力も増加してしまう。【０００４】
低消費電力回路を設計する従来の手法として、回路内の条件判定部と非競合のデータフロー部とマルチプレクサ部との関連性に着目し、非競合のデータフロー部において条件によっては不要となる回路部にクロックゲーティング回路を付加する手法がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８２３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
低消費電力回路を設計する従来の手法は、ハードウェアとして、シーケンスの決まった回路を合成する際に適用される。しかし、プロセッサには、決められたシーケンスがなく、入力される命令の順序に応じて動作する回路の順番が変化する。よって、低消費電力回路を設計する従来の手法は、プロセッサを合成する際には適用できない。【０００７】
低消費電力のプロセッサを設計するために、ＲＴＬ記述を分析して、クロックゲーティング回路、電源遮断回路といった消費電力低減回路を付加することが考えられる。しかし、プロセッサ合成技術により自動生成されたＲＴＬ記述は可読性が悪い。よって、ＲＴＬ記述を基に低消費電力のプロセッサを設計することは困難であり、設計効率が低い。【０００８】
本発明は、低消費電力のプロセッサの回路構成を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様に係るプロセッサ合成装置は、
複数の命令を含む命令セットを定義する命令セット情報と、複数の演算器を含む回路構成を定義するプロセッサモデル情報とを取得する取得部と、
前記複数の命令のそれぞれが実行される際に、前記複数の演算器のうち、実行される命令で使用されない演算器を停止する停止回路を、前記取得部により取得された命令セット情報に基づいて、前記取得部により取得されたプロセッサモデル情報の回路構成に挿入し、前記停止回路を挿入した回路構成を定義するプロセッサ合成情報を生成する生成部とを備える。
【発明の効果】
【００１０】
本発明では、プロセッサの各命令の実行中に不要な演算器を停止する停止回路が、命令セットの定義に基づいてプロセッサの回路構成に挿入される。このため、低消費電力のプロセッサの回路構成を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るプロセッサ合成装置の構成を示すブロック図。
【図２】実施の形態１に係る命令セットの例を示す表。
【図３】実施の形態１に係るプロセッサモデルの例を示す図。
【図４】実施の形態１に係るプロセッサ合成装置の動作を示すフローチャート。
【図５】実施の形態１に係るプロセッサ合成装置による演算器の紐付けの例を示す図。
【図６】実施の形態１に係るプロセッサ合成装置により消費電力低減回路が挿入された回路構成の例を示す図。
【図７】実施の形態２に係るプロセッサ合成装置の構成を示すブロック図。
【図８】実施の形態２に係るプロセッサ合成装置の動作を示すフローチャート。
【図９】実施の形態２に係る停止回路がクロック又は電源の遮断を開始してから解除するまでの時間の第１例を示す図。
【図１０】実施の形態２に係る停止回路がクロック又は電源の遮断を開始してから解除するまでの時間の第２例を示す図。
【図１１】実施の形態３に係る命令セットの例を示す表。
【図１２】実施の形態３に係るプロセッサ合成装置の動作を示すフローチャート。
【図１３】実施の形態３に係るプロセッサ合成装置により消費電力低減回路が挿入された回路構成の例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
【００１３】
実施の形態１．
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
【００１４】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係る装置であるプロセッサ合成装置１１１の構成を説明する。
【００１５】
プロセッサ合成装置１１１は、コンピュータである。プロセッサ合成装置１１１は、プロセッサ１３１、メモリ１３２といったハードウェアを備える。プロセッサ１３１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１６】
プロセッサ合成装置１１１は、機能要素として、取得部１１２と、生成部１１３とを備える。取得部１１２及び生成部１１３の機能は、ソフトウェアにより実現される。
【００１７】
プロセッサ１３１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）である。プロセッサ１３１は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
【００１８】
メモリ１３２には、プロセッサ１３１に入力される情報として、命令セット情報１０１と、プロセッサモデル情報１０２とが記憶される。また、メモリ１３２には、プロセッサ１３１から出力される情報として、プロセッサ合成情報１２１と、ドメイン情報１２２とが記憶される。メモリ１３２は、具体的には、フラッシュメモリ、又は、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
【００１９】
プロセッサ合成装置１１１は、ハードウェアとして、入力装置、ディスプレイ及び通信装置を備えていてもよい。
【００２０】
入力装置は、命令セット情報１０１及びプロセッサモデル情報１０２をプロセッサ合成装置１１１に入力するために用いられる。入力装置は、具体的には、マウス、キーボード、又は、タッチパネルである。
【００２１】
ディスプレイは、プロセッサ合成情報１２１及びドメイン情報１２２を画面に表示するために用いられる。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）である。
【００２２】
通信装置は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。レシーバは、命令セット情報１０１及びプロセッサモデル情報１０２をプロセッサ合成装置１１１に入力するために用いられる。トランスミッタは、プロセッサ合成情報１２１及びドメイン情報１２２をプロセッサ合成装置１１１から出力するために用いられる。通信装置は、具体的には、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ・Ｉｎｔｅｒｆａｃｅ・Ｃａｒｄ）である。
【００２３】
メモリ１３２には、取得部１１２及び生成部１１３の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ１３１に読み込まれ、プロセッサ１３１によって実行される。メモリ１３２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。プロセッサ１３１はＯＳを実行しながら、取得部１１２及び生成部１１３の機能を実現するプログラムを実行する。
【００２４】
なお、取得部１１２及び生成部１１３の機能を実現するプログラム及びＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置は、具体的には、フラッシュメモリ、又は、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）である。補助記憶装置に記憶されているプログラム及びＯＳは、メモリ１３２にロードされ、プロセッサ１３１によって実行される。
【００２５】
プロセッサ合成装置１１１は、１つのプロセッサ１３１のみを備えていてもよいし、複数のプロセッサ１３１を備えていてもよい。複数のプロセッサ１３１が取得部１１２及び生成部１１３の機能を実現するプログラムを連携して実行してもよい。
【００２６】
取得部１１２及び生成部１１３の処理の結果を示す情報、データ、信号値、及び、変数値は、メモリ１３２、補助記憶装置、又は、プロセッサ１３１内のレジスタ又はキャッシュメモリに記憶される。
【００２７】
取得部１１２及び生成部１１３の機能を実現するプログラムは、磁気ディスク、光ディスクといった可搬記録媒体に記憶されてもよい。
【００２８】
命令セット情報１０１は、複数の命令を含む命令セットを定義する情報である。命令セット情報１０１では、図２に示すような命令が専用言語で記述されている。なお、命令セットを定義するための専用言語は、統一規格として一般化されていないため、他の手法で命令セットが定義されてもよい。
【００２９】
プロセッサモデル情報１０２は、プロセッサモデルを定義する情報である。具体的には、プロセッサモデル情報１０２は、複数の演算器を含む回路構成、パイプラインステージ構造といったアーキテクチャを定義する情報である。プロセッサモデル情報１０２では、図３に示すような回路構成がＶｅｒｉｌｏｇ、ＶＨＤＬといったハードウェア記述言語で記述されている。
【００３０】
＊＊＊動作の説明＊＊＊
図４を参照して、本実施の形態に係る装置であるプロセッサ合成装置１１１の動作を説明する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
【００３１】
ステップＳ１１において、取得部１１２は、命令セット情報１０１と、プロセッサモデル情報１０２とを取得する。具体的には、取得部１１２は、命令セット情報１０１と、プロセッサモデル情報１０２とをメモリ１３２から読み取る。生成部１１３は、各命令で使用される演算器の紐付けを行う。具体的には、生成部１１３は、図５に示すように、グラフ理論を利用して演算器の紐付けを行う。なお、演算器の紐付けを行う手法としては、グラフ理論を利用する手法の代わりに、表形式を利用する手法等、他の手法を用いても構わない。
【００３２】
図２の命令セットから演算器の紐付けが行われた場合、図５に示すように、以下の結果が得られる。
・ＡＤＤ命令２０１では、加算器２１１が使用される。
・ＭＵＬ命令２０２では、加算器２１１が使用される。
・ＳＵＢ命令２０３では、減算器２１２が使用される。
・ＤＩＶ命令２０４では、シフト演算器２１３、減算器２１２、比較器２１４及び加算器２１１が使用される。
【００３３】
ステップＳ１２において、生成部１１３は、演算器の紐付けの結果より、各命令の実行中に停止可能な演算器の抽出を行う。具体的には、生成部１１３は、ステップＳ１１の結果を基に、各命令の実行中に使用されない演算器を、クロック又は電源を遮断可能な演算器として抽出する。
【００３４】
図５の結果から停止可能な演算器の抽出が行われた場合、以下の結果が得られる。
・ＡＤＤ命令２０１では、減算器２１２、シフト演算器２１３及び比較器２１４が使用されないため、停止可能である。
・ＭＵＬ命令２０２では、減算器２１２、シフト演算器２１３及び比較器２１４が使用されないため、停止可能である。
・ＳＵＢ命令２０３では、加算器２１１、シフト演算器２１３及び比較器２１４が使用されないため、停止可能である。
・ＤＩＶ命令２０４では、使用されない演算器がないため、いずれの演算器も停止不可能である。
【００３５】
ステップＳ１３において、生成部１１３は、停止可能な演算器の抽出の結果より、回路構成への消費電力低減回路の挿入を行う。具体的には、生成部１１３は、図６に示すように、ステップＳ１２の結果を基に、プロセッサモデル及び命令セットより合成したプロセッサのＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ・Ｌｏｇｉｃ・Ｕｎｉｔ）に対して、ＡＬＵ内の各演算器を停止する停止回路４２２を消費電力低減回路として挿入する。停止回路４２２は、具体的には、クロックゲーティング回路又は電源遮断回路である。なお、図６では、演算器として加算器２１１、減算器２１２及び比較器２１４のみを示しているが、実際は、シフト演算器２１３もＡＬＵ内に含まれている。シフト演算器２１３を停止する停止回路４２２も消費電力低減回路としてＡＬＵに挿入される。
【００３６】
図６を参照して、ステップＳ１３の詳細な処理を説明する。
【００３７】
初めに、生成部１１３は、プロセッサモデル及び命令セットより、パイプラインステージを実現するための以下の要素を含むプロセッサ回路を生成する。
（１）各パイプラインステージを区切るためのフリップフロップ４０１，４０２
（２）プロセッサに入力される命令に応じ、使用する演算器を選択するためのデマルチプレクサ４１１
（３）各命令を実行する演算器である加算器２１１、減算器２１２、シフト演算器２１３及び比較器２１４
（４）プロセッサに入力される命令に応じ、出力する演算結果を選択するためのマルチプレクサ４１５
【００３８】
次に、生成部１１３は、上記のプロセッサ回路に対し、消費電力低減回路、すなわち、低消費電力設計のための以下の回路を挿入する。
（１）各命令実行時に使用されない演算器のクロック又は電源の遮断を制御する選択回路４２１
（２）各演算器のクロックを遮断するクロックゲーティング回路、又は、各演算器の電源を遮断する電源遮断回路である停止回路４２２
（３）各演算器のクロック又は電源の遮断時に、各演算器から出力される不定値が後段の回路へ伝搬しないようにするためのアイソレーションセル４２３
（４）プロセッサに入力された命令を検出する検出回路４２４
【００３９】
以下、検出回路４２４及び選択回路４２１の機能を説明する。なお、停止回路４２２及びアイソレーションセル４２３の機能は、従来の機能と同じでよい。
【００４０】
検出回路４２４は、プロセッサに入力された命令を検出し、パイプラインのＥＸステージで実行される命令の種別を選択回路４２１に出力する。
【００４１】
選択回路４２１は、プロセッサに命令が入力され、命令がパイプラインのＩＦステージでフェッチされているとき、及び、命令がパイプラインのＩＤステージでデコードされているときは、停止回路４２２によってＡＬＵ内の全演算器のクロックゲーティング又は電源遮断を行う。これにより、命令を実行中でないパイプラインのＥＸステージの消費電力を低減させることができる。
【００４２】
選択回路４２１は、命令がパイプラインのＩＤステージでデコードされた後、検出回路４２４から出力された種別に応じて、パイプラインのＥＸステージで使用される演算器のクロックゲーティング又は電源遮断を解除する。その結果、命令を実行中であるパイプラインのＥＸステージで使用される演算器のみが電力を消費し、使用されない演算器が電力を消費しないままとなる。よって、命令を実行中であるパイプラインのＥＸステージの消費電力も低減させることができる。
【００４３】
選択回路４２１は、命令がパイプラインのＥＸステージで実行された後、停止回路４２２によってＡＬＵ内の全演算器のクロックゲーティング又は電源遮断を行う。これにより、命令を実行中でないパイプラインのＥＸステージの消費電力を低減させることができる。
【００４４】
上記のように、ステップＳ１１からステップＳ１３では、生成部１１３が、停止回路４２２を、取得部１１２により取得された命令セット情報１０１に基づいて、取得部１１２により取得されたプロセッサモデル情報１０２の回路構成に挿入する。具体的には、ステップＳ１１及びステップＳ１２では、生成部１１３が、複数の命令のそれぞれで使用される演算器を示す情報を含む命令セット情報１０１から、複数の演算器のうち、複数の命令の少なくともいずれかで使用されない演算器を特定する。図５及び図６の例では、加算器２１１、減算器２１２、シフト演算器２１３及び比較器２１４が「複数の演算器」に相当し、ＡＤＤ命令２０１、ＭＵＬ命令２０２、ＳＵＢ命令２０３、ＤＩＶ命令２０４が「複数の命令」に相当する。ステップＳ１３では、生成部１１３が、プロセッサモデル情報１０２の回路構成にて、ステップＳ１２で特定した演算器に停止回路４２２を接続する。停止回路４２２は、複数の命令のそれぞれが実行される際に、複数の演算器のうち、実行される命令で使用されない演算器を停止する回路である。具体的には、停止回路４２２は、クロック又は電源を遮断することで、その停止回路４２２に接続された演算器を停止する回路である。具体例として、加算器２１１に接続された停止回路４２２は、ＳＵＢ命令２０３が実行される際に加算器２１１へのクロック又は電力の供給を遮断する回路である。
【００４５】
また、ステップＳ１１からステップＳ１３では、生成部１１３が、検出回路４２４と選択回路４２１とを、取得部１１２により取得された命令セット情報１０１に基づいて、取得部１１２により取得されたプロセッサモデル情報１０２の回路構成にさらに挿入する。検出回路４２４は、複数の命令のそれぞれが実行される際に、実行される命令を検出し、検出結果を出力する回路である。選択回路４２１は、検出回路からの検出結果に応じて、複数の演算器のうち、停止回路４２２に停止させる演算器を選択する回路である。具体例として、ＳＵＢ命令２０３が実行される際には、検出回路４２４は、ＳＵＢ命令２０３を検出し、ＳＵＢ命令２０３を示す信号を選択回路４２１に送る。選択回路４２１は、その信号を受けて、加算器２１１、シフト演算器２１３及び比較器２１４を選択する。より具体的には、選択回路４２１は、加算器２１１、シフト演算器２１３及び比較器２１４に接続された３つの停止回路４２２を制御して加算器２１１、シフト演算器２１３及び比較器２１４を停止させる。
【００４６】
ステップＳ１４において、生成部１１３は、ステップＳ１３で生成し、消費電力低減回路を挿入したプロセッサ回路のＲＴＬ記述であるプロセッサ合成情報１２１と、パワー・フォーマット、すなわち、演算器ごとのクロック又は電源の設計情報であるドメイン情報１２２とを出力する。
【００４７】
上記のように、ステップＳ１４では、生成部１１３が、停止回路４２２と検出回路４２４と選択回路４２１とを挿入した回路構成を定義するプロセッサ合成情報１２１を生成する。
【００４８】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、プロセッサの各命令の実行中に不要な演算器を停止する停止回路４２２が、命令セットの定義に基づいてプロセッサの回路構成に挿入される。このため、低消費電力のプロセッサの回路構成を得ることができる。
【００４９】
本実施の形態では、ＲＴＬ記述よりも抽象度の高いプロセッサモデルより、ＲＴＬ記述を自動生成する際に、プロセッサに入力される命令に応じて、その命令で使用されない演算器のクロックゲーティング又は電源遮断を行う消費電力低減回路を挿入することで、低消費電力のプロセッサを生成することができる。
【００５０】
＊＊＊他の構成＊＊＊
本実施の形態では、取得部１１２及び生成部１１３の機能がソフトウェアにより実現されるが、変形例として、取得部１１２及び生成部１１３の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。即ち、取得部１１２及び生成部１１３の少なくともいずれかの機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
【００５１】
プロセッサ１３１及びメモリ１３２を、総称して「プロセッシングサーキット」という。つまり、取得部１１２及び生成部１１３の機能がソフトウェアにより実現されても、ソフトウェアとハードウェアとの組み合わせにより実現されても、取得部１１２及び生成部１１３の機能は、プロセッシングサーキットにより実現される。
【００５２】
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
【００５３】
実施の形態２．
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態１との差異を説明する。
【００５４】
＊＊＊構成の説明＊＊＊
図７を参照して、本実施の形態に係る装置であるプロセッサ合成装置１１１の構成を説明する。
【００５５】
プロセッサ合成装置１１１の構成については、図１に示した実施の形態１のものと同じである。
【００５６】
本実施の形態では、メモリ１３２に、プロセッサ１３１に入力される情報として、プロセス情報１０３がさらに記憶される。
【００５７】
プロセス情報１０３は、複数の演算器のそれぞれがクロック又は電源の遮断解除後に動作可能となるまでの時間を定義する情報である。本実施の形態では、プロセッサ合成装置１１１が、このプロセス情報１０３を用いることで、プロセッサ製造プロセスに応じてクロックゲーティング又は電源遮断の解除のタイミングを変更できる。
【００５８】
＊＊＊動作の説明＊＊＊
図８を参照して、本実施の形態に係る装置であるプロセッサ合成装置１１１の動作を説明する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
【００５９】
ステップＳ２１において、取得部１１２は、命令セット情報１０１と、プロセッサモデル情報１０２と、プロセス情報１０３とを取得する。具体的には、取得部１１２は、命令セット情報１０１と、プロセッサモデル情報１０２と、プロセス情報１０３とをメモリ１３２から読み取る。生成部１１３は、実施の形態１のステップＳ１１と同じように、各命令で使用される演算器の紐付けを行う。
【００６０】
ステップＳ２２については、実施の形態１のステップＳ１２と同じである。
【００６１】
ステップＳ２３において、生成部１１３は、実施の形態１のステップＳ１３と同じように、回路構成への消費電力低減回路の挿入を行う。本実施の形態において、生成部１１３は、取得部１１２により取得されたプロセス情報１０３に基づいて、プロセッサ合成情報１２１の回路構成、すなわち、停止回路４２２が既に挿入された回路構成で、停止回路４２２がクロック又は電源の遮断を開始してから解除するまでの時間を調整する。
【００６２】
特に停止回路４２２が電源を遮断する場合、電源遮断の解除後、回路が動作できるようになるまでに時間を要する。本実施の形態では、生成部１１３が、プロセス情報１０３に含まれる電源遮断解除後から回路が動作可能になるまでの時間を読み取ることで、その時間に応じて、電源遮断の解除のタイミングを変更したプロセッサを生成することができる。
【００６３】
ここで、図９及び図１０に、プロセスの違いによって電源遮断解除までの時間が異なる２つのプロセッサを生成した例を示す。
【００６４】
図９の例では、回路が動作できるようになるまでの時間が短いため、選択回路４２１は、命令がパイプラインのＩＤステージでデコードされたことを検出し、パイプラインのＥＸステージで電源遮断の解除を行う。
【００６５】
図１０の例では、回路が動作できるようになるまでの時間が長いため、パイプラインのＩＤステージが２つに増やされている。これにより、回路が動作できるようになるまでの時間を確保できる。選択回路４２１は、命令がパイプラインの最初のＩＤステージでデコードされたことを検出し、パイプラインのＥＸステージで電源遮断の解除を行う。
【００６６】
ステップＳ２４については、実施の形態１のステップＳ１４と同じである。
【００６７】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、クロックゲーティング又は電源遮断を解除するステージを変更できる。
【００６８】
本実施の形態では、実施の形態１と同じように、取得部１１２及び生成部１１３の機能がソフトウェアにより実現されるが、実施の形態１の変形例と同じように、取得部１１２及び生成部１１３の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
【００６９】
実施の形態３．
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態１との差異を説明する。
【００７０】
＊＊＊構成の説明＊＊＊
本実施の形態に係る装置であるプロセッサ合成装置１１１の構成については、図１に示した実施の形態１のものと同じである。
【００７１】
本実施の形態において、命令セット情報１０１の命令セットには、図１１に示すように、複数の命令に１対１で対応する複数の停止命令が含まれる。また、複数の命令に１対１で対応する複数の起動命令も含まれる。複数の停止命令のそれぞれは、複数の演算器のうち、対応する命令で使用されない演算器を停止回路４２２によって停止する命令である。複数の起動命令のそれぞれは、複数の演算器のうち、対応する命令で使用されない演算器が停止回路４２２によって停止されているとき、当該演算器を起動する命令である。具体例として、ＡＤＤ命令２０１に対応する停止命令は、ＡＤＤ＿ＯＦＦ命令である。ＡＤＤ＿ＯＦＦ命令では、ＡＤＤ命令２０１で使用されない演算器、すなわち、減算器２１２、シフト演算器２１３及び比較器２１４が停止される。ＡＤＤ命令２０１に対応する起動命令は、ＡＤＤ＿ＯＮ命令である。ＡＤＤ＿ＯＮ命令では、ＡＤＤ＿ＯＦＦ命令によって停止された演算器、すなわち、減算器２１２、シフト演算器２１３及び比較器２１４が起動される。
【００７２】
＊＊＊動作の説明＊＊＊
図１２を参照して、本実施の形態に係る装置であるプロセッサ合成装置１１１の動作を説明する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成方法に相当する。プロセッサ合成装置１１１の動作は、本実施の形態に係るプロセッサ合成プログラムの処理手順に相当する。
【００７３】
ステップＳ３１については、実施の形態１のステップＳ１１と同じである。
【００７４】
本実施の形態では、実施の形態１のステップＳ１２のような、停止可能な演算器の抽出を行う必要がない。
【００７５】
ステップＳ３２において、生成部１１３は、ステップＳ３１で取得された命令セット情報１０１に基づいて、回路構成への消費電力低減回路の挿入を行う。具体的には、生成部１１３は、図１３に示すように、命令セットに含まれる停止命令で停止可能な演算器に停止回路４２２を付加する。なお、生成部１１３は、全ての演算器に停止回路４２２を付加してもよい。
【００７６】
生成部１１３は、さらに、選択回路４２１をＡＬＵに挿入する。検出回路４２４は不要である。
【００７７】
図１３のプロセッサ回路では、演算器を起動する各命令が入力されると、起動命令が選択回路４２１に出力され、選択回路４２１は、該当する命令で使用される演算器を起動する。また、演算器を停止する各命令が入力されると、停止命令が選択回路４２１に出力され、選択回路４２１は、該当する命令で使用される演算器を停止する。これにより、プロセッサの消費電力を低減させることができる。
【００７８】
ステップＳ３３については、実施の形態１のステップＳ１４と同じである。
【００７９】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、プロセッサ内の演算器を起動又は停止するための命令が含まれた命令セットを用いることで、プロセッサへの命令により、演算器のクロックゲーティング又は電源遮断を行うことができる。実施の形態１及び実施の形態２のように選択回路４２１が、命令の種別に応じて、使用されない演算器を自動で選択する必要がないため、選択回路４２１の簡略化が可能である。
【００８０】
本実施の形態では、実施の形態１と同じように、取得部１１２及び生成部１１３の機能がソフトウェアにより実現されるが、実施の形態１の変形例と同じように、取得部１１２及び生成部１１３の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
【００８１】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上の実施の形態を組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、１つの実施の形態又は２つ以上の実施の形態の組み合わせを部分的に実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８２】
１０１  命令セット情報、１０２  プロセッサモデル情報、１０３  プロセス情報、１１１  プロセッサ合成装置、１１２  取得部、１１３  生成部、１２１  プロセッサ合成情報、１２２  ドメイン情報、１３１  プロセッサ、１３２  メモリ、２０１  ＡＤＤ命令、２０２  ＭＵＬ命令、２０３  ＳＵＢ命令、２０４  ＤＩＶ命令、２１１  加算器、２１２  減算器、２１３  シフト演算器、２１４  比較器、４０１  フリップフロップ、４０２  フリップフロップ、４１１  デマルチプレクサ、４１５  マルチプレクサ、４２１  選択回路、４２２  停止回路、４２３  アイソレーションセル、４２４  検出回路。
【図１】
2017119123.tif 000003
【図２】
2017119123.tif 000004
【図３】
2017119123.tif 000005
【図４】
2017119123.tif 000006
【図５】
2017119123.tif 000007
【図６】
2017119123.tif 000008
【図７】
2017119123.tif 000009
【図８】
2017119123.tif 000010
【図９】
2017119123.tif 000011
【図１０】
2017119123.tif 000012
【図１１】
2017119123.tif 000013
【図１２】
2017119123.tif 000014
【図１３】
2017119123.tif 000015
【国際調査報告】
2017119123.tif 000016
2017119123.tif 000017
2017119123.tif 000018