(57)【要約】【課題】消費電力を考慮してメモリ構造を最適化するための技術を提供する。【解決手段】メモリ構造決定支援装置は、メモリ構造決定支援プログラムが格納される記憶装置と、上記メモリ構造決定支援プログラムを実行可能な中央処理装置とを含む。上記中央処理装置は、メモリ構成の決定に必要とされる情報（１１〜１４）に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能（１０１〜１０５）を含む。上記メモリ構造決定機能により、消費電力が計算され、評価されることで、メモリモジュールへ実装される配列のグルーピングが行われ、それに基づいてメモリ構造が決定されることにより、メモリ構造が最適化される。【選択図】図１
2010277436.tif 000002
【特許請求の範囲】
【請求項１】
メモリ構造決定支援プログラムが格納される記憶装置と、
上記メモリ構造決定支援プログラムを実行可能な中央処理装置と、を含み、
上記メモリ構造決定支援プログラムを実行する中央処理装置は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能を実現することを特徴とするメモリ構造決定支援装置。
【請求項２】
上記メモリ構成の決定に必要とされる情報には、メモリモジュールへ実装される配列及び構造体変数のアドレス毎のアクセス回数情報が含まれる請求項１記載のメモリ構造決定支援装置。
【請求項３】
上記メモリ構成の決定に必要とされる情報には、所定のプログラミング言語で記述されたシステム構造ファイルが含まれ、
上記メモリ構造決定機能は、上記システム構造ファイルを解析してアドレス毎のアクセス回数情報を生成する機能を含む請求項１記載のメモリ構造決定支援装置。
【請求項４】
上記メモリ構成の決定に必要とされる情報には、テストパターンが含まれ、
上記メモリ構造決定機能は、上記テストパターンからアドレス毎のアクセス回数情報を生成する機能を含む請求項１記載のメモリ構造決定支援装置。
【請求項５】
上記メモリ構造決定機能は、消費電力を考慮してメモリへマッピングする対象を、メモリモジュール及びレジスタから選択的に決定する機能を含む請求項１記載のメモリ構造決定支援装置。
【請求項６】
上記メモリ構造決定機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から各グループに割り当て可能なメモリを選択する第１機能と、
上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第２機能と、を含み、上記消費電力を評価し、それに基づいてメモリ構造を決定する請求項１記載のメモリ構造決定支援装置。
【請求項７】
上記メモリ構造決定機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第１機能と、
上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第２機能と、
各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める第３機能と、
上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する第４機能と、を含む請求項１記載のメモリ構造決定支援装置。
【請求項８】
上記メモリ構造決定機能は、更に各グループのクロックを制御する信号をアドレスラインから生成可能な第５機能を含む請求項７記載のメモリ構造決定支援装置。
【請求項９】
上記メモリ構造決定機能は、更にアクセス頻度の低いメモリへのクロック信号の伝達を、アクセスの無い期間停止するためのセレクタを挿入可能な第６機能を含む請求項７記載のメモリ構造決定支援装置。
【請求項１０】
所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第１機能と、
上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第２機能と、をコンピュータに実現させるためのメモリ構造決定支援プログラム。
【請求項１１】
所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第１機能と、
上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第２機能と、
各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める第３機能と、
上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する第４機能と、をコンピュータに実現させるためのメモリ構造決定支援プログラム。
【請求項１２】
請求項１０又は１１記載のメモリ構造決定支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力を考慮したメモリ構造の決定支援技術に関する。
【背景技術】
【０００２】
半導体集積回路の設計において、階層的に動作が記述されたプログラム言語、例えばSystemC言語から動作合成するための各種ツールが提案されている。例えば特許文献１には、メモリアクセスに関わるレイテンシの低減、回路面積を小さくできるようにするための動作合成装置が記載されている。特許文献２には高速かつ精度良く消費電力を見積もることができる消費電力見積り装置及び方法が記載されている。特許文献３には、プログラマブルなプラットフォームデバイス上のメモリ構成方法において、メモリコンポーザはメモリパフォーマンス仕様(サイクル時間、アクセス時間)や電力消費仕様からメモリを構成する技術が記載されている。メモリ構築ブロックについてはＲＴＬビューが生成される。特許文献４には、高位合成(動作合成)においてレジスタ転送レベル記述をメモリアクセス状態等を用いて自動合成を行いメモリを割り当てる技術が記載されている。特許文献５には、高位合成(動作合成)を利用した回路設計において、メモリアクセスのサイクル数を算出しアクセス集中化方法によって変数を分割し特定のメモリを同じメモリに割り付け、ＬＳＩの消費電力の低減を図る技術が記載されている。特許文献６には、ＲＴネットリスト及びテストパターン入力手段を用いて入力されたＬＳＩ全体のネットリストを、シミュレーションし、その結果からメモリアクセス回数を抽出し、入力された当該メモリのトランジスタネットリストをシミュレーションし、その結果からメモリ消費電流を抽出する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３２３２０６号公報
【特許文献２】特開２００４−０５４７５６号公報
【特許文献３】特開２００４−２１３６３４号公報
【特許文献４】特開２００５−３４６２９０号公報
【特許文献５】特開２００５−１７３６４８号公報
【特許文献６】特開２００５−２５６４９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明者は、動作合成における消費電力を考慮したメモリ構造の決定について検討した。例えば、ＬＳＩ全体に占めるメモリの電力消費割合は高く、メモリモジュールの一つのアドレスへのアクセスでも、アクセスのないアドレスの電力消費が発生すると考えられる。また、アクセスの多いアドレスと少ないアドレスを別のメモリモジュールとして実装すれば、アクセスの少ないメモリのクロックを停止する事で、消費電力の削減が出来ると考えられる。一般に同一プロセスで同じ構成のＳＲＡＭは容量が大きくなると、動作電流が大きくなる。そのためアクセス頻度が高いデータは小容量のメモリモジュールへ蓄積した方が動作電流の総和は小さくなると考えられる。動作合成時、C又はSystemCなどの動作記述言語で記述された一つの配列変数は、明示的に分離しなければ、一つのメモリモジュールに割り当てられ、アドレスのアクセス頻度を基に消費電力を考慮したメモリ構造の決定、実装に多くの工数が必要になると考えられる。しかも、このことは、上記特許文献１−６に記載された技術では解決することができない。
【０００５】
本発明の目的は、消費電力を考慮してメモリ構造を最適化するための技術を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００８】
すなわち、中央処理装置は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能を含む。上記メモリ構造決定機能により、消費電力が計算され、評価されることで、メモリモジュールへ実装される配列のグルーピングが行われ、それに基づいてメモリ構造が決定されることにより、メモリ構造が最適化される。
【発明の効果】
【０００９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１０】
すなわち、消費電力を考慮してメモリ構造を最適化するための技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明にかかるメモリ構造決定支援装置における処理の基本的な流れを示すフローチャートである。
【図２】C/SystemC等のプログラミング言語で記述されたファイルの一例を示す説明図である。
【図３】メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報の例を示す説明図である。
【図４】メモリモジュール情報の例を示す説明図である。
【図５】設定情報の例を示す説明図である。
【図６】論理合成ライブラリの例を示す説明図である。
【図７】指定したアクセス回数範囲とそこに属するアドレスの配列個数のテーブルと、一定のアクセス回数の幅を持つアドレス群によるグルーピングの説明図である。
【図８】選択されたメモリモジュールの消費電力の総和を求める中間テーブルの例を示す説明図である。
【図９】アクセス頻度によるアドレスのグルーピングと消費電力見積もりの流れが示されるフローチャートである。
【図１０】アドレスデコーダの作成の手順を示すフローチャートである。
【図１１】アドレスでコーダを生成するためのアドレスラインを入力として、各グループのクロックを制御する信号を出力するための論理式の説明図である。
【図１２】各グループへのクロック信号供給経路に挿入されるセレクタの説明図である。
【図１３】仮想メモリモジュールの説明図である。
【図１４】メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。
【図１５】メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。
【図１６】メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。
【図１７】メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。
【図１８】本発明にかかるメモリ構造決定支援プログラムが実行されるコンピュータの構成例ブロック図である。
【発明を実施するための形態】
【００１２】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１３】
〔１〕本発明の代表的な実施の形態に係るメモリ構造決定支援装置（３０）は、メモリ構造決定支援プログラムが格納される記憶装置（３２）と、上記メモリ構造決定支援プログラムを実行可能な中央処理装置（３１）とを含む。上記メモリ構造決定支援プログラムを実行する中央処理装置は、メモリ構成の決定に必要とされる情報（１１〜１５）に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能（１０１〜１０５）を実現する。
【００１４】
上記の構成によれば、上記メモリ構造決定機能は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定する。このことが、消費電力を考慮してメモリ構造を最適化するための技術の提供を達成する。
【００１５】
〔２〕上記〔１〕において、上記メモリ構成の決定に必要とされる情報には、メモリモジュールへ実装される配列及び構造体変数のアドレス毎のアクセス回数情報を含めることができる。
【００１６】
〔３〕上記〔１〕において、上記メモリ構成の決定に必要とされる情報には、所定のプログラミング言語で記述されたシステム構造ファイルが含まれ、上記メモリ構造決定機能は、上記システム構造ファイルを解析してアドレス毎のアクセス回数情報を生成する機能を含めることができる。
【００１７】
〔４〕上記〔１〕において、上記メモリ構成の決定に必要とされる情報には、テストパターンが含まれ、上記メモリ構造決定機能は、上記テストパターンからアドレス毎のアクセス回数情報を生成する機能を含めることができる。
【００１８】
〔５〕上記〔１〕において、上記メモリ構造決定機能には、消費電力を考慮してメモリへマッピングする対象を、メモリモジュール及びレジスタから選択的に決定する機能を含めることができる。
【００１９】
〔６〕上記〔１〕において、上記メモリ構造決定機能には、第１機能と第２機能とを含めることができる。上記第１機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から各グループに割り当て可能なメモリを選択する機能とされる。上記第２機能は、上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。
【００２０】
〔７〕上記〔１〕において、上記メモリ構造決定機能には、第１機能、第２機能、第３機能、及び第４機能を含めることができる。第１機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第２機能は、上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。上記第３機能は、各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める機能とされる。上記第４機能は、上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する機能とされる。
【００２１】
〔８〕上記〔７〕において、上記メモリ構造決定機能には、更に各グループのクロックを制御する信号をアドレスラインから生成可能な第５機能を含めることができる。
【００２２】
〔９〕上記〔７〕において、上記メモリ構造決定機能には、更にアクセス頻度の低いメモリへのクロック信号の伝達を、アクセスの無い期間停止するためのセレクタを挿入可能な第６機能を含めることができる。
【００２３】
〔１０〕また本発明の別の観点によれば、第１機能と、第２機能とをコンピュータに実現させるためのメモリ構造決定支援プログラムを提供することができる。ここで、上記第１機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第２機能は、上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。
【００２４】
〔１１〕さらに本発明の別の観点によれば、第１機能、第２機能、第３機能及び第４機能をコンピュータに実現させるためのメモリ構造決定支援プログラムを提供することができる。ここで、上記第１機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第２機能は、上記第１機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。上記第３機能は、各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める機能とされる。上記第４機能は、上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する機能とされる。
【００２５】
〔１２〕上記〔１０〕又は〔１１〕記載のメモリ構造決定支援プログラムはコンピュータ読み取り可能な記録媒体（３２１）に記録することができる。
【００２６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２７】
図１８には、本発明にかかるメモリ構造決定支援プログラムが実行されるコンピュータが示される。図１８に示されるコンピュータ３０は、特に制限されないが、ＣＰＵ（中央処理装置）３１、記憶装置３２、入力装置３３、表示装置３４、及メモリ３５を含み、それらは、バス３６を介して互いに結合されている。ＣＰＵ３１は、所定のプログラムを実行する。本例においてこのＣＰＵ３１は、メモリ構築支援プログラムを実行する。記憶装置３２は、上記ＣＰＵ３１で実行されるメモリ構造決定支援プログラムや各種情報が格納される記録媒体３２１を含む。この記録媒体３２１は、記憶装置３２に着脱自在とされ、記憶装置３２に装着された状態で、コンピュータ３０によって読み書き可能な光ディスクあるいは磁気ディスクとされる。特に制限されないが、上記メモリ構造決定支援プログラムは、記憶装置３２からメモリ３５にロードされてからＣＰＵ３１で実行される。入力装置３３は、このコンピュータシステムに対して各種情報の入力を可能とするもので、この入力装置３３には、キーボードやマウス等の各種入力デバイスが含まれる。表示装置３４は、このコンピュータ３０での各種情報を必要に応じて表示するもので、例えば液晶ディスプレイ装置とされる。
【００２８】
このようなコンピュータ３０でメモリ構築支援プログラムが実行されることでメモリ構造決定支援装置が形成される。このメモリ構造決定支援装置は、例えばＳｏＣ（System on a chip）に搭載されるメモリマクロの構築に利用される。
【００２９】
図１には、上記コンピュータ３０でメモリ構造決定支援プログラムが実行されることによって形成されるメモリ構造決定支援装置における処理の基本的な流れが示される。
【００３０】
メモリ構造決定支援装置には、入力装置３３等を介して、各種情報１００が入力される。メモリ構造決定支援装置に入力される各種情報１００には、C/SystemC等のプログラミング言語で記述されたファイル１１、メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報１２、メモリモジュール情報１３、配列や構造体変数をメモリモジュールへ実装する際の設定情報１４、論理合成ライブラリ１５などが含まれる。図２には、C/SystemC等のプログラミング言語で記述されたファイル１１の例が示される。この例では、８ビットで１０２４個のアドレスを持つ配列を確保することが示されている。Mem[3*a]、Mem[3*b]、Mem[3*c]は、配列の変数である。図３には、メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報１２の例が示される。図４には、メモリモジュール情報１３の例が示される。この例では、メモリモジュール毎に、メモリモジュール名、アドレスワード数、１アドレス当たりのデータ容量、クロックピン名、消費電力が記述されている。図５には、メモリモジュール情報１３、配列や構造体変数をメモリモジュールへ実装する際の設定情報１４の例が示される。この設定情報１４には、メモリの分割グループ数、デフォルトグループ間容量比、閾値移動範囲、メモリモジュールへのマッピング情報などが含まれる。図５に示される例では、分割グループ数は「３」とされ、デフォルトグループ間容量は「４：２：１」とされている。また、閾値移動範囲は、±２０％とされ、メモリモジュールへのマッピング情報は、mod:mod:reg（モジュール：モジュール：レジスタ）とされる。図６には、論理合成ライブラリの例が示される。この論理合成ライブラリには、セル毎に、セル名、端子名；信号方向、機能、セル面積、消費電力、リーク電流、及びセル内部で消費される電流が記述される。
【００３１】
メモリ構造決定支援装置における処理では、図１に示されるように、先ず、指定したアクセス回数範囲とそこに属するアドレスの配列個数のテーブルが作成される（１０１）。図７（Ａ）には、このテーブルの一例が示される。そして、このテーブルに基づいて、一定のアクセス回数の幅を持つアドレス群を「グループ」とし、各グループに属する配列変数の総容量（配列個数の総数）から、各グループに割り当て可能なメモリモジュールが選択される（１０２）。図７（Ｂ）には、一定のアクセス回数の幅を持つグループの例が示される。図７（Ｂ）に示される例では、グループＧｒ１、グループＧｒ２、グループＧｒ３が形成される。各グループは、それぞれ一定のアクセス回数の幅を有する。
【００３２】
次に、選択されたメモリモジュールの消費電力の総和を求める中間テーブルが作成される。図８には、この中間テーブルの例が示される。図８に示される中間テーブルでは、グループ毎に、アクセス回数、アドレス、総容量、実装可能なメモリモジュール、消費電力が示される。そして、設定情報１４の条件で上記グループ毎の容量を増減させ、数パターンのグルーピングケースで消費電力の総和が求められる。
【００３３】
次に、各グルーピングに対応して、元々一つだった配列変数を複数のメモリモジュールで表現できるようにアドレスデコーダが自動生成され（１０３）、アドレスデコーダの消費電力が求められる。例えば各グループのクロックを制御する信号が、アドレスラインから生成され、各グループのクロックラインにセレクタが挿入され、制御信号が接続される。メモリモジュールとアドレスデコーダの消費電力の総和が、適用可能なライブラリ・リストとその消費電力を持ったテーブルを参照して計算される。そして、対象グループの容量が指定割合だけ増減され、その増減の都度、アドレスデコーダとメモリモジュールの消費電力の総和が求められ、最も小さいケースが選択されて仮想メモリモジュールが作成される（１０４）。図１３には、上記仮想メモリモジュールが示される。メモリグループＧｒ１，Ｇｒ２，Ｇｒ３の出力が３入力オアゲートを介して出力される。メモリグループＧｒ１，Ｇｒ２，Ｇｒ３へのクロック信号の供給は、セレクタ１２０１〜１２０３を介して行われる。
【００３４】
次に、動作合成ツールでＲＴＬ（Register Transfer Level）が生成され、配列変数が仮想メモリモジュールへマッピングされる（１０５）。
【００３５】
次に、上記グループ毎の容量を増減させ、数パターンのグルーピングケースで消費電力の総和を求める場合の手順について詳述する。
【００３６】
図９には、アクセス頻度によるアドレスのグルーピングと消費電力見積もりの流れが示される。
【００３７】
C/SystemC等のプログラミング言語から配列変数の総容量を取得し（９０１）、グループ間容量比に合わせて、各グループ割り当て容量を決定する（９０２）。本例においてグループ間容量比は、４：２：１に設定されている（図５参照）。そして、アクセス回数が少ない方から順番に各アクセス回数毎のデータ容量が合算され（９０３）、対象グループの割り当て容量を超えたか否かの判別が行われる（９０４）。この判別において、対象グループの割り当て容量を超えていない（Ｎ）と判断された場合には、上記ステップ９０２に戻され、グループ間容量比に合わせ、各グループ割り当て容量が決定される。また、上記ステップ９０４の判別において、対象グループの割り当て容量を超えている（Ｙ）と判断された場合には、メモリモジュール情報１３（図４参照）から対象グループ実装可能なメモリモジュールが選択され、選択されたメモリモジュールの消費電力が取得される（９０５）。そして、対象グループの容量を指定割合分増減したか否かの判別が行われる（９０６）。本例において、対象グループの容量の指定割合（閾値移動範囲）は、±２０％である（図５参照）。この判別において、対象グループの容量の指定割合を±２０％増減していない（Ｎ）と判断された場合には、対象グループの容量の指定割合が例えば５％刻みで変更され（９０９）、上記ステップ９０２の実行に戻る。このように、上記ステップ９０６の判別において、対象グループの容量の指定割合が例えば５％刻みで変更される毎に、メモリモジュールの消費電力が取得され（９０５）、上記ステップ９０６の判別において、対象グループの容量の指定割合を±２０％増減した（Ｙ）と判断された場合には、対象グループが最後のグループか否かの判別が行われる（９０７）。この判別において、対象グループは最後のグループではない（Ｎ）と判断された場合には、上記ステップ９０２の実行に戻され、次の対象グループについての処理が行われる。また、上記ステップ９０７の判別において、対象グループは最後のグループである（Ｙ）と判断された場合には、上記ステップ９０５で得られた全グループの消費電力が合算される（９０８）。
【００３８】
図１０（Ａ）には、図１におけるアドレスデコーダの作成（１０３）の手順が示される。
【００３９】
先ず、グルーピング中間テーブル１００１が参照され、例えば図１１（Ａ）に示されるようなアドレスでコーダを生成するためのアドレスラインを入力として、各グループのクロックを制御する信号を出力するための論理式が生成され、図１１（Ｂ）に示されるようなＲＴＬ（Register Transfer Level）で出力される（１００２）。次に、論理合成ライブラリ１５が参照され、上記ＲＴＬが論理合成ツールへ供給され、アドレスデコーダが生成され、当該デコーダの消費電力が求められる（１００３）。さらに、例えば図１２に示されるように、各グループＧｒ１，Ｇｒ２，Ｇｒ３へのクロック信号供給経路にセレクタ１２０１，１２０２，１２０３が挿入される。セレクタ１２０１，１２０２，１２０３は、それぞれ２入力のアンドゲートとされる。このアンドゲートの一方の入力端子には、クロック信号ｃｌｏｃｋが入力され、他方の入力端子には、クロック制御信号線Ｘ、Ｙ、Ｚが接続される。かかる構成によれば、クロック制御信号線Ｘ、Ｙ、Ｚのうちのひとつが選択的にハイレベル（論理値“１”）にされた場合、対応するグループにのみ、クロック信号ｃｌｏｃｋが供給される。このようにアクセス対象グループにのみ、クロック信号を供給し、その他のグループにはクロック信号の供給を停止することができるので、その分、消費電力を低減することができる。
【００４０】
図１０（Ｂ）には、上記アドレスデコーダの作成（１０３）の別の手順が示される。
【００４１】
先ず、グルーピングの都度、各グループのクロック信号を阻止する回路を挿入する（１００７）。そして、アドレスラインを入力として、各グループを制御する信号を出力する論理式を生成し、中間テーブル１００１へＲＴＬとして記述する（１００８）。この中間テーブルに基づいてアドレスでコーダの消費電力を計算する（１００９）。
【００４２】
図１０（Ｃ）には、上記アドレスデコーダの作成（１０３）の別の手順が示される。
【００４３】
先ず、各ケースに対して、アドレスラインをビット展開して各メモリモジュールクロックを抑止するように入力状態をクワインマクラスキー法で中間テーブル１００１に記述する（１００５）。次に、上記中間テーブルに基づいて、各ケース毎にゲートレベルのアドレスでコーダを生成し、消費電力を算出する（１００６）。
【００４４】
上記の実施の形態によれば以下の作用効果が得られる。
【００４５】
（１）上記メモリ構造決定支援装置では、システム記述、設定情報、アドレス毎のアクセス回数情報、メモリモジュール情報を参照し、実装可能なメモリ選定とデコーダ生成を行い、これらの消費電力の総和が最小になるまでイタレーションを行うことができるので、頻繁に活性化される領域を可能な限り小さくすることで、メモリの消費電力を低減することができる。
【００４６】
（２）また上記メモリ構造決定支援装置では、消費電力を考慮して、自動的にメモリ割付を行うことができる。
【００４７】
図１４には、メモリ構造決定支援装置における処理の別の流れが示される。
【００４８】
図１４に示される処理が、図１に示されるのと大きく異なるのは、アドレス毎のアクセス回数情報を情報として取込むのではなく、メモリ構造決定支援装置において生成する点にある。すなわち、メモリ構造決定支援装置では、先ず、C/SystemCのシステム構造が解析され、それによりアドレス毎のアクセス回数情報が生成される。そして、指定したアクセス回数範囲とそこに属するアドレスの総容量、実装可能なメモリモジュールのテーブルが作成される（２０１）。このとき、アクセス頻度の高い配列と、アクセス頻度の低い配列とを、それぞれ別個にグルーピングし、アドレス毎のアクセス回数情報を生成することができる。これにより、アクセス頻度の高い配列と、アクセス頻度の低い配列とを別々のメモリモジュールにマッピングすることができる。
【００４９】
このように図１４に示される処理によれば、アクセス頻度に基づいて消費電力を考慮したメモリ構造の決定が可能となるため、C/SystemCの同一記述から、高位レベルで所定の電力要求に見合ったメモリ構成を決定することができる。
【００５０】
図１５には、メモリ構造決定支援装置における処理の別の流れが示される。
【００５１】
図１５に示される処理が、図１に示されるのと大きく異なるのは、テストパターン１６を取り込み、このテストパターン１６からアドレス毎のアクセス回数情報を生成する点にある。
【００５２】
すなわち、テストパターン１６を用いてメモリのアクセス率、アドレス毎のアクセス回数情報を生成する（１５０１）。そしてアクセスの多い配列と、アクセスの少ない配列をグルーピングし、これらのグループで一つのメモリ構成する場合のアドレスデコーダを生成する（１５０２）。設定情報１４によるグループ割り当て対象が、メモリモジュールであるか、レジスタであるかの判別が行われる（１５０３）。設定情報によれば、アクセス頻度の高い配列は各アドレス毎にレジスタへマッピングし、アクセス頻度の低い配列はメモリモジュールへマッピングするようになっている。上記ステップ１５０３の判別において、設定情報１４によるグループ割り当て対象がメモリモジュールであると判断された場合には、対象グループがメモリモジュールで実装される（１５０４）。そして、仮想メモリモジュールが作成され（１０４）、ＲＴＬが生成され、配列変数が仮想メモリモジュールへマッピングされる（１０５）。また、上記ステップ１５０３の判別において、設定情報１４によるグループ割り当て対象がレジスタであると判断された場合には、対象グループがレジスタで実装され（１５０５）、仮想メモリモジュールが作成され（１０４）、ＲＴＬが生成され、配列変数が仮想メモリモジュールへマッピングされる（１０５）。
【００５３】
図１５に示される処理によれば、テストパターン１６を取り込み、このテストパターン１６からアドレス毎のアクセス回数情報を生成するようにしているため、テストパターン１６として実際の動作パターンを使用することで、精度の高い電力消費見積りを行うことができる。また、レジスタで実装する場合には、メモリモジュールで実装するのに比べて消費電力を低減できる。
【００５４】
図１６には、メモリ構造決定支援装置における処理の別の流れが示される。
【００５５】
図１６に示される処理が、図１５に示されるのと大きく異なるのは、メモリの面積、消費電力、速度に対して実装時の優先順位を持たせ、それに基づいてメモリの構造決定を可能にした点である。
【００５６】
例えば、設定情報１４に優先度を設け、面積、消費電力、速度に対して実装時の優先順位を持たせる。また、目標仕様１７として、面積、電力、速度等を設定する。
【００５７】
テストパターン１６を用いてメモリのアクセス率、アドレス毎のアクセス回数情報が生成される（１５０１）。アクセスの多い配列と、アクセスの少ない配列がそれぞれグルーピングされ、これらのグループで一つのメモリを構成する場合のアドレスデコーダが生成される（１５０２）。そして、優先度に応じた処理が行われる。
【００５８】
例えば優先度が高い方は、面積か消費電力かの判別が行われる（１６０１）。面積の優先度が消費電力の優先度よりも高いと判断された場合には、対象グループをひとつのメモリモジュールで実装した場合の面積が取得され（１６０２）、対象グループを複数のレジスタで実装した場合の面積が取得され（１６０３）、面積が小さい方が判別される（１６０４）。メモリモジュールで実装した場合の面積のほうが小さいと判断された場合には、対象グループがメモリモジュールで実装される（１６０５）。また、上記ステップ１６０４の判別において、レジスタで実装した場合の面積のほうが小さいと判断された場合には、対象グループがレジスタで実装される（１６０６）。
【００５９】
さらに、上記ステップ１６０１の判別において、消費電力の優先度が面積の優先度よりも高いと判断された場合には、対象グループをひとつのメモリモジュールで実装した場合の消費電力が取得され（１６０７）、対象グループを複数のレジスタで実装した場合の消費電力が取得され（１６０８）、諸費電力が小さい方が判別される（１６０９）。この判別において、メモリモジュールで実装した場合の消費電力のほうが小さいと判断された場合には、対象グループがメモリモジュールで実装される（１６１０）。また、上記ステップ１６０４の判別において、レジスタで実装した場合の消費電力のほうが小さいと判断された場合には、対象グループがレジスタで実装される（１６１１）。
【００６０】
このように図１６に示される処理によれば、互いにトレードオフ条件となる消費電力、面積、速度の各要求仕様に対して最適な実装を行うことができる。
【００６１】
図１７には、メモリ構造決定支援装置における処理の別の流れが示される。
【００６２】
図１７に示される処理が、図１６に示されるのと大きく異なるのは、優先度１位の判別と優先度２位の判別とが行われる点である。
【００６３】
先ず、面積、速度、及び消費電力について優先度１位の判別が行われる（１７０１）。この判別において、面積が優先度１位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標面積に近くなる組み合わせがリストアップされる（１７０２）。そして、優先度２位の判別が行われる（１７０３）。この判別において、優先度２位は速度であると判断された場合には、上記組み合わせの中で最も目標速度近くなる組み合わせが選択され、対象グループが実装される（１７０４）。また、上記ステップ１７０３の判別において、優先度第２位が消費電力であると判断された場合には、上記組み合わせの中で最も目標消費電力に近くなる組み合わせが選択され、対象グループが実装される（１７０５）。
【００６４】
上記ステップ１７０１の判別において、速度が優先度１位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標速度近くなる組み合わせをリストアップする（１７０６）。そして、優先度２位の判別が行われる（１７０７）。この判別において、面積が優先度２位であると判断された場合には、上記組み合わせの中で最も目標面積に近くなる組み合わせが選択され、対象グループが実装される（１７０８）。また、上記ステップ１７０７の判別において、消費電力が優先度２位であると判断された場合には、上記組み合わせの中で最も目標消費電力に近くなる組み合わせが選択され、対象グループが実装される（１７０９）。
【００６５】
上記ステップ１７０１の判別において、消費電力が優先度１位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標消費電力に近くなる組み合わせが探索され、それがリストアップされる（１７１０）。そして、優先度２位の判別が行われる（１７１１）。この判別において、面積が優先度２位であると判断された場合には、上記組み合わせの中で最も目標面積に近くなる組み合わせが選択され、対象グループが実装される（１７１２）。また、上記ステップ１７１１の判別において、速度が優先度２位であると判断された場合には、上記組み合わせの中で最も目標速度に近くなる組み合わせを選択し、対象グループが実装される（１７１３）。
【００６６】
このように図１７に示される処理によれば、互いにトレードオフ条件となる消費電力、面積、速度の各要求仕様に対して最適な実装を行うことができる。
【００６７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００６８】
３０  コンピュータ
３１  ＣＰＵ
３２  記憶装置
３３  入力装置
３４  表示装置
３５  メモリ
３６  バス
３２１  記録媒体
【図１】
2010277436.tif 000003
【図２】
2010277436.tif 000004
【図３】
2010277436.tif 000005
【図４】
2010277436.tif 000006
【図５】
2010277436.tif 000007
【図６】
2010277436.tif 000008
【図７】
2010277436.tif 000009
【図８】
2010277436.tif 000010
【図９】
2010277436.tif 000011
【図１０】
2010277436.tif 000012
【図１１】
2010277436.tif 000013
【図１２】
2010277436.tif 000014
【図１３】
2010277436.tif 000015
【図１４】
2010277436.tif 000016
【図１５】
2010277436.tif 000017
【図１６】
2010277436.tif 000018
【図１７】
2010277436.tif 000019
【図１８】
2010277436.tif 000020