(57)【要約】【課題】必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築支援するための技術を提供する。【解決手段】メモリ構築支援装置（１００）は、コンパイラデータベース（１０３）と、メモリコンパイラ選択機能（１０２）とを含む。コンパイラデータベースは、複数のメモリコンパイラがデータベース化されている。メモリコンパイラ選択機能は、必要なメモリ機能が与えられた場合に、上記コンパイラデータベースを参照して、上記必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを選択する。これにより、必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築を支援することができる。【選択図】図１
2010262433.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリコンパイラがデータベース化されたコンパイラデータベースと、
必要なメモリ機能が与えられた場合に、上記コンパイラデータベースを参照して、上記必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを選択可能なメモリコンパイラ選択機能と、を含み、
上記メモリコンパイラ選択機能によって選択されたメモリコンパイラが起動されることで上記メモリマクロが形成されることを特徴とするメモリ構築支援装置。
【請求項２】
複数のメモリマクロを、上記メモリ機能を備えたメモリに組み上げるためのラッパー回路生成機能を含み、
上記ラッパー回路生成機能は、複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求める請求項１記載のメモリ構築支援装置。
【請求項３】
上記メモリマクロアレイは、第１領域と、上記第１領域に対して第１方向に配置された第２領域と、上記第１領域に対して、上記第１方向とは交差する第２方向に配置された第３領域と、上記第２領域に対して上記第２方向に配置されるとともに、上記第３領域に対して上記第１方向に配置された第４領域とを含み、
上記ラッパー回路生成機能は、上記第１領域には１個のメモリマクロを割り当て、上記第２領域には、０以上のＮ（Ｎは整数）個のメモリマクロを割り当て、上記第３領域には０以上のＭ（Ｍは整数）個のメモリマクロを割り当て、上記第４領域には、０以上のＮ×Ｍ個のメモリマクロを割り当てる請求項２記載のメモリ構築支援装置。
【請求項４】
上記ラッパー回路生成機能は、上記第１領域及び上記第２領域には、２のべき乗に限定されないワード数を有するメモリマクロを割り当て、上記第３領域及び上記第４領域には２のべき乗のワード数を有するメモリマクロを割り当てる請求項３記載のメモリ構築支援装置。
【請求項５】
上記ラッパー回路生成機能は、メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数が、コンパイラの限界であるワード数上限よりも大きく、且つ、コンパイラの限界であるワード数上限の１．５倍よりも小さい場合には、コンパイラの限界であるワード数上限の１／２である第１メモリマクロと、コンパイラの限界であるワード数上限未満である第２メモリマクロとに分割してメモリを構築する請求項２記載のメモリ構築支援装置。
【請求項６】
複数のメモリコンパイラがデータベース化されたコンパイラデータベースを参照して、必要なメモリ機能情報に応じたメモリマクロを形成するためのメモリコンパイラを選択可能な第１機能と、
上記選択機能によって選択されたメモリコンパイラを起動してメモリマクロを形成する第２機能と、をコンピュータに実現させるためのメモリ構築支援プログラム。
【請求項７】
複数のメモリコンパイラがデータベース化されたコンパイラデータベースを参照して、必要なメモリ機能情報に応じたメモリマクロを形成するためのメモリコンパイラを選択可能な第１機能と、
上記選択機能によって選択されたメモリコンパイラを起動してメモリマクロを形成する第２機能と、
複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求める第３機能と、をコンピュータに実現させるためのメモリ構築支援プログラム。
【請求項８】
上記メモリマクロアレイは、第１領域と、上記第１領域に対して第１方向に配置された第２領域と、上記第１領域に対して、上記第１方向とは交差する第２方向に配置された第３領域と、上記第２領域に対して上記第２方向に配置されるとともに、上記第３領域に対して上記第１方向に配置された第４領域とを含み、
上記第３機能は、上記第１領域には１個のメモリマクロを割り当て、上記第２領域には、０以上のＮ（Ｎは整数）個のメモリマクロを割り当て、上記第３領域には０以上のＭ（Ｍは整数）個のメモリマクロを割り当て、上記第４領域には、０以上のＮ×Ｍ個のメモリマクロを割り当てる請求項７記載のメモリ構築支援プログラム。
【請求項９】
上記第３機能は、上記第１領域及び上記第２領域には、２のべき乗に限定されないワード数を有するメモリマクロを割り当て、上記第３領域及び上記第４領域には２のべき乗のワード数を有するメモリマクロを割り当てる請求項８記載のメモリ構築支援プログラム。
【請求項１０】
上記第３機能は、メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数が、コンパイラの限界であるワード数上限よりも大きく、且つ、コンパイラの限界であるワード数上限の１．５倍よりも小さい場合には、コンパイラの限界であるワード数上限の１／２である第１メモリマクロと、コンパイラの限界であるワード数上限未満である第２メモリマクロとに分割してメモリを構築する請求項７記載のメモリ構築支援プログラム。
【請求項１１】
請求項６乃至１０の何れか１項記載のメモリ構築支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ構築を支援するためのメモリ構築支援技術に関する。
【背景技術】
【０００２】
近年、携帯電話機向けのＳＯＣ（System on a chip）では、大規模化多彩な機能モジュールの搭載が進み、数千個、数百種類のメモリマクロが搭載されている。このようなＳＯＣに搭載されるメモリマクロの構築においては、メモリコンパイラと称されるシステムが用いられる。このメモリコンパイラによれば、メモリ仕様、例えばワード数、ビット数などを入力すると、シミュレーションモデル、レイアウトパターンなどを生成することができる。
【０００３】
ところで、ＬＳＩ設計者が最適と思われるメモリ構成を決定するのに、メモリの面積、消費電力、アクセスタイム、パッケージからくる制限等を考慮する必要があり、メモリ構成の最適化が煩雑となる。そこで特許文献１では、メモリ仕様を処理部に入力すると、コンパイラセルライブラリィのデータに基づき、面積等の順位決めを行い、メモリ構成の候補のうち、最適なものを選択可能なメモリコンパイラが提案されている。
【０００４】
また、特許文献２では、ライブラリから物理メモリ及びレジスタを読み込み、論理メモリの候補を選択し、上記候補の中から優先条件に基づき、最適論理メモリを抽出し、最後に、抽出された最適論理メモリに対する回路記述ファイルを生成する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１７１５２７号公報
【特許文献２】特開２００７−２０７０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように携帯電話機向けのＳＯＣでは、大規模化多彩な機能モジュールの搭載が進み、数千個、数百種類のメモリマクロが搭載されており、そのようなメモリマクロを生成するために、多彩なメモリコンパイラが開発されている。その結果、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラをＬＳＩ設計者が人手により選択するのが困難になっている。また、不適切なメモリコンパイラが選択され、チップ面積や消費電力が過大になってもチップ自体が動作することから、メモリコンパイラの選択が不適切であったことに気付かないことが多い。
【０００７】
尚、上記特許文献１，２には、メモリを抽出するための技術について記載されているものの、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することについては記載も示唆もされていない。
【０００８】
本発明の目的は、必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築支援するための技術を提供することにある。
【０００９】
本発明の別の目的は、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築支援するための技術を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、メモリ構築支援装置は、コンパイラデータベースと、メモリコンパイラ選択機能とを含む。コンパイラデータベースは、複数のメモリコンパイラがデータベース化されている。メモリコンパイラ選択機能は、必要なメモリ機能が与えられた場合に、上記コンパイラデータベースを参照して、上記必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを選択する。これにより、必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築を支援することができる。
【００１３】
上記メモリ構築支援装置には、複数のメモリマクロを、上記メモリ機能を備えたメモリに組み上げるためのラッパー回路生成機能を設けることができる。この上記ラッパー回路生成機能により、複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求めることができる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築支援するための技術を提供することができる。
【００１６】
また、ラッパー回路生成機能により、複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求めることができる。これにより、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築支援するための技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明にかかるメモリ構築支援装置の構成を示す説明図である。
【図２】本発明にかかるメモリ構築支援装置の別の構成を示す説明図である。
【図３】上記メモリ構築支援装置で取り扱われるメモリマクロアレイの構成例説明図である。
【図４】上記メモリマクロアレイにおいてワード長を分割した場合のアドレス割り当て例の説明図である。
【図５】複数のメモリマクロによってメモリマクロが形成され、各メモリマクロの出力をマルチプレクサで選択する場合の構成例説明図である。
【図６】上記メモリ構築支援装置で行われる処理のフローチャートである。
【図７】図６における主要処理の詳細を示すフローチャートである。
【図８】図６における主要処理の詳細を示すフローチャートである。
【図９】図６における主要処理の詳細を示すフローチャートである。
【図１０】図６における主要処理の詳細を示すフローチャートである。
【図１１】データベース化されるメモリコンパイラの具体例説明図である。
【図１２】図１１における主要メモリコンパイラについてのコンパイラ範囲説明図である。
【図１３】図１１における主要メモリコンパイラについてのコンパイラ範囲説明図である。
【図１４】図１１における主要メモリコンパイラについてのコンパイラ範囲説明図である。
【図１５】図１１における主要メモリコンパイラについてのコンパイラ範囲説明図である。
【図１６】所要ビット幅を複数のメモリマクロで得る場合の接続例説明図である。
【図１７】所要ワード数を複数のメモリマクロで得る場合の接続例説明図である。
【図１８】メモリマクロアレイの分割例説明図である。
【図１９】メモリマクロアレイの分割例説明図である。
【図２０】メモリマクロアレイの分割例説明図である。
【図２１】メモリにおけるアクセスタイムの特性図である。
【図２２】メモリにおける消費電力の特性図である。
【図２３】上記メモリ構築支援装置が形成されるコンピュータの構成例説明図である。
【発明を実施するための形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕本発明の代表的な実施の形態に係るメモリ構築支援装置（１００）は、コンパイラデータベース（１０３）と、メモリコンパイラ選択機能（１０２）とを含む。コンパイラデータベースは、複数のメモリコンパイラがデータベース化されている。メモリコンパイラ選択機能は、必要なメモリ機能が与えられた場合に、上記コンパイラデータベースを参照して、上記必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを選択する。これにより、必要なメモリ機能を備えたメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することによってメモリ構築を支援することができる。
【００２０】
〔２〕上記〔１〕において、複数のメモリマクロを、上記メモリ機能を備えたメモリに組み上げるためのラッパー回路生成機能を設けることができる。この上記ラッパー回路生成機能により、複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求めることができる。
【００２１】
〔３〕上記〔２〕において、上記メモリマクロアレイは、第１領域（Ａ）と、第２領域（Ｂ）と、第３領域（Ｃ）と、第４領域（Ｄ）とを含んで構成できる。この場合において、上記ラッパー回路生成機能は、上記第１領域には１個のメモリマクロを割り当て、上記第２領域には、０以上のＮ（Ｎは整数）個のメモリマクロを割り当て、上記第３領域には０以上のＭ（Ｍは整数）個のメモリマクロを割り当て、上記第４領域には、０以上のＮ×Ｍ個のメモリマクロを割り当てるように構成することができる。
【００２２】
〔４〕上記〔３〕において、上記ラッパー回路生成機能は、上記第１領域及び上記第２領域には、２のべき乗に限定されないワード数を有するメモリマクロ（３０１）を割り当て、上記第３領域及び上記第４領域には２のべき乗のワード数を有するメモリマクロ（３０３−１，３０３−２，３０３−３）を割り当てるように構成することができる。
【００２３】
〔５〕上記ラッパー回路生成機能は、メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数が、コンパイラの限界であるワード数上限よりも大きく、且つ、コンパイラの限界であるワード数上限の１．５倍よりも小さい場合には、第１メモリマクロ（２０１）と第２メモリマクロ（２０２）とに分割してメモリを構築するように構成することができる。第１メモリマクロ（２０１）は、コンパイラの限界であるワード数上限の１／２とされる。第２メモリマクロ（２０２）は、コンパイラの限界であるワード数上限未満とされる。
【００２４】
〔６〕上記メモリ構築支援装置は、メモリ構築支援プログラムをコンピュータ（３０）で実行することで形成される。メモリ構築支援プログラムは、第１機能と第２機能とをコンピュータに実現させるものである。第１機能は、複数のメモリコンパイラがデータベース化されたコンパイラデータベースを参照して、必要なメモリ機能情報に応じたメモリマクロを形成するためのメモリコンパイラを選択可能とする機能とされる。第２機能は、上記選択機能によって選択されたメモリコンパイラを起動してメモリマクロを形成する機能とされる。
【００２５】
〔７〕上記メモリ構築支援プログラムは、上記第１機能と上記第２機能とに加えて第３機能をコンピュータに実現させるものである。ここで、第３機能は、複数の領域を含むメモリマクロアレイの各領域に上記メモリコンパイラを組み合わせ、その組み合わせ毎に上記メモリマクロアレイの面積を評価することで、上記メモリマクロアレイの面積が最小となる構成を求める機能とされる。
【００２６】
〔８〕メモリ構築支援プログラムは、コンピュータ読み取り可能な記録媒体（３２１）に記録される。
【００２７】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２８】
図２３には、本発明にかかるメモリ構築支援プログラムが実行されるコンピュータが示される。図２３に示されるコンピュータ３０は、特に制限されないが、ＣＰＵ（中央処理装置）３１、記憶装置３２、入力装置３３、表示装置３４、及メモリ３５を含み、それらは、バス３６を介して互いに結合されている。ＣＰＵ３１は、所定のプログラムを実行する。本例においてこのＣＰＵ３１は、メモリ構築支援プログラムを実行する。記憶装置３２は、上記ＣＰＵ３１で実行されるメモリ構築支援プログラムや各種情報が格納される記録媒体３２１を含む。この記録媒体３２１は、記憶装置３２に着脱自在とされ、記憶装置３２に装着された状態で、コンピュータ３０によって読み書き可能な光ディスクあるいは磁気ディスクとされる。特に制限されないが、上記メモリ構築支援プログラムは、記憶装置３２からメモリ３５にロードされてからＣＰＵ３１で実行される。入力装置３３は、このコンピュータシステムに対して各種情報の入力を可能とするもので、この入力装置３３には、キーボードやマウス等の各種入力デバイスが含まれる。表示装置３４は、このコンピュータ３０での各種情報を必要に応じて表示するもので、例えば液晶ディスプレイ装置とされる。
【００２９】
このようなコンピュータ３０でメモリ構築支援プログラムが実行されることでメモリ構築支援装置が形成される。このメモリ構築支援装置は、例えば携帯電話機向けのＳＯＣに搭載されるメモリマクロの構築を支援する。
【００３０】
図１には、上記コンピュータ３０でメモリ構築支援プログラムが実行されることによって形成されるメモリ構築支援装置１００の構成例が示される。図１における矢印は、情報の流れを示している。
【００３１】
上記コンピュータ３０でメモリ構築支援プログラムが実行されることによって形成されるメモリ構築支援装置１００は、メモリコンパイラ及びメモリマクロ選択機能１０２を有する。メモリ構築のために必要なメモリ機能１０１が入力装置３３を介してメモリ構築支援装置に入力されると、メモリコンパイラ及びメモリマクロ選択機能１０２により、コンパイラデータベース１０３が参照され、上記メモリ機能に対応するメモリコンパイラやメモリマクロ１０４が選択される。そして、選択されたメモリコンパイラが呼び出され（１０５）、それがＣＰＵ３１で実行されることで、メモリマクロの各種情報が得られる。このメモリマクロの各種情報には、メモリマクロの動作モデルであるヴェリログ（Verilog）モデルや、レイアウトパターンなどを挙げることができる。
【００３２】
上記「必要なメモリ機能１０１」には、メモリのワード（ｗｏｒｄ）長、メモリのビット（ｂｉｔ）幅、基本機能、その他必要な機能が含まれる。ここで、「基本機能」には、ＳＰ−ＲＡＭ（シングルポート・ランダム・アクセス・メモリ）、ＤＰ−ＲＡＭ（デュアルポート・ランダム・アクセス・メモリ）、２Ｐ−ＲＡＭ（２ポート・ランダム・アクセス・メモリ）、ＲＯＭ（リード・オンリー・メモリ）等が挙げられる。また、「その他必要な機能」には、特定のビットに対して書き込みしないことを示すＢＷＮ（ビット・ライト・マスク）機能を挙げることができる。尚、上記「必要なメモリ機能」には、メモリの動作周波数を含めることができる。
【００３３】
上記コンパイラデータベース１０３は、例えば記録媒体３２１に形成され、ＣＰＵ３１によって必要に応じて参照できるようになっている。コンパイラデータベース１０３には、メモリコンパイラの情報と、コンパイラによって形成されるメモリマクロの情報が含まれる。メモリコンパイラの情報には、各コンパイラ毎のコンパイラ名、基本機能、その他の機能（ＢＷＮ等）、コンパイラ範囲が含まれる。コンパイラ範囲には、ワード長やビット幅の最小値、最大値並びにワード長やビット幅の刻み幅（ｓｔｅｐ）が含まれる。また、メモリコンパイラの情報には、メモリの最大動作周波数やＣＰＢなどの情報を必要に応じて追加しても良い。「ＣＰＢ」とは、メモリのカラム側に割り当てるべきビット数を意味する。
【００３４】
メモリマクロの情報には、各マクロ毎のマクロ名及びマクロサイズが含まれる。
【００３５】
尚、コンパイラデータベースには、図１において１０６で示されるように、各メモリマクロ毎のマクロ名及びマクロサイズに代えて、マクロ名ネーミングルールやマクロサイズの計算式を含めることができる。この場合、メモリコンパイラ及びメモリマクロ選択機能１０２では、マクロ名ネーミングルールに従ってマクロ名が決定され、マクロサイズの計算式に従ってマクロサイズが決定される。
【００３６】
メモリコンパイラ及びメモリマクロ選択機能１０２によって選択されたメモリコンパイラ及びメモリマクロ１０４には、コンパイラ名、メモリマクロ名、メモリマクロ数、マルチプレクサ入力数が含まれる。ここで、マルチプレクサ入力数とは、メモリマクロの出力をマルチプレクサで選択する場合のマルチプレクサに対する入力数を意味する。また、上記メモリコンパイラ及びメモリマクロ１０４には、付帯情報として、メモリマクロサイズ、コンパイラ性能、メモリマクロ情報を含めることができる。
【００３７】
図１１には、データベース化されるメモリコンパイラの具体例が示される。図１１に示されるように、各コンパイラ毎に、基本機能、ＢＷＮ機能、タイプ、最大動作周波数、ＣＰＢ、ワード（ｗｏｒｄ）範囲、及びビット（ｂｉｔ）範囲が具体的に示される。図１２乃至図１５には、図１１における主要メモリコンパイラについてのコンパイラ範囲（ワード範囲、ビット範囲）が示される。
【００３８】
複数のメモリマクロを用いてメモリを構築する場合、生成された複数のメモリマクロをユーザが必要とするメモリに組み上げる回路が必要となる。このような回路をラッパー回路と称する。上記メモリ構築支援装置１００でラッパー回路を形成可能とするため、図２に示されるように、メモリ構築支援装置１００においてラッパー回路生成機能１０７を設けることができる。このラッパー回路生成機能１０７も、コンピュータ３０でメモリ構築支援プログラムが実行されることで実現される。ラッパー回路生成機能１０７では、メモリコンパイラ及びメモリマクロ選択機能１０２によって選択されたメモリコンパイラで形成されたメモリマクロに対応するラッパー回路を形成する。
【００３９】
次に、メモリ構築支援装置１００を用いて構築されるメモリの具体例について説明する。
【００４０】
メモリ構築支援装置１００を用いてメモリを構築する場合、特に制限されないが、図３に示されるようにメモリマクロアレイを形成する。このメモリマクロアレイは、領域Ａと、この領域Ａに対してビット方向に配置された領域Ｂと、上記領域Ａに対して、ビット方向とは交差するワード方向に配置された領域Ｃと、上記領域Ｂに対してワード方向に配置されるとともに、上記領域Ｃに対してビット方向に配置された領域Ｄとを含む。領域Ａには、必ず１個のメモリマクロ３０１が割り当てられる。Ｎ，Ｍをそれぞれ整数とするとき、領域Ｂには、０以上Ｍ個のメモリマクロ３０２が割り当てられ、領域Ｃには、０以上Ｎ個のメモリマクロ３０３が割り当てられ、領域Ｄには、０以上Ｎ×Ｍ個のメモリマクロ３０４が割り当てられる。メモリマクロ３０１，３０２，３０３，３０４は、互いに異なる種類のメモリマクロとされる。各領域Ｂ、Ｃ、Ｄ内はそれぞれ同一種類のメモリマクロが割り当てられる。各領域Ａ，Ｂ，Ｃ，Ｄに割り当てられるメモリマクロの数によってメモリ全体の形や大きさが異なる。例えば領域Ａ，Ｂのみの組み合わせによってメモリが形成される場合、ビット幅が広いものとなり、領域Ａ，Ｃのみの組み合わせによってメモリが形成される場合、ワード幅が広いものとなる。
【００４１】
このように複数のメモリマクロが割り当てられてメモリが構築される場合には、アドレスの上位数ビットを利用してメモリマクロの選択が行われるようにする。一例として、領域Ａ，Ｃのみの組み合わせによって４２４ワードのメモリが構築される場合を考える。図４にはこの場合のアドレス割り当て例が示される。図４に示される例によれば、領域Ａには、２のべき乗に限定されないワード数（例えば４０ワード）を有するメモリマクロ３０１が割り当てられ、領域Ｃには、２のべき乗のワード数（例えば１２８ワード）を有するメモリマクロ３０３−１，３０３−２，３０３−３が割り当てられる。メモリマクロは、アドレスの上位２ビットであるＡ７，Ａ８によって選択される。例えばＡ７＝１，Ａ８＝１の場合にメモリマクロ３０１が選択され、Ａ７＝０，Ａ８＝１の場合にメモリマクロ３０３−１が選択され、Ａ７＝１，Ａ８＝０の場合にメモリマクロ３０３−２が選択され、Ａ７＝０，Ａ８＝０の場合にメモリマクロ３０３−３が選択される。尚、Ａ６〜Ａ０は、個々のメモリマクロ内のアドレスとされる。
【００４２】
図４に示される例では、領域Ａ，Ｃのみの組み合わせによって４２４ワードのメモリが構築される場合であるが、領域Ａ〜Ｄのみの組み合わせによって４２４ワードのメモリが構築される場合も、図４に示される場合と同様とされる。この場合、領域Ｂには、２のべき乗に限定されないワード数（例えば４０ワード）を有するメモリマクロが割り当てられ、領域Ｄには、２のべき乗のワード数（例えば１２８ワード）を有するメモリマクロが割り当てられる。
【００４３】
メモリマクロアレイを構成するメモリマクロの出力をマルチプレクサで選択する構成を採用することができる。例えば図５に示されるように、複数のメモリマクロによってメモリマクロ５０１が形成され、各メモリマクロの出力をマルチプレクサ５０２で選択するようにする。この場合、入力されるアドレスＡ〔ｎ−１：０〕のうち、Ａ〔ｎ−１：ａ〕をメモリマクロアレイ５０１における各メモリマクロに供給し、Ａ〔ａ−１：０〕をマルチプレクサ５０２で供給する。マルチプレクサ５０２では、Ａ〔ａ−１：０〕に応じて、メモリマクロアレイ５０１におけるメモリマクロの出力選択が行われる。マルチプレクサ５０２の入力数によってメモリマクロアレイ５０１全体の大きさや形状が異なる。従って、メモリマクロアレイ５０１が最小面積となる構成を決定する場合には、マルチプレクサ入力数を考慮すべきである。
【００４４】
図６には、メモリ構築支援装置１００によるメモリ構築処理の流れが示される。この処理は、ラッパー回路生成機能１０７によって実現される。
【００４５】
先ず、マルチプレクサ入力数が設定される（Ｓ１１）。マルチプレクサ入力数は、「２Ｋ」で示される。ここで、「Ｋ」は０以上の整数とされる。そして、ここでは「Ｋ」が過大にならない程度に、「Ｋ」の上限がパラメータで設定される。
【００４６】
マルチプレクサ入力数からメモリマクロアレイのワード長、ビット幅、及び機能が決定される（Ｓ１２）。メモリマクロアレイに必要なワード長は、インプット（入力）情報のワード長をマルチプレクサ入力数で除算することで得られる。このとき、小数点以下を切り上げるものとする。メモリマクロアレイに必要なビット幅は、インプット情報のビット幅とマルチプレクサ入力数を乗算することで得られる。
【００４７】
次に、領域Ａ，Ｂ，Ｃ，Ｄ（図３参照）へのメモリコンパイラ設定処理が開始される（Ｓ１３）。尚、同じメモリコンパイラを別の領域に重複して設定することができる。このメモリコンパイラ設定処理では、先ず領域Ａのみでメモリマクロアレイを構成可能か否か（Ｓ１４）の判別が行われる。この判別で領域Ａのみでメモリマクロアレイを構成することができない（ｎｏ）と判断された場合には、領域Ａ、Ｂのみでメモリマクロアレイを構成可能か否か（Ｓ１５）の判別が行われる（Ｓ１５）。この判別において、領域Ａ、Ｂのみでメモリマクロアレイを構成することができない（ｎｏ）と判断された場合には、領域Ａ、Ｃのみでメモリマクロアレイを構成可能か否か（Ｓ１６）の判別が行われる。この判別において、領域Ａ、Ｃのみでメモリマクロアレイを構成することができない（ｎｏ）と判断された場合には、領域Ａ〜Ｄでメモリマクロアレイを構成可能か否か（Ｓ１７）の判別が行われる。この判別において、領域Ａ〜Ｄでメモリマクロアレイを構成することができない（ｎｏ）と判断された場合には、メモリコンパイラの全ての組み合わせについてチェックしたか否かの判別が行われる（Ｓ１８）。この判別において、メモリコンパイラの全ての組み合わせについてチェックしていない（ｎｏ）と判断された場合には、メモリコンパイラの別の組み合わせについて、上記ステップＳ１４〜Ｓ１７の判別が行われる。また、上記ステップＳ１４〜Ｓ１７の判別において、構成可能（ｙｅｓ）と判断された場合には、その場合のメモリマクロアレイの面積が評価され、その面積が最小となるメモリマクロの組み合わせが判断される（Ｓ２１）。さらに、上記ステップＳ１８の判別において、メモリコンパイラの全ての組み合わせについてチェックした（ｙｅｓ）と判断された場合には、最小となるメモリマクロ組み合わせと、その場合のマルチプレクサ入力数についての情報を保存する（Ｓ２２）。そして、マルチプレクサ入力数Ｋ＝０が成立するか否かの判別が行われる（Ｓ１９）。この判別において、Ｋ＝０が成立しない（ｎｏ）と判断された場合には、その場合のマルチプレクサ入力数Ｋの値から１が減算され（Ｓ２０）、上記ステップＳ１２の処理に戻される。そして再び上記ステップＳ１４〜Ｓ１７の判別が行われることで、最小となるメモリマクロの組み合わせと、その場合のマルチプレクサ入力数についての情報が保存（更新）される。上記ステップＳ１９の判別において、Ｋ＝０が成立する（ｙｅｓ）と判断されるまで、上記処理が繰り返され、最終的に、最小となるメモリマクロの組み合わせと、その場合のマルチプレクサ入力数が決定される。
【００４８】
尚、図６におけるステップＳ１４〜Ｓ１７は処理の順番に制限がないので、処理の順番を入れ替えても良い。
【００４９】
図７には、図６におけるステップＳ１４の処理の詳細が示される。
【００５０】
尚、ステップＳ１４の判別に際して、割り当てられたメモリコンパイラは以下の条件を満たしているものとする。
【００５１】
すなわち、メモリコンパイラの機能が必要な機能を満たし、メモリコンパイラの性能が必要な性能を満たし、メモリコンパイラの最大ワード長がメモリマクロアレイで必要とされるワード長以上であり、メモリコンパイラの最大ビット幅がメモリマクロアレイで必要とされるビット幅以上とされる。
【００５２】
上記ステップＳ１４の判別においては、先ず、領域Ａ（図３参照）のみで必要なメモリ機能を満たすか否かがチェックされる。領域Ａのみで必要なメモリ機能を満たさない（ｎｏ）と判断された場合に領域Ａのみで構成不可とされる。領域Ａのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合には、整数Ｎ，Ｍの値、領域Ａにおけるメモリマクロのワード長、及びビット幅が決定され、領域Ａのみで構成可能とされる。すなわち、領域Ａのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合に、Ｎ＝０、Ｍ＝０とされ、領域Ａにおけるメモリマクロのワード長、及びビット幅が以下のように決定される。
【００５３】
メモリコンパイラの最小ワード長以下のワード長が必要な場合は、メモリコンパイラの最小ワード長が、領域Ａにおけるメモリマクロのワード長とされる。また、メモリコンパイラのワードステップが考慮され、必要なワード長以上で最小となるワード長が、領域Ａにおけるメモリマクロのワード長とされる。また、メモリコンパイラの最小ビット幅以下のビット幅が必要な場合は、メモリコンパイラの最小ビット幅が、領域Ａにおけるメモリマクロのビット幅とされる。また、メモリコンパイラのビットステップが考慮され、必要なビット幅以上で最小となるビット幅が、領域Ａにおけるメモリマクロのビット幅とされる。この情報は、メモリマクロアレイの面積評価（図６におけるＳ２２）で使用される。
【００５４】
図８には、図６におけるステップＳ１５の処理の詳細が示される。
【００５５】
尚、ステップＳ１５の判別に際して、割り当てられたメモリコンパイラは以下の条件を満たしているものとする。
【００５６】
すなわち、メモリコンパイラの機能が必要な機能と性能を満たし、メモリコンパイラの最大ワード長がメモリマクロアレイで必要とされるワード長以上とされる。
【００５７】
上記ステップＳ１５の判別においては、先ず、領域Ａと領域Ｂのみで必要なメモリ機能を満たすか否かがチェックされる。領域Ａと領域Ｂのみで必要なメモリ機能を満たさない（ｎｏ）と判断された場合に領域Ａと領域Ｂのみで構成不可とされる。領域Ａと領域Ｂのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合には、整数Ｎ，Ｍの値、領域Ａにおけるメモリマクロのワード長、及びビット幅が決定され、領域Ａと領域Ｂのみで構成可能とされる。すなわち、領域Ａと領域Ｂのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合、Ｎ＝０とされ、Ｍは、メモリマクロアレイのビット幅から、領域Ａに割り当てられたコンパイラの最大ビット幅を減算し、その減算結果を、領域Ｂに割り当てられたコンパイラの最大ビット幅で除算することで得る。このとき、小数点以下を切り上げるものとする。領域Ａにおけるメモリマクロのビット幅は、メモリマクロアレイのビット幅から、領域Ｂに割り当てられたＭ個分のコンパイラの最大ビット幅の合計を減算することで得られる。領域Ｂにおけるメモリマクロのビット幅は、領域Ｂに割り当てられたコンパイラの最大ビット幅とされる。領域Ａ，Ｂにおけるメモリマクロのワード長は、次のように求める。
【００５８】
すなわち、メモリコンパイラの最小ワード長以下のワード長が必要な場合は、メモリコンパイラの最小ワード長が、領域Ｂ及びＡにおけるメモリマクロのワード幅とされる。また、メモリコンパイラのワードステップが考慮され、必要なワード長以上で最小となるワード長が、領域Ｂにおけるメモリマクロのワード幅とされる。
【００５９】
図９には、図６におけるステップＳ１６の処理の詳細が示される。
【００６０】
尚、ステップＳ１６の判別に際して、割り当てられたメモリコンパイラは以下の条件を満たしているものとする。
【００６１】
すなわち、メモリコンパイラの機能が必要な機能と性能を満たし、メモリコンパイラの最大ビット幅がメモリマクロアレイで必要とされるビット幅以上とされる。
【００６２】
上記ステップＳ１６の判別においては、先ず、領域Ａと領域Ｃのみで必要なメモリ機能を満たすか否かがチェックされる。領域Ａと領域Ｃのみで必要なメモリ機能を満たさない（ｎｏ）と判断された場合に領域Ａと領域Ｃのみで構成不可とされる。領域Ａと領域Ｃのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合には、整数Ｎ，Ｍの値、領域Ａ，Ｃにおけるメモリマクロのワード長、及びビット幅が決定され、領域Ａと領域Ｃのみで構成可能とされる。すなわち、領域Ａと領域Ｃのみで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合、Ｍ＝０とされ、Ｎは、メモリマクロアレイのワード長から、領域Ａに割り当てられたコンパイラの最大ワード長を減算し、その減算結果を、領域Ｃに割り当てられたメモリコンパイラが実現できる最大の２のべき乗のワード長で除算することで得る。このとき小数点以下を切り上げるものとする。領域Ｃにおけるメモリマクロのワード長は、領域Ｃに割り当てられたメモリコンパイラが実現できる最大のべき乗のワード長とされる。領域Ａにおけるメモリマクロのワード長は、次のように得られる。
【００６３】
先ず、メモリマクロアレイのワード長から、領域ＣにおけるＮ個分のメモリマクロのワード長を減算して必要なワード長を求める。そして、この必要なワード長に対して、メモリコンパイラの最小ワード長以下のワード長が必要な場合は、メモリコンパイラの最小ワード長を領域Ａにおけるメモリマクロのワード長とする。また、メモリコンパイラのワードステップを考慮し、必要なワード長以上で最小となるワード長を領域Ａにおけるメモリマクロのワード長とする。
【００６４】
領域Ａ，Ｃにおけるメモリマクロのビット幅は、メモリマクロアレイで必要とされるビット幅であるメモリコンパイラの最小ビット幅以下のビット幅が必要な場合は、メモリコンパイラの最小ビット幅を、領域Ａ，Ｃにおけるメモリマクロのビット幅とする。メモリコンパイラのビットステップを考慮し、必要なビット幅以上で最小となるビット幅を、領域Ａ，Ｃにおけるメモリマクロのビット幅とする。
【００６５】
図１０には、図６におけるステップＳ１７の処理の詳細が示される。
【００６６】
尚、ステップＳ１７の判別に際して、割り当てられたメモリコンパイラは以下の条件を満たしているものとする。
【００６７】
すなわち、メモリコンパイラの機能が必要な機能と性能を満たしているものとする。
【００６８】
上記ステップＳ１７の判別においては、先ず、領域Ａ、領域Ｂ、領域Ｃ、領域Ｄで必要なメモリ機能を満たすか否かがチェックされる。領域Ａ、領域Ｂ、領域Ｃ、領域Ｄで必要なメモリ機能を満たさない（ｎｏ）と判断された場合に領域Ａ、領域Ｂ、領域Ｃ、領域Ｄで構成不可とされる。領域Ａ、領域Ｂ、領域Ｃ、領域Ｄで必要なメモリ機能を満たす（ｙｅｓ）と判断された場合には、整数Ｎ，Ｍの値、領域Ａ、領域Ｂ、領域Ｃ、領域Ｄにおけるメモリマクロのワード長、及びビット幅が決定され、領域Ａ、領域Ｂ、領域Ｃ、領域Ｄで構成可能とされる。メモリマクロアレイのビット幅から、領域Ａと領域Ｃに割り当てられたコンパイラの最大ビット幅の小さいほうを減算し、その減算結果を、領域Ｂと領域Ｄに割り当てられたコンパイラの最大ビット幅の小さい方で除算することで、整数Ｍが求められる。このとき、小数点以下を切り上げるものとする。また、メモリマクロアレイのワード長から、領域Ａと領域Ｂに割り当てられたコンパイラの最大ワード長の小さい方を減算し、その減算結果を、領域Ｃと領域Ｄに割り当てられたメモリコンパイラが共に実現できる最大の２のべき乗のワード長で除算することで、整数Ｎが求められる。このとき、小数点以下を切り上げるものとする。
【００６９】
領域Ｃ、領域Ｄのメモリマクロのワード長は、領域Ｃと領域Ｄに割り当てられたメモリコンパイラが共に実現できる最大の２のべき乗のワード長とされる。
【００７０】
領域Ａ、領域Ｂのメモリマクロのワード長は、次のように求められる。
【００７１】
先ず、メモリマクロアレイのワード長から、領域ＣにおけるＮ個分のメモリマクロのワード長を減算して必要なワード長を求める。そして、この必要なワード長に対して、メモリコンパイラの最小ワード長以下のワード長が必要な場合は、メモリコンパイラの最小ワード長を領域Ａにおけるメモリマクロのワード長とする。また、メモリコンパイラのワードステップを考慮し、必要なワード長以上で最小となるワード長を領域Ａ及び領域Ｂにおけるメモリマクロのワード長とする。
【００７２】
領域Ｂ、領域Ｄのメモリマクロのビット幅は次のように求められる。
【００７３】
領域Ｂと領域Ｄにそれぞれ割り当てられたメモリコンパイラの最大ビット幅の小さい方を必要なビットとする。
【００７４】
領域Ａ，Ｃにおけるメモリマクロのビット幅は、メモリマクロアレイに必要なビット幅から、ビット方向にメモリマクロＭ個を含む領域Ｂと領域Ｄとに夫々割り当てられたメモリコンパイラの最大ビット幅の小さい方を減算して求められる。尚、メモリコンパイラの最小ビット幅以下のビット幅が必要な場合は、メモリコンパイラの最小ビット幅を、領域Ａ，Ｃにおけるメモリマクロのビット幅とする。メモリコンパイラのビットステップを考慮し、必要なビット幅以上で最小となるビット幅を、領域Ａ，Ｃにおけるメモリマクロのビット幅とする。
【００７５】
図１６には、所要ビット幅を複数のメモリマクロで得る場合の接続例が示される。
【００７６】
所要ビット幅をＮ個のメモリマクロ１６１−１，１６１−２，…１６１−Ｎで構成するメモリにおいて、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ及びアドレス信号ａｄｄｒｅｓｓ〔ｍ；０〕は、全てのメモリマクロ１６１−１，１６１−２，…１６１−Ｎに共通に入力される。入力データＤ〔ｎ−１：０〕及び読み出しデータＱ〔ｎ−１：０〕は、メモリマクロ１６１−１，１６１−２，…１６１−Ｎに対応して分割される。
【００７７】
図１７には、所要のワード数を複数のメモリマクロで得る場合の接続例が示される。所要のワード数をデコードするためのアドレス本数をｍ、所要のビット数をｎとする。入力されるアドレス信号ａｄｄｒｅｓ〔ｍ−１：０〕のうちの一部であるａｄｄｒｅｓｓ〔ｍｓ−１：ｍ−ｍｓ〕がデコーダ１７２、セレクタ１７４に伝達される。アドレス信号の一部であるａｄｄｒｅｓｓ〔ｍｓ−１：ｍ−ｍｓ〕がデコーダ１７２でデコードされ、そのデコード出力が、後段のオアゲート１７３−１，１７３−２，…１７３−Ｎに伝達される。これにより、チップイネーブル信号ＣＥＮで選択すべきメモリモジュールが決定される。また、セレクタ１７４では、複数のメモリモジュール１７１−１，１７１−２，…１７１−Ｎの出力データＱ〔ｎ−１：０〕が選択的に出力されるようになっている。メモリモジュール１７１−１，１７１−２，…１７１−Ｎへの入力アドレスを、それぞれａｄｄｒｅｓｓ〔ｍｋ−１：０〕、ａｄｄｒｅｓｓ〔ｍｍ−１：０〕、ａｄｄｒｅｓｓ〔ｍｍ−１：０〕とし、所要のワード数をＷｕとし、メモリモジュールのワード数をＷｍとするとき、ｍｍ、ｍｓ、ｍｋは次式によって示される（小数点以下切り上げ）。
【００７８】
ｍｍ＝ｌｏｇ２Ｗｍ
ｍｓ＝ｌｏｇ２（Ｗｕ／Ｗｍ）
ｍｋ＝ｌｏｇ２〔Ｗｕ−（Ｎ−１）×Ｗｍ〕
ここで、Ｎ=Ｗｕ／Ｗｍ（小数点以下切り上げ）である。
【００７９】
次に、メモリマクロ割り当てによるメモリ特性改善について説明する。
【００８０】
メモリコンパイラには、必ずワード数の上限が存在する。このようなメモリコンパイラの限界を越えるメモリが必要な場合、メモリコンパイラの限界内で生成し得る複数のメモリマクロを組み合わせることで、所望のメモリが構成される。所望のメモリが複数のメモリマクロで構成される場合、メモリの速度性能は、遅いほうのメモリマクロに律則される。また、メモリマクロは、図２１に示されるように、ワード数が大きいほど速度が遅い（アクセスタイムが大きくなる）し、図２２に示されるように、ワード数が大きいほど、消費電力（Ｐｏｗｅｒ）が大きくなる。また、図１８（Ａ），（Ｂ）に示されるように、メモリ全体のメモリマクロ数が変わらない場合、メモリセルアレイをどのように分割しても、総マクロ面積は変わらない。そこで、ワード数がメモリコンパイラの限界を越える場合には、ラッパー回路生成機能１０７によって、次のようにメモリセルアレイを分割すると良い。
【００８１】
メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数が、コンパイラの限界であるワード数上限よりも大きく、且つ、コンパイラの限界であるワード数上限の１．５倍よりも小さい場合には、コンパイラの限界であるワード数上限の１／２である第１メモリセルアレイと、コンパイラの限界であるワード数上限未満である第２メモリセルアレイとに２分割する。例えば、メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数を「１０８８」とすると、図２０に示されるように、コンパイラの限界であるワード数上限の１／２である第１メモリセルアレイ（５１２ワード）２０１と、コンパイラの限界であるワード数上限未満である第２メモリセルアレイ（５７６ワード）２０２とにメモリセルアレイを分割する。第１メモリセルアレイ２０１には下位アドレスＡ〔８：０〕が割り当てられ、第２メモリセルアレイ２０２には上位アドレスＡ〔９：０〕が割り当てられる。
【００８２】
上記のように、メモリの速度性能は、遅いほうのメモリマクロに律則され、また、メモリマクロは、図２１に示されるように、ワード数が大きいほど速度が遅い（アクセスタイムが大きくなる）し、図２２に示されるように、ワード数が大きいほど、ライト時の消費電力（Ｐｏｗｅｒ）が大きくなる。このことを勘案すると、図２０に示されるようなメモリセルアレイの分割は、例えば図１９に示されるように、第１メモリセルアレイ（１０２４ワード）１９１と、第２メモリセルアレイ（６４ワード）１９２とに分割するのに比べて、メモリの動作速度や消費電力の点で有利となる。
【００８３】
本実施の形態によれば以下の作用効果が得られる。
【００８４】
（１）必要なメモリ機能１０１がメモリ構築支援装置１００に与えられると、メモリコンパイラ及びメモリマクロ選択機能１０２によってコンパイラデータベース１０３が参照され、メモリコンパイラ及びメモリマクロが選択される。これにより、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から選択することができる。そして、選択されたメモリコンパイラが起動されることにより、メモリマクロ構築のための各種情報を得ることができる。
【００８５】
（２）メモリ構築支援装置１００において、マルチプレクサ入力数からメモリマクロアレイのワード長、ビット幅、及び機能が決定され（Ｓ１２）、領域Ａ，Ｂ，Ｃ，Ｄ（図３参照）へのメモリコンパイラ設定処理が開始される（Ｓ１３）と、メモリコンパイラの別の組み合わせについて、ステップＳ１４〜Ｓ１７の判別が行われる。このステップＳ１４〜Ｓ１７の判別において、構成可能（ｙｅｓ）と判断された場合には、その場合のメモリマクロアレイの面積が評価され、その面積が最小となるメモリマクロ組み合わせが判断される（Ｓ２１）。マルチプレクサ入力数をも考慮され、最小となるメモリマクロ組み合わせと、その場合のマルチプレクサ入力数についての情報が保存され、最終的に、最小となるメモリマクロ組み合わせと、その場合のマルチプレクサ入力数が決定される。このような処理が実行されることにより、必要なメモリ機能を備え、且つ、面積が小さなメモリマクロを形成するためのメモリコンパイラを、複数のメモリコンパイラの中から容易に選択することができる。
【００８６】
（３）上記（２）の作用効果により、例えば携帯電話機向けのＳＯＣなどのように、大規模化多彩な機能モジュールの搭載が進み、数千個、数百種類のメモリマクロが搭載される場合においても、そのようなメモリマクロを生成するための多彩なメモリコンパイラの中から所望のメモリマクロをＬＳＩ設計者が人手により選択する必要が無くなる。
【００８７】
（４）メモリの速度性能は、遅いほうのメモリマクロに律則され、また、メモリマクロは、ワード数が大きいほど速度が遅い（アクセスタイムが大きくなる）し、ワード数が大きいほど、消費電力（Ｐｏｗｅｒ）が大きくなる。このため、メモリコンパイラの限界を越えるメモリが必要で、そのときの所要ワード数が、コンパイラの限界であるワード数上限よりも大きく、且つ、コンパイラの限界であるワード数上限の１．５倍よりも小さい場合には、コンパイラの限界であるワード数上限の１／２である第１メモリセルアレイと、コンパイラの限界であるワード数上限未満である第２メモリセルアレイとに２分割する。このような分割により、第１メモリセルアレイと第２メモリセルアレイとのワード数の差を小さく抑えることができるので、メモリの動作速度や消費電力の点で有利となる。
【００８８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００８９】
３１  ＣＰＵ
３２  記憶装置
３３  入力装置
３４  表示装置
３５  メモリ
３６  バス
３２１  記録媒体
【図１】
2010262433.tif 000003
【図２】
2010262433.tif 000004
【図３】
2010262433.tif 000005
【図４】
2010262433.tif 000006
【図５】
2010262433.tif 000007
【図６】
2010262433.tif 000008
【図７】
2010262433.tif 000009
【図８】
2010262433.tif 000010
【図９】
2010262433.tif 000011
【図１０】
2010262433.tif 000012
【図１１】
2010262433.tif 000013
【図１２】
2010262433.tif 000014
【図１３】
2010262433.tif 000015
【図１４】
2010262433.tif 000016
【図１５】
2010262433.tif 000017
【図１６】
2010262433.tif 000018
【図１７】
2010262433.tif 000019
【図１８】
2010262433.tif 000020
【図１９】
2010262433.tif 000021
【図２０】
2010262433.tif 000022
【図２１】
2010262433.tif 000023
【図２２】
2010262433.tif 000024
【図２３】
2010262433.tif 000025