(57)【特許請求の範囲】
【請求項１】
少なくとも一つのデータ処理装置と、
上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有し、
上記データ処理装置と上記メモリマクロは、
メモリアドレスと消費電力が配線長で決まる相関関係を持つようにレイアウトされて、データ伝送距離が予め決められており、
アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行う機能と、
アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行う機能と、を含み、
アクセス回数が多いデータがアクセス回数の少ないデータより消費電力の小さい領域に格納される
集積装置。
【請求項２】
上記アクセス回数が多いデータはアクセス回数の少ないデータより、アクセスする上記データ処理装置とのデータ伝送距離が短いメモリ領域に格納される
請求項１記載の集積装置。
【請求項３】
対象のアプリケーションでアクセスする論理アドレスがアクセスの頻度順に上記データ処理装置とのデータ伝送距離の短いメモリの物理アドレスに割り付けられる
請求項１または２記載の集積装置。
【請求項４】
アプリケーションプログラムの解析によりアクセス頻度が高いと推定されたデータが、アクセス頻度が低いデータよりデータ処理装置にデータ伝送距離が短いメモリの物理アドレスに割り付けられる
請求項１から３のいずれか一に記載の集積装置。
【請求項５】
上記データ処理装置は、少なくとも一つの入出力ポートを有し、
上記各メモリマクロは、
複数のメモリバンクと、
上記データ処理装置および上記各メモリバンクと接続されるメモリインタフェースと、を含み、
上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、接続配線により接続されている
請求項１から４のいずれか一に記載の集積装置。
【請求項６】
上記接続配線は、多層配線された指示情報配線とデータ配線を含み、
上記指示情報配線は、専用配線により形成され、
上記データ配線は、少なくとも一部が専用配線により形成されている
請求項５記載の集積装置。
【請求項７】
少なくとも一つのデータ処理装置と、
上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有し、
上記データ処理装置と上記メモリマクロは、
メモリアドレスと消費電力が配線長で決まる相関関係を持つようにレイアウトされて、データ伝送距離が予め決められており、
アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行う機能を含み、
アクセス回数が多いデータがアクセス回数の少ないデータより消費電力の小さい領域に格納され、
上記データ処理装置は、少なくとも一つの入出力ポートを有し、
上記各メモリマクロは、
複数のメモリバンクと、
上記データ処理装置および上記各メモリバンクと接続されるメモリインタフェースと、を含み、
上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、接続配線により接続され、
上記接続配線は、多層配線された指示情報配線とデータ配線を含み、
上記指示情報配線は、専用配線により形成され、
上記データ配線は、少なくとも一部が専用配線により形成されている
集積装置。
【請求項８】
上記メモリインタフェースは、上記メモリマクロの配置領域を挟んで上記データ処理装置の配置位置と対向する位置に配置され、
上記各メモリマクロは、上記データ処理装置と上記メモリインタフェースとの接続方向である第１方向に直交する第２方向に並列に配置され、
上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、上記複数のメモリマクロの領域にマトリクス状になるように第１方向および第２方向に配線された接続配線により接続され、
上記データ配線は、少なくとも上記第２方向の配線が専用配線により形成されている
請求項６または７記載の集積装置。
【請求項９】
少なくとも一つのデータ処理装置と、
上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、
を有する集積装置のレイアウト方法であって、
メモリアドレスと消費電力が配線長で決まる相関関係を持つようにデータ伝送距離を予め決めてレイアウトし、
アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行い、
アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行い、
アクセス回数が多いデータをアクセス回数の少ないデータより消費電力の小さい領域に格納する
集積装置のレイアウト方法。
【請求項１０】
上記アクセス回数が多いデータをアクセス回数の少ないデータより、アクセスする上記データ処理装置とのデータ伝送距離が短いメモリ領域に格納する
請求項９記載の集積装置のレイアウト方法。
【請求項１１】
対象のアプリケーションでアクセスする論理アドレスをアクセスの頻度順に上記データ処理装置とのデータ伝送距離の短いメモリの物理アドレスに割り付ける
請求項９または１０記載の集積装置のレイアウト方法。
【請求項１２】
アプリケーションプログラムの解析によりアクセス頻度が高いと推定されたデータが、アクセス頻度が低いデータよりデータ処理装置にデータ伝送距離が短いメモリの物理アドレスに割り付ける
請求項９から１１のいずれか一に記載の集積装置のレイアウト方法。
【請求項１３】
少なくとも一つのデータ処理装置と、
上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、
を有する集積装置のレイアウト処理のプログラムであって、
メモリアドレスと消費電力が配線長で決まる相関関係を持つようにデータ伝送距離を予め決めてレイアウトする処理と、
アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行い、アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行い、アクセス回数が多いデータをアクセス回数の少ないデータより消費電力の小さい領域に格納する処理と
を含む集積装置のレイアウト処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ等の処理装置を含むメモリを混載したシステムを有する集積装置およびそのレイアウト方法、並びにプログラムに係り、特にシステムの電力制御に関するものである。
【背景技術】
【０００２】
半導体集積回路の電力制御は、パワーゲート、クロックゲートのように、電力コントロール用の特殊なハードウェアを設け、これを制御することにより電力最適化を実現するというものが主である。
【０００３】
また、キャッシュメモリのように、メモリ階層をもうけ頻繁にアクセスするデータを近くの階層に置き電力効率を上げる技術がある。この例として、一般のプロセッサシステムの電力解析技術として、以下の技術がある。
これはモデリングしたメモリ・アーキテクチャ上で、アプリケーションソフトウェアレベルでのデータアクセス・アクティビティをプロファイルし、キャッシュヒットレートや各ソースコードラインでのデータのアクセス状況から論理的な電力最適化を行うものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、１番目にあげた一般的な技術では、特殊なハードウェアの追加や、その管理手法等の追加により、開発コスト、製品コストの負担増となっている。
【０００５】
２番目にあげた技術では、同一階層内は同じ電力ペナルティで扱っており、階層内の物理的な場所による効率の違いまでは考慮できていない。
また、３番目にあげた技術では、個別アクセスの物理的な電力負荷までは考慮できず、きめ細かな最適化は不可能である。
【０００６】
本発明は、コスト増を抑止しつつ、メモリ階層内の物理的な場所まで考慮でき、個別アクセスの物理的な電力負荷まで考慮でき、きめ細かな電力の最適化を実現可能な集積装置およびそのレイアウト方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１の観点の集積装置は、少なくとも一つのデータ処理装置と、上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有し、上記データ処理装置と上記メモリマクロは、メモリアドレスと消費電力が配線長で決まる相関関係を持つようにレイアウトされて、データ伝送距離が予め決められており、アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行う機能と、アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行う機能と、を含み、アクセス回数が多いデータがアクセス回数の少ないデータより消費電力の小さい領域に格納される。
また、本発明の集積装置は、少なくとも一つのデータ処理装置と、上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有し、上記データ処理装置と上記メモリマクロは、メモリアドレスと消費電力が配線長で決まる相関関係を持つようにレイアウトされて、データ伝送距離が予め決められており、アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行う機能を含み、アクセス回数が多いデータがアクセス回数の少ないデータより消費電力の小さい領域に格納され、上記データ処理装置は、少なくとも一つの入出力ポートを有し、上記各メモリマクロは、複数のメモリバンクと、上記データ処理装置および上記各メモリバンクと接続されるメモリインタフェースと、を含み、上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、接続配線により接続され、上記接続配線は、多層配線された指示情報配線とデータ配線を含み、上記指示情報配線は、専用配線により形成され、上記データ配線は、少なくとも一部が専用配線により形成されている。
【００１０】
好適には、上記アクセス回数が多いデータはアクセス回数の少ないデータより、アクセスする上記データ処理装置とのデータ伝送距離が短いメモリ領域に格納される。
【００１１】
好適には、対象のアプリケーションでアクセスする論理アドレスがアクセスの頻度順に上記データ処理装置とのデータ伝送距離の短いメモリの物理アドレスに割り付けられる。
【００１２】
好適には、アプリケーションプログラムの解析によりアクセス頻度が高いと推定されたデータがアクセス頻度が低いデータよりデータ処理装置にデータ伝送距離が近い短いメモリの物理アドレスに割り付けられる。
【００１３】
好適には、アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行う機能を有する。
【００１４】
好適には、上記データ処理装置は、少なくとも一つの入出力ポートを有し、上記各メモリマクロは、複数のメモリバンクと、上記データ処理装置および上記各メモリバンクと接続されるメモリインタフェースと、を含み、上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、接続配線により接続されている。
【００１５】
好適には、上記接続配線は、多層配線された指示情報配線とデータ配線を含み、上記指示情報配線は、プライベート配線により形成され、上記データ配線は、少なくとも一部がプライベート配線により形成されている。
【００１６】
好適には、上記メモリインタフェースは、上記メモリマクロの配置領域を挟んで上記データ処理装置の配置位置と対向する位置に配置され、上記各メモリマクロは、上記データ処理装置と上記メモリインタフェースとの接続方向である第１方向に略直交する第２方向に並列に配置され、上記データ処理装置の入出力ポートと、上記各メモリインタフェースと、各メモリバンクとは、上記複数のメモリマクロの領域にマトリクス状になるように第１方向および第２方向に配線された接続配線により接続され、上記データ配線は、少なくとも上記第２方向の配線がプライベート配線により形成されている。
【００１７】
本発明の第２の観点は、少なくとも一つのデータ処理装置と、上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有する集積装置のレイアウト方法であって、メモリアドレスと消費電力が配線長で決まる相関関係を持つようにデータ伝送距離を予め決めてレイアウトし、アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行い、アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行い、アクセス回数が多いデータをアクセス回数の少ないデータより消費電力の小さい領域に格納する。
【００１９】
本発明の第３の観点は、少なくとも一つのデータ処理装置と、上記データ処理装置によりアクセス可能で少なくとも一つのメモリマクロと、を有する集積装置のレイアウト処理のプログラムであって、メモリアドレスと消費電力が配線長で決まる相関関係を持つようにデータ伝送距離を予め決めてレイアウトする処理と、アプリケーションで決定されるアクセス回数を基に、消費電力が最小となるように配線長を選択してメモリアロケーションを行い、アプリケーションプログラムの解析時に作成した変数の情報と、当該アプリケーションプログラム実行中の変数のアクセス情報を使用して、プログラム実行中の電力最適化のための物理アドレスマッピングを行い、アクセス回数が多いデータをアクセス回数の少ないデータより消費電力の小さい領域に格納する処理とを含む集積装置のレイアウト処理をコンピュータに実行させるプログラムである。
【００２１】
本発明によれば、プロセッサ等のデータ処理装置とメモリから構成される一般的なデータ処理システムを、ＬＳＩ等へ実装する際適用するものであり、プロセッサとメモリの相対的なレイアウトを工夫することにより、プログラミングによる電力最適化を可能にするものである。メモリの階層間においても、同一メモリ階層内においても効果を発揮する。
【発明の効果】
【００２２】
本発明によれば、メモリ階層内の物理的な場所まで考慮でき、個別アクセスの物理的な電力負荷まで考慮でき、きめ細かな電力の最適化を実現することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面に関連付けて説明する。
【００２４】
図１は、本発明の実施形態に係る集積装置の基本的なシステム構成図である。
【００２５】
この集積装置１は、基本構成を示し、プロセッサ等のデータ処理装置２、およびデータ処理装置２よりアクセス可能な複数（図１の例では４）のメモリバンク３−０〜３−３を有するメモリマクロ３により構成されている。
【００２６】
本実施形態の集積装置１においては、データ処理装置２とメモリバンク３−０〜３−３が、メモリアドレスと消費電力が相関関係を持つようにレイアウトされ、アクセス回数が多いデータを消費電力の小さい領域（近く）に置くことで低消費電力化を実現するように構成されている。
換言すれば、本実施形態によれば、任意の一つのプロセッサ等のデータ処理装置との距離（データ伝送距離）が予め決まっていて、かつ、その物理アドレスごとに対応して多種の所定距離が存在する集積装置において、対象のアプリケーションでアクセスする論理アドレスをアクセスの頻度順に可能な限り上記データ処理装置とのデータ伝送距離の短いメモリの物理アドレスに割り付けることにより、省電力化を図る。
メモリアドレスと消費電力との相関関係は、配線長、配線幅、配線材などで決まる。配線幅、配線材が同じ場合は、配線長で決まる。
【００２７】
電力の最適化は、物理アドレスをそのまま（アドレス変換テーブルなしに）最適化することも可能である。この場合の実行手段としては、たとえばプログラマ、コンパイラ等をあげることができる。
また、論理アドレスを物理アドレスに変換するアドレス変換テーブルがあり、このアドレス変換テーブルの設定値で最適化することも可能である。この場合の実行手段としては、たとえばプログラマ、コンパイラ、アクセス履歴とする手段等をあげることができる。
【００２８】
データ処理装置２は、メモリマクロ３とそこをアクセスする際の消費電力の情報をもとに最小の消費電力となるように処理を行う。
集積装置１は、アクセス回数の多いデータをより消費電力の小さいアドレスにアロケーションする（割り当てる）ことで低消費電力化を実現するように構成されている。
【００２９】
以下、本実施形態に係る集積装置１における電力最適化の具体的な省電力制御方法について説明する。
【００３０】
まず、基本的な概念について説明する。
本発明の実施形態に係る集積装置１は、プロセッサ等のデータ処理装置とメモリから構成される一般的なプロセッサシステムを、ＬＳＩ等へ実装する際適用するものであり、プロセッサとメモリの相対的なレイアウトを工夫することにより、プログラミングによる電力最適化を可能にするものである。メモリの階層間においても、同一メモリ階層内においても効果を発揮する。
【００３１】
基本的な内容は、以下の通りである。
【００３２】
１）：データ転送に必要な電力は、プロセッサ等のデータ処理装置２とデータが格納してあるメモリ素子の物理的な距離に相関する。
したがって、データ処理装置２に対し、メモリアドレスとデータ伝送（転送）の距離が相関関係を持つような物理レイアウト構成をとる。
これにより、プログラマがアクセスするアドレスに対する消費電力を明示的に認識でき、これを意識してメモリアロケーションを決めコーディングを行うことで、プログラミングレベルでの電力最適化が可能となる。
メモリアドレスとデータ伝送（転送）距離に相関をもたせるレイアウト手法の具体的な例としては、後で詳述する。
【００３３】
本発明の応用としては、以下のことをあげることができる。
【００３４】
２）：コンパイラにこの原理を導入することで容易に電力最適なオブジェクトコードの自動生成が可能となる。
たとえば、コンパイラがコンパイル時、アクセス頻度の高い変数を物理的に近いメモリに置くことで電力効率をあげることが可能である。
アクセス頻度の高い変数は、コンパイル時のプロファイリングにより推定でき、一般的にそのプログラム実行時にアクセス頻度が高い傾向にあるといわれるローカル変数や、プログラム中で明示的にアクセスが頻繁に行われる変数などを候補として推定できる。
逆に、画像フィルタリングのような画像処理アプリケーションの場合、画像データは、処理の際プロセッサに１回読み込まれるだけのことが多い。
ローカル変数が置かれるスタック領域を物理的に近くのメモリに置くことだけでも低消費電力化には有効である。
【００３５】
３）：仮想アドレスをサポートするシステムにおいては、論理アドレスを物理アドレスに変換する仮想アドレス制御部があるが、この仮想アドレス制御部のアドレス変換アルゴリズムに距離と消費電力の関係を追加することで、プログラム実行中に電力最適化を行うことが可能となる。
この場合、プログラムのコンパイル時に作成した変数のプロファイル情報とプログラム実行中の変数のアクセス情報を使用して、プログラム実行中に電力最適な物理アドレスマッピングを行うことが可能であり、静的に変数が決まらないようなプログラム、たとえば、マルチスレッドプログラム等でも対応が可能となる。
仮想アドレス制御部のアドレス変換アルゴリズムの修正は、このブロック内のみの修正で可能である。
コンパイラへの負担はなく、従来システムとバイナリ互換を持ちながら、低消費電力実行が可能なシステムが実現可能となる。
【００３６】
４）：前記３）については、メモリアドレスと距離のレイアウトによる電力相関関係に加えて、別途メモリアドレスと消費電力の相関テーブルを持つことで、距離の他の要因も考慮することができる。
たとえば、メモリアドレスによる配線材質の違いなどを考慮でき、より複雑な物理モデルについても対応も可能となる。
【００３７】
次に、本省電力制御方法についてより具体的に説明する。
【００３８】
まず、基本原理として、配線長と転送電力について述べる。
図２は、データ処理装置とメモリアレイの各メモリマクロとのレイアウトイメージを示す図である。また、図３は、配線負荷モデルを示す図である。
【００３９】
消費電力ｐは、容量ｃと周波数ｆとの積に比例する。
また、配線負荷モデルから、消費電力は、配線長に比例する。
メモリアドレスと消費電力との相関関係は、配線長、配線幅、配線材などで決まる。
配線幅、配線材が同じ場合は、配線長のみで決まり、集積回路(ＬＳＩ上)では、配線長が支配的と考えることができる。
【００４０】
総消費電力Ｐは、メモリマクロへの配線長をL1/L2/…/Lm、それぞれへのアクセス回数をN1/N2/…/Nmとすると、次式で与えられる。
【００４１】
［数１
P = k Σ(Lm x Nm)
m
ただし、kは定数を示す。
【００４２】
アクセス回数N1/N2/…/Nnは実行アプリケーションプログラムにより決まるため、総消費電力Ｐを最小とするように、配線長L1/L2/…/Lnを選びメモリアロケーションを行うことで、プログラム実行時の電力最適化を実現することが可能となる。
【００４３】
次に、総消費電力Ｐを最小とする基本アルゴリズムについて説明する。
【００４４】
図４は、総消費電力Ｐを最小とする基本アルゴリズムを示す図である。
この処理は、基本的に、変数のアクセス数を算出するステップＳＴ１００と、変数のアロケーションを行うステップＳＴ２００とにより形成される。
【００４５】
問題：
すべての変数アクセスにかかる総消費電力が最小となる各変数の配置を求める。
【００４６】
定義：
ある変数iのアクセスにかかる消費電力(p)は配線長(l)とアクセス回数(n)の積に比例する。
【００４７】
［数２］
p(i) ∝ l(i) * n(i)
l : 配置された場所までのデータ転送経路長
n : アクセス回数
【００４８】
変数の数は有限でありその数をＭと表したとき、全ての変数アクセスに対してかかる総消費電力(P)は次式で与えられる。
【００４９】
［数３］
P = Σ(i=0,M) { l(i) *n(i) }
【００５０】
解法
図４のフローチャートのステップＳＴ１００においてn(i)を求める。
そして、ステップＳＴ２００において、与えられたすべてのn(i)に対して総消費電力(P)が最小となるすべてのl(i)を求める
【００５１】
以下に、基本アルゴリズムのステップＳＴ１００とステップＳＴ２００の具体的な解法について説明する。
【００５２】
ステップＳＴ１００の解法
各変数のアクセス回数n(i)を求める。
【００５３】
(方法１)：
コンパイル時にプログラムを解析することで変数iがループに含まれるか否かを判定することができる。
たとえば、C/C++の場合 do文やwhile文、for文が出現した場合、直後のループボディ({...})はループに含まれた部分と判定できる。
プログラム解析により、すべてのループの回数がわかる場合は、この回数を用いて、アクセス回数が算出できる。
【００５４】
(方法２)：
ループ回数不明なループがひとつでもある場合、プログラマがアプリケーションの傾向から、そのループの回数を推定し、その回数を用いてアクセス回数が算出できる。
【００５５】
(方法３)：
ループ回数不明なループがひとつでもある場合、以下のような重み付けでアクセス回数を算出することもできる。一般的に、ループ内の変数は、ループ外の変数よりアクセス回数が多いため、これにしたがって、相対的な位置関係を決めるものである。
次にように、n(i)を決定する。
【００５６】
［数４］
ループに含まれない場合 n(i) = 1;
ループに含まれる場合 n(i) = 100;
【００５７】
値はループに含まれる場合の方が含まれない場合より大きいという関係であれば良く、必ずしも１００：１である必要はない。
【００５８】
(方法４)：
またループの中にループがある(ネスティング)場合はさらにn(i)を大きい値にすることにより、さらに詳細な電力制御を可能とする。
【００５９】
［数５］
ループに含まれない場合 n(i) = 1;
ループに含まれる場合 n(i) = 100;
さらにN重ループであった場合 n(i) = 100 * N;
【００６０】
(方法５)：
プログラム実行時に変数ごとにアクセス履歴を取る手段を用いることによって、アクセス回数を計測することができる。
【００６１】
なお、上記各方法に対し、プログラム中の条件分岐については、以下の方法等であらかじめ決めておいた推定分岐確率を用いてアクセス回数を算出する。
たとえば方法ａでは、プログラマによる予測値を用いる。
方法ｂでは、統計的な推定分岐確率、たとえばIf/else 各50%、for/while 後方分岐確率90%、前方分岐確率10%を用いる。
【００６２】
図５は、図４のステップＳＴ１００の具体的な処理を示すフローチャートである。
図６は、図５の処理の変数リストの例を示す図である。
【００６３】
図５においては、データ処理装置が複数の場合に対応可能な処理フローである。
また、図６の変数リストの項目で、「変数」は変数の名前を、「Ｎｏ」はアクセスするデータ処理装置の番号を、「アクセス数」はアクセスされる回数を、それぞれ示している。
【００６４】
変数のアクセス数を算出するステップＳＴ１００では、図６に示すような変数のリストを作成し（ＳＴ１１０）、アクセス数算出ルーチン処理を行う（ＳＴ１２０）。このアクセス数算出ルーチン処理の入力は変数であり、出力はアクセス数である。
次に、変数リストのアクセス数を記録する（ＳＴ１３０）。
全てのデータ処理装置についてチェックが完了したか否かを判別し（ＳＴ１４０）、完了したと判別すると全変数について変数リストに記録したか否かを判別する（ＳＴ１５０）。
そして、全変数について変数リストに記録したと判別すると、処理を終了する。
また、ステップＳＴ１４０，ＳＴ１５０において、否定的な判別結果が得られると、ステップＳＴ１２０のアクセス数算出ルーチン処理から上記処理を繰り返す。
【００６５】
図７は、図４のステップＳＴ１００の変数がローカル変数の場合の具体的な処理を示すフローチャートである。
図８は、図７の処理の変数リストの例を示す図である。
【００６６】
変数が、ローカル変数の場合（もしくは、データ処理装置がひとつのシステムの場合）は、アクセスするデータ処理装置が一つであり、処理が簡略化できる。すなわち、図５のステップＳＴ１４０の処理が不要となり、処理を簡略化できる。
【００６７】
図９は、図５および図７におけるステップＳＴ１２０のアクセス数算出ルーチン処理を示すフローチャートである。
【００６８】
ステップＳＴ１２０のアクセス数算出ルーチン処理においては、変数はアクセス数でカウント可能であるか否かを判別する（ＳＴ１２１）。
ステップＳＴ１２１において、変数はアクセス数でカウント可能であると判別すると、たとえば上述した基本アルゴリズムのステップＳＴ１００の解法で説明した（方法１）を採用して、アクセス数をカウントする（ＳＴ１２２）。
ステップＳＴ１２１において、変数はアクセス数でカウント可能でないと判別すると、たとえば上述した基本アルゴリズムのステップＳＴ１００の解法で説明した（方法２）、(方法３)、(方法４)のいずれかを採用して、アクセス数を推定する（ＳＴ１２３）。
【００６９】
次に、基本アルゴリズムのステップＳＴ２００の具体的な解法について説明する。
【００７０】
ステップＳＴ２００の解法
１）：データ処理装置が一つの場合
【００７１】
(方法１)：
全探索法を採用する。
与えられたi個のn(i)と選択可能なJ個のl(i)のすべての組み合わせを試行して、最小の総消費電力Ｐを求める。
【００７２】
(方法２)：
数値解析を行う。
n(i)を値が大きい方から順番に小さいl(i)を割り当てる。
【００７３】
２）：データ処理装置が複数の場合  (nP個)の場合
【００７４】
［数６］
P(i) ∝ l(i) * n(i ,u) + (1-l(i)) * n(i ,u)
u ： データ処理装置の番号
P = Σ(u=0,nP) Σ(i=0,M) { l(i) * n(i ,u) + (1-l(i)) * n(i ,u)}
【００７５】
(方法１)：
全探索法を採用する。
与えられたi個のn(i)と選択可能なJ個のl(i)のすべての組み合わせを試行して、最小の総消費電力Ｐを求める。
【００７６】
(方法２)：
数値解析を行う。
数学的方法により最小の総消費電力Ｐとなる組み合わせを決める。
全探索より計算量を減らすことができる。
【００７７】
以上、本実施形態に係る省電力制御方法について具体的に説明した。
以下、データ処理装置が一つの場合のメモリアクセスシステム例、データ処理装置が二つの場合のメモリアクセスシステム例、これらの場合の変数アロケーションの例、メモリアドレスとデータ転送距離に相関をもたせるレイアウト手法の例として、より具体的なメモリシステムの構成例について説明する。
【００７８】
図１０は、データ処理装置が一つの場合のメモリアクセスシステムの構成例を示すブロック図である。
図１１は、図１０のシステムにおける複数のメモリバンクを含むメモリマクロのレイアウトイメージを示す図である。
【００７９】
本メモリアクセスシステム１Ａは、図１０に示すように、データ処理装置２Ａ、メモリバンク(マクロ)３Ａ−０〜３Ａ−３を含むメモリ（マクロ）３Ａ、メモリインタフェース（ＭＩ／Ｆ）４、データコントローラ５、外部インタフェース（Ｉ／Ｆ）６、およびバス７を有する。
【００８０】
本システム１Ａにおいて、メモリ３Ａへのデータロード、ストアは、ＤＭＡ等のデータコントローラ５で実行される。
演算器を含むデータ処理装置２Ａは、メモリ３Ａ上のデータを、メモリインタフェース４を介して読み出して演算し、演算結果をメモリインタフェース４を介してメモリ３Ａに書き戻す。
【００８１】
図１１に示すように、メモリインタフェース４は、レイアウト上、メモリマクロ３Ａの配置領域を挟んでデータ処理装置２Ａの配置位置と対向する位置に配置されている。
メモリバンク３Ａ−０〜３Ａ−３は、たとえば2kbit（8bit x 256）メモリバンクとして構成され、アドレスは１６進数（Ｈｅｘ）でそれぞれ0〜ff H番地 (byteアドレス)が割り当てられている。
メモリバンク３Ａ−０は000〜0ff番地、メモリバンク３Ａ−１は100〜1ff番地、メモリバンク３Ａ−２は200〜2ff番地、メモリバンク３Ａ−２は300〜3ff番地が割り振られている。
【００８２】
この場合、データ処理装置２Ａとの距離の関係（配線長）は、メモリバンク３Ａ−０が最も近く、メモリバンク３Ａ−１が２番目に近く、メモリバンク３Ａ−２が３番目に近く、メモリバンク３Ａ−３が最も遠い。
【００８３】
本実施形態においては、メモリアドレスと消費電力が相関関係を持つようにレイアウトされることから、この例では、アクセス回数多いデータを消費電力の小さい領域、たとえばメモリバンク３Ａ−０や３Ａ−１に配置され、アクセス回数の少ないデータは、たとえばメモリバンク３Ａ−３や３Ａ−２に配置されることにより、低消費電力化が図れる。
【００８４】
図１２は、図１０および図１１のデータ処理装置が一つの場合のメモリへの変数アロケーションの例を示す図である。
また、図１３は、図１２に関連する変数リストを示す図である。
【００８５】
この例は、２５６要素の配列Ａ，Ｂ，Ｃをそれぞれ、１回、１０回、９７回、リード(読み出し)、ライト(書き込み)を行う場合である。
本実施形態においては、メモリアドレスと消費電力が相関関係を持つようにレイアウトされることから、アクセス回数が９７回と多い配列Ｃが、たとえばメモリバンク３Ａ−０にアロケーション（配置）され、アクセス回数が１０回の配列Ｂがメモリバンク３Ａ−１にアロケーション（配置）され、アクセス回数が最も少ない配列データＡがメモリバンク３Ａ−２にアロケーション（配置）されることにより、低消費電力化が図られている。
【００８６】
図１４は、データ処理装置が二つ場合のメモリアクセスシステムの構成例を示すブロック図である。
図１５は、図１４のシステムにおける複数のメモリバンクを含むメモリマクロのレイアウトイメージを示す図である。
【００８７】
本メモリアクセスシステム１Ｂが、図１０のメモリアクセスシステム１Ａと異なる点は、二つのデータ処理装置２−０，２−１を有することにある。
演算器を含むデータ処理装置２−０，２−１は、メモリ３Ｂ上のデータを、メモリインタフェース４Ｂを介して読み出して演算し、演算結果をメモリインタフェース４Ｂを介してメモリ３Ｂに書き戻す。
【００８８】
本例では、図１５に示すように、メモリインタフェース４Ｂは、レイアウト上、メモリマクロ３Ｂのメモリバンク３Ｂ−１とメモリバンク３Ｂ−２の配置領域間に配置されている。
すなわち、メモリインタフェース４Ｂは、レイアウト上、メモリマクロ３Ｂのメモリバンク３Ｂ−０，３Ｂ−１の配置領域を挟んでデータ処理装置２−０の配置位置と対向する位置に配置されている。
同様に、メモリインタフェース４Ｂは、レイアウト上、メモリマクロ３Ｂのメモリバンク３Ｂ−３，３Ｂ−２の配置領域を挟んでデータ処理装置２−１の配置位置と対向する位置に配置されている。
このように、メモリインタフェース４Ｂは、データ処理装置２−０，２−１において共用されており、データ処理装置２−０，２−１の調停（Arbitration）機能および各メモリバンク３Ｂ−０〜３Ｂ−３へのデータ入出力インタフェースとしての機能を有している。
【００８９】
本実施形態においては、メモリアドレスと消費電力が相関関係を持つようにレイアウトされることから、この例では、データ処理装置２−０に対してアクセス回数多いデータが消費電力の小さい領域であるメモリバンク３Ｂ−０に配置され、アクセス回数の少ないデータは３Ｂ−１に配置される。
同様に、データ処理装置２−１に対してアクセス回数多いデータが消費電力の小さい領域であるメモリバンク３Ｂ−３に配置され、アクセス回数の少ないデータは３Ｂ−２に配置される。
これにより、低消費電力化が図られる。
【００９０】
図１６は、図１４および図１５のデータ処理装置が二つの場合のメモリへの変数アロケーションの例を示す図である。
また、図１７は、図１６に関連する変数リストを示す図である。
【００９１】
この例は、２５６要素の配列Ａ，Ｂ，Ｃをそれぞれ以下のような回数をもってリード(読み出し)、ライト(書き込み)を行う場合である。
すなわち、配列Ａをデータ処理装置２−１で２００回、配列Ｂをデータ処理装置２−０で６５回、配列Ｃをデータ処理装置２−０で５回、データ処理装置２−１で２回、リード(読み出し)、ライト(書き込み)を行う場合である。
本実施形態においては、メモリアドレスと消費電力が相関関係を持つようにレイアウトされることから、データ処理装置２−１でアクセス回数が２００回と多い配列Ａが、メモリバンク３Ｂ−３にアロケーション（配置）される。また、たとえばアクセス回数がデータ処理装置２−１で２回と少ない配列データＣがメモリバンク３Ｂ−２にアロケーション（配置）される。
また、データ処理装置２−０でアクセス回数が６５回と多い配列Ｂがメモリバンク３Ａ−０にアロケーション（配置）され、アクセス回数がデータ処理装置２−０で５回と少ない配列データＣがメモリバンク３Ｂ−１にアロケーション（配置）される。
これにより、低消費電力化が図られている。
【００９２】
次に、本実施形態に係る変数アロケーションの方式ついて説明する。
変数アロケーションの方式としては、非共有変数、共有変数の順番にアロケーションする第１方式、全変数を一緒にアロケーションする第２方式、およびローカル変数、グローバル変数の順番でアロケーションする第３方式を採用することができる。
【００９３】
図１８は、本実施形態に係る変数アロケーションの第１方式を示すフローチャートである。
【００９４】
この第１方式では、非共有変数のアクセス数を算出し（ＳＴ２０１）、非共有変数をアロケーションする（ＳＴ２０２）。
共有変数のアクセス数を算出し（ＳＴ２０３）、共有変数をアロケーションする（ＳＴ２０４）。
このように、第１方式では、非共有変数、共有変数の順番にアロケーションする。
【００９５】
図１９は、本実施形態に係る変数アロケーションの第２方式を示すフローチャートである。
【００９６】
この第２方式では、非共有変数のアクセス数を算出し（ＳＴ２１１）、共有変数のアクセス数を算出し（ＳＴ２１２）、全変数をアロケーションする（ＳＴ２１３）。
このように、第２方式では、全変数を一緒にアロケーションする。
【００９７】
次に、本発明の実施形態に係る集積装置を、より具体的なメモリシステム構成として適用した集積装置の例について説明する。
【００９８】
図２０は、本発明の実施形態に係るメモリシステムを採用した集積装置の一例を示すシステム構成図である。
【００９９】
図２０の集積装置１０は、複数（図２０では４）のアクセスクラスタ２０、３０、４０、および５０を主構成要素として有している。
各アクセスクラスタ２０〜５０は、それぞれデータ処理装置としての処理モジュール
２１，３１，４１，５１と、メモリマクロ(メモリシステム)２２、３２、４２、５２を有している。
【０１００】
アクセスクラスタ２０のメモリマクロ２２は複数（図２０では４）メモリバンク２２１−１〜２２１−４を有する。図中、図の複雑化を避けるため、メモリバンク２２１−１〜２２１−４をＢ−０、Ｂ−１、Ｂ−２、Ｂ−３として示している。
アクセスクラスタ３０のメモリマクロ３２は複数（図２０では４）メモリバンク３２１−１〜３２１−４を有する。図中、図の複雑化を避けるため、メモリバンク３２１−１〜３２１−４をＢ−４、Ｂ−５、Ｂ−６、Ｂ−７として示している。
アクセスクラスタ４０のメモリマクロ４２は複数（図２０では４）メモリバンク４２１−１〜４２１−４を有する。図中、図の複雑化を避けるため、メモリバンク４２１−１〜４２１−４をＢ−８、Ｂ−９、Ｂ−Ａ、Ｂ−Ｂとして示している。
アクセスクラスタ５０のメモリマクロ５２は複数（図２０では４）メモリバンク５２１−１〜５２１−４を有する。図中、図の複雑化を避けるため、メモリバンク５２１−１〜５２１−４をＢ−Ｃ、Ｂ−Ｄ、Ｂ−Ｅ、Ｂ−Ｆとして示している。
【０１０１】
図２１は、図２０の集積装置のメモリマップを示す図である。
【０１０２】
この例では、アクセスクラスタ２０のメモリバンク２２１−１〜２２１−４（Ｂ−０、Ｂ−１、Ｂ−２、Ｂ−３）に１６進数でアドレス000〜3ffが割り振られている。
アクセスクラスタ３０のメモリバンク３２１−１〜３２１−４（Ｂ−４、Ｂ−５、Ｂ−６、Ｂ−７）に１６進数でアドレス400〜7ffが割り振られている。
アクセスクラスタ４０のメモリバンク４２１−１〜４２１−４（Ｂ−８、Ｂ−９、Ｂ−Ａ、Ｂ−Ｂ）に１６進数でアドレス800〜bffが割り振られている。
アクセスクラスタ５０のメモリバンク５２１−１〜５２１−４（Ｂ−Ｃ、Ｂ−Ｄ、Ｂ−Ｅ、Ｂ−Ｆ）に１６進数でアドレスc00〜fffが割り振られている。
【０１０３】
この場合も、前述した省電力制御方法に従って、メモリアドレスとデータ移動距離が相関関係を持つように、すなわちメモリアドレスと消費電力が相関関係を持つようにレイアウトされている。
ここでは、その具体的なレイアウトについての詳細は省略する。
【０１０４】
図２２は、図２０の集積装置のメモリマクロの配線例の概要について説明するための図である。
【０１０５】
この例では、メモリマクロ２２、３２、４２、５２への配線は、図２２に示すように、データパッド６１、アドレスパッド６２を経由して、他のブロックと接続される。
【０１０６】
以下、本実施形態に係る省電力制御方法を採用可能なメモリシステムの構成例について具体的に説明する。
【０１０７】
アクセスクラスタ２０は、一つ（または複数）の入出力ポート２１１を有する演算器を含むデータ処理装置としての処理モジュール（ＰＭ０）２１と、処理モジュール２１によりアクセス可能なＤＲＡＭやＳＲＡＭ等の複数（図２０では２）のメモリマクロ(Memory System)２２と、を有している。
【０１０８】
メモリマクロ２２は、図２０中に設定した直交座標系のＹ方向（第１方向）に一列に配列された複数のバンク２２１−１〜２２１−ｎ（本例ではｎ＝４）を含むメモリマクロ２２１と、メモリマクロ２２１の各バンク２２１−１〜２２１−ｎと処理モジュール２１とのデータ転送の整合や各バンク２２１−１〜２２１−ｎへのアクセス制御等を行うメモリインタフェース(Memory Interface：Ｉ／Ｆ)２２２と、を備えている。
メモリインタフェース２２２は、メモリマクロ２２１の配置領域を挟んで処理モジュール２１の配置位置と対向する位置に配置されている。
【０１０９】
処理モジュール２１の入出力ポート２１１と、各メモリインタフェース２２２と、各メモリバンク２２１−１〜２２１−ｎとは、メモリマクロ２２１の配置領域（の上層）にＹ方向（第１方向）およびＸ方向（第２方向）にマトリクス状（格子状）に配線された接続配線により接続されている。
図２０の例では、処理モジュール２１の入出力ポート２１１とメモリインタフェース２２３２とがＹ方向（第１方向）の接続配線により直線的に接続されている。
接続配線は、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）が多層配線されるが、接続配線については、後で詳述する。
【０１１０】
アクセスクラスタ３０は、一つ（または複数）の入出力ポート３１１を有する処理モジュール（ＰＭ１）３１と、処理モジュール３１によりアクセス可能なＤＲＡＭやＳＲＡＭ等の複数（図２０では２）のメモリマクロ(Memory System)３２と、を有している。
【０１１１】
メモリマクロ３２は、図２０中に設定した直交座標系のＹ方向（第１方向）に一列に配列された複数のバンク３２１−１〜３２１−ｎ（本例ではｎ＝４）を含むメモリマクロ３２１と、メモリマクロ３２１の各バンク３２１−１〜３２１−ｎと処理モジュール３１とのデータ転送の整合や各バンク３２１−１〜３２１−ｎへのアクセス制御等を行うメモリインタフェース(Memory Interface：Ｉ／Ｆ)３２２と、を備えている。なお、図面では、複雑化を避けるためメモリマクロ３２１のバンク等の符号は省略している。
メモリインタフェース３２２は、メモリマクロ３２１の配置領域を挟んで処理モジュール３１の配置位置と対向する位置に配置されている。
【０１１２】
処理モジュール３１の入出力ポート３１１と、各メモリインタフェース３２２と、各メモリバンク３２１−１〜３２１−ｎとは、メモリマクロ３２１の配置領域（の上層）にＹ方向（第１方向）およびＸ方向（第２方向）にマトリクス状（格子状）に配線された接続配線により接続されている。
図２０の例では、処理モジュール３１の入出力ポート３１１とメモリマクロ３２のメモリインタフェース３２２とがＹ方向（第１方向）の接続配線により直線的に接続されている。
接続配線は、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）が多層配線されるが、接続配線については、後で詳述する。
アクセスクラスタ３０は、アクセスクラスタ２０とＸ方向（第２方向）に並列に配置され、互いにメモリマクロのマトリクス配置に対応するメモリバンクが、Ｘ方向（第２方向）に配線されたバスにより接続されている。
【０１１３】
また、アクセスクラスタ３０のメモリマクロ３２１の各バンク３２１−１〜３２１−ｎとアクセスクラスタ２０のメモリマクロ２２１の各バンク２２１−１〜２２１−ｎは、それぞれＹ方向の２次元的な高さを同じにして、Ｘ方向に並列に配置されている。
そして、Ｘ方向に並列配置されたメモリマクロ３２１の各バンク３２１−１〜３２１−ｎとメモリマクロ２２１の各バンク２２１−１〜２２１−ｎ間の接続配線にはバッファとしてのフリップフロップＦＦが配置されている。
【０１１４】
アクセスクラスタ４０は、一つ（または複数）の入出力ポート４１１を有する処理モジュール（ＰＭ２）４１と、処理モジュール４１によりアクセス可能なＤＲＡＭやＳＲＡＭ等の複数（図２０では２）のメモリマクロ(Memory System)４２と、を有している。
【０１１５】
メモリマクロ４２は、図２０中に設定した直交座標系のＹ方向（第１方向）に一列に配列された複数のバンク４２１−１〜４２１−ｎ（本例ではｎ＝４）を含むメモリマクロ４２１と、メモリマクロ４２１の各バンク４２１−１〜４２１−ｎと処理モジュール４１とのデータ転送の整合や各バンク４２１−１〜４２１−ｎへのアクセス制御等を行うメモリインタフェース(Memory Interface：Ｉ／Ｆ)４２２と、を備えている。
メモリインタフェース４２２は、メモリマクロ４２１の配置領域を挟んで処理モジュール４１の配置位置と対向する位置に配置されている。
【０１１６】
処理モジュール４１の入出力ポート４１１と、メモリインタフェース４２２と、各メモリバンク４２１−１〜４２１−ｎとは、メモリマクロ４２１の配置領域（の上層）にＹ方向（第１方向）およびＸ方向（第２方向）にマトリクス状（格子状）に配線された接続配線により接続されている。
図２０の例では、処理モジュール４１の入出力ポート４１１とメモリマクロ４２のメモリインタフェース４２２とがＹ方向（第１方向）の接続配線により直線的に接続されている。
接続配線は、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）が多層配線されるが、接続配線については、後で詳述する。
【０１１７】
そして、アクセスクラスタ２０とアクセスクラスタ４０とは、Ｙ方向（第１方向）にインタフェースを介して対称的に配置され、互いの対応する位置に配置されたメモリインタフェース同士２２２と４２２が接続されている。
本実施形態においては、対称的に配置された複数のアクセスクラスタ２０と４０の各メモリシステムは、メモリインタフェースを共用している。
具体的には、メモリマクロ２２のメモリインタフェース２２２と、メモリマクロ４２のメモリインタフェース４２２とが、互いに共用するように構成されている。
これらの共用のメモリインタフェースは、他のメモリシステムへのアクセスを調停する調停部を含む。調停部については後で説明する。
【０１１８】
アクセスクラスタ５０は、一つ（または複数）の入出力ポート５１１を有する処理モジュール（ＰＭ３）５１と、処理モジュール５１によりアクセス可能なＤＲＡＭやＳＲＡＭ等の複数（図２０では２）のメモリマクロ(Memory System)５２と、を有している。
【０１１９】
メモリマクロ５２は、図２０中に設定した直交座標系のＹ方向（第１方向）に一列に配列された複数のバンク５２１−１〜５２１−ｎ（本例ではｎ＝４）を含むメモリマクロ５２１と、メモリマクロ５２１の各バンク５２１−１〜５２１−ｎと処理モジュール５１とのデータ転送の整合や各バンク５２１−１〜５２１−ｎへのアクセス制御等を行うメモリインタフェース(Memory Interface：Ｉ／Ｆ)５２２と、を備えている。なお、図面では、複雑化を避けるためメモリマクロ５２１のバンク等の符号は省略している。
メモリインタフェース５２２は、メモリマクロ５２１の配置領域を挟んで処理モジュール４１の配置位置と対向する位置に配置されている。
【０１２０】
処理モジュール５１の入出力ポート５１１と、メモリインタフェース５２２と、各メモリバンク５２１−１〜５２１−ｎとは、メモリマクロ５２１の配置領域（の上層）にＹ方向（第１方向）およびＸ方向（第２方向）にマトリクス状（格子状）に配線された接続配線により接続されている。
図２０の例では、処理モジュール５１の入出力ポート５１１とメモリマクロ５２のメモリインタフェース５２２とがＹ方向（第１方向）の接続配線により直線的に接続されている。
接続配線は、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）が多層配線されるが、接続配線については、後で詳述する。
【０１２１】
アクセスクラスタ５０は、アクセスクラスタ４０とＸ方向（第２方向）に並列に配置され、互いに上記複数のメモリマクロのマトリクス配置に対応するメモリバンクが、Ｘ方向（第２方向）に配線されたバスにより接続されている。
また、アクセスクラスタ５０のメモリマクロ５２１の各バンク５２１−１〜５２１−ｎとアクセスクラスタ４０のメモリマクロ４２１の各バンク４２１−１〜４２１−ｎは、それぞれＹ方向の２次元的な高さを同じにして、Ｘ方向に並列に配置されている。
そして、Ｘ方向に並列配置されたメモリマクロ５２１の各バンク５２１−１〜５２１−ｎとメモリマクロ４２１の各バンク４２１−１〜４２１−ｎ間の接続配線にはバッファとしてのフリップフロップＦＦが配置されている。
【０１２２】
そして、アクセスクラスタ３０とアクセスクラスタ５０とは、Ｙ方向（第１方向）にインタフェースを介して対称的に配置され、互いの対応する位置に配置されたメモリインタフェース同士３２２と５２２が接続されている。
本実施形態においては、対称的に配置された複数のアクセスクラスタ３０と５０の各メモリシステムは、メモリインタフェースを共用している。
具体的には、メモリマクロ３２のメモリインタフェース３２２と、メモリマクロ５２のメモリインタフェース５２２とが、互いに共用するように構成されている。
これらの共用のメモリインタフェースは、他のメモリシステムへのアクセスを調停する調停部を含む。調停部については後で説明する。
【０１２３】
以上説明した本実施形態の集積装置１０は、次のような特徴をもって構成されている。
【０１２４】
集積装置１０は、メモリとロジックが混載であることを利用して、一般的なクロスバー（X-bar）によるバスシステムを、図２０に示すように、メモリ上にマッピングしている。
近年の製造技術ではロジック回路規模の増大により配線層が増加しているが、メモリ回路は規模が増大しても必要となる配線層数はほとんど増えない。このためメモリ上の上部側の配線層は未使用であることが多い。これを利用してメモリシステム上にバスシステムの配線を通すことにより、メモリの面積をほとんど増やすことなくバスシステムを構築できる。
本実施形態においては、配線長増大による周波数低下を回避するため、接続配線であるバスはパイプライン化している。
また、配線面積増大を回避するため各処理モジュール-メモリシステム間の配線は１対１接続ではなく共有配線としている。
【０１２５】
各メモリシステムのメモリインタフェースＩ／Ｆは、Ｙ方向（第１方向）におけるレイアウト上中心に配置している。これは各処理モジュールと各メモリインタフェースＩ／Ｆまでの間を等距離かつ最短にして、配線量を減らすためである。
メモリインタフェースＩ／Ｆがレイアウト中心にあることによりメモリ内資源が２倍に有効活用できる。これは、図２０の複数のアクセスクラスタ２０，３０，４０，５０をＹ方向（第１方向）およびＸ方向（第２方向）構成においてメモリインタフェースＩ／Ｆを境界としてメモリ内資源が２分割されるので、同一メモリに複数のアクセスが同時に行われてもメモリインタフェースＩ／Ｆを境界として別々の方へのアクセスであれば、同時にアクセスできるからである。
【０１２６】
図２０において、Ｘ方向（第２方向または横方向）の接続配線は、各処理モジュールＰＭ（０〜３）を起点として、全てのメモリシステムにアクセスできるようにＸ方向（第２方向）に縦貫されている。
この配線を利用して、図２３中、配線ＬＮＸで示すように、Ｘ方向（第２方向）メモリ−メモリ間転送も行うことが可能である。
Ｘ方向（第２方向）の同一配線をモードの設定によって図２０の接続形態と図２３の接続形態を切り替えるだけであることから、ほとんど面積を増大させることなく高速なメモリ−メモリ間転送を実現できる。
このＸ方向転送モード（横転送モード）は必要のない用途には削除可能である。
【０１２７】
集積装置１０は、メモリシステム上にバスシステムをマッピングしているので、図２４に示すように、データバスとメモリインタフェースＩ／Ｆ間にアクセス先のバンクがあればダイレクトにアクセスできる。
この図２４の例においては、アクセスクラスタ２０の処理モジュール２１（ＰＭ０）が左端にあるメモリマクロ２２１のバンク２２１−２にアクセスを行い、アクセスクラスタ３０の処理モジュール３１（ＰＭ１）が同メモリマクロ２２１のバンク２２１−１にアクセスを行っている。
その結果、アクセスレイテンシの短縮が実現できる。
【０１２８】
本実施形態の集積装置１０においては、経路途中にアクセス先があれば同一メモリに属する同時アクセスでもバンクが異なり、かつＹ方向（第１方向または縦方向）の配線ＬＮＹが競合しなければ同時アクセスが可能となる。
これにより、図２４および図２５に示すように、単純にX-barをマッピングするのと比較して、面積を増やすことなく、スループットを向上させることができる。
上述したように、図２４の例においては、アクセスクラスタ２０の処理モジュール２１（ＰＭ０）が左端にあるメモリマクロ２２１のバンク２２１−２にアクセスを行い、アクセスクラスタ３０の処理モジュール３１（ＰＭ１）が同メモリマクロ２２１のバンク２２１−１にアクセスを行っている。
本実施形態においては、図２５に示すように、同程度の面積で同時アクセスが実現でき、かつレイテンシの短縮も実現できる。
【０１２９】
また、Ｘ方向（第２方向または横方向）の配線は各処理モジュールＰＭに個別(Private)に持たせる必要があるが、Ｙ方向（第１方向または縦方向）の配線は求める性能、および許される資源（面積）により、図２６および図２７の（Ａ）〜（Ｃ）に示すように、プライベート（private）配線ＰＲＬ、パブリック（public）配線ＰＢＬ、およびコモン（common）配線ＣＭＬの３形態をとることが可能となる。
【０１３０】
プライベート（Private）の場合、図２６（Ａ），（Ｂ）に示すように、各処理モジュールＰＭに対して個別（専用）の配線を引くことになり、性能は最も高くなるが配線資源（面積）も最も必要となる。
【０１３１】
パブリック（Public）の場合、メモリインタフェースＩ／Ｆを越える領域にアクセスする場合に，各処理モジュールＰＭのリード（Read）データ配線、ライト（Write）データ配線 を共用することができる。
たとえば、図中の上側のアクセスクラスタ２０，３０の処理モジュール２１，３１（ＰＭ０，ＰＭ１）から下側の領域へのアクセスの場合、リード（Read）、ライト（Write）で括ると共用できる。
同時にアクセスがある場合は、パブリック（public）の系統数だけしかアクセスできないが、面積を抑えられる。
【０１３２】
コモン（Common）の場合、メモリインタフェースＩ／Ｆへ向かう方向(up)、離れていく方向(down)、によって、それぞれ共用化を行う。リード（Read）、ライト（Write）の区別は関係ない。図２６（Ｃ）に示すように、方向さえ一致すれば全ての処理モジュールＰＭ間で資源を共用できる。
図２６（Ａ）〜（Ｃ）に示すプライベート（private）配線、パブリック（public）配線、およびコモン（common）配線による実施例を図２７（Ａ）〜（Ｃ）にそれぞれ示している。
【０１３３】
図２０に示す集積装置１０は、各アクセスクラスタの処理モジュール２１，３１，４１，５１が一つの入出力ポート２１１，３１１，４１１，５１１を有する場合を一例として示しているが、各処理モジュール２１，３１，４１，５１に複数の入出力ポートを持たせるように構成することも可能である。
【０１３４】
図２８は、各処理モジュールが複数の入出力ポートを持つ集積装置の構成例を示す図である。
図２８の集積装置１０Ａは、各アクセスクラスタ２０Ａ，３０Ａ，４０Ａ，５０Ａの処理モジュール２１Ａ，３１Ａ，４１Ａ，５１Ａが２つの入出力ポート２１１，２１２、３１１，３１２、４１１，４１２、および５１１，５１２を有する。
【０１３５】
このように、各処理モジュールＰＭが複数のポートを持つことにより、スループットをさらに向上させることができる。この場合、図２８に示すように、アクセス先の領域を分割するだけなのでほとんど面積は増えない。
【０１３６】
なお、図２０の集積装置１０は、アクセスクラスタが４つを含む構成を一例として示しているが、アクセスクラスタが１個、２個、６個、あるいはそれ以上を含む構成を採用することも可能である。
【０１３７】
以上、集積装置のシステム構成を中心に説明したが、以下に、重複する部分もあるが、バンク構成、接続配線、メモリインタフェースの構成、機能についてさらに具体的に説明する。
【０１３８】
＜メモリマクロ構成＞
本実施形態においては、図２９に示すように、メモリマクロは複数のメモリバンクＢＮＫと１個のメモリインタフェースＩ／Ｆにより構成される。
本実施形態においては、Ｙ方向（第１方向）に配列配置されるメモリシステムでメモリインタフェースＩ／Ｆを共用している。
図２９に示すように、物理的にメモリインタフェースＩ／Ｆを中心として原則同数（半数ずつ）のバンクが配置される。
【０１３９】
＜バンク構成＞
図３０は、本実施形態に係るメモリバンクの構成例を示す図である。
【０１４０】
各バンクＢＮＫは、メモリアレイ１０１、書込回路１０２、読出回路１０３、およびセレクタ（Ｓ）１０４〜１０９を含んで構成されている。
【０１４１】
また、図３０において、ＰＲＬ−ＷＸはＸ方向（第２方向または横方向）のプライベートのライトデータバス（配線）を、ＰＲＬ−ＲＸはＸ方向（第２方向または横方向）のプライベートのリードデータバスを、ＰＲＬ−ＷＹはＹ方向（第１方向または縦方向）のプライベートのライトデータバスを、ＰＢＬ−ＷＹはＹ方向（第１方向または縦方向）のパブリックのライトデータバスを、ＰＲＬ−ＲＹはＹ方向（第１方向または縦方向）のプライベートのリードデータバスを、ＰＢＬ−ＲＹはＹ方向（第１方向または縦方向）のパブリックのリードデータバスを、ＣＭＬ−ＵはＹ方向（第１方向または縦方向）におけるアップ方向のコモンのコマンドアドレスバスを、ＣＭＬ−ＤはＹ方向（第１方向または縦方向）におけるダウン方向のコモンのコマンドアドレスバスを、それぞれ示している。
【０１４２】
本実施形態においては、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）が多層配線されるが、バンクＢＮＫ上に多層配線されている立体的な様子を図３１に示す。
【０１４３】
各バンクＢＮＫにおいては、横方向（Ｘ方向）のライトデータバスＰＲＬ−ＷＸ、縦方向（Ｙ方向）のライトデータバス(private, public)ＰＲＬ−ＷＹ,ＰＢＬ−ＷＹ、縦方向のコモン（common）のコマンドアドレスバスＣＭＬ−Ｕ，ＣＭＬ−Ｄ(up, down)から、セレクタ１０４を通して選択的に書き込みに関する情報を書込回路１０２に送る。
また、横方向（Ｘ方向）のリードバスＰＲＬ−ＲＸ、縦方向（Ｙ方向）のリードデータバス(private, public)ＰＲＬ−ＲＹ，ＰＢＬ−ＲＹ、縦方向のコモン（common）のコマンドアドレスバスＣＭＬ−Ｕ，ＣＭＬ−Ｄ(up, down)にセレクタ１０５〜１０９を介して選択的にデータを転送する。
【０１４４】
＜横方向（Ｘ方向、第２方向）コマンドアドレスバス配線＞
コマンドアドレスバスＣＭＬ−Ｘにはアクセス先のマクロ、バンク、アドレス、リード／ライト（Read/Write）、ライトマスク（Write Mask）、ID、バースト長、等の情報が含まれる。
コマンドアドレスバスＣＭＬ−Ｘは、図３２に示すように、各処理モジュールＰＭからＸ方向（第２方向または横方向）の全てのメモリシステムのメモリマクロに対して接続される。
処理モジュールＰＭと各メモリインタフェースＩ／Ｆ間は“Point to Point”（以下P2Pと略する）接続では配線量が膨大になる。したがって共有接続する。
横方向（Ｘ方向）は処理モジュールＰＭごとに専用(private)である。各分岐ＢＲＮＣではアクセス先のマクロに応じて分岐する。
分岐した後、メモリインタフェースＩ／Ｆまではプライベート（private）バス配線で接続される。
【０１４５】
＜横方向（Ｘ方向、第２方向）ライトデータバス配線＞
横方向のライトデータバスＰＲＬ−ＷＸはプライベート配線であるが、図３３に示すように、アクセス先ごとにP2Pで接続するのではなく共有である。
分岐ＢＲＮＣからメモリインタフェースＩ／Ｆまでの縦方向（Ｙ方向、第１方向）配線は、利用可能な配線リソースに応じて、プライベート（private）,パブリック（public）,コモン（common）のバス配線で接続される。
【０１４６】
＜縦方向（Ｙ方向、第２方向）ライトデータバス配線＞
処理モジュールＰＭから直下のメモリインタフェースＩ／Ｆまでの縦方向（Ｙ方向、第１方向）のライトデータバスは、図３４に示すように、プライベート（private）バスＰＲＬ−ＷＹで接続して構成する。
プライベートのライトデータバスＰＲＬ−ＷＹは横方向（Ｘ方向、第２方向）に配線されるライトデータバスＰＲＬ−ＷＸと直接接続される（図３４のから２つ目のバンクＢＮＫ２）。
処理モジュールＰＭ直下以外のプライベート縦配線では、図３５に示すように、横方向（Ｘ方向）からデータを転送するライトデータバスと直接接続され、そこから縦方向（Ｙ方向）にライトデータが転送される。
メモリインタフェースＩ／Ｆを越える縦方向ライトバスは横方向配線と接続されることはない。
また、図３６に示すように、遅延のレベルによってはメモリインタフェースＩ／ＦにおいてフリップフロップＦＦで一旦ラッチして転送する。
メモリインタフェースＩ／Ｆを越える場合、図３７に示すように、配線リソースの状況に応じて、メモリインタフェースＩ／Ｆ手前の複数のプライベート配線をセレクタＳでセレクトして、パブリック配線で形成する。
プライベート配線は、処理モジュールＰＭに対する専用配線なので、処理モジュールＰＭの数が増えてきた場合、全てをプライベート（private）で結線すると膨大な配線リソースが必要となる。この場合、直下以外に関してはコモン（common）の形態をとる。
【０１４７】
＜横方向（Ｘ方向、第２方向）リードデータバス配線＞
リードデータバスは処理モジュールＰＭ直下のメモリインタフェースＩ／Ｆに対しては、図３８に示すように、プライベート配線ＰＲＬ−ＲＸで接続される。横方向（Ｘ方向）のリードデータバス配線はプライベートであるが、アクセス先ごとにP2Pで接続するのではなく共有である。
図３８に示すように、縦方向（Ｙ方向、第２方向）配線との接続部分はセレクタＳＬＣで構成され、横方向（Ｘ方向）から転送されてくるデータと縦方向（Ｙ方向）から転送されてくるデータをセレクトする。
【０１４８】
＜縦方向（Ｙ方向、第１方向）リードデータバス配線＞
処理モジュールＰＭから直下のメモリインタフェースＩ／Ｆまでの縦方向（Ｙ方向）リードデータバスは、図３９に示すように、プライベートバスＰＲＬ−ＲＹで接続して構成する。
プライベートのリードデータバスＰＲＬ−ＲＹは、横方向（Ｘ方向）に配線されたリードデータバスＰＲＬ−ＲＸとセレクタＳで接続される（図３９の上から２つ目のバンクＢＮＫ２）。
処理モジュールＰＭ直下以外のプライベート縦配線では、図４０に示すように、横方向（Ｘ方向）からデータが転送されるリードデータバスＰＲＬ−ＲＸとセレクタＳで接続され、そこから選択的に次の横方向（Ｘ方向）にリードデータが転送される。
メモリインタフェースＩ／Ｆを越える縦方向（Ｙ方向）のリードデータバスは横方向（Ｘ方向）配線と接続されることはない。
また、図４１に示すように、遅延のレベルによってはメモリインタフェースＩ／ＦにおいてフリップフロップＦＦで一旦ラッチして転送する。
メモリインタフェースＩ／Ｆを越える場合、図４２に示すように、配線リソースの状況に応じて、メモリインタフェースＩ／Ｆ手前の複数のプライベート配線に分配して、パブリック配線で形成する。
プライベート配線は、処理モジュールＰＭに対する専用配線なので、処理モジュールＰＭの数が増えてきた場合、全てをプライベート（private）で結線すると膨大な配線リソースが必要となる。この場合、直下以外に関してはコモン（common）の形態をとる。
【０１４９】
＜縦方向（Ｙ方向、第１方向）データバス配線(common)＞
縦方向（Ｙ方向）のデータバスは配線資源が限られている場合、コモン配線によって配線量を減らすことが可能となる。
コモンではリードとライトで区別するのではなく、図４３および図４４に示すように、データの流れる方向で配線を形成する。便宜上、メモリインタフェースＩ／Ｆへ向かう方向を“上り(up)”、離れる方向を“下り(down)”と呼ぶ。
コモン配線では横方向（Ｘ方向）をライトデータバスが配線されている場合は、図４３の＜１＞、図４４の＜１＞の構成をとる。
コモン配線では横方向（Ｘ方向）をリードデータバスが配線されている場合は、図４３の＜２＞、図４４の＜２＞の構成をとる。
【０１５０】
＜Ｉ／Ｆ構成＞
メモリインタフェースＩ／Ｆにおいては、各処理モジュールＰＭから送られてくるコマンドを調停し、マクロ内のバンクのリソースが空いている場合に発行する処理を行う。
基本構成として、図４５に示すように、各処理モジュールＰＭに対応したコマンドバッファ（Command Buffer：以下CBと略）１１１−０〜１１１−ｎを最低１つずつ有し、さらにアービタ（arbiter）１１２、並びにセレクタ（Ｓ）１１３，１１４を有する。
また、アービタ１１２はＣＢ１１１−０〜１１１−ｎ内の命令のうち発行可能な命令を選択信号Ｓ１１２ａ，Ｓ１１２ｂにより選択して発行する。メモリインタフェースＩ／Ｆを中心としてＹ方向（第１方向）の上側（第１側）のメモリシステムのバンクと下側（第２側）のメモリシステムのバンクに対して同時に発行可能である。
また、図４６に示すように、配線リソースが許す場合、上側と下側のそれぞれに対し複数の命令配線を配線する（引く）ことも可能となる。
さらに、面積的に許されるのであれば、図４７に示すように、CBを複数持たせることも可能である。この場合、たとえば上側の処理モジュールＰＭへの転送経路にＯＲゲート１１５−０〜１１５−ｎが設けられる。
【０１５１】
＜縦方向（Ｙ方向、第１方向）アドレスバス配線＞
図４８に示すように、基本的に、メモリインタフェースＩ／Ｆから発行されたアドレス（コマンド）は縦方向（Ｙ方向）に転送され、分岐にＢＲＮＣにおいてアクセス先のバンクに応じて分かれる。
また、図４６または図４７に示すように、配線リソースに余裕があり、複数アドレス配線が引ける場合は、図４９に示すように、セレクタ（Ｓ）を通して最終的にバンクに入力される。
【０１５２】
図５０は、上述した本実施形態に係る集積装置の基本構成および接続配線の特徴をまとめて示す図である。
【０１５３】
図５０において、ＣＭＤはコマンド系配線を、ＷＤＴはライトデータ系配線を、ＲＤＴはリードデータ系配線をそれぞれ示している。
【０１５４】
本実施形態に係る集積装置の基本構成および接続配線の特徴（１）〜（９）は以下のとおりである。
【０１５５】
（１）：データのＸ方向（横）配線は、他の処理モジュールＰＭとの横方向の競合を回避するため、プライベート配線とする。
（２）：メモリインタフェースＩ／Ｆ手前にターゲットがある場合は直接アクセスする。これにより、レイテンシを短縮し、資源競合を低減できる。
（３）：データのＹ方向（縦）配線は配線資源でプライベートか束ねるかを決める。これにより、配線資源の効率化を図ることができる。
（４）：メモリインタフェースＩ／Ｆからのコマンド発行は、資源が許せば複数とする。これにより、スループットの向上を図れる。
（５）：コマンドはＹ方向（縦方向）、Ｘ方向（横方向）ともすべてプライベート配線とする。これにより、他の処理モジュールＰＭとの競合を回避できる。
（６）：データの処理モジュールＰＭ直下のＹ（縦）方向配線はプライベート配線とする。これにより、他の処理モジュールＰＭとの競合を回避できる。
（７）：メモリインタフェースＩ／ＦをＹ方向（第１方向）の中央に配置する。これにより、配線資源を２倍に有効利用できる。
（８）：Ｘ（横）方向のデータ配線は横転送モードとして使用可能である。これにより、メモリーメモリ間転送性能の向上を図ることができる。
（９）：処理モジュールＰＭに複数ポートを持たせてもよい。これにより、スループットの向上を図ることができる。
【０１５６】
以上説明したように、本実施形態によれば、データ処理装置２とメモリマクロ３−０〜３−３が、メモリアドレスと消費電力が相関関係を持つようにレイアウトされ、アクセス回数多いデータを消費電力の小さい領域（近く）に置くことから、低消費電力化を実現するができる。
すなわち、本実施形態によれば、任意の一つのプロセッサ等のデータ処理装置との距離（データ伝送距離）が予め決まっていて、かつ、その物理アドレスごとに対応して多種の所定距離が存在する集積装置において、対象のアプリケーションでアクセスする論理アドレスをアクセスの頻度順に可能な限り所定距離の短い物理アドレスに割り付けることから、省電力化を図ることが可能となる。
その結果、メモリ階層内の物理的な場所まで考慮でき、個別アクセスの物理的な電力負荷まで考慮でき、きめ細かな電力の最適化を実現することができる。
【０１５７】
また、本実施形態によれば、複数のメモリバンクを搭載するメモリシステムにおいて、メモリマクロ上にバスシステムを構築することにより、通常のX-barなどによる共有メモリシステムよりも高速に（高スループット）メモリアクセスを実行できる。
また、図２０等のように構成されるバスシステムの配線を利用して、メモリバンク間のバスを構築することにより、回路規模をほとんど増大させることなく、高速なメモリ−メモリ間データ転送を実現できる。
また、メモリマクロ上に配線しているので、アクセス先のバンク上を配線が通るときにはダイレクトにアクセスできるので低レイテンシを実行できる。
また、要求される性能と配線性とのトレードオフにより配線方法を変更したシステム、すなわち、処理モジュールＰＭ数、配線リソースと要求性能に応じてシステムを構築できる。
さらに、１つの処理モジュールＰＭにメモリシステムとのポートを複数持たせることにより、資源（面積）を消費することなく、さらに高い性能を構築したシステムを実現することができる。
また、処理モジュールＰＭ数が増加すると配線も増大するが、バス幅に応じてバス構成を変えたシステムを構築することができる。
【０１５８】
なお、本発明の実施形態は、上述した実施形態に拘泥せず、当業者であれば、本発明の要旨を変更しない範囲内で様々な改変が可能である。
【０１５９】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【図面の簡単な説明】
【０１６０】
【図１】本発明の実施形態に係る集積装置の基本的なシステム構成図である。
【図２】データ処理装置とメモリアレイの各メモリマクロとのレイアウトイメージを示す図である。
【図３】配線負荷モデルを示す図である。
【図４】総消費電力Ｐを最小とする基本アルゴリズムを示す図である。
【図５】図４のステップＳＴ１００の具体的な処理を示すフローチャートである。
【図６】図５の処理の変数リストの例を示す図である。
【図７】図４のステップＳＴ１００の変数がローカル変数の場合の具体的な処理を示すフローチャートである。
【図８】図７の処理の変数リストの例を示す図である。
【図９】図５および図７におけるステップＳＴ１２０のアクセス数算出ルーチン処理を示すフローチャートである。
【図１０】データ処理装置が一つの場合のメモリアクセスシステムの構成例を示すブロック図である。
【図１１】図１０のシステムにおける複数のメモリバンクを含むメモリマクロのレイアウトイメージを示す図である。
【図１２】図１０および図１１のデータ処理装置が一つの場合のメモリへの変数アロケーションの例を示す図である。
【図１３】図１２に関連する変数リストを示す図である。
【図１４】データ処理装置が二つ場合のメモリアクセスシステムの構成例を示すブロック図である。
【図１５】図１４のシステムにおける複数のメモリバンクを含むメモリマクロのレイアウトイメージを示す図である。
【図１６】図１４および図１５のデータ処理装置が二つの場合のメモリへの変数アロケーションの例を示す図である。
【図１７】図１６に関連する変数リストを示す図である。
【図１８】本実施形態に係る変数アロケーションの第１方式を示すフローチャートである。
【図１９】本実施形態に係る変数アロケーションの第２方式を示すフローチャートである。
【図２０】本発明の実施形態に係るメモリシステムを採用した集積装置の一例を示すシステム構成図である。
【図２１】図２０の集積装置のメモリマップを示す図である。
【図２２】図２０の集積装置のメモリマクロの配線例の概要について説明するための図である。
【図２３】図２０におけるＸ方向（第２方向または横方向）の接続配線を利用して、Ｘ方向（第２方向）メモリ−メモリ間転送も行う例を示す図である。
【図２４】図２０の集積装置において、データバスとメモリインタフェースＩ／Ｆ間にアクセス先のバンクがあればダイレクトにアクセスできることを説明するための図である。
【図２５】本実施形態の集積装置が、単純にX-barをマッピングするのと比較して、面積を増やすことなく、スループットを向上させることができることを説明するための図である。
【図２６】本実施形態の接続配線として、プライベート（private）配線ＰＲＬ、パブリック（public）配線ＰＢＬ、およびコモン（common）配線ＣＭＬの３形態を示す図である。
【図２７】プライベート（private）配線ＰＲＬ、パブリック（public）配線ＰＢＬ、およびコモン（common）配線ＣＭＬの実施例を示す図である。
【図２８】各処理モジュールが複数の入出力ポートを持つ集積装置の構成例を示す図である。
【図２９】Ｙ方向（第１方向）に配列配置されるメモリシステムでメモリインタフェースＩ／Ｆを共用しているメモリマクロの構成例を示す図である。
【図３０】本実施形態に係るメモリバンクの構成例を示す図である。
【図３１】本実施形態においては、指示情報配線（コマンドアドレス配線）とデータ配線（ライトデータ配線とリードデータ配線、あるいは共用配線）がバンク上に多層配線されている立体的な様子を示す図である。
【図３２】横方向（Ｘ方向、第２方向）のコマンドアドレスバス配線について説明するための図である。
【図３３】横方向（Ｘ方向、第２方向）のライトデータバス配線について説明するための図である。
【図３４】縦方向（Ｙ方向、第２方向）のライトデータバス配線について説明するための図であって、処理モジュールから直下のメモリインタフェースＩ／Ｆまでの縦方向（Ｙ方向、第１方向）のライトデータバスについて説明するための図である。
【図３５】縦方向（Ｙ方向、第２方向）のライトデータバス配線について説明するための図であって、処理モジュールから直下以外の縦方向（Ｙ方向、第１方向）のライトデータバスについて説明するための図である。
【図３６】遅延のレベルによってはメモリインタフェースＩ／ＦにおいてフリップフロップＦＦを設ける例を示す図である。
【図３７】縦方向（Ｙ方向、第２方向）のライトデータバス配線について説明するための図であって、配線リソースの状況に応じて、メモリインタフェースＩ／Ｆ手前の複数のプライベート配線をセレクトして、パブリック配線で形成する例を示す図である。
【図３８】横方向（Ｘ方向、第２方向）のリードデータバス配線について説明するための図である。
【図３９】縦方向（Ｙ方向、第２方向）のリードデータバス配線について説明するための図であって、処理モジュールから直下のメモリインタフェースＩ／Ｆまでの縦方向（Ｙ方向、第１方向）のリードデータバスについて説明するための図である。
【図４０】縦方向（Ｙ方向、第２方向）のリードデータバス配線について説明するための図であって、処理モジュールから直下以外の縦方向（Ｙ方向、第１方向）のリードデータバスについて説明するための図である。
【図４１】遅延のレベルによってはメモリインタフェースＩ／ＦにおいてフリップフロップＦＦを設ける例を示す図である。
【図４２】縦方向（Ｙ方向、第２方向）のリードデータバス配線について説明するための図であって、配線リソースの状況に応じて、メモリインタフェースＩ／Ｆ手前の複数のプライベート配線に分配して、パブリック配線で形成する例を示す図である。
【図４３】縦方向（Ｙ方向、第１方向）におけるアップ方向のデータバス配線(common)について説明するための図である。
【図４４】縦方向（Ｙ方向、第１方向）におけるダウン方向のデータバス配線(common)について説明するための図である。
【図４５】本実施形態に係るメモリインタフェースＩ／Ｆの基本構成を示す図である。
【図４６】本実施形態に係るメモリインタフェースＩ／Ｆの他の構成例を示す図である。
【図４７】本実施形態に係るメモリインタフェースＩ／Ｆのさらに他の構成例を示す図である。
【図４８】縦方向（Ｙ方向、第１方向）の基本的なコマンドアドレスバス配線について説明するための図である。
【図４９】縦方向（Ｙ方向、第１方向）の複数発行構成のコマンドアドレスバス配線について説明するための図である。
【図５０】本実施形態に係る集積装置の基本構成および接続配線の特徴をまとめて示す図である。
【符号の説明】
【０１６１】
１・・・集積装置、１Ａ，１Ｂ・・・メモリアクセスシステム、２，２−０，２−１・・・データ処理装置、３，３Ａ，３Ｂ，３−０〜３−３・・・メモリマクロ、３Ａ−０〜３Ａ−３，３Ｂ−０〜３Ｂ−３・・・メモリバンク、４，４Ａ，４Ｂ・・・メモリ異端フェース（ＭＩ／Ｆ）、５・・・データコントローラ、６・・・外部インタフェース（Ｉ／Ｆ）、１０・・・集積装置、２０，３０，４０，５０・・・アクセスクラスタ、２１，３１，４１，５１，ＰＭ・・・処理モジュール（データ処理装置）、２２，３２，４２，５２・・・メモリマクロ２２１，３２１，４２１，５２１・・・メモリマクロ、２２２，３２２，４２２，５２２，Ｉ／Ｆ・・・メモリインタフェース。
【図１】
0004497184.tif 000002
【図２】
0004497184.tif 000003
【図３】
0004497184.tif 000004
【図４】
0004497184.tif 000005
【図５】
0004497184.tif 000006
【図６】
0004497184.tif 000007
【図７】
0004497184.tif 000008
【図８】
0004497184.tif 000009
【図９】
0004497184.tif 000010
【図１０】
0004497184.tif 000011
【図１１】
0004497184.tif 000012
【図１２】
0004497184.tif 000013
【図１３】
0004497184.tif 000014
【図１４】
0004497184.tif 000015
【図１５】
0004497184.tif 000016
【図１６】
0004497184.tif 000017
【図１７】
0004497184.tif 000018
【図１８】
0004497184.tif 000019
【図１９】
0004497184.tif 000020
【図２０】
0004497184.tif 000021
【図２１】
0004497184.tif 000022
【図２２】
0004497184.tif 000023
【図２３】
0004497184.tif 000024
【図２４】
0004497184.tif 000025
【図２５】
0004497184.tif 000026
【図２６】
0004497184.tif 000027
【図２７】
0004497184.tif 000028
【図２８】
0004497184.tif 000029
【図２９】
0004497184.tif 000030
【図３０】
0004497184.tif 000031
【図３１】
0004497184.tif 000032
【図３２】
0004497184.tif 000033
【図３３】
0004497184.tif 000034
【図３４】
0004497184.tif 000035
【図３５】
0004497184.tif 000036
【図３６】
0004497184.tif 000037
【図３７】
0004497184.tif 000038
【図３８】
0004497184.tif 000039
【図３９】
0004497184.tif 000040
【図４０】
0004497184.tif 000041
【図４１】
0004497184.tif 000042
【図４２】
0004497184.tif 000043
【図４３】
0004497184.tif 000044
【図４４】
0004497184.tif 000045
【図４５】
0004497184.tif 000046
【図４６】
0004497184.tif 000047
【図４７】
0004497184.tif 000048
【図４８】
0004497184.tif 000049
【図４９】
0004497184.tif 000050
【図５０】
0004497184.tif 000051