JP2010277436A - メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体 - Google Patents

メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体 Download PDF

Info

Publication number
JP2010277436A
JP2010277436A JP2009130944A JP2009130944A JP2010277436A JP 2010277436 A JP2010277436 A JP 2010277436A JP 2009130944 A JP2009130944 A JP 2009130944A JP 2009130944 A JP2009130944 A JP 2009130944A JP 2010277436 A JP2010277436 A JP 2010277436A
Authority
JP
Japan
Prior art keywords
memory
function
memory structure
group
structure determination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009130944A
Other languages
English (en)
Other versions
JP2010277436A5 (ja
Inventor
Mitsuru Tatezawa
充 舘澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009130944A priority Critical patent/JP2010277436A/ja
Publication of JP2010277436A publication Critical patent/JP2010277436A/ja
Publication of JP2010277436A5 publication Critical patent/JP2010277436A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】消費電力を考慮してメモリ構造を最適化するための技術を提供する。
【解決手段】メモリ構造決定支援装置は、メモリ構造決定支援プログラムが格納される記憶装置と、上記メモリ構造決定支援プログラムを実行可能な中央処理装置とを含む。上記中央処理装置は、メモリ構成の決定に必要とされる情報(11〜14)に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能(101〜105)を含む。上記メモリ構造決定機能により、消費電力が計算され、評価されることで、メモリモジュールへ実装される配列のグルーピングが行われ、それに基づいてメモリ構造が決定されることにより、メモリ構造が最適化される。
【選択図】図1

Description

本発明は、消費電力を考慮したメモリ構造の決定支援技術に関する。
半導体集積回路の設計において、階層的に動作が記述されたプログラム言語、例えばSystemC言語から動作合成するための各種ツールが提案されている。例えば特許文献1には、メモリアクセスに関わるレイテンシの低減、回路面積を小さくできるようにするための動作合成装置が記載されている。特許文献2には高速かつ精度良く消費電力を見積もることができる消費電力見積り装置及び方法が記載されている。特許文献3には、プログラマブルなプラットフォームデバイス上のメモリ構成方法において、メモリコンポーザはメモリパフォーマンス仕様(サイクル時間、アクセス時間)や電力消費仕様からメモリを構成する技術が記載されている。メモリ構築ブロックについてはRTLビューが生成される。特許文献4には、高位合成(動作合成)においてレジスタ転送レベル記述をメモリアクセス状態等を用いて自動合成を行いメモリを割り当てる技術が記載されている。特許文献5には、高位合成(動作合成)を利用した回路設計において、メモリアクセスのサイクル数を算出しアクセス集中化方法によって変数を分割し特定のメモリを同じメモリに割り付け、LSIの消費電力の低減を図る技術が記載されている。特許文献6には、RTネットリスト及びテストパターン入力手段を用いて入力されたLSI全体のネットリストを、シミュレーションし、その結果からメモリアクセス回数を抽出し、入力された当該メモリのトランジスタネットリストをシミュレーションし、その結果からメモリ消費電流を抽出する技術が記載されている。
特開2007−323206号公報 特開2004−054756号公報 特開2004−213634号公報 特開2005−346290号公報 特開2005−173648号公報 特開2005−256495号公報
本願発明者は、動作合成における消費電力を考慮したメモリ構造の決定について検討した。例えば、LSI全体に占めるメモリの電力消費割合は高く、メモリモジュールの一つのアドレスへのアクセスでも、アクセスのないアドレスの電力消費が発生すると考えられる。また、アクセスの多いアドレスと少ないアドレスを別のメモリモジュールとして実装すれば、アクセスの少ないメモリのクロックを停止する事で、消費電力の削減が出来ると考えられる。一般に同一プロセスで同じ構成のSRAMは容量が大きくなると、動作電流が大きくなる。そのためアクセス頻度が高いデータは小容量のメモリモジュールへ蓄積した方が動作電流の総和は小さくなると考えられる。動作合成時、C又はSystemCなどの動作記述言語で記述された一つの配列変数は、明示的に分離しなければ、一つのメモリモジュールに割り当てられ、アドレスのアクセス頻度を基に消費電力を考慮したメモリ構造の決定、実装に多くの工数が必要になると考えられる。しかも、このことは、上記特許文献1−6に記載された技術では解決することができない。
本発明の目的は、消費電力を考慮してメモリ構造を最適化するための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、中央処理装置は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能を含む。上記メモリ構造決定機能により、消費電力が計算され、評価されることで、メモリモジュールへ実装される配列のグルーピングが行われ、それに基づいてメモリ構造が決定されることにより、メモリ構造が最適化される。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、消費電力を考慮してメモリ構造を最適化するための技術を提供することができる。
本発明にかかるメモリ構造決定支援装置における処理の基本的な流れを示すフローチャートである。 C/SystemC等のプログラミング言語で記述されたファイルの一例を示す説明図である。 メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報の例を示す説明図である。 メモリモジュール情報の例を示す説明図である。 設定情報の例を示す説明図である。 論理合成ライブラリの例を示す説明図である。 指定したアクセス回数範囲とそこに属するアドレスの配列個数のテーブルと、一定のアクセス回数の幅を持つアドレス群によるグルーピングの説明図である。 選択されたメモリモジュールの消費電力の総和を求める中間テーブルの例を示す説明図である。 アクセス頻度によるアドレスのグルーピングと消費電力見積もりの流れが示されるフローチャートである。 アドレスデコーダの作成の手順を示すフローチャートである。 アドレスでコーダを生成するためのアドレスラインを入力として、各グループのクロックを制御する信号を出力するための論理式の説明図である。 各グループへのクロック信号供給経路に挿入されるセレクタの説明図である。 仮想メモリモジュールの説明図である。 メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。 メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。 メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。 メモリ構造決定支援装置における処理の別の流れが示されるフローチャートである。 本発明にかかるメモリ構造決定支援プログラムが実行されるコンピュータの構成例ブロック図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るメモリ構造決定支援装置(30)は、メモリ構造決定支援プログラムが格納される記憶装置(32)と、上記メモリ構造決定支援プログラムを実行可能な中央処理装置(31)とを含む。上記メモリ構造決定支援プログラムを実行する中央処理装置は、メモリ構成の決定に必要とされる情報(11〜15)に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能(101〜105)を実現する。
上記の構成によれば、上記メモリ構造決定機能は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定する。このことが、消費電力を考慮してメモリ構造を最適化するための技術の提供を達成する。
〔2〕上記〔1〕において、上記メモリ構成の決定に必要とされる情報には、メモリモジュールへ実装される配列及び構造体変数のアドレス毎のアクセス回数情報を含めることができる。
〔3〕上記〔1〕において、上記メモリ構成の決定に必要とされる情報には、所定のプログラミング言語で記述されたシステム構造ファイルが含まれ、上記メモリ構造決定機能は、上記システム構造ファイルを解析してアドレス毎のアクセス回数情報を生成する機能を含めることができる。
〔4〕上記〔1〕において、上記メモリ構成の決定に必要とされる情報には、テストパターンが含まれ、上記メモリ構造決定機能は、上記テストパターンからアドレス毎のアクセス回数情報を生成する機能を含めることができる。
〔5〕上記〔1〕において、上記メモリ構造決定機能には、消費電力を考慮してメモリへマッピングする対象を、メモリモジュール及びレジスタから選択的に決定する機能を含めることができる。
〔6〕上記〔1〕において、上記メモリ構造決定機能には、第1機能と第2機能とを含めることができる。上記第1機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から各グループに割り当て可能なメモリを選択する機能とされる。上記第2機能は、上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。
〔7〕上記〔1〕において、上記メモリ構造決定機能には、第1機能、第2機能、第3機能、及び第4機能を含めることができる。第1機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第2機能は、上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。上記第3機能は、各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める機能とされる。上記第4機能は、上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する機能とされる。
〔8〕上記〔7〕において、上記メモリ構造決定機能には、更に各グループのクロックを制御する信号をアドレスラインから生成可能な第5機能を含めることができる。
〔9〕上記〔7〕において、上記メモリ構造決定機能には、更にアクセス頻度の低いメモリへのクロック信号の伝達を、アクセスの無い期間停止するためのセレクタを挿入可能な第6機能を含めることができる。
〔10〕また本発明の別の観点によれば、第1機能と、第2機能とをコンピュータに実現させるためのメモリ構造決定支援プログラムを提供することができる。ここで、上記第1機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第2機能は、上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。
〔11〕さらに本発明の別の観点によれば、第1機能、第2機能、第3機能及び第4機能をコンピュータに実現させるためのメモリ構造決定支援プログラムを提供することができる。ここで、上記第1機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する機能とされる。上記第2機能は、上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める機能とされる。上記第3機能は、各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める機能とされる。上記第4機能は、上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する機能とされる。
〔12〕上記〔10〕又は〔11〕記載のメモリ構造決定支援プログラムはコンピュータ読み取り可能な記録媒体(321)に記録することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
図18には、本発明にかかるメモリ構造決定支援プログラムが実行されるコンピュータが示される。図18に示されるコンピュータ30は、特に制限されないが、CPU(中央処理装置)31、記憶装置32、入力装置33、表示装置34、及メモリ35を含み、それらは、バス36を介して互いに結合されている。CPU31は、所定のプログラムを実行する。本例においてこのCPU31は、メモリ構築支援プログラムを実行する。記憶装置32は、上記CPU31で実行されるメモリ構造決定支援プログラムや各種情報が格納される記録媒体321を含む。この記録媒体321は、記憶装置32に着脱自在とされ、記憶装置32に装着された状態で、コンピュータ30によって読み書き可能な光ディスクあるいは磁気ディスクとされる。特に制限されないが、上記メモリ構造決定支援プログラムは、記憶装置32からメモリ35にロードされてからCPU31で実行される。入力装置33は、このコンピュータシステムに対して各種情報の入力を可能とするもので、この入力装置33には、キーボードやマウス等の各種入力デバイスが含まれる。表示装置34は、このコンピュータ30での各種情報を必要に応じて表示するもので、例えば液晶ディスプレイ装置とされる。
このようなコンピュータ30でメモリ構築支援プログラムが実行されることでメモリ構造決定支援装置が形成される。このメモリ構造決定支援装置は、例えばSoC(System on a chip)に搭載されるメモリマクロの構築に利用される。
図1には、上記コンピュータ30でメモリ構造決定支援プログラムが実行されることによって形成されるメモリ構造決定支援装置における処理の基本的な流れが示される。
メモリ構造決定支援装置には、入力装置33等を介して、各種情報100が入力される。メモリ構造決定支援装置に入力される各種情報100には、C/SystemC等のプログラミング言語で記述されたファイル11、メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報12、メモリモジュール情報13、配列や構造体変数をメモリモジュールへ実装する際の設定情報14、論理合成ライブラリ15などが含まれる。図2には、C/SystemC等のプログラミング言語で記述されたファイル11の例が示される。この例では、8ビットで1024個のアドレスを持つ配列を確保することが示されている。Mem[3*a]、Mem[3*b]、Mem[3*c]は、配列の変数である。図3には、メモリモジュールへ実装される配列や構造体変数のアドレス毎のアクセス回数情報12の例が示される。図4には、メモリモジュール情報13の例が示される。この例では、メモリモジュール毎に、メモリモジュール名、アドレスワード数、1アドレス当たりのデータ容量、クロックピン名、消費電力が記述されている。図5には、メモリモジュール情報13、配列や構造体変数をメモリモジュールへ実装する際の設定情報14の例が示される。この設定情報14には、メモリの分割グループ数、デフォルトグループ間容量比、閾値移動範囲、メモリモジュールへのマッピング情報などが含まれる。図5に示される例では、分割グループ数は「3」とされ、デフォルトグループ間容量は「4:2:1」とされている。また、閾値移動範囲は、±20%とされ、メモリモジュールへのマッピング情報は、mod:mod:reg(モジュール:モジュール:レジスタ)とされる。図6には、論理合成ライブラリの例が示される。この論理合成ライブラリには、セル毎に、セル名、端子名;信号方向、機能、セル面積、消費電力、リーク電流、及びセル内部で消費される電流が記述される。
メモリ構造決定支援装置における処理では、図1に示されるように、先ず、指定したアクセス回数範囲とそこに属するアドレスの配列個数のテーブルが作成される(101)。図7(A)には、このテーブルの一例が示される。そして、このテーブルに基づいて、一定のアクセス回数の幅を持つアドレス群を「グループ」とし、各グループに属する配列変数の総容量(配列個数の総数)から、各グループに割り当て可能なメモリモジュールが選択される(102)。図7(B)には、一定のアクセス回数の幅を持つグループの例が示される。図7(B)に示される例では、グループGr1、グループGr2、グループGr3が形成される。各グループは、それぞれ一定のアクセス回数の幅を有する。
次に、選択されたメモリモジュールの消費電力の総和を求める中間テーブルが作成される。図8には、この中間テーブルの例が示される。図8に示される中間テーブルでは、グループ毎に、アクセス回数、アドレス、総容量、実装可能なメモリモジュール、消費電力が示される。そして、設定情報14の条件で上記グループ毎の容量を増減させ、数パターンのグルーピングケースで消費電力の総和が求められる。
次に、各グルーピングに対応して、元々一つだった配列変数を複数のメモリモジュールで表現できるようにアドレスデコーダが自動生成され(103)、アドレスデコーダの消費電力が求められる。例えば各グループのクロックを制御する信号が、アドレスラインから生成され、各グループのクロックラインにセレクタが挿入され、制御信号が接続される。メモリモジュールとアドレスデコーダの消費電力の総和が、適用可能なライブラリ・リストとその消費電力を持ったテーブルを参照して計算される。そして、対象グループの容量が指定割合だけ増減され、その増減の都度、アドレスデコーダとメモリモジュールの消費電力の総和が求められ、最も小さいケースが選択されて仮想メモリモジュールが作成される(104)。図13には、上記仮想メモリモジュールが示される。メモリグループGr1,Gr2,Gr3の出力が3入力オアゲートを介して出力される。メモリグループGr1,Gr2,Gr3へのクロック信号の供給は、セレクタ1201〜1203を介して行われる。
次に、動作合成ツールでRTL(Register Transfer Level)が生成され、配列変数が仮想メモリモジュールへマッピングされる(105)。
次に、上記グループ毎の容量を増減させ、数パターンのグルーピングケースで消費電力の総和を求める場合の手順について詳述する。
図9には、アクセス頻度によるアドレスのグルーピングと消費電力見積もりの流れが示される。
C/SystemC等のプログラミング言語から配列変数の総容量を取得し(901)、グループ間容量比に合わせて、各グループ割り当て容量を決定する(902)。本例においてグループ間容量比は、4:2:1に設定されている(図5参照)。そして、アクセス回数が少ない方から順番に各アクセス回数毎のデータ容量が合算され(903)、対象グループの割り当て容量を超えたか否かの判別が行われる(904)。この判別において、対象グループの割り当て容量を超えていない(N)と判断された場合には、上記ステップ902に戻され、グループ間容量比に合わせ、各グループ割り当て容量が決定される。また、上記ステップ904の判別において、対象グループの割り当て容量を超えている(Y)と判断された場合には、メモリモジュール情報13(図4参照)から対象グループ実装可能なメモリモジュールが選択され、選択されたメモリモジュールの消費電力が取得される(905)。そして、対象グループの容量を指定割合分増減したか否かの判別が行われる(906)。本例において、対象グループの容量の指定割合(閾値移動範囲)は、±20%である(図5参照)。この判別において、対象グループの容量の指定割合を±20%増減していない(N)と判断された場合には、対象グループの容量の指定割合が例えば5%刻みで変更され(909)、上記ステップ902の実行に戻る。このように、上記ステップ906の判別において、対象グループの容量の指定割合が例えば5%刻みで変更される毎に、メモリモジュールの消費電力が取得され(905)、上記ステップ906の判別において、対象グループの容量の指定割合を±20%増減した(Y)と判断された場合には、対象グループが最後のグループか否かの判別が行われる(907)。この判別において、対象グループは最後のグループではない(N)と判断された場合には、上記ステップ902の実行に戻され、次の対象グループについての処理が行われる。また、上記ステップ907の判別において、対象グループは最後のグループである(Y)と判断された場合には、上記ステップ905で得られた全グループの消費電力が合算される(908)。
図10(A)には、図1におけるアドレスデコーダの作成(103)の手順が示される。
先ず、グルーピング中間テーブル1001が参照され、例えば図11(A)に示されるようなアドレスでコーダを生成するためのアドレスラインを入力として、各グループのクロックを制御する信号を出力するための論理式が生成され、図11(B)に示されるようなRTL(Register Transfer Level)で出力される(1002)。次に、論理合成ライブラリ15が参照され、上記RTLが論理合成ツールへ供給され、アドレスデコーダが生成され、当該デコーダの消費電力が求められる(1003)。さらに、例えば図12に示されるように、各グループGr1,Gr2,Gr3へのクロック信号供給経路にセレクタ1201,1202,1203が挿入される。セレクタ1201,1202,1203は、それぞれ2入力のアンドゲートとされる。このアンドゲートの一方の入力端子には、クロック信号clockが入力され、他方の入力端子には、クロック制御信号線X、Y、Zが接続される。かかる構成によれば、クロック制御信号線X、Y、Zのうちのひとつが選択的にハイレベル(論理値“1”)にされた場合、対応するグループにのみ、クロック信号clockが供給される。このようにアクセス対象グループにのみ、クロック信号を供給し、その他のグループにはクロック信号の供給を停止することができるので、その分、消費電力を低減することができる。
図10(B)には、上記アドレスデコーダの作成(103)の別の手順が示される。
先ず、グルーピングの都度、各グループのクロック信号を阻止する回路を挿入する(1007)。そして、アドレスラインを入力として、各グループを制御する信号を出力する論理式を生成し、中間テーブル1001へRTLとして記述する(1008)。この中間テーブルに基づいてアドレスでコーダの消費電力を計算する(1009)。
図10(C)には、上記アドレスデコーダの作成(103)の別の手順が示される。
先ず、各ケースに対して、アドレスラインをビット展開して各メモリモジュールクロックを抑止するように入力状態をクワインマクラスキー法で中間テーブル1001に記述する(1005)。次に、上記中間テーブルに基づいて、各ケース毎にゲートレベルのアドレスでコーダを生成し、消費電力を算出する(1006)。
上記の実施の形態によれば以下の作用効果が得られる。
(1)上記メモリ構造決定支援装置では、システム記述、設定情報、アドレス毎のアクセス回数情報、メモリモジュール情報を参照し、実装可能なメモリ選定とデコーダ生成を行い、これらの消費電力の総和が最小になるまでイタレーションを行うことができるので、頻繁に活性化される領域を可能な限り小さくすることで、メモリの消費電力を低減することができる。
(2)また上記メモリ構造決定支援装置では、消費電力を考慮して、自動的にメモリ割付を行うことができる。
図14には、メモリ構造決定支援装置における処理の別の流れが示される。
図14に示される処理が、図1に示されるのと大きく異なるのは、アドレス毎のアクセス回数情報を情報として取込むのではなく、メモリ構造決定支援装置において生成する点にある。すなわち、メモリ構造決定支援装置では、先ず、C/SystemCのシステム構造が解析され、それによりアドレス毎のアクセス回数情報が生成される。そして、指定したアクセス回数範囲とそこに属するアドレスの総容量、実装可能なメモリモジュールのテーブルが作成される(201)。このとき、アクセス頻度の高い配列と、アクセス頻度の低い配列とを、それぞれ別個にグルーピングし、アドレス毎のアクセス回数情報を生成することができる。これにより、アクセス頻度の高い配列と、アクセス頻度の低い配列とを別々のメモリモジュールにマッピングすることができる。
このように図14に示される処理によれば、アクセス頻度に基づいて消費電力を考慮したメモリ構造の決定が可能となるため、C/SystemCの同一記述から、高位レベルで所定の電力要求に見合ったメモリ構成を決定することができる。
図15には、メモリ構造決定支援装置における処理の別の流れが示される。
図15に示される処理が、図1に示されるのと大きく異なるのは、テストパターン16を取り込み、このテストパターン16からアドレス毎のアクセス回数情報を生成する点にある。
すなわち、テストパターン16を用いてメモリのアクセス率、アドレス毎のアクセス回数情報を生成する(1501)。そしてアクセスの多い配列と、アクセスの少ない配列をグルーピングし、これらのグループで一つのメモリ構成する場合のアドレスデコーダを生成する(1502)。設定情報14によるグループ割り当て対象が、メモリモジュールであるか、レジスタであるかの判別が行われる(1503)。設定情報によれば、アクセス頻度の高い配列は各アドレス毎にレジスタへマッピングし、アクセス頻度の低い配列はメモリモジュールへマッピングするようになっている。上記ステップ1503の判別において、設定情報14によるグループ割り当て対象がメモリモジュールであると判断された場合には、対象グループがメモリモジュールで実装される(1504)。そして、仮想メモリモジュールが作成され(104)、RTLが生成され、配列変数が仮想メモリモジュールへマッピングされる(105)。また、上記ステップ1503の判別において、設定情報14によるグループ割り当て対象がレジスタであると判断された場合には、対象グループがレジスタで実装され(1505)、仮想メモリモジュールが作成され(104)、RTLが生成され、配列変数が仮想メモリモジュールへマッピングされる(105)。
図15に示される処理によれば、テストパターン16を取り込み、このテストパターン16からアドレス毎のアクセス回数情報を生成するようにしているため、テストパターン16として実際の動作パターンを使用することで、精度の高い電力消費見積りを行うことができる。また、レジスタで実装する場合には、メモリモジュールで実装するのに比べて消費電力を低減できる。
図16には、メモリ構造決定支援装置における処理の別の流れが示される。
図16に示される処理が、図15に示されるのと大きく異なるのは、メモリの面積、消費電力、速度に対して実装時の優先順位を持たせ、それに基づいてメモリの構造決定を可能にした点である。
例えば、設定情報14に優先度を設け、面積、消費電力、速度に対して実装時の優先順位を持たせる。また、目標仕様17として、面積、電力、速度等を設定する。
テストパターン16を用いてメモリのアクセス率、アドレス毎のアクセス回数情報が生成される(1501)。アクセスの多い配列と、アクセスの少ない配列がそれぞれグルーピングされ、これらのグループで一つのメモリを構成する場合のアドレスデコーダが生成される(1502)。そして、優先度に応じた処理が行われる。
例えば優先度が高い方は、面積か消費電力かの判別が行われる(1601)。面積の優先度が消費電力の優先度よりも高いと判断された場合には、対象グループをひとつのメモリモジュールで実装した場合の面積が取得され(1602)、対象グループを複数のレジスタで実装した場合の面積が取得され(1603)、面積が小さい方が判別される(1604)。メモリモジュールで実装した場合の面積のほうが小さいと判断された場合には、対象グループがメモリモジュールで実装される(1605)。また、上記ステップ1604の判別において、レジスタで実装した場合の面積のほうが小さいと判断された場合には、対象グループがレジスタで実装される(1606)。
さらに、上記ステップ1601の判別において、消費電力の優先度が面積の優先度よりも高いと判断された場合には、対象グループをひとつのメモリモジュールで実装した場合の消費電力が取得され(1607)、対象グループを複数のレジスタで実装した場合の消費電力が取得され(1608)、諸費電力が小さい方が判別される(1609)。この判別において、メモリモジュールで実装した場合の消費電力のほうが小さいと判断された場合には、対象グループがメモリモジュールで実装される(1610)。また、上記ステップ1604の判別において、レジスタで実装した場合の消費電力のほうが小さいと判断された場合には、対象グループがレジスタで実装される(1611)。
このように図16に示される処理によれば、互いにトレードオフ条件となる消費電力、面積、速度の各要求仕様に対して最適な実装を行うことができる。
図17には、メモリ構造決定支援装置における処理の別の流れが示される。
図17に示される処理が、図16に示されるのと大きく異なるのは、優先度1位の判別と優先度2位の判別とが行われる点である。
先ず、面積、速度、及び消費電力について優先度1位の判別が行われる(1701)。この判別において、面積が優先度1位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標面積に近くなる組み合わせがリストアップされる(1702)。そして、優先度2位の判別が行われる(1703)。この判別において、優先度2位は速度であると判断された場合には、上記組み合わせの中で最も目標速度近くなる組み合わせが選択され、対象グループが実装される(1704)。また、上記ステップ1703の判別において、優先度第2位が消費電力であると判断された場合には、上記組み合わせの中で最も目標消費電力に近くなる組み合わせが選択され、対象グループが実装される(1705)。
上記ステップ1701の判別において、速度が優先度1位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標速度近くなる組み合わせをリストアップする(1706)。そして、優先度2位の判別が行われる(1707)。この判別において、面積が優先度2位であると判断された場合には、上記組み合わせの中で最も目標面積に近くなる組み合わせが選択され、対象グループが実装される(1708)。また、上記ステップ1707の判別において、消費電力が優先度2位であると判断された場合には、上記組み合わせの中で最も目標消費電力に近くなる組み合わせが選択され、対象グループが実装される(1709)。
上記ステップ1701の判別において、消費電力が優先度1位であると判断された場合には、対象グループのメモリ容量を実装するためにレジスタとメモリモジュールの組み合わせで最も目標消費電力に近くなる組み合わせが探索され、それがリストアップされる(1710)。そして、優先度2位の判別が行われる(1711)。この判別において、面積が優先度2位であると判断された場合には、上記組み合わせの中で最も目標面積に近くなる組み合わせが選択され、対象グループが実装される(1712)。また、上記ステップ1711の判別において、速度が優先度2位であると判断された場合には、上記組み合わせの中で最も目標速度に近くなる組み合わせを選択し、対象グループが実装される(1713)。
このように図17に示される処理によれば、互いにトレードオフ条件となる消費電力、面積、速度の各要求仕様に対して最適な実装を行うことができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
30 コンピュータ
31 CPU
32 記憶装置
33 入力装置
34 表示装置
35 メモリ
36 バス
321 記録媒体

Claims (12)

  1. メモリ構造決定支援プログラムが格納される記憶装置と、
    上記メモリ構造決定支援プログラムを実行可能な中央処理装置と、を含み、
    上記メモリ構造決定支援プログラムを実行する中央処理装置は、メモリ構成の決定に必要とされる情報に基づいて、消費電力を計算し、評価することで、メモリモジュールへ実装される配列のグルーピングを行い、それに基づいてメモリ構造を決定するメモリ構造決定機能を実現することを特徴とするメモリ構造決定支援装置。
  2. 上記メモリ構成の決定に必要とされる情報には、メモリモジュールへ実装される配列及び構造体変数のアドレス毎のアクセス回数情報が含まれる請求項1記載のメモリ構造決定支援装置。
  3. 上記メモリ構成の決定に必要とされる情報には、所定のプログラミング言語で記述されたシステム構造ファイルが含まれ、
    上記メモリ構造決定機能は、上記システム構造ファイルを解析してアドレス毎のアクセス回数情報を生成する機能を含む請求項1記載のメモリ構造決定支援装置。
  4. 上記メモリ構成の決定に必要とされる情報には、テストパターンが含まれ、
    上記メモリ構造決定機能は、上記テストパターンからアドレス毎のアクセス回数情報を生成する機能を含む請求項1記載のメモリ構造決定支援装置。
  5. 上記メモリ構造決定機能は、消費電力を考慮してメモリへマッピングする対象を、メモリモジュール及びレジスタから選択的に決定する機能を含む請求項1記載のメモリ構造決定支援装置。
  6. 上記メモリ構造決定機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から各グループに割り当て可能なメモリを選択する第1機能と、
    上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第2機能と、を含み、上記消費電力を評価し、それに基づいてメモリ構造を決定する請求項1記載のメモリ構造決定支援装置。
  7. 上記メモリ構造決定機能は、所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第1機能と、
    上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第2機能と、
    各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める第3機能と、
    上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する第4機能と、を含む請求項1記載のメモリ構造決定支援装置。
  8. 上記メモリ構造決定機能は、更に各グループのクロックを制御する信号をアドレスラインから生成可能な第5機能を含む請求項7記載のメモリ構造決定支援装置。
  9. 上記メモリ構造決定機能は、更にアクセス頻度の低いメモリへのクロック信号の伝達を、アクセスの無い期間停止するためのセレクタを挿入可能な第6機能を含む請求項7記載のメモリ構造決定支援装置。
  10. 所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第1機能と、
    上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第2機能と、をコンピュータに実現させるためのメモリ構造決定支援プログラム。
  11. 所定のアクセス回数の幅を持つアドレス群毎にグループを形成し、各グループに属する配列変数の総容量から割り当て可能なメモリを選択する第1機能と、
    上記第1機能によって選択されたメモリの消費電力の総和を求めるための中間テーブルを作成し、所定の条件で各グループの容量を増減させ、複数パターンのグルーピングケースで消費電力の総和を求める第2機能と、
    各グループに対応して、配列変数を複数のメモリモジュールで表現可能にするためのアドレスデコーダを生成し、当該アドレスデコーダの消費電力を求める第3機能と、
    上記アドレスデコーダと上記メモリモジュールの消費電力の総和を求め、その値が最も小さいケースを選択してメモリ構造を決定する第4機能と、をコンピュータに実現させるためのメモリ構造決定支援プログラム。
  12. 請求項10又は11記載のメモリ構造決定支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2009130944A 2009-05-29 2009-05-29 メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体 Pending JP2010277436A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009130944A JP2010277436A (ja) 2009-05-29 2009-05-29 メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009130944A JP2010277436A (ja) 2009-05-29 2009-05-29 メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2010277436A true JP2010277436A (ja) 2010-12-09
JP2010277436A5 JP2010277436A5 (ja) 2012-05-17

Family

ID=43424322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009130944A Pending JP2010277436A (ja) 2009-05-29 2009-05-29 メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2010277436A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065069A (ja) * 2011-09-15 2013-04-11 Nec Corp 半導体回路性能見積装置、その方法及びそのプログラム
US9424040B2 (en) 2012-09-21 2016-08-23 Mitsubishi Electric Corporation LSI and LSI manufacturing method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200800850001; 松村忠幸、外2名: 'コード配置とメモリ構成の同時最適化による省電力化手法' 情報処理学会シンポジウムシリーズ Vol.2008, No.7(DAシンポジウム2008), 20080819, pp.13〜18, 社団法人情報処理学会 *
JPN6009016122; Schmit, H. et al.: 'Synthesis of Application-Specific Memory Designs' IEEE Transactions on Very Large Scale Integration (VLSI) Systems Vol.5, No.1, 199703, pp.101〜111, IEEE *
JPN6013003861; 松村忠幸、外2名: 'コード配置とメモリ構成の同時最適化による省電力化手法' 情報処理学会シンポジウムシリーズ Vol.2008, No.7(DAシンポジウム2008), 20080819, pp.13〜18, 社団法人情報処理学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065069A (ja) * 2011-09-15 2013-04-11 Nec Corp 半導体回路性能見積装置、その方法及びそのプログラム
US9424040B2 (en) 2012-09-21 2016-08-23 Mitsubishi Electric Corporation LSI and LSI manufacturing method

Similar Documents

Publication Publication Date Title
US7331024B2 (en) Power-consumption calculation method and apparatus
US7162704B2 (en) Method and apparatus for circuit design and retiming
US10691856B1 (en) System design flow with runtime customizable circuits
US9727681B2 (en) Generating specific memory models using generic memory models for designing memories in VLSI design
US20230342531A1 (en) Methods and apparatus for profile-guided optimization of integrated circuits
US9851777B2 (en) Power gating based on cache dirtiness
JP2013145550A (ja) システムオンチップの設計方法、設計システム、及びシステムオンチップ
US20130091482A1 (en) Method and apparatus for design space exploration acceleration
US7913204B2 (en) High-level synthesis apparatus, high-level synthesis system and high-level synthesis method
US7725843B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, method for manufacturing digital circuit, behavioral synthesis control program and computer-readable recording medium
US9081930B1 (en) Throughput during high level synthesis
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US20080300806A1 (en) Power consumption calculating method
JP2007004563A (ja) ライブラリ作成装置、ライブラリ作成プログラムおよびライブラリ作成方法
JP2010277436A (ja) メモリ構造決定支援装置、メモリ構造決定プログラム及び記録媒体
Pasricha et al. Capps: A framework for power–performance tradeoffs in bus-matrix-based on-chip communication architecture synthesis
WO2019113603A1 (en) State machine block for high-level synthesis
JP5110206B2 (ja) 動作合成装置、動作合成方法、ならびに、プログラム
US20160055271A1 (en) Data structure of design data of semiconductor integrated circuit and apparatus and method of designing semiconductor integrated circuit
JP5347995B2 (ja) 動作合成装置、動作合成方法及びプログラム
US8578075B1 (en) Performance constraints for system synthesis
JP5883633B2 (ja) レイアウト装置及びレイアウト方法
JP2011022863A (ja) 動作合成装置及び動作合成方法
JP2009301505A (ja) 半導体集積回路の消費電力見積り装置、消費電力見積り方法及びプログラム
JP2012221119A (ja) 半導体集積回路の設計支援装置、設計方法、及び設計支援プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130606