(57)【要約】【課題】プロセッサを構成する回路要素をソフトウエアに適合させて最適化する。【解決手段】演算のために用いられる回路要素を含んで構成されるプロセッサ１０に対し、プログラムを実行させるプログラム実行制御手段２０と、前記プロセッサ１０が前記プログラムを実行したときに回路要素の入力出力値の履歴を取得する実行結果取得手段３０と、前記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するビット使用状態検出手段４０と、前記ビット使用状態検出手段４０により検出された回路要素の使用ビットに基づき回路規模の修正情報を出力する修正情報出力手段５０とを具備する。【選択図】図１
2015166967.tif 000002
【特許請求の範囲】
【請求項１】
演算のために用いられる回路要素を含んで構成されるプロセッサに対し、プログラムを実行させるプログラム実行制御手段と、
前記プロセッサが前記プログラムを実行したときに回路要素の入力出力値の履歴を取得する実行結果取得手段と、
前記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するビット使用状態検出手段と、
前記ビット使用状態検出手段により検出された回路要素の使用ビットに基づき回路規模の修正情報を出力する修正情報出力手段と
を具備することを特徴とする回路規模最適化装置。
【請求項２】
回路要素には、少なくとも演算装置と、レジスタとを含むことを特徴とする請求項１に記載の回路規模最適化装置。
【請求項３】
ビット使用状態検出手段は、入力出力値の履歴について、出力値の履歴のみを用いて回路要素が使用した出力ビットを検出することを特徴とする請求項１または２に記載の回路規模最適化装置。
【請求項４】
演算のために用いられる回路要素を含んで構成されるプロセッサに対し、プログラムを実行させるプログラム実行ステップと、
前記プログラムを実行したときに回路要素の入力出力値の履歴を取得する実行結果取得ステップと、
前記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するビット使用状態検出ステップと、
前記ビット使用状態検出ステップにおいて検出された回路要素の使用ビットに基づき回路規模の修正情報を出力する回路規模修正ステップと
を具備することを特徴とする回路規模最適化方法。
【請求項５】
回路要素には、少なくとも演算装置と、レジスタとを含むことを特徴とする請求項４に記載の回路規模最適化方法。
【請求項６】
ビット使用状態検出ステップでは、入力出力値の履歴について、出力値の履歴のみを用いて回路要素が使用した出力ビットを検出することを特徴とする請求項４または５に記載の回路規模最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算のために用いられる回路要素を含んで構成されるプロセッサの回路規模最適化装置及び回路規模最適化方法に関するものである。
【背景技術】
【０００２】
従来は、プロセッサ（ハードウエア）が備える固定的な回路規模を有する演算装置（ＡＬＵ）群やレジスタ群などの回路要素に対応するようにソフトウエアをコンパイル、生成する手法が採られている。この手法によれば、ソフトウエアの規模が小さくなるとプロセッサ内の回路要素が長大となり、無駄な構成が生じる。また、要求される能力に応じて機能を追加可能なプロセッサも存在するが、大きな機能毎の追加となることから、ソフトウエア規模の縮小の場合には無駄な部分が生じてしまう。
【０００３】
また、プロセッサ回路の改善や統合を行うために、マイクロコードやビット冗長情報などを用いる回路設計手法も行われている（特許文献１参照）。この設計手法は、回路の統合を行うものであるが、ソフトウエア規模の変動に対応するものとはなっていない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４２９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上記のような回路規模最適化における現状に鑑みなされたもので、その目的は、プロセッサを構成する回路要素をソフトウエアに適合させて最適化することが可能な回路規模最適化装置及び回路規模最適化方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る回路規模最適化装置は、演算のために用いられる回路要素を含んで構成されるプロセッサに対し、プログラムを実行させるプログラム実行制御手段と、前記プロセッサが前記プログラムを実行したときに回路要素の入力出力値の履歴を取得する実行結果取得手段と、前記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するビット使用状態検出手段と、前記ビット使用状態検出手段により検出された回路要素の使用ビットに基づき回路規模の修正情報を出力する修正情報出力手段とを具備することを特徴とする。
【０００７】
本発明に係る回路規模最適化装置では、回路要素には、少なくとも演算装置と、レジスタとを含むことを特徴とする。
【０００８】
本発明に係る回路規模最適化装置では、ビット使用状態検出手段は、入力出力値の履歴について、出力値の履歴のみを用いて回路要素が使用した出力ビットを検出することを特徴とする
【０００９】
本発明に係る回路規模最適化方法は、演算のために用いられる回路要素を含んで構成されるプロセッサに対し、プログラムを実行させるプログラム実行ステップと、前記プログラムを実行したときに回路要素の入力出力値の履歴を取得する実行結果取得ステップと、前記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するビット使用状態検出ステップと、前記ビット使用状態検出ステップにおいて検出された回路要素の使用ビットに基づき回路規模の修正情報を出力する回路規模修正ステップとを具備することを特徴とする。
【００１０】
本発明に係る回路規模最適化方法では、回路要素には、少なくとも演算装置と、レジスタとを含むことを特徴とする。
【００１１】
本発明に係る回路規模最適化方法は、ビット使用状態検出ステップでは、入力出力値の履歴について、出力値の履歴のみを用いて回路要素が使用した出力ビットを検出することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、演算のために用いられる回路要素を含んで構成されるプロセッサに対し、プログラムを実行させ、実行したときに回路要素の入力出力値の履歴を取得し、上記入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出し、検出された回路要素の使用ビットに基づき回路規模の修正情報を出力するので、プロセッサを構成する回路要素をソフトウエアに適合させて最適化することが可能である。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る回路規模最適化装置の実施形態の構成図。
【図２】本発明に係る回路規模最適化装置の実施形態の動作を説明するためのフローチャート。
【図３】本発明に係る回路規模最適化装置の実施形態により最適化される回路要素の一例を示すブロック図。
【図４】本発明に係る回路規模最適化装置の実施形態により得られる回路要素の入力出力値の履歴の一例を示す図。
【図５】本発明に係る回路規模最適化装置の実施形態により得られる回路要素のビットの使用状態の一例を示す図。
【図６】本発明に係る回路規模最適化装置の実施形態により最適化された後の回路要素の一例を示すブロック図。
【発明を実施するための形態】
【００１４】
以下添付図面を参照して、本発明に係る回路規模最適化装置及び回路規模最適化方法の実施形態を説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。図１には、本発明に係る回路規模最適化装置の実施形態の構成図が示されている。符号１０は、回路規模適正化対象のプロセッサを示すものである。このプロセッサ１０は、演算のために用いられる回路要素を含むものである。ここでは、回路要素として、演算装置１１〜１５、及びレジスタ２１〜２５が備えられたものを示している。なお、図１はプロセッサ１０が備える回路要素を例示したもので、これらに限定されるものではなく、勿論、回路要素の数や配置は実際のものではない。
【００１５】
上記プロセッサ１０に対して、プログラムを実行させるプログラム実行制御手段２０が設けられている。プロセッサ１０の動作を監視するための実行結果取得手段３０がプロセッサ１０に付設されている。実行結果取得手段３０は、プロセッサ１０が上記プログラムを実行したときに回路要素の入力出力値の履歴を取得するものである。
【００１６】
つまり、実行結果取得手段３０は、回路要素としての演算装置１１〜１５及びレジスタ２１〜２５のそれぞれについて入力と出力の値を監視するものである。なお、レジスタ２１〜２５においては、入力と出力とは同一である。上記の実行結果取得手段３０は、それぞれについて入力と出力の値を監視するプログラムにより実現することができる。
【００１７】
上記実行結果取得手段３０には、ビット使用状態検出手段４０が接続されている。ビット使用状態検出手段４０は、上記実行結果取得手段３０により取得された入力出力値の履歴に基づき回路要素が使用した少なくとも出力ビットを検出するものである。ビット使用状態検出手段４０は、例えばカバレッジ（回路活性化率）を集計するプログラムにより実現することができる。
【００１８】
ビット使用状態検出手段４０には、修正情報出力手段５０が接続されている。この修正情報出力手段５０は、上記ビット使用状態検出手段４０により検出された回路要素の使用ビットに基づき回路規模の修正情報を出力するものである。この修正情報出力手段５０も使用ビットの最上限ビットを求めて出力するなどの処理を行うプログラムにより実現することが可能である。
【００１９】
以上の回路規模最適化装置の実施形態は、図２に示されるフローチャートのプログラムによって回路規模最適化を行うので、このフローチャートに基づき動作説明を行う。スタートとなり、まず、プログラム実行制御手段２０がプロセッサ１０に対して、プログラムＡを実行させる（Ｓ１１）。
【００２０】
ここで、回路要素としての演算装置１１〜１５の内の一つが例えば、図３に示される加算器の回路１であるとする。この回路１は一方の入力Ａが８ビットであり、他方の入力Ｂが８ビットであり、出力Ｙは９ビットであるとする。以下の説明では、プログラムＡがプロセッサにおいて実行されたとき、上記の回路１の動作についての処理を説明する。
【００２１】
上記ステップＳ１１におけるプログラム実行制御に続き、実行結果を収集する（Ｓ１２）。プログラムＡにおいて図４（ａ）のように動作が進むものとし、これに対応する実行結果が図４（ｂ）のように収集される。
【００２２】
次のステップＳ１３においては、プログラムＡにおいて図４（ａ）のように動作が進み、これに対応する実行結果が図４（ｂ）のようであったとき（履歴が得られたとき）、回路１のビットの使用状態を検出する。ここでは、カバレッジを得るため、Synopsys社のツール名ＶＣＳを用いて図５のような結果を得た。
【００２３】
この結果によれば、出力Ｙにおいて０から７までのビットは使用されているが、最上位ビット８は不活性であることが検出されている。これに基づき、未使用のビットがあるかについて判断が行われ（Ｓ１４）、ＹＥＳとなると未使用ビットがなくなるように回路規模適正化情報が出力される（Ｓ１５）。上記の例では、最上位ビット８は未使用であり、最上位ビット８を削減することを求める修正情報が出力される。
【００２４】
上記の修正情報に基づきプロセッサ１０の回路規模適正化が行われ、図６に示されるように出力Ｙにおいて最上位ビットが削除され、８ビット出力の回路１に変更される。これにより、プログラムに合わせた回路規模適正化がなされることになる。
【００２５】
一方、上記ステップＳ１４においてＮＯへ分岐すると、最適な状態と判断され、最適な旨の出力がなされる。この図２のフローチャートに対応する処理が各回路要素について行われ、それぞれの回路要素について適正化を実行することができる。
【００２６】
なお、上記では、出力について未使用が検出される場合を示したが、入力についても不要な冗長性がある場合には、回路規模の適正化を実行することができる。
【符号の説明】
【００２７】
１０  プロセッサ
１１-１５  演算装置
２０  プログラム実行制御手段
２１-２５  レジスタ
３０  実行結果取得手段
４０  ビット使用状態検出手段
５０  修正情報出力手段
【図１】
2015166967.tif 000003
【図２】
2015166967.tif 000004
【図３】
2015166967.tif 000005
【図４】
2015166967.tif 000006
【図５】
2015166967.tif 000007
【図６】
2015166967.tif 000008