(57)【要約】【課題】バンク型メモリ構造からメモリ装置のインスタンスを生成するシステム、方法およびコンピュータプログラム製品を提供する。【解決手段】バンク型メモリ構造は、メモリバンクの最大数およびメモリバンク当たりの最大行数を特定する。その方法には、メモリ装置の複数の特性を指示する入力パラメータを受け取るステップが備わり、その特性は、メモリ装置のために少なくとも複数の行Ｒを備える。その後、バンク型メモリ構造に対して縮退プロセスが行われ、それは、（ｉ）インスタンスについて複数のメモリバンクＢを選択し、その数はバンク型メモリ構造が特定するメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、（ｉｉ）選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクの行数が、バンク型メモリ構造が特定するメモリバンク当たりの最大行数以下の整数であるようにするステップとを備える。【選択図】図３
2008047132.tif 000002
【特許請求の範囲】
【請求項１】
バンク型メモリ構造からメモリ装置のインスタンスを生成する方法であって、そのバンク型メモリ構造は、メモリバンクの最大数およびメモリバンク当たりの行の最大数を特定し、その方法は、
（ａ）前記メモリ装置の複数の特性を指示する入力パラメータを受け取り、前記特性は、前記メモリ装置の複数の行Ｒを少なくとも備えるステップと、
（ｂ）前記特性を有するメモリ装置の前記インスタンスを生成するためにバンク型メモリ構造に縮退プロセスを行うステップと、を備え、その縮退プロセスは、
（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、
（ｉｉ）前記ステップ（ｂ）（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいてそのメモリバンクの行数がバンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップを備える
方法。
【請求項２】
前記インスタンスとして、前記メモリ装置が前記特性を有するのに必要とされるメモリバンクの最小数を有するインスタンスを生成するよう前記ステップ（ｂ）（ｉ）が行われる請求項１に記載の方法。
【請求項３】
前記インスタンスの少なくとも前記メモリバンクの１つを除く全てにおいてメモリバンク毎の最小の行数を提供するよう前記ステップ（ｂ）（ｉｉ）が行われる請求項２に記載の方法。
【請求項４】
バンク型メモリ構造が一組のメモリバンクの間で共有される周辺論理を特定し、前記縮退プロセスは、
前記ステップ（ｂ）（ｉ）で偶数のメモリバンクが選択されるならば、ペアをなさないメモリバンクと関連する周辺論理から１つ以上の構成要素を取り除く除去プロセスを行うステップをさらに備える
請求項１に記載の方法。
【請求項５】
前記ステップ（ａ）で、前記複数の特性が前記入力パラメータから得られ、前記複数の行Ｒを得るとき、前記行数は、バンク型メモリ構成が支援する行の最大数以下の２の倍数として選択可能である請求項１に記載の方法。
【請求項６】
前記入力パラメータは、メモリ装置が蓄積する複数のワードと、メモリ装置のためのサイズのマルチプレクサと、メモリ装置のための複数の入出力ビットとを備え、前記複数の特性がそこから得られ、前記特性は前記メモリ装置のための前記複数の行Ｒと複数の列とを備える請求項１に記載の方法。
【請求項７】
コンピュータプログラムを保持するコンピュータで読み取り可能な媒体であって、そのコンピュータプログラムは、コンピュータシステムに、バンク型メモリ構造からメモリ装置のインスタンスを生成する方法を行わせるよう動作可能であって、そのバンク型メモリ構造は、メモリバンクの最大数とメモリバンク当たりの最大行数を特定し、その方法は、
（ａ）前記メモリ装置の複数の特性を指示する入力パラメータを受け取り、前記特性は、前記メモリ装置の複数の行Ｒを少なくとも備えるステップと、
（ｂ）前記特性を有するメモリ装置の前記インスタンスを生成するためにバンク型メモリ構造に縮退プロセスを行うステップと、を備え、その縮退プロセスは、
（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、
（ｉｉ）前記ステップ（ｂ）（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいて、そのメモリバンクの行数が、バンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップを備える
コンピュータで読み取り可能な媒体。
【請求項８】
請求項１に記載の方法を行うことによって、バンク型メモリ構造から生成されるメモリ装置のインスタンス。
【請求項９】
バンク型メモリ構造からメモリ装置のインスタンスを生成するシステムであって、そのバンク型メモリ構造は、メモリバンクの最大数とメモリバンク当たりの最大行数を特定し、そのシステムは、
前記メモリ装置の複数の特性を指示する入力パラメータを受け取る入力であって、前記特性は、前記メモリ装置について少なくとも複数の行Ｒを備える入力と、
前記特性を有するメモリ装置の前記インスタンスを生成するために、バンク型メモリ構造において縮退プロセスを行う縮退論理であって、その縮退プロセスは、
（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、
（ｉｉ）前記ステップ（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいて、そのメモリバンクの行数が、バンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップと、を備える縮退論理と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置を設計する縮退技法に関し、より詳しくは、縮退技法を用いてバンク型メモリ構造からメモリ装置のインスタンス（ｉｎｓｔａｎｃｅ）を生成する方法、コンピュータで読み取り可能な媒体およびシステムに関する。
【背景技術】
【０００２】
メモリ装置の蓄積の要件が増加する傾向が続いており、その結果、これらのメモリ装置のサイズおよび複雑さもまた増大する傾向にある。しかしながら、メモリ装置が大きいほど、それにアクセスするのにより多くの電力が消費されるであろうし、そのアクセスも遅くなるであろう。アクセスするスピードの向上を求め、かつ電力消費を低減するために、メモリ装置が複数のバンクとして配置されるバンク型設計のメモリを生成することが知られている。その結果、メモリ装置全体というよりも個々のバンクにアクセスがなされ、それによってアクセスのスピードを向上し、電力消費を低減することができる。
【０００３】
バンク型メモリ装置を設計するとき、一般に２つのアプローチを取ることができる。第一のアプローチによると、メモリ装置は、特定的に実施するためにカスタム設計され、それによって、効率良く設計できるようになる。しかしながら、そのようなアプローチの不都合な点は、その設計を別で実施して再使用する機会がほとんど無いというものであり、したがって、そのようなアプローチは費用が高くつく。代わりのアプローチによると、バンク型メモリ構造が開発され、そしてメモリコンパイラツールを用いてそのバンク型メモリ構造のインスタンスを（すなわち、特定的に具体化して）作り、要求されるメモリ装置の、そのメモリ装置に要求される何らかの特性を重んじる設計を形成する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特定のバンク型メモリ構造からメモリ装置のインスタンスを生成するのに、コンパイラツールは縮退プロセス（ｄｅｇｅｎｅｒａｔｉｏｎ  ｐｒｏｃｅｓｓ）を行い、そこで、最大限可能なものより含まれる行が少ないメモリ装置のインスタンスを生成するために、各バンクの行を縮退することができる。そのような縮退プロセスの周知のものが、図１に概略的に図示されている。図１に例示されるバンク型メモリ構造によると、４つのバンクが提供されており、バンクの各ペアは周辺論理５０を共有し、そのような周辺論理は、当業者に理解されるとおりコラムデコーダ、センスアンプ論理、制御回路等からなる。図１が当てはまるバンク型メモリ構造によると、メモリバンク当たりの行の最大数が６４であることが想定されており、したがって、インスタンス１０は、バンク型メモリ構造を用いて生成することのできる最大のメモリ装置を表す。図１に示されるとおり、インスタンス１０は、４つのバンク１２、１４、１６、１８からなり、各バンクは６４行を含み、バンクの各ペアが周辺論理５０を共有する。
【０００５】
しかしながら、コンパイラツールを用いる人は、それよりも少ない行数しか必要としないことを指摘する。縮退プロセスを適用すると、この結果、最大数未満の行数しか有していないインスタンス、例えば４つのバンク２２、２４、２６、２８の各々が６２行を有するインスタンス２０を生成することになる。しかしながら、この周知の縮退技法によると、各バンクにおける行縮退は同じものであるという制限があり、したがってインスタンス１０とインスタンス２０との間に可能なインスタンスは存在しない。同様に、インスタンス２０に続くその次に小さい可能性は、４つのバンク３２、３４、３６、３８が各々６０行を有するインスタンス３０である。可能な最小限のサイズは、バンク当たりの許容できる最小の行数で規定され、それは例えば、バンク４２、４４、４６、４８の各々が８行を有する図１のインスタンス４０によって示されるようにバンク当たり８行である。
【０００６】
それで、最大限のサイズのインスタンスが２５６行を提供する一方で、その次に利用可能なインスタンス２０は、２４８行を提供する。したがって、そのようなアプローチによると、利用可能な行数の間にかなり荒い粒度があることになるが、それは、サイズの関数として遅延（ｄｅｌａｙ）を例示する図である図２によって概略的に示されるとおりである。図２の符号ａ、ｂ、ｃ、ｄは、図１に例示される４つのインスタンス１０、２０、３０、４０に対応する。インスタンス３０を見ると、これは２４０行を提供する。コンパイラを用いる人が２４０行を有するメモリ装置を設計したいならば、インスタンス３０を生成するであろう。しかしながら、もしその人が２４２行を有するメモリ装置を生成したいと望むならば、この縮退技法によると、インスタンス２０を採用する必要があり、これは前述のとおり２４８行を有し、すなわち指示される装置では６行が必要とされない。その結果、図２から分かるのは、インスタンス２０によりメモリ装置を生成することが必要であれば、アクセス遅延において結果として生じるジャンプは相対的に粗くなるので、設計者には、追加の２行の必要性を取り除く、すなわちそれによってインスタンス３０を採用することが可能となる、方法を見出すように潜在的にプレッシャーがかかってしまうということである。
【０００７】
この問題と結びついて、メモリ構造がより高度にバンク型とされる、すなわち、より多くのバンクを含むものとなる傾向が続いており、前記図１および図２の記述から多くのバンクが含まれるほど可能なインスタンス間の粗さがより大きくなるということが理解される。それで、先の例を見ると、２つの余分な行を必要とするために生じる遅延のペナルティがさらに大きなものとなる。
【０００８】
加えて、図１から理解されるのは、メモリ装置のインスタンスのサイズが低減すると、その結果得られるメモリ装置の効率が、周辺論理５０の相対的なオーバーヘッドによって低減されるということである。とりわけ、インスタンス１０を採用するとき、周辺論理５０は１２８行の間で共有され、一方インスタンス４０を採用すると、周辺論理５０は１６行の間で共有されるということが理解される。そうすると、インスタンス４０によりメモリ装置を生成するのに必要な領域は、インスタンス１０を生成するのに必要な領域よりも非効率的である。
【０００９】
したがって、バンク型メモリ構造からメモリ装置のインスタンスを生成する改良された技法を提供することが望ましい。
【課題を解決するための手段】
【００１０】
第一の観点から見ると、本発明は、バンク型メモリ構造からメモリ装置のインスタンスを生成する方法を提供し、そのバンク型メモリ構造は、メモリバンクの最大数およびメモリバンク当たりの行の最大数を特定し、その方法は、（ａ）前記メモリ装置の複数の特性を指示する入力パラメータを受け取り、前記特性は、前記メモリ装置の複数の行Ｒを少なくとも備えるステップと、（ｂ）前記特性を有するメモリ装置の前記インスタンスを生成するためにバンク型メモリ構造に縮退プロセスを行うステップとを備え、その縮退プロセスは、（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、（ｉｉ）前記ステップ（ｂ）（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいて、そのメモリバンクの行数が、バンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップを備える。
【００１１】
本発明によると、適用される縮退プロセスには、インスタンスについてメモリバンクの数を選択し、そしてこれらのメモリバンクの間で必要とされる行数を区画することが含まれている。本発明によると、メモリバンクＢの数は、ステップ（ａ）で決定されるメモリデバイスについての行数Ｒの因数であることに制限されない。結果として、メモリバンクの中で行を区画するとき、それらの行はメモリバンクの間で必ずしも均等に広がっておらず、すなわち各メモリバンクは必ずしも同数行を含まない。縮退プロセスに、バンク型メモリ構造によって特定されるメモリバンクの最大数までで、使用するメモリバンクの数を選択する自由を与えることで、そしてこれらの選択されたメモリバンクの間でメモリ装置についての行数を区画することで、提供される行数の粒度をずっと細かいものとすることが可能となり、かつより効率的な設計が得られるものとなる。得られる効率の例として、３２行以下での設計のための要件に基づく、図１の従来の縮退構成により生成されるインスタンス４０を考えてみれば、本発明を用いると、３２行を含む単一のバンクを有するインスタンスが代わりに生成され、そうすると、単一の周辺論理と、より簡単なアドレス構成しか必要でないようにすることが可能となることが理解される。
【００１２】
縮退プロセスを行うときにメモリバンクが選択される方法は、種々の形を取ることができる。しかしながら、１つの実施例においては、前記インスタンスとして、前記メモリ装置が、指示された特性を有するのに必要とされるメモリバンクの最小数を有するインスタンスを生成するよう選択ステップが行われる。このアプローチによって、とりわけ高度なバンク型メモリ構造において、最も効率的に実施できるようになることが見出されている。
【００１３】
メモリバンクの間で行が区画される方法は、種々の形を取ることができる。しかしながら、１つの実施例において、そのような区画は、前記インスタンスの前記メモリバンクの少なくとも１つを除く全てにおいてメモリバンク当たりの最大の行数が提供されるように行われる。したがって、選択されたメモリバンクの全てが、そこに提供される最大行数を有するいくつかのインスタンスが生成され、一方、その他のインスタンスは、メモリバンクの１つを除く全てにおいて最大行数を有するように生成される。これによって、バンク型メモリ構造からインスタンスを生成するときの要求を満たす行数で細かな粒度を支援しつつ、とりわけ効率的に実施できるようになることが見出されている。
【００１４】
１つの実施例において、バンク型メモリ構造は、メモリバンクのペアと一緒に周辺論理を特定する。その周辺論理には、コラムデコーダ、センスアンプ論理、制御回路等のような回路素子が含まれている。周辺論理のいくつかの回路は、メモリバンクのペアの間で共有されており、いくつかの回路は、そのペアのメモリバンクの特定の一方に独自のものである。メモリバンクの最大数が偶数であると想定すると、縮退プロセスがメモリバンクの最大数より偶数だけ少ない数のメモリバンクを選択するならば、これは、問題の特定のインスタンスが利用可能であったメモリバンクの少なくとも一組を含んでおらず、したがって、そのようなペアを備える周辺論理もまたそのインスタンスに含める必要がないということを意味する。それゆえ、これによって、周辺論理が不必要に含まれることを避けることで効率の倹約を実現することが可能となる。
【００１５】
しかしながら、縮退プロセスを行うときに奇数のメモリバンクが選択されるならば、これはメモリバンクの１つがペアをなさないことを意味する。１つの実施例において、そのような状況では縮退プロセスはさらに、ペアをなさないメモリバンクと関連する周辺論理から１つ以上の構成要素を取り除く除去プロセスを行うステップを備える。したがって、一例として、特定のインスタンス設計内に実際は含まれていないメモリバンクに独特の周辺論理内のいかなる構成要素も取り除くことができ、それによって、そのペアをなさないメモリバンク内で用いる周辺論理の「切り詰めた」バージョンが得られる。その結果、結果として得られるインスタンス設計において効率のさらなる改善が実現される。
【００１６】
メモリ装置の特性を指示する入力パラメータは、種々の形を取り得る。１つの実施例において、これらの入力パラメータは、メモリ装置の特性を直接特定する。しかしながら、代わりの実施例においては、入力パラメータがそれらを直接特定するよりもむしろ、特性が入力パラメータから得られている。そのような実施例の１つにおいて、行Ｒの数を得るとき、その行数は、バンク型メモリ構造によって支援される最大行数以下の２の倍数として選択される。それで、縮退論理によって得られるインスタンスは、入力パラメータを生成する実体、例えばコンパイラツールのユーザーが実際に望むより、高々１つ多くの行を提供する。
【００１７】
１つの特定の実施例において、入力パラメータは、メモリ装置が蓄積するべき複数のワードと、メモリ装置のためのマルチプレクサのサイズと、メモリ装置のための複数の入出力ビットとを備え、前記複数の特性がそこから得られ、前記特性は、前記複数行Ｒと前記メモリ装置のための複数列を備える。特に行数は、ワード数をマルチプレクサのサイズで割ることによって計算できる。さらには、列数は、入出力ビットの数にマルチプレクサのサイズを掛けることによって得られる。
【００１８】
第二の観点から見ると、本発明は、コンピュータプログラムを保持するコンピュータで読み取り可能な媒体を提供し、そのコンピュータプログラムは、コンピュータシステムに、バンク型メモリ構造からメモリ装置のインスタンスを生成する方法を行わせるよう動作可能であって、そのバンク型メモリ構造は、メモリバンクの最大数とメモリバンク当たりの最大行数を特定し、その方法は、（ａ）前記メモリ装置の複数の特性を指示する入力パラメータを受け取り、前記特性は、前記メモリ装置の複数の行Ｒを少なくとも備えるステップと、（ｂ）前記特性を有するメモリ装置の前記インスタンスを生成するためにバンク型メモリ構造に縮退プロセスを行うステップと、を備え、その縮退プロセスは、（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、（ｉｉ）前記ステップ（ｂ）（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいて、そのメモリバンクの行数が、バンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップを備える。
【００１９】
第三の観点から見ると、本発明は、本発明の第一の観点による方法を行うことによって、バンク型メモリ構造から生成されるメモリ装置のインスタンスを提供する。
【００２０】
第四の観点から見ると、本発明は、バンク型メモリ構造からメモリ装置のインスタンスを生成するシステムを提供し、そのバンク型メモリ構造は、メモリバンクの最大数とメモリバンク当たりの最大行数を特定し、そのシステムは、前記メモリ装置の複数の特性を指示する入力パラメータを受け取る入力であって、前記特性は、前記メモリ装置について少なくとも複数の行Ｒを備える入力と、前記特性を有するメモリ装置の前記インスタンスを生成するために、バンク型メモリ構造において縮退プロセスを行う縮退論理であって、その縮退プロセスは、（ｉ）前記インスタンスについて複数のメモリバンクＢを選択し、前記数はバンク型メモリ構造により特定されるメモリバンクの最大数以下の整数であり、ＢはＲの因数であることに制限されないステップと、（ｉｉ）前記ステップ（ｉ）で選択される前記メモリバンクの間の複数の行Ｒを区画して、各メモリバンクにおいて、そのメモリバンクの行数が、バンク型メモリ構造によって特定されるメモリバンク当たりの最大行数以下の整数であるようにするステップと、を備える縮退論理とを備える。
【００２１】
行がメモリバンク間で区画される方法は、種々の形を取り得る。しかしながら、１つの実施例において、前記インスタンスの前記メモリバンクの少なくとも１つを除く全てにおいて、メモリバンク毎の最大行数を提供するようにそのような区画が行われる。したがって、選択されるメモリバンクの全てがそこに提供される最大行数を有するいくつかのインスタンスが生成され、一方でメモリバンクの１つを除く全てにおいて最大行数を有するその他のインスタンスが生成される。
【００２２】
本発明を、添付する図面に例示されるその実施例を参照して、例示のみのためにさらに説明する。
【実施例】
【００２３】
図３および図４は、本発明の一実施例により使用される縮退構成を概略的に例示する図である。最初に図３を見ると、本発明の実施例の縮退構成により生成される一連のインスタンス１００、１１０、１２０、１３０、１４０、１５０、１６０が例示されている。図から分かるとおり、第一のインスタンス１００は８つのバンクからなり、各バンクは６４行を有する。バンクの各ペアは、周辺論理１７０を共有し、それは前述のとおり、関連するバンク内のメモリセルにアクセスするのに必要なコラムデコーダ、センスアンプ、制御回路等を含んでいる。この実施例におけるインスタンス１００は、バンク型メモリ構造から生成できるメモリ装置の最も大きなインスタンスを表し、バンク型メモリ構造は、メモリバンクの最大数が８であり、バンク当たりの最大行数が６４であるように特定している。メモリバンクの最大数は、通常、バンク型メモリ構造についての製品の定義の一部を形成し、メモリバンク当たりの最大行数は、典型的にはバンク型メモリ構造を定義している人にとっての設計選択の事項である。当業者に理解されるように、バンク型メモリ構造を生成するとき、バンク当たりの最大行数は、典型的には、外部のインダストリー情報に、例えば、メモリ装置を構成するのに用いられるビットセルの特性を同定するファウンドリビットセル情報に、重きを置いて決定される。要求される性能および／またはパワー特性もまた、バンク当たりの最大行数を決定するとき、オプションとしてファウンドリ情報と結びつけて、考慮される。
【００２４】
図３に示される本発明の実施例によると、図に示されるインスタンス１１０、１２０、１３０に示されるように、縮退プロセスは２の増分で行を縮小することができる。したがって、インスタンス１１０は、なおも８つのバンクからなり、そのうちの７つは最大６４行を有し、その最後の１つは６２行を有する。同様に、インスタンス１２０は、６４行を備えるバンクを７つ有し、６０行を備える８番目のバンクを有する。この行縮退プロセスは、６４行を備えるバンクを７つ有し、２行備えるバンクを１つ有するインスタンス１３０までずっと続けられる。
【００２５】
入力パラメータから縮退構成まで決定される行の数がインスタンス１３０により提供されるものより少なければ、本発明の実施例の縮退構成により、各々が最大行数を、すなわち６４行を備えるバンクを７つ有する図７に示されるインスタンス１４０で例示されるように、８よりもむしろ７つしかバンクを持たないインスタンスを設計として選択するためにバンク縮退が起こり得る。その後、インスタンス１５０、１６０等を生成するために２行の増分で行縮退が続けられる。
【００２６】
本発明の一実施例によると、周辺論理１７０が関連するバンクの各ペア間に提供される。しかしながら、インスタンス１４０、１５０、１６０を考慮して理解されるように、これらの設計には、ペアをなさないバンクがあり、すなわち図３において描かれるようなこれらの実施例の一番上にあるバンクがある。本発明の一実施例によると、縮退プロセスには、もはや提供されることのないバンクに特定される不必要な構成要素が取り除かれる周辺設計１８０を生成するために周辺論理設計１７０を修正するステップが含まれる。
【００２７】
各バンクのレイアウトは、種々の形を取り得る。本発明の一実施例によると、隣接するバンクの各々のレイアウトは、反転していて、それゆえ例えばインスタンス１００の一番下の２つのバンクを見ると、第一のバンクは行０で始まって行６３まで延び、一方次のバンクは一番上に行６４を有し、一番下に行１２７を有する。結果としてインスタンス１００における一番上のバンクは、一番上に行４４７を有し、一番下に行５１１を有する。したがって、インスタンス１１０および１２０において下向きに指している矢印で示されるように、例えばインスタンス１００からインスタンス１１０へと動くとき、行５１１および行５１０が取り除かれるように、これらの矢印で示される方向に行は減らされる。それに対して、インスタンス１４０を考慮するとき、一番上のバンクは、一番下に行３８７を有し、一番上に行４４７を有する。したがって、インスタンス１５０、１６０等を生成する行縮退を行うときは、インスタンス１５０、１６０と関連して提供される上向きの矢印によって示される方向に行は減らされる。
【００２８】
隣接する行の各々のレイアウトを反転することによって、間に入る周辺論理１７０の設計を大きく簡素化することができる。
【００２９】
図３において、バンクアドレスがインスタンスの一番下から始まるものとすると、図示されるとおり、必要とされるワード数が低減するにつれ行および／またはバンクはメモリの一番上から減らされる。しかしながら、代わりの実施例において、バンクアドレスはインスタンスの一番上からはじめることができ、その場合必要とされるワード数が低減するにつれ、行および／またはバンクは、典型的にはメモリの一番下から減らされる。そのような配置が図４に示されており、そこでは、図３に例示される行縮退の詳細は省略されていて、その代わりに、本発明の実施例により起こり得るバンク縮退のみが例示されている。したがって、インスタンス２００から始まって、隣接するインスタンス２００が例示されるように上向きの矢印の方向に行縮退が起こり得るが、４４８以下の行が必要とされるならば（バンク当たり最大６４行であるとする）、バンクを７つしか有さないインスタンス２１０が代わりに採用される。同様に、３８４以下の行しか必要とされないならば、バンクを６つしか有さないインスタンス２２０が採用できる。同様なバンク縮退プロセスを行ってインスタンス２３０、２４０、２５０、２６０、２７０を生成することができる。図４に例示されるバンク縮退ステップの各々の間、図３を参照して上で記述されたプロセスにより、図４に示される各バンク配置について行縮退が起こり、隣接する矢印はそのような行縮退を行うとき行が縮小される方向を示す。
【００３０】
図４はまた、インスタンス２５０の拡大図を示し、本発明の一実施例において隣接するバンクのレイアウトがどのように反転されるかを再度例示する。
【００３１】
図３を参照して上で説明されたのと同様に、バンクのいずれのペアもそれと関連して周辺論理２８０を提供する。しかしながら、その周辺論理２９０の変形バージョンを、ペアをなさないバンクについて、すなわちインスタンス２７０におけるバンク０、インスタンス２５０におけるバンク２、インスタンス２３０におけるバンク４またはインスタンス２１０におけるバンク６について、生成することができる。
【００３２】
図３および図４において、それぞれインスタンスの一番下かインスタンスの一番上から始めてバンクアドレスが順序付けられる一方で、他の実施例においてバンクアドレスはランダムに順序付けられる。特に、特定のバンクがインスタンスにおいて物理的にどこに備わっているかは重要でなく、縮退プロセスは、そのバンクが物理的にどこに備わっているかにかかわらず、一番上のバンクアドレスから開始して続けられる。
【００３３】
図５は、本発明の前述の実施例の縮退構成を採用するとき達成でき、図２を参照して上で例示された従来技術の縮退構成と比較してずっと細かい粒度のレベルを例示するチャートである。記号ａ、ｂ、ｃ、ｄ、ｅ、ｆおよびｇは、図３に示される７つのインスタンス１００、１１０、…、１６０に対応する。
【００３４】
図３および図４から理解されるとおり、ユーザーが入力する入力パラメータをどのように選ぼうとも、結果として生じるインスタンスが提供する行数は、入力パラメータが特定されて２の増分で行が縮小されるという事実によって、最悪でも実際に要求されるよりも１つ多くの行を有する。したがって、バンク型メモリ構造に従う望ましいサイズのメモリ装置について、ユーザーの要求に密接に合致するインスタンスが生成され、そうしてより粗い遅延を有する設計を生成する必要性が避けられる。
【００３５】
図６Ａおよび図６Ｂは、本発明の実施例の縮退構成と図１および図２の従来技術縮退構成とを用いて達成可能な結果を対比する図である。特に図６Ａを見ると、これは、（図６Ａに線「Ｘ」で指示されるような）本発明の実施例の構成図と、（図６Ａに線「Ｙ」で指示されるような）図１および図２を参照して上に記述された従来技術の構成図との双方についてアレイの効率を例示する。アレイ効率は、合計メモリインスタンス面積に対するメモリインスタンスにおける能動メモリセル面積の割合として定義される。図６Ａは、可能な最大限のサイズ未満の特定のサイズについてのそれ（バンクの最大数およびバンク当たりの最大行数によって定義される）を明確に例示し、本発明の実施例の縮退構成は、従来技術の構成よりも高いアレイ効率を達成する。
【００３６】
図６Ｂは、サイズに対する遅延を例示し、かつ図２を参照して上で例示される従来技術の縮退構成と比較して、本発明の実施例の縮退構成を採用するときに達成できる粒度のより細かなレベルを例示する（やはり線「Ｘ」が本発明の実施例の縮退構成を用いて達成される結果を指示し、かつ線「Ｙ」が従来技術構成を用いて達成される結果を指示する）。
【００３７】
図６Ｂは、概略的な例示として意図されているに過ぎず、曲線Ｘの正確な形は実施例に依存するということに注意すべきである。とりわけ、曲線Ｘが図６Ｂにおいてほぼ直線として示されているが、少なくともいくつかの実施例において、それは十分に曲線の形を取り、以下に記述される理由で、ある点でその曲線が突然にジャンプする可能性もある。
【００３８】
線Ｙによって例示される従来技術型の縮退は、各アレイのサイズが２行分低下するとタイミングが次第に向上するものとなる。グラフは非常に線形である。本発明の実施例の技法と比較してタイミングが十分に良い一方で、粒度がずっと粗く、インスタンスのサイズが一度に２＊（バンクの数）行だけしか低減できない。
【００３９】
本発明の実施例の技法に関し、行がバンクから差し引かれるとき、タイミングはあまり変わらず、というのは他のバンクのタイミングが制限的となってこれらのサイズが変わらないからである。しかしながら、１つのバンク全体が切断されてしまう（または縮退されて何もなくなる）とき曲線Ｘにジャンプ（すなわち「階段状の段」）が現れるであろう。インスタンスが小さな単一のバンクに縮退されるとき、２つの線（ＸおよびＹ）が実際に出会ったり、交わることすらある。それで、本発明の実施例の構成によって、インスタンス全体について（バンク当たりではなく）一度に少数行（例えば２行）だけメモリ容量を変える能力が提供されるが、構成によってはわずかな性能ペナルティを被ることとなる。
【００４０】
図７は、本発明の一実施例による縮退プロセスを例示するフロー図である。ステップ３００でいくつかの入力パラメータが受け取られ、これらは典型的には、縮退プロセスを行うのに用いられるコンパイラツールのユーザーによって入力される。１つの実施例において、これらのパラメータは、メモリ装置が蓄積可能である必要のあるワード数と、メモリにアクセスするとき用いられるマルチプレクサのサイズおよびメモリにアクセスするために提供される入出力ビットの数を同定する。これらの入力パラメータに基づいて、プロセスは、メモリ装置に提供される行や列をステップ３１０で決定する。要求される行の実際の数は、特定されるマルチプレクサのサイズでワード数を割ることによって計算でき、一方列の数は、入出力ビットの数に特定のマルチプレクササイズを掛けることによって計算できる。前述の方法で計算される行数は、２の倍数である整数の最も近いものに切り上げられて、それが、縮退構成の可能なインスタンスの１つと相関できるものとする。
【００４１】
その後ステップ３２０で縮退プロセスが用いられて、ステップ３１０で計算される行を支援するのに必要とされる最小数のバンクを用い、一方で少なくとも１つのバンクを除く全てのバンクで、バンク毎の最大の行数を用いるバンク型メモリ構造のインスタンスが決定される。そのような決定を行う上で、縮退プロセスは、可能なバンクの最大数およびバンク当たりの行の最小数を重んじ、上で記述されたように、これはバンク型メモリ構造によって特定されている。
【００４２】
１つの実施例において、一旦このステップが行われると、その後出力インスタンス設計を出力できる。しかしながら、本発明の一実施例によると、追加のステップ３３０、３４０が加えられる。とりわけ、ステップ３３０で選択されたバンクの数が奇数であるのか測定される。違っておれば、プロセスはステップ３５０へと進み、そこでインスタンス設計が出力される。しかしながら、選択されたバンクの数が奇数であるならば、不必要な構成要素を取り除くために、ステップ３４０でバンクの奇数と関連する周辺論理の設計が変えられる。とりわけ、先に記述されたとおり、そのような周辺論理には、典型的にはバンクのペアの間で共有されるいくつかの回路と、そのペアの一方または他方のバンクに独特のいくつかの回路が含まれている。したがって、ステップ３２０で決定されるインスタンス設計によって提供されているのではないバンクに独特の、そのような回路のいずれのものも取り除くことができ、それによってペアをなさないバンクと関連する周辺論理のより効率的な設計が生成される。
【００４３】
その後ステップ３５０でインスタンス設計が出力され、そしてこのインスタンス設計から、複数の周知の技法のいずれかを用いて実際のメモリ装置を生成することができる。
【００４４】
図８は、本発明の実施例の縮退構成を採用するときに生成できるいくつかのインスタンスを例示するチャートである。そのチャートの左手の列は、ステップ３１０で計算される行の行数を示す。これは、第二の列に示されるように、これらの行をアドレスするのに必要とされるアドレスビットＮの数を規定する。そして、これに基づいて、縮退構成は、これらのバンク間で区画される行を備える一定数のバンクを有する設計を作り出す。そして、バンク選択信号を生成するのに一定数のアドレスビットＮが必要とされ、一方、残りのビットは、行選択信号に用いられる。アドレスのデコーディングを実施するために縮退構成によって実際に行われる計算は、以下のとおりである。
● Word increment = 2 * mux
● Total word count = ((512 - 32)/2 + 1) *mux = 241 * mux words
● Bank = div((rows - 1)/64) + 1
● ax[m:0] = local row select, m = {4,5}
● ax[n:m+1] = bank select, n = {6,7,8}
【００４５】
図８から分かるとおり、行数が３２か６４であるならば、バンク当たりの最大行数が６４であり、かつバンクの最大数が８であるバンク型メモリ構造の先の例を想定し、単一のバンクのみを提供する必要があり、したがって、バンク選択信号は適用可能でないということが理解される。代わりに、アドレスビットの全てが行選択信号として用いられる。しかしながら、特定される行数が１２８であるならば、バンクが２つ提供され、アドレスの最上位ビットがバンク選択信号として用いられ、残りのビットが行選択信号として用いられる。同様に、２５６行が特定されるならば、バンクが４つ必要とされ、アドレスの最上位２ビットがバンク選択信号として用いられ、アドレスの残りのビットが行選択信号として用いられる。同様に必要とされる行数が５１２であるならば、バンクを８つ提供する必要があって、最上位３ビットがバンク選択信号として用いられ、残りのアドレスビットが行選択信号として用いられる。
【００４６】
図９は、前述の縮退技法を実施するのに用いられる汎用コンピュータ４００のタイプを概略的に例示する。汎用コンピュータ４００には、中央処理装置４０２、ランダムアクセスメモリ４０４、リードオンリーメモリ４０６、ネットワークインターフェースカード４０８、ハードディスクドライブ４１０、ディスプレイドライバ４１２とモニタ４１４およびキーボード４１８とマウス４２０を備えるユーザー入出力回路４１６が含まれており、これらは全て共通バス４２２を介して接続されている。動作において、中央処理装置４０２は、ランダムアクセスメモリ４０４、リードオンリーメモリ４０６およびハードディスクドライブ４１０の１つ以上に蓄積されているか、またはネットワークインターフェースカード４０８を介して動的にダウンロードされるコンピュータプログラムインストラクションを実行する。行われる処理の結果が、ディスプレイドライバ４１２とモニタ４１４を介してユーザーに表示される。汎用コンピュータ４００の動作を制御するユーザー入力は、キーボード４１８またはマウス４２０からユーザー入出力回路４１６を介して受け取られる（そうして、例えば、必要とされるメモリ装置のある特性を決定するのに用いられる入力パラメータを、このメカニズムを介して入力できる）。コンピュータプログラムは、多様な異なるコンピュータ言語で書かれ得ることが理解される。コンピュータプログラムは、記録媒体に蓄積されて分配されるか、汎用コンピュータ４００に動的にダウンロードされる。適切なコンピュータプログラムの制御のもとで動作するとき、汎用コンピュータ４００は、前述の縮退技法を行うことができ、前述の技法を行う装置を形成すると考えられる。汎用コンピュータ４００の構造は、相当に多様であり得、図９は１つの例に過ぎない。
【００４７】
本発明の実施例によると、高性能、低電力消費および良好な面積効率を有するメモリ装置を定義するインスタンスの生成を可能とする縮退構成が提供される。その技法は、バンク型メモリ構造のインスタンスにより提供できる行数について大きな柔軟性を与え、かつ提供される複数の行の粒度を非常に細かいレベルとする。そのような構成は、周知の従来技法によるならば、提供できる可能な行数が非常に粗い粒度となり、それによって多くのインスタンスにおいて性能、電力消費および面積の効率に悪影響が及ぼされるような高度にバンク型メモリ構造において特に有益である。
【００４８】
本発明の実施例による前述の縮退構成は、例えば、縮退の順番（前述のように、インスタンス内のいずれの特定のバンクも物理的な位置は重要でないので、バンクアドレスはランダムな順であり得る）、縮退が始まるのはメモリ領域の一番上からであるか一番下からであるか、縮退構成の各インスタンス間でいくつの行が取り除かれるか等について、数々の方法で変更できることが理解される。
【００４９】
典型的には、コンパイラデータは、ユーザーが特定する入力パラメータの２、３の選択点に、曲線に当てはめるプロセスを行うことで生成される。そして、使われていない周辺論理を取り除くとともに生じる遅延のステップ変化の結果、曲線は（１つのなめらかな連続線を形成する代わりに）その中にいくつかの小さな段を有するものとなる。本発明の実施例によると、データを当てはめる曲線上のほんの小さなペナルティでチャンネル領域のオーバーヘッドが低減される。
【００５０】
本発明の実施例の縮退構成は、いかなるタイプのバンク型メモリ構造、例えば、リードオンリーメモリ（ＲＯＭ）、デュアルポートリード／ライトメモリ等に応用できる。
【００５１】
ここでは、発明の特定の実施例が記述されているが、発明はそれに限定されるものでなく、発明の範囲内で多くの変更や負荷が行われても良いことが理解される。例えば、以下の従属項の構成は、本発明の範囲から離れることなく独立項の構成と様々に組み合わせることができる。
【図面の簡単な説明】
【００５２】
【図１】従来技術の縮退構成を概略的に例示する図である。
【図２】図１の縮退構成によって生成される特定のインスタンスの間での増分の粗い性質を概略的に例示する図である。
【図３】本発明の実施例による縮退構成を概略的に例示する図である。
【図４】本発明の実施例による縮退構成を概略的に例示する図である。
【図５】本発明の実施例の縮退構成により生成されるインスタンス間の細かい増分を概略的に例示する図である。
【図６Ａ】本発明の実施例の縮退構成と図１および図２の従来技術の縮退構成とを用いて達成可能な結果を対比する図である。
【図６Ｂ】本発明の実施例の縮退構成と図１および図２の従来技術の縮退構成とを用いて達成可能な結果を対比する図である。
【図７】本発明の一実施例における縮退構成の動作を例示するフロー図である。
【図８】本発明の一実施例の縮退構成を用いるときに生成することのできるインスタンス設計の例を例示する表である。
【図９】本発明の実施例の縮退構成が実施されるコンピュータシステムの図である。
【符号の説明】
【００５３】
１００，１１０，１２０，１３０，１４０，１５０，１６０，２３０，２４０，２５０，２６０，２７０  インスタンス
１７０、２８０  周辺論理
１８０  周辺設計
【図１】
2008047132.tif 000003
【図２】
2008047132.tif 000004
【図３】
2008047132.tif 000005
【図４】
2008047132.tif 000006
【図５】
2008047132.tif 000007
【図６Ａ】
2008047132.tif 000008
【図６Ｂ】
2008047132.tif 000009
【図７】
2008047132.tif 000010
【図８】
2008047132.tif 000011
【図９】
2008047132.tif 000012