(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムにおいてインタリーバを構成する方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを照会する少なくとも１つのバンク・リストを有し、少なくとも１つのエントリ・モデルを少なくとも１つの前記メモリ・バンクに関連付けるステップと、等しいサイズの指定されたインタリーブの程度を各前記エントリ・モデルに関連付けるステップと、等しいサイズの範囲指定を各前記エントリ・モデルに関連付けるステップと、各前記メモリ・バンクをラベルに関連付け、該バンク・リストの前記メモリ・バンク・ラベルに関する繰返し順序を特定するステップと、前記チャンクを値に関連付けるステップであり、前記チャンク値が順序付けられるステップとを含み、前記エントリ・モデルにおける前記バンク・リストの第１の前記メモリ・バンクに関して前記ラベルを決定するステップであって、該第１のメモリ・バンク・ラベルが、他の該エントリ・モデルの該バンク・リストに関する該第１のメモリ・バンク・ラベルと異なるステップと、前記繰返し順序における前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクに関して前記ラベルを決定するステップであって、該エントリ・モデルにおける該バンク・リストの該メモリ・バンク・ラベルの発生間隔が最大となるように決定するステップと、前記チャック値の順序付けにおける前記チャンク値を、前記エントリ・モデルに関する前記バンク・リストの前記メモリ・バンクにマッピングするステップであって、前記メモリ・バンク・ラベルが前記繰返し順序になっているステップと、を各該エントリ・モデルごとに含み、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの前記発生間隔の最大化を通じて該メモリ・バンクの使用を最大にすることによって、該エントリ・モデルを有する前記インタリーバを効率的に構成する方法。
【請求項２】
前記繰返し順序ステップにおいて、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの前記ラベルを決定する前記ステップが、該エントリ・モデルにおける該バンク・リストの該メモリ・バンク・ラベルの発生間隔が最大になるように例外処理を実行するステップを含む請求項１に記載の方法。
【請求項３】
コンピュータ・システムにおけるインタリーバを構成するための方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、少なくとも１つのエントリ・モデルを少なくとも１つの前記メモリ・バンクに関連付けるステップと、等しいサイズの指定されたインタリーブの程度を各前記エントリ・モデルに関連付けるステップと、等しいサイズの範囲指定を各前記エントリ・モデルに関連付けるステップと、前記バンク・リストの前記メモリ・バンクについて繰返し順序を特定するステップと、を含み、各前記エントリ・モデルに関して、前記バンク・リストの第１の前記メモリ・バンクを前記エントリ・モデルに関連付けるステップであって、該第１のメモリ・バンクが他の該エントリ・モデルにおける該バンク・リストの該第１のメモリ・バンクと異なるステップと、前記エントリ・モデルにおいて前記チャンクを、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの発生間隔が最大になるような前記繰返し順序で並べられた、該エントリ・モデルに関する該バンク・リストの該メモリ・バンクにマップするステップと、を含み、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの前記発生間隔の最大化を通じて該メモリ・バンクの使用を最大にすることによって、該エントリ・モデルを使用する前記インタリーバを効率的に構成する方法。
【請求項４】
コンピュータ・システムにおけるインタリーバを構成するための方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、前記インタリーバを構成するために前記メモリ・バンクの数を決定するステップと、前記メモリ・バンクの数と等しい２の累乗の数の最小和を決定するステップと、前記最小和の項を特定するステップと、エントリ・モデルの数を前記最小和の項数と等しくすることにより、該エントリ・モデルの数を決定するステップと、前記最小和の各項を各前記エントリ・モデルと対応付けるステップと、少なくとも１つの前記エントリ・モデルを少なくとも１つの前記メモリ・バンクに関係付けるステップと、各前記エントリ・モデルに関する少なくとも１つの指定されたインタリーブの程度を、前記エントリ・モデルの対応する項の値と等しくするステップと、少なくとも１つの各前記エントリ・モデルに関する範囲指定を指定するステップであって、該範囲指定が各該エントリ・モデルに関する前記指定されたインタリーブの程度に比例するステップと、前記メモリ・バンクをラベルに関連付けるステップと、前記チャンクを値に関連付けるステップとを含み、各前記チャンク値について、前記チャンク値を前記メモリ・バンク・ラベルにマップすることにより、前記バンク・リストを埋めるステップと、前記メモリ・バンク・ラベルの発生間隔を最大にするために前記メモリ・バンク・ラベルの前記マッピングを変動させるステップとを含み、最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンク・ラベルの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成する方法。
【請求項５】
コンピュータ・システム内でインタリーバを構成する方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、前記インタリーバを構成するための前記メモリ・バンクの数を決定するステップと、前記メモリ・バンクの数と等しい２の累乗の数の最小和を決定するステップと、前記最小和の項を特定するステップと、エントリ・モデルの数を前記最小和の項数と等しくすることにより、エントリ・モデルの数を決定するステップと、前記最小和の各項を各前記エントリ・モデルと対応付けるステップと、少なくとも１つの前記エントリ・モデルを少なくとも１つの前記メモリ・バンクに関係付けるステップと、少なくとも１つの各前記エントリ・モデルに関する指定されたインタリーブの程度を前記エントリ・モデルの対応する項の値と等しくするステップと、各前記エントリ・モデルに関する少なくとも１つの範囲指定を指定するステップであって、該範囲指定が各該エントリ・モデルに関する前記指定されたインタリーブの程度に比例するステップと、を含み、前記チャンクを前記メモリ・バンクにマップすることにより、前記バンク・リストを埋めるステップと、前記メモリ・バンクの発生間の間隔を最大にするように前記メモリ・バンクのマッピングを変動させるステップとを各前記チャンクについて含み、最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンクの発生間隔を最大にすることにより、各該エントリ・モデルにおける該バンク・リストを埋めることによって前記インタリーバを効率的に構成する方法。
【請求項６】
コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成装置であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを照会する少なくとも１つのバンク・リストを有し、少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの指定されたインタリーブの程度と、各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの範囲指定と、各前記メモリ・バンクに関連付けられた、繰返し順序の少なくとも１つのラベルと、前記チャンクに関連付けられた、順序付けられている少なくとも１つの値とを含み、各該エントリ・モデルごとに、第１の前記ラベルに関連付けられる前記エントリ・モデルにおける前記バンク・リストの第１の前記メモリ・バンクであって、該第１のメモリ・バンク・ラベルが他の該エントリ・モデルの該バンク・リストについての該第１のメモリ・バンク・ラベルとは異なるメモリ・バンクと、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの発生間隔が最大になるような前記繰返し順序になっている該エントリ・モデルにおける該バンク・リストの該メモリ・バンクに関する前記ラベルと、前記エントリ・モデルに関する前記メモリ・バンク・リストの前記メモリ・バンク・ラベルにマップされる前記チャンク値の順序付けにおける前記チャンク値であって、メモリ・バンク・ラベルが前記繰返し順序になっているチャンク値と、を含み、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの前記発生間隔を最大にすることにより、前記メモリ・バンクの使用を最大にすることによって該エントリ・モデルを使用する前記インタリーバを効率的に構成するインタリーバ構成装置。
【請求項７】
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルが前記繰返し順序になっており、該メモリ・バンク・ラベルが再使用されて前記メモリ・バンクの発生間隔を最大にする例外処理を含む請求項６に記載のインタリーバ構成装置。
【請求項８】
少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有するコンピュータ・システム内でインタリーバを構成するためのインタリーバ構成装置であって、少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの指定されたインタリーブの程度と、各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの範囲指定とを含み、前記バンク・リストにおけるメモリ・バンクは繰返し順序であり、各前記エントリ・モデルに対して、前記バンク・リストにおける第１の前記メモリ・バンクは前記エントリ・モデルに関連付けられ、他の該エントリ・モデルの前記バンク・リストに関する前記第１のメモリ・バンクとは異なり、該エントリ・モデルのチャンクは、前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクの発生間隔が最大になるような前記繰返し順序で並べられた、該エントリ・モデルに関する該バンク・リストの該メモリ・バンクにマップされ、これによって、前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクの前記発生間隔を最大にすることにより、該メモリ・バンクの使用を最大にすることによって該エントリ・モデルを使用する前記インタリーバを効率的に構成するインタリーバ構成装置。
【請求項９】
コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成装置であって、前記コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び前記メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、前記インタリーバ構成装置が、少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、前記インタリーバを構成するための前記メモリ・バンクの数と、前記メモリ・バンクの数に等しい２の累乗の数の最小和と、各前記エントリ・モデルに対応する、前記最小和の項と、各前記エントリ・モデルの対応する項の値に等しい、各前記エントリ・モデルに関して少なくとも１つの指定されたインタリーブの程度と、各前記エントリ・モデルごとに前記指定されたインタリーブの程度に比例する、各前記エントリ・モデルに関する少なくとも１つの範囲指定と、前記メモリ・バンクに関連付けられたラベルと、前記チャンクに関連付けられた値とを含み、各前記チャンク値について、前記メモリ・バンク・ラベルを様々に変えて該メモリ・バンク・ラベルの発生間隔を最大にすることにより、該チャンク値を該メモリ・バンク・ラベルにマップし、これによって前記バンク・リストを埋め、最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンク・ラベルの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成するインタリーバ構成装置。
【請求項１０】
少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有するコンピュータ・システム内でインタリーバを構成するためのインタリーバ構成装置であって、少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、前記インタリーバを構成するための前記メモリ・バンクの数と、前記メモリ・バンクの数に等しい２の累乗の数の最小和と、各前記エントリ・モデルに対応する、前記最小和の項と、各前記エントリ・モデルの対応する項の値に等しい、各前記エントリ・モデルごとの少なくとも１つの指定されたインタリーブの程度と、各前記エントリ・モデルに関する前記指定されたインタリーブの程度に比例する、各該エントリ・モデルに関する少なくとも１つの範囲指定とを含み、各前記チャンクについて、前記メモリ・バンクを様々に変えて該メモリ・バンクの発生間隔を最大にすることにより、該チャンクを該メモリ・バンクにマップして該バンク・リストを埋め、最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンクの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成するインタリーバ構成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システムにおいてメモリをインタリーブするための方法および装置一般に関する。
【０００２】
【従来の技術】
コンピュータ・メモリのインタリービングは、複数のメモリ・バンク間にメモリ参照を広げて、メモリ・システムのスループットを増大するプロセスである。インタリービングは、インタリーバ（ｉｎｔｅｒｌｅａｖｅｒ）と呼ばれるコンピュータのハードウェアによって実施され、インタリーバはプロセッサのアドレスなどの物理アドレスをメモリ・バンク内の特定のロケーションに変換する。
【０００３】
一般に、メモリ・アクセスは複数のメモリ・バンク間にインタリーブすることができ、このメモリ・バンクの数は変化することができる。たとえば、メモリ・バンクはメモリ・ボードなどのコンピュータのハードウェアに関連するので、コンピュータの耐用期間にコンピュータ内のメモリ・ボードの数を変えることができる。このためメモリ・バンク数に関する可変要件は、ソフトウェアまたはファームウェアの構成操作（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）によって対処してもよい。すなわち、ソフトウェアは、メモリ・バンクのアドレス空間を分割する方法を管理するインタリーバの制御レジスタに、構成情報を書き込むことができる。この構成情報は、インタリーバが物理アドレスをメモリ・バンクのラベルおよびメモリ・バンクのオフセットに変換するために使用される。オフセットがアドレス範囲内の特定のアドレスを位置付けるために使用することができることを当業者は理解されるであろう。
【０００４】
通常、メモリ・バンクの数が２の累乗の数ではないとき、現在のインタリーバは、インタリービングに使用することができるメモリ・バンクの数を、実際に使用可能なメモリ・バンクの数より小さく、最もその数に近い２の累乗の数に近似して動作する。一般により少ない２の累乗の数のメモリ・バンク間でのインタリービングは、インタリービングによるメモリ・アクセスのスループットを最大限に改善することができない。
【０００５】
ある種のインタリーバには柔軟性があり、インタリーブの程度、アドレス範囲のサイズ、またはバンク・リストにロードされる値を変化させることができる。しかしながら、現在のインタリーバの構成操作は、この種のインタリーバが備える柔軟な機能を利用していない。
【０００６】
さらに構成プロセスにおいて、現在のある種のインタリーバは、使用可能なメモリ・バンクと同じ数の構成エントリを要求することによって動作する。構成に関するインタリーバに使用することができるリソースは、固定されており、数も少ないので、構成エントリ数の削減はインタリービングの効率を改善する。
【０００７】
【発明が解決しようとする課題】
本発明は、新しい方法でインタリーバを構成することによって、任意のインタリーバに組み込まれた柔軟性を有利に最適化し、メモリをインタリービングするのに使用するバンクの数を最大にすることによって、コンピュータ・メモリのアクセスのスループットを改善することを目的とする。
【０００８】
【課題を解決するための手段】
本発明はインタリーバが「Ｎ」個のメモリ・バンク間で動作することができるようにインタリーバを構成する。ここで、「Ｎ」は２の累乗の数である必要はない。Ｎウェイ・インタリーバの場合において、本発明はＮより少ない数のエントリを使用することができ、コンピュータ・メモリのインタリービングに使用するバンク数の近似を、従来技術を用いた近似より改善することができる。
【０００９】
本発明の実施形態はインタリーバ構成ツールであり、本インタリーバ構成ツールは、バンク・リストにロードする値に関連するインタリーバの構成情報、インタリーブの程度、またはアドレス範囲のサイズを変動することができ、メモリ・バンクのアクセスのスループットを改善する。本実施形態は、ソフトウェアまたはファームウェアによって構成されるインタリーバと協同して動作するインタリーバ構成ツールを説明するが、本発明がこの特定の種類のインタリーバに限定されるものではないことは理解されるであろう。
【００１０】
上記より、本発明の目的はコンピュータ・システム内のインタリーバの制御レジスタを新たな方法で構成することにより、メモリ参照を複数のメモリ・バンク間に広げるプロセスを改善し、メモリ・システムのスループットを増大させることである。
【００１１】
また本発明の目的は、複数の使用可能なメモリ・バンク間でインタリービングすることにより、メモリ・アクセスのスループットを改善することでもある。ここで、メモリ・バンクの数は２の累乗の数に限定されない。すなわち、本発明の実施形態は、インタリービングに使用するメモリ・バンクの数を、その数と同じにするか、または２の累乗の数に制限される従来の解決法より近い数に近似することができる。
【００１２】
本発明の別の目的は、インタリーバの構成に必要なエントリの数を、使用可能なメモリ・バンクの数より少ない数に制限することにより、インタリーバの構成に必要なリソースの数を削減することである。
【００１３】
さらに本発明の別の目的は、インタリーバの構成において一緒にエントリを構成することにより、インタリーバの効率を改善することである。
【００１４】
【発明の実施の形態】
以下の詳細な説明および数枚の図面において、類似する要素を類似する参照番号で特定する。
【００１５】
概して図１は、インタリーバ構成ツール２２０（図２を参照）が動作するコンピュータ・システム１００を示す。インタリーバ構成ツール２２０は、インタリーバ１１７が「Ｎ」個のメモリ・バンク３０２間で動作するようにインタリーバ１１７を構成する。ここで、「Ｎ」は２の累乗の数である必要はない。すなわち、インタリーバ構成ツール２２０は、インタリーバ１１７が使用する構成を作成し、コンピュータ・システム１００における物理アドレス空間の範囲をメモリ・バンク３０２およびオフセットにマップする。さらに、コンピュータ・システム１００は入力アドレス２０２を含むことができ、入力アドレスはインタリーバがメモリ・バンク３０２のロケーションを特定するために使用される。
【００１６】
コンピュータ・メモリ・バンク３０２は、各種の周知のメモリ記憶装置または将来のメモリ装置であり、一般的に使用可能なランダム・アクセス・メモリ（ＲＡＭ）、メモリ・ボード、キャッシュ・メモリ、内蔵ハード・ディスクなどの磁気媒体、またはその他のメモリ記憶装置を含む。１つの実施形態では、オペレーティング・システム（Ｏ．Ｓ．）２２２およびインタリーバ構成ツール２２０（図２を参照）は、コンピュータ・システム１００の実行中にメモリ・バンク３０２に常駐することができる。
【００１７】
メモリ・バンク３０２の数の変化に対処するため、インタリーバ構成ツール２２０などのソフトウェアまたはファームウェアによってインタリーバ１１７を設定することができる。インタリーバ１１７を構成するために、インタリーバ構成ツール２２０は、値をインタリーバ１１７の制御レジスタ、すなわちエントリ４４０に書き込む。これらの値は、インタリーブに関与するインタリーバ１１７のメモリ・バンク３０２を特定し、バンク３０２間でアドレス空間を分割する方法を特定する。インタリーバ１１７はこの情報を使用して物理アドレスをメモリ・バンク３０２およびオフセットに変換する。情報は実際のメモリ・バンク３０２のアドレス、またはメモリ・バンク３０２のロケーションを表すラベルにすることができることが理解されるであろう。
【００１８】
メモリ・バンク３０２は、メモリ１０６（図２を参照）の物理的単位であり、独立してアクセスすることができることは理解されるであろう。さらに、メモリ１０６の複数のバンク３０２間でアドレス空間をインタリーブすることは、メモリ１０６の異なるバンク３０２に順番にしたがってアドレス指定する操作を意味し、その順番はメモリ１０６へのアクセス要求を飛びとびに配置する。これによって、メモリ１０６のアクセスに関するコンピュータ・システム１００の負荷を、複数のメモリ・バンク３０２間に分散することができる。用語「バンク」と「メモリ・バンク」は本明細書では相互に交換して使用でき、またメモリ１０６はメモリ・バンク３０２を表すものであることが理解されるであろう。任意のコンピュータ・システム１００では、メモリ・バンク３０２のアクセスに要する時間は、バンクごとに変えることができ、メモリ１０６のインタリービング・アクセスは、メモリ・アクセス時間がより均一に見えるようにアクセス要求を飛びとびに配置することができる。
【００１９】
インタリーバの設計時において、インタリービングに使用することができるバンク３０２の数が分からないことは当業者には理解されるであろう。たとえば、コンピュータ・システム１００は空のメモリ・ボード・スロットをいくつか備えていたり、インタリーバ１１７が使用しないメモリ・ボードを含んでいたりする場合がある。
【００２０】
チャンク（ｃｈｕｎｋ）４０４は、メモリ１０６の最小単位の抽象概念であり、メモリ・バンク３０２に割り当てた物理アドレス空間３００における順次アドレス（ｉｎ−ｏｒｄｅｒ  ａｄｄｒｅｓｓ）を表す。チャンク４０４は、コンピュータ・システム１００内で同じサイズであり、通常、サイズは設定することができない。チャンク４０４は、メモリ・バンク３０２の一部およびメモリ・バンク３０２にマップされる物理アドレスの両方の記述に使用することができる。さらに、チャンク４０４が特定のバンクの割当てに関する使用可能なメモリ１０６の単位を表すとき、チャンク４０４は入力アドレス２０２に関連することができる。チャンク４０４をバンク３０２に割り当てるとき、チャンク４０４はバンク３０２にも関連する。本実施形態は、インタリーバ１１７に関する構成を作成し、それによって物理アドレス３００とチャンク４０４との間のマッピングを確立する。特定のチャンク４０４を特定するラベル、値、または数によってチャンク４０４を表すことができることが理解されるであろう。
【００２１】
一般に、インタリーバ１１７は、入力アドレス２０２（図２を参照）の一部を使用する。入力アドレスの一部はインタリーバ１１７がアクセスするメモリ１０６のバンク３０２を特定する。入力アドレス２０２の一部がビットの数「ｎ」、２ｎの値により表されるので、入力アドレス２０２の一部を使用することは、しばしばバンク３０２の数を２の累乗の数に制限する。一般にバンク３０２の数が２の累乗の数であるときは、コンピュータ・システム１００は、アクセスに適したバンク３０２の決定に使用する動作の効率を改善するために、ビットをシフトすることができる。したがって、任意のインタリーバ１１７は、適当なバンク３０２を決定するプロセスを最適にするために、インタリーブ動作を２の累乗のバンク３０２の数に制限する。ビットはコンピュータ・システム１００において測定可能な最小単位であり、一般に「オン」または「オフ」のいずれかの値を有することを当業者は理解されるであろう。
【００２２】
インタリーバ１１７は２の累乗ではないバンク３０２数を使用することができるが、一般的にインタリービングするために一度に使用するバンク３０２の数を２の累乗の数に切り捨てることが要求される。したがって「Ｎ」がバンクの数であり、「Ｐ」が「Ｎ」を２の累乗に切り捨てた数を表す場合、メモリ・アドレス空間は、「Ｐ」個のバンクでインタリーブされる「Ｎ」個の同じ大きさの部分に分割される。当業者には、この技法が理解されるであろう。
【００２３】
インタリーバ１１７は構成レジスタを使用して動作し、少なくとも１つのエントリ４４０がこのレジスタを参照し、このエントリはインタリーバ構成ツール２２０からインタリーバ１１７に転送される構成を含む。エントリ４４０は範囲指定４４２を含み、この範囲指定はインタリーバ１１７がアクセスすることができるアドレス範囲を表す。エントリ４４０はバンク・リスト４４４も含み、このバンク・リストは範囲指定４４２によって指定した範囲にアクセスすることができるバンク３０２のリストである。
【００２４】
エントリ４４０は、特定のエントリ４４０に関するインタリーブの程度の値である「指定されたインタリーブの程度４５０」も含み、指定されたインタリーブの程度の例としては特定のエントリ４４０においてインタリーブするバンクの数などである。指定されたインタリーブの程度４５０については、図５を参照して説明する。インタリーバ構成ツール２２０がメモリ１０６をインタリーブするバンク３０２の数に関連する情報にアクセスすることは理解されるであろう。
【００２５】
図１は、さらにプロセッサ１０４、メモリ・バンク３０２、インタリーバ１１７、データ記憶装置１４０、入出力アダプタ１４２、通信アダプタ１４４、通信ネットワーク１４６、ユーザ・インターフェース・アダプタ１５０、キーボード１４８、マウス１５２、ディスプレイ・アダプタ１５４、およびコンピュータ・モニタ１５６などのコンポーネントを含むコンピュータ・システム１００を表す。コンピュータ・システム１００のコンポーネントの構成には多くの可能な形態があり、コンピュータ・システム１００が一般的に備える図示されないコンポーネントがあることを関連分野の当業者は理解されるであろう。
【００２６】
データ記憶装置１４０は、周知の、または将来の様々な装置であり、コンパクト・ディスク・ドライブ、テープ・ドライブ、取外し可能なハード・ディスク・ドライブ、またはディスケット・ドライブが含まれる。このようなプログラム記憶装置は入出力アダプタ１４２と通信し、入出力アダプタはコンピュータ・システム１００の他のコンポーネントと通信して、コンピュータ・システム１００が使用するデータを取り出し、また格納する。このようなプログラム記憶装置は、一般にコンピュータが使用可能な格納媒体を有し、そこにコンピュータ・ソフトウェア・プログラムおよびデータを格納していることが理解されるであろう。
【００２７】
入力装置は周知の様々な入出力装置を含み、人間若しくは機械またはローカル若しくはリモートに関わらず、ユーザからの情報を受け入れる。このような装置は、たとえばキーボード１４８、マウス１５２、タッチスクリーン・ディスプレイ、タッチ・パッド、音声認識装置を備えたマイクロフォン、ネットワーク・カードまたはモデムを含む。入力装置はユーザ・インターフェース入出力アダプタ１４２と通信し、このアダプタはコンピュータ・システム１００のコンポーネントと通信して入出力命令を処理する。出力装置は周知の様々な入出力装置を含み、人間若しくは機械またはローカル若しくはリモートに関わらず、情報をユーザに提示する。このような装置は、たとえばコンピュータ・モニタ１５６、プリンタ、音声合成装置を備えた音声スピーカ、ネットワーク・カード、またはモデムを含む。モニタ１５６などの出力装置は、ディスプレイ・アダプタ１５４を介してコンピュータ・システム１００のコンポーネントと通信する。入出力装置は、周知の様々なデータ記憶装置１４０も含むことができ、コンパクト・ディスク・ドライブ、テープ・ドライブ、取外し可能なハード・ディスク・ドライブ、またはディスケット・ドライブを含む。
【００２８】
説明のために、実行可能コード１２４は一般に入力装置からロードされ、データ記憶装置１４０上に格納される。コンピュータ・システム１００で実行するために、プロセッサ１０４は実行可能コード１２４のコピーまたはその一部をメモリ１０６に代替的に配置することができる。
【００２９】
コンピュータ・システム１００は、ネットワーキング・カードなどの通信アダプタ１４４を介してネットワーク１４６と通信する。ネットワーク１４６は、ローカル・エリア・ネットワーク、広域ネットワーク、若しくは別の周知のコンピュータ・ネットワークまたは将来のコンピュータ・ネットワークであってよい。インタリーバ構成ツール２２０が使用する入出力装置は、通信アダプタ１４６を介してネットワーク１４６に接続することができるので、コンピュータ・システム１００と一緒に配置されなくてもよいことが理解されるであろう。さらに、データ記憶装置１４０およびモニタ１５６などのコンピュータ・システム１００の他の部分が通信アダプタ１４４を介してネットワーク１４６に接続することができるので、一緒に配置されなくてもよいことが理解されるであろう。
【００３０】
図２は、インタリーバ構成ツール２２０が使用し、メモリ１０６に格納されるデータ構造および機能を示す。図を参照してデータ構造および機能を説明し、順に記載する。メモリ１０６は次のものを含むことができる。
【００３１】
プロセッサ１０４と協同してプログラムを実行するオペレーティング・システム２２２。
プログラム実行のためのコードを準備するコンパイル・システム２２４。
エントリ４４０をインタリーバ１１７（図１を参照）内に構成し、アドレス空間３００、レジスタのエントリ・モデル４４１、範囲指定４４２、バンク・リスト４４４、および指定されたインタリーブの程度４５０を含むインタリーバ構成ツール２２０。
１組の特定のバンク３０２に関するメモリ１０６のアドレス空間３００。
インタリーバ１１７（図１を参照）と関連し、インタリーバ構成ツール２２０に含まれる、レジスタのエントリ・モデル４４１。
エントリ・モデル４４１に含まれ、関連するエントリ・モデル４４１によって制御されるアドレス範囲を示す範囲指定４４２。
範囲指定４４２内でアクセスされるバンク３０２のリストであり、エントリ・モデル４４１に含まれるバンク・リスト４４４。
【００３２】
特定のエントリ・モデル４４１に関するインタリーブの程度の値である指定された程度４５０。本明細書において用語「指定されたインタリーブの程度」および「指定された程度」は相互に交換可能に使用することができる。
【００３３】
その他のデータ構造および機能。
当業者には理解されるように、インタリーバ構成ツール２２０または任意の機能ファイルによる機能は、一般にそのようなソフトウェア命令を実行する中央演算処理ユニットによって実行され、中央演算処理ユニットはプロセッサ１０４（図１を参照）として示される。プロセッサ１０４は、一般にコンパイル・システム２２４、オペレーティング・システム２２２、およびインタリーバ構成ツール２２０などの他のソフトウェア・プログラムと協同して動作する。ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合わせのいずれによって実施されるに関わらず、今後このようなプロセッサ１０４およびインタリーバ構成ツール２２０の協同作業の実際についての記述の繰返しまたは詳細な説明は省かれるが、これらは含まれるものとする。
【００３４】
インタリーバ構成ツール２２０は、オペレーティング・システム２２２の制御の下で動作することができる。代替実施例として、インタリーバ構成ツール２２０の機能は、プロセッサ１０４およびコンピュータ・システム１００（図１を参照）の他の機能と協同するハードウェア動作によって実行することができ、ソフトウェアまたはオペレーティング・システム２２２の制御の下で動作しなくてもよい。
【００３５】
関連分野の当業者には理解されるように、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合わせのいずれによって実施されるに関わらず、任意の実施形態においてはインタリーバ構成ツール２２０、および機能ファイルによる機能を、オペレーティング・システム２２２の機能に含むことができる。すなわち、オペレーティング・システム２２２は、インタリーバ構成ツール２２０からのファイルを含むことができる。このような実施形態において、インタリーバ構成ツール２２０による機能は、インタリーバ構成ツール２２０を含むオペレーティング・システム２２２の側面と協同してソフトウェア命令を実行するプロセッサ１０４によってなされる。したがって、このような実施形態において、インタリーバ構成ツール２２０によるオペレーティング・システム２２２の側面との協同作業については記述しないが、これを含むことが理解されるであろう。
【００３６】
インタリーバ構成ツール２２０の動作中に、コンパイル・システム２２４およびオペレーティング・システム２２２はメモリ１０６内に常駐することができる。さらにコンパイル・システム２２４は、オペレーティング・システム２２２と協同して動作することができ、インタリーバ構成ツール２２０の実行を準備する。本実施形態は、任意の未定義のコンピュータ位置参照を解決するため、及びコンピュータ・システム１００上で実行可能なインタリーバ構成ツール２２０のコードを生成するためにコンパイル・システム２２４を使用し、そのコードはキーボード１４８およびマウス１５２などの入出力装置を用いて生成される。
【００３７】
「実行（ｅｘｅｃｕｔｅ）」が、コンピュータ・システム１００上の動作に関するソフトウェアまたはファームウェア命令を処理するプロセスを意味することは理解されるであろう。用語「コード（ｃｏｄｅ）」は、コンピュータ・システム１００内で実行される命令またはデータを生成するために、コンピュータ・システム１００によって使用される命令またはデータを意味する。また用語「機能（ｆｕｎｃｔｉｏｎ）」は、独立にコンパイルされるソフトウェアの構成単位などのソフトウェアの「手続き（ｐｒｏｃｅｄｕｒｅ）」を意味する。「プロセス（ｐｒｏｃｅｓｓ）」は、コンピュータ上で実行される動作のことであり、機能または手続きなどの他のコンピュータに基づく実行単位と相互に作用する。
【００３８】
関連分野の当業者には、インタリーバ構成ツール２２０は他のプログラミング・コード言語でも実施することができることが理解されるであろうが、本実施例においては「Ｃ」プログラミング・コード言語で実施する。また、インタリーバ構成ツール２２０は、ソフトウェア・コード、ハードウェア、またはファームウェア・コードの任意の組合わせにより実施することができる。
【００３９】
インタリーバ構成ツール２２０は、命令および、整数、実数、若しくは複素数、または文字などの値として参照することができるデータを含む。代替例として、その値は、値を参照するポインタ（ｐｏｉｎｔｅｒ）にすることができる。すなわち、ポインタは参照する値を見つけるための指示を提供する。
【００４０】
より詳細には、命令とはコンピュータ・システム１００の動作命令であり、アドレスを参照することができる。アドレスは、物理的なコンピュータ・アドレスまたは物理的なコンピュータ・アドレスをマップするアドレスであってもよい。たとえば、物理的コンピュータ・アドレスはコンピュータ・ハードウェア・レジスタ（図示せず）またはメモリ１０６の位置であってよい。
【００４１】
図３は、従来技術の典型的なインタリーバ１１７（図１を参照）の構成を示すブロック図である。この例では、バンク３０２が７つあるので「Ｎ＝７」であり、アドレス空間は７つの部分に分割される。ここで、７を最も近い２の累乗の数に切り捨てると４になるので、「Ｐ＝４」である。したがって、要素３００に示すように、メモリ・バンク３０２に関してアドレス指定する手法は一般的に「２の累乗」個のバンク３０２で動作するように設計されているので、要素３０２に示すように、アドレス空間３００の割り当て部は４つ１組の特定のバンクに関連付けられる。
【００４２】
さらに詳細には、例として示した要素３０４で示したアドレス空間３００の第１の割り当て部は、要素３０６で示した「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」のラベルの付いた４つのバンク３０２にマップされる。要素３０８で示されたアドレス空間３００の次の割り当て部は、要素３１０で示された「Ｂ」、「Ｃ」、「Ｄ」、および「Ｅ」の４つのバンク３０２にマップされる。
【００４３】
要素３１２で示すアドレス空間３００の割り当て部が異なる４つ１組のバンク３０２にマップされ、そのバンクが順序付けた利用可能なバンク３０２の数を超えるとき、第１のバンク３０２が再使用されることは理解されるであろう。たとえば、要素３１４に示すように、バンク「Ｅ」、「Ｆ」、「Ｇ」、および「Ａ」は要素３１２に示すアドレス空間３００の第５の割り当て部からマップされる。この技法については、米国特許番号第５，２９３，６０７号を参照して詳細を記述する。
【００４４】
下記の表１は図３に示すようなインタリーバ１１７の従来技術の構成を示している。さらに詳細には表１は７ウェイ・インタリーバを示している。すなわち、表１は「Ａ」から「Ｇ」までの７つのバンク３０２を含み、各バンク３０２は物理メモリ１０６の１６バイトを含み、また各範囲指定４４２（図１を参照）のサイズも１６バイトである。さらに、チャンク４０４（図１を参照）のサイズは１バイトである。したがって、アドレス空間３００（図２を参照）のサイズは７×１６＝１１２より１１２バイトである。バンク・リスト４４４（図１を参照）には８項目ある。一般的なインタリーバは、この例で示したものより多くのバンク・リスト４４４の要素、より大きなチャンク４０４、より多数のチャンク４０４、およびより大きなアドレス空間３００を用いて動作することが理解されるであろうが、簡単に説明するために本明細書では小さな実施例を使用する。
【００４５】
従来技術の７ウェイ・インタリーブの解決法は、一度に４つのバンク３０２でインタリーブする。たとえば、エントリ１は、「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」のラベルのバンク３０２にインタリーブされ、エントリ２は「Ｂ」、「Ｃ」、「Ｄ」、および「Ｅ」のラベルのバンク３０２にインタリーブされる、というようになる。
【００４６】
【表１】
0003715863.tif 000002
【００４７】
各バンク３０２の先頭から開始することによって範囲指定４４２（図２を参照）はマップされる。別の方法でバンク３０２のアドレスおよび範囲指定４４２をマップするインターリーバ１１７上で、インタリーバ構成ツール２２０は動作することができ、本実施形態に制限されないことが理解されるであろう。すなわち、インタリーバ１１７は、バンク３０２の先頭から物理位置が開始しない場合、メモリ１０６のバンク３０２における物理位置をアドレス指定するのに必要なマッピングを制御する付加的機能を含むことができる。
【００４８】
下記の表２は上記の表１に示した従来技術の任意のインタリーバ１１７の構成の結果例を示す。さらに詳細には表２は７ウェイ・インタリーブを示す。表の要素は物理アドレスである。表１を参照すると、各エントリ・モデル４４１に関連した物理アドレス空間３００を決定することができる。たとえば、第２のエントリ・モデル４４１は、アドレス１６〜３１を制御する。したがって、下記の表２に示すように、アドレス１６〜３１は「Ｂ」、「Ｃ」、「Ｄ」、および「Ｅ」のラベルのバンク３０２に割り当てられる。
【００４９】
【表２】
0003715863.tif 000003
【００５０】
図４は、インタリーバ構成ツール２２０が使用し、インタリーバ１１７（図１参照）のエントリ４４０にコピーされるエントリ・モデル４４１を示すブロック図である。インタリーバ１１７内の各エントリ４４０は、コンピュータ・システム１００（図１を参照）におけるメモリ１０６（図２を参照）の異なる範囲の物理アドレス空間を制御する。各エントリ・モデル４４１は、範囲指定４４２、バンク・リスト４４４、および指定されたインタリーブの程度４５０を含む。範囲指定４４２は、インタリーバ構成ツール２２０がインタリーバ１１７のために構成するアドレスの範囲を表す。各エントリ・モデル４４１がそれぞれ異なるアドレス範囲を表すので、範囲指定４４２は各エントリ・モデル４４１により異なる。さらに詳細には、範囲指定４４２は、開始アドレス、範囲の長さ、終了アドレス、またはアドレス範囲の決定に使用されるその他の情報を含むことができる。
【００５１】
本実施形態では、バンク・リスト４４４はアクセスするバンク３０２のリストである。バンク・リスト４４４のサイズは、特定のコンピュータ・システム１００に関して指定される固定の数である。
【００５２】
本実施形態では、メモリ１０６をインタリーブするバンク３０２の数は、コンピュータ・システム１００の構成によって決まる。バンク３０２の数はインタリーバ１１７およびインタリーバ構成ツール２２０に使用される。指定されたインタリーブの程度４５０は、特定のエントリ・モデル４４１についてのインタリーブの程度の値であり、図５を参照して詳細を説明する。
【００５３】
図５はインタリーバ１１７（図１を参照）の動作を示すブロック図である。インタリーバ１１７は、特定された順序で第１のバンク３０２に第１のチャンク４０４を割り付け、その次のバンク３０２に次のチャンクを割り当てる。例を使用すると、バンク・リスト４４４（図２を参照）に１６の要素がある場合、第１のチャンク４０４をラベル「Ａ」のバンク３０２に割り付け、第２のチャンクを４０４ラベル「Ｂ」のバンク３０２に割り当てる。さらに第１７のチャンク４０４は、バンク３０２の次の割り当てサイクルの先頭となるラベル「Ａ」のバンク３０２に割り当てられる。
【００５４】
本実施例では、インタリーバ１１７を構成した後に入力として入力アドレス２０２（図１を参照）などのアドレスを取得すると、インタリーバ１１７はアドレスに関するバンク・リスト４４４内の適当な要素を特定する。この特定は要素４００に示すチャンク４０４の番号を決定することにより実施される。この番号は入力アドレス２０２から導出できる。入力チャンク４０４の番号が特定されると、入力チャンク４０４の番号からバンク３０２を決定することができる。バンク３０２を決定すると、バンク３０２内の適当なバンク・チャンク４０４が、要素４０５に示すように決定される。
【００５５】
さらに詳細な本実施例を図５に示す。本実施例は２つのバンク３０２間でインタリーブする。要素４０６で表される入力チャンク番号の「０」は要素４１４に示すラベル「Ａ」のバンク３０２に関連し、バンク・チャンク４０４の番号は「０」である。同様に、要素４０８で表される入力チャンク４０４の番号「１」は、要素４１６に示すラベル「Ｂ」のバンク３０２に関連する。要素４２６に示すチャンク４０４も「０」である。この実施例において、バンク３０２は２つであるため、チャンク４０４は２ずつ増加する点に留意されたい。すなわち、インタリービングは２つのバンク３０２に対して実施され、２つのバンク３０２の各々は値「０」のチャンク４０４、値「１」のチャンク４０４、という具合になるチャンクを有す。
【００５６】
説明のために、インタリーバ１１７はバンク・リスト４４４の要素を使用しないで、指定されたインタリーブの程度４５０（図２を参照）を使用してバンク・チャンク番号４０４を決定する。たとえば図５において、値「０」のチャンク４０４は２回現れる。１回は要素４２４であり、もう１回が要素４２６である。値「１」のチャンク４０４は２回現れ、１回は要素４２８であり、もう１回が要素４３０である。このように、値「０」のチャンク４０４および値「１」のチャンク４０４は、次の値のチャンク４０４に移動する前に共に２回ずつ現れ、図５に示す実施例における指定されたインタリーブの程度４５０は２となる。
【００５７】
第１の実施形態により生成した構成
図６は、インタリーバ構成ツール２２０（図２を参照）の１つの実施形態により作成され、インタリーバ１１７により使用される構成を示すブロック図である。本実施例では、メモリ１０６（図２を参照）をインタリーブするバンクの数、およびバンク当りのチャンク４０４（図１を参照）の数をインタリーバ構成ツールに与えた場合、インタリーバ構成ツール２２０は、バンク３０２の数を２の累乗に切り捨てる必要性を最小にして、または切捨てを必要とせずに、新たな方法で構成を作成する。第１の実施形態の実施例では、バンクの数「Ｎ」は３であり、バンク・リスト４４４には１６の要素があり、範囲指定４４２（図２を参照）は等しいサイズである。３つのエントリ・モデル４４１（図２を参照）が、要素５２０、５２２、および５２４に示すように定義され、インタリーバ構成ツール２２０がそれら全てを管理して構成を生成する。３つのエントリ・モデル４４１を処理することによって、インタリーバ構成ツール２２０は構成を新たに生成し、メモリ１０６を３つのバンク３０２（図１を参照）にインタリーブする。各エントリ・モデル４４１は、指定された程度４５０（図２を参照）が１である。インタリーバ構成ツール２２０は、バンク・リスト４４４、範囲指定４４２、および指定されたインタリーブの程度４５０を構成することができることに留意されたい。
【００５８】
より詳細に実施例を示すと、指定されたインタリーブの程度４５０が１である場合、要素５０２に示すバンク・チャンク４０４は値「０」のチャンク４０４から値「１５」のチャンク４０４まで連続的に順序付けられる。要素５０４に示すようにバンク３０２はラベル「Ａ」のバンク３０２から割り当てられ、次にラベル「Ｂ」のバンク３０２、最後はラベル「Ｃ」のバンク３０２に割り当てられる。同様に、要素５０８に示すバンク・チャンク４０４は、値「０」のチャンク４０４から値「１５」のチャンク４０４まで連続的に順序付けられる。要素５１０に示すように、バンク３０２はラベル「Ｂ」のバンク３０２から割り当てられ、次にラベル「Ｃ」のバンク３０２、最後はラベル「Ａ」のバンク３０２に割り当てられる。最後に、要素５１４に示すバンク・チャンク４０４は、値「０」のチャンク４０４から値「１５」のチャンク４０４まで連続的に順序付けられる。要素５１６に示すように、バンク３０２は、ラベル「Ｃ」のバンク３０２から割り当てられ、次にラベル「Ａ」のバンク３０２、最後はラベル「Ｂ」のバンク３０２に割り当てられる。さらに、各エントリ・モデル４４１の指定された程度４５０は、要素５０６、５１２、および５１８に示すように１である。
【００５９】
本実施形態において、インタリーバ構成ツール２２０はインタリーバ１１７の３つのエントリ・モデル４４１に関する構成を作成し、メモリ１０６をインタリーブするバンク３０２の数は３、および指定された程度４５０は１である。バンク・リスト４４４の要素の数は１６であり、またバンク３０２の数は３であるので、各エントリ・モデル４４１の最後のチャンク４０４は特別なケースとして管理しなければならない。
【００６０】
インタリーバ１１７は、各エントリ４４０（図１を参照）のためにバンク３０２を再使用することができるが、バンク・チャンク４０４は再使用することができない点に留意されたい。「１５」のチャンク４０４の値の次に使用可能なチャンク４０４の値は「１６」であり、この値は「０」の値をマップしたチャンク４０４と同じラベルのバンクにマップされる。値「０」のチャンク４０４はラベル「Ａ」のバンク３０２にマップされるので、値「１６」のチャンクはラベル「Ａ」のバンク３０２にマップされる。したがって、本実施形態では値「１５」のチャンク４０４を「Ａ」以外のラベルのバンク３０２にマップする。要素５０２に示すように、値「１５」のチャンク４０４は、要素５０４に示すようにラベル「Ｂ」のバンク３０２にマップされる。すなわち、チャンク４０４の第１７番目の割り当ては、値「１６」のチャンクをラベル「Ａ」のバンク３０２に割り当てることであり、これは、値「１５」のチャンク４０４をラベル「Ａ」のバンク３０２に割り当てる可能性を制限する。
【００６１】
本実施例は、要素５２０、５２２、および５２４に示すように、３つのエントリ・モデル４４１についてのバンク３０２のインタリービングを新たな方法で構成する。したがって、バンク・チャンク４０４の値は３つのエントリ・モデル４４１において１回だけ特定のバンク３０２のラベルにマップされる点に留意されたい。たとえば要素５０２および５０４では、値「０」のバンク・チャンク４０４がラベル「Ａ」のバンクにマップされる。要素５０８および５１０では値「０」のバンク・チャンク４０４はラベル「Ｂ」のバンクにマップされる。最後に、要素５１４および５１６では値「０」のバンク・チャンク４０４がラベル「Ｃ」のバンク３０２にマップされる。このように、値「０」のバンク・チャンク４０４は３つのエントリ・モデル４４１において適当に３回使用され、バンク３０２で使用される各ラベルに１回だけマップされる。
【００６２】
表３は７ウェイ・インタリーブに関してインタリーバ構成ツール２２０の第１の実施形態によって生成された構成を示す。すなわち、表３は「Ａ」から「Ｇ」の７つのバンク３０２を含み、各バンク３０２は物理メモリ１０６の１６バイトを含み、各範囲指定４４２（図１を参照）もサイズが１６バイトである。さらに、チャンク４０４（図１を参照）のサイズは１バイトである。したがって、アドレス空間３００（図２を参照）のサイズは、７×１６＝１１２より１１２バイトである。バンク・リスト４４４（図１を参照）には８項目ある。
【００６３】
【表３】
0003715863.tif 000004
【００６４】
下記の表４は、上記の表３に示す第１の実施形態の構成の結果を示す。表中の要素は物理アドレスである。上記の表３を参照すると、各エントリ・モデル４４１に関連する物理アドレス空間３００が決定することができる。たとえば、第２のエントリ・モデル４４１は、アドレス１６〜３１を制御する。したがって、下記の表４に示すように、アドレス１６〜３１は表３に示す順序と同じ順序で割り当てられる。すなわち、アドレス１６はラベル「Ｂ」のバンク３０２に割り当てられ、アドレス１７はラベル「Ｃ」のバンク３０２に割り当てられ、という具合になる。
【００６５】
【表４】
0003715863.tif 000005
【００６６】
第２の実施形態により生成した構成
図７は、インタリーバ１１７（図１を参照）に関する構成を生成する第２の実施例のインタリーバ構成ツール２２０によって生成された構成を示すブロック図である。本実施形態の実施例では、５つのバンク３０２、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、および「Ｅ」がメモリ１０６（図２を参照）のチャンク４０４（図１を参照）の割り当てに使用することができる。バンク・リスト４４４（図１を参照）に１６の要素があり、また２つのエントリ・モデル４４１は、それぞれ個別の範囲指定４４２（図２を参照）を備える。要素５３０および５３２に示すエントリ・モデル４４１が一緒に構成される。
【００６７】
各エントリ・モデル４４１の範囲指定４４２のサイズは、指定されたインタリーブの程度４５０（図２を参照）に比例する。したがって、図７に示す例では、要素５３０はアドレス空間３００（図２を参照）の８０パーセントを割り当てる構成を表し、要素５３２はアドレス空間３００の２０パーセントを割り当てる構成を表す。すなわち、要素５３０に示す第１の範囲指定４４２により指定された範囲は、要素５３２に示す第２の範囲指定４４２により指定された範囲の４倍の大きさである。要素５３０に示すように、第１のエントリ・モデル４４１は範囲指定４４２により指定された範囲の８０パーセントを構成する。さらに、インタリーバ１１７がメモリ１０６をインタリーブするバンク３０２の数は５であり、指定された程度４５０（図２を参照）は４である。要素５３２に示すように、第２のエントリ・モデル４４１においてインタリーバ１１７がメモリ１０６をインタリーブするバンク３０２の数は４であり、指定された程度４５０は１である。さらに、指定された程度の値が１である範囲指定４４２により指定される２０パーセントは、要素５３２に示すエントリ・モデル４４１において構成される。
【００６８】
この第２の実施形態により導出される近似は、従来の技術で使用される近似より優れている。たとえば、従来の解決法ではメモリ１０６をインタリーブするバンク３０２の数は４である。これは使用可能なバンク３０２の数である５より小さく、５に最も近い２の累乗の数が４であるためである。この代替の実施形態において、インタリーブするバンクの数は８０パーセントの範囲指定４４２に関しては５つ、及び範囲指定４４２によって指定された残りの２０パーセントの範囲に関しては４つであり、バンク３０２の数が多いほど従来の技術と比較してより頻繁にアクセスされるので、この代替の実施形態におけるバンクの数は有利である。これによって、コンピュータ・システム１００（図１を参照）のメモリ・アクセスのスループットが向上する。さらにこの第２の実施形態では、この種のインタリーバ１１７のためにエントリ・モデル４４１が２つしか必要としないのに対して、従来の方法でこの種類のインタリーバ１１７を構成するためには５つのエントリ・モデル４４１が必要となる。
【００６９】
要素５３０および５３２により示されたエントリ・モデル４４１を共に構成することにより、各バンク３０２の各チャンクは１回だけマップされる。さらに詳細に実施例を説明すると、図７で示すように、値「０」のチャンク４０４は要素５３０に示すようにラベル「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」のバンク３０２から割り当てられる。さらに、値「０」のチャンクは、要素５３２に示すようにラベル「Ｅ」のバンク３０２から割り当てられる。したがって、要素５３０および５３２に示すエントリ・モデル４４１の両方は、値「０」のチャンク４０４を各バンク３０２に適当に１回割り当てる。
【００７０】
図７を参照して本実施形態の説明を続けると、値「１」、「２」、および「３」のチャンク４０４は、値「０」のチャンク４０４と同様の方法で管理される。さらに、要素５３０および５３２に示すエントリ・モデル４４１が一緒になり、各バンク３０２の各チャンク４０４が１回割り当てられる。
【００７１】
値「４」のバンク・チャンク４０４は、前のチャンク４０４と同様に管理される。ただし値「４」のバンク・チャンク４０４は、要素５３０に示すエントリ・モデル４４１における値「０」のチャンク４０４の割り当てを構成した同じバンク３０２に割り当てるよう構成される点に留意されたい。この割り当ての繰返しは１６個の入力チャンク４０４を割り当てると、バンク３０２の１サイクルが完了するために発生する。したがって、第１７の入力チャンク４０４は第１の入力チャンク４０４と同じバンク３０２に割り当てられる。
【００７２】
バンク・リスト４４４の最後に到達すると、インタリーバ１１７は各エントリ４４０についてのメモリ１０６のチャンク４０４を再使用する点に留意されたい。したがって、要素５３０に示す値「３」の第１６のチャンク４０４にラベル「Ｂ」のバンク３０２を割り当てることは、ラベル「Ａ」のバンク３０２が２回連続して割り当てられないことを保証する。
【００７３】
最後に、要素５３０の値「３」のチャンク４０４に対するラベル「Ｃ」、「Ｄ」、「Ｅ」、および「Ｂ」のバンク３０２の割り当ては、要素５３２に示すエントリ・モデル４４１の値「３」のチャンク４０４をラベル「Ａ」のバンク３０２に割り当てることを予め定める。この結果、要素５３２に示すエントリ・モデル４４１において使用するバンク３０２のラベルの繰返しシーケンスは、「Ｅ」、「Ｄ」、「Ｃ」、および「Ａ」である。
【００７４】
表５は７ウェイ・インタリーブに関して第２の実施形態のインタリーバ構成ツール２２０が作成した構成を示す。すなわち、表５は「Ａ」から「Ｇ」の７つのバンク３０２を含み、各バンク３０２は物理メモリ１０６の１６バイトを含み、また各範囲指定４４２（図１を参照）のサイズも１６バイトである。さらに、チャンク４０４のサイズは１バイトである。したがって、アドレス空間３００（図２を参照）のサイズは、７×１６＝１１２より１１２バイトである。バンク・リスト４４４（図１を参照）には８項目ある。
【００７５】
【表５】
0003715863.tif 000006
【００７６】
下記の表６は、表５に示す第２の実施形態により生成された構成の結果を示す。表の要素は物理アドレスである。表５を参照すると、各エントリ・モデル４４１に関連する物理アドレス空間３００を決定することができる。たとえば、第２のエントリ・モデル４４１はアドレス６４〜９５を制御する。したがって、下記の表６に示すように、アドレス６４〜９５は表５に示す順序と同じ順序で割り当てられる。すなわち、アドレス６４はラベル「Ｅ」のバンク３０２に割り当てられ、アドレス６５はラベル「Ｆ」のバンク３０２に割り当てられ、という具合になる。アドレス空間の終わりでの少ないインタリーブは、きわめて短いバンク・リスト４４４に起因するものであり、本明細書において使用する実施例のバンク・リストのサイズを制限したためであることが理解されるであろう。一般的にインタリーバの実施は６４以上の項目のバンク・リスト４４４を用いる。
【００７７】
【表６】
0003715863.tif 000007
【００７８】
本実施形態は要素５３０および５３２に示すような２つのエントリ・モデル４４１でバンク３０２をインタリーブする構成を新たな方法で管理する。したがって、任意のチャンク４０４の値は２つのエントリ・モデル４４１において特定のバンク３０２のラベルに１回のみマップされることに留意されたい。さらに、この第２の実施形態は任意の数のエントリ・モデル４４１について、任意の数のバンク３０２を用いて、またチャンク４０４のバンク３０２に対する割り当て間の任意の分配を使用して実施することが理解されるであろう。
【００７９】
第１の実施形態
図８は、インタリーバ構成ツール２２０の第１の実施形態の動作を表すフロー図であり、図６に例示された第１の実施形態の構成の図と関連する。最初に要素６０２に示すように、インタリーバ構成ツール２２０は「Ｎ」個の１ウェイ・エントリ・モデル４４１（図２を参照）を割り当てる。次に、インタリーバ構成ツール２２０は要素６０４に示すように同じサイズの範囲指定４４２（図２を参照）をエントリ・モデル４４１に代入する。
【００８０】
インタリーバ構成ツール２２０は、要素６０６に示すように各エントリ・モデル４４１について処理する。最初に、要素６０８に示すようにバンク３０２の順序付けを開始するためにバンク３０２のラベルが決定される。ここでそのラベルは他のエントリ・モデル４４１とは異なる。次に各チャンク４０４は同じ繰返しの順序でバンク３０２にマップされる。要素６１２に示すように、例外処理がなされ、図６に示す値「１５」のチャンクなどのようにチャンクとバンクのマッピングの対を続ける。
【００８１】
第２の実施形態
図９は、インタリーバ構成ツール２２０（図２を参照）の第２の実施形態の動作を表すフロー図であり、図７に例示された第２の実施形態の構成の図と関連する。最初に、要素６２２に示すように、インタリーバ構成ツール２２０は、インタリーブするメモリ・バンク３０２（図１を参照）の数「Ｎ」を、２の累乗の数の最小和（ｍｉｎｉｍａｌ  ｓｕｍ  ｏｆ  ｐｏｗｅｒｓ  ｏｆ  ｔｗｏ）で表す。次に要素６２３に示すように、インタリーバ構成ツール２２０はエントリ・モデル４４１（図２を参照）の数を割り当てる。この数は、２の累乗の最小和における項数に等しい。要素６２４に示すように、インタリーバ構成ツール２２０は、各エントリ・モデル４４１について指定したインタリーバの程度４５０（図２を参照）を２の累乗の最小和において対応する項に設定する。また、要素６２６に示すように、インタリーバ構成ツール２２０は、各エントリ・モデル４４１に関する範囲指定４４２（図２を参照）のサイズを、インタリーバの指定された程度４５０に比例するように決定する。
【００８２】
次に、要素６２８に示すように、インタリーバ構成ツール２２０は、メモリ・バンク３０２内の各バンク・チャンク４０４（図２を参照）番号を処理する。要素６３０に示すように、インタリーバ構成ツール２２０は現在のバンク・チャンク４０４番号にマップする「Ｎ」個のメモリ・バンク３０２のラベルを見つけることによってバンク・リスト４４４（図１を参照）を埋める。次に要素６３４に示すように、インタリーバ構成ツール２２０はチャンク４０４に関するメモリ・バンク３０２の値の指示を変え、同じエントリ・モデル４４１において２つの同じメモリ・バンク３０２が発生する間隔を最大にする。
【００８３】
代替実施形態
前述の説明は、例示の目的で本発明の完全な理解のために特定の用語を使用した。しかしながら本発明の実施のために特定の詳細な説明を要求しないことは当業者には明らかであろう。他の事例では、基となる発明からの不要な逸脱を避けるために、周知の装置をブロック図の形式で示す。したがって、インタリーバ構成ツールの特定の実施形態についての前述の説明は、例示および説明のために用いられたものである。これらは網羅的であり、または開示された正確な形態に本発明を制限することを意図したものではなく、上記の説明を考慮して多数の変更および変形が可能であることは明らかである。変更は本発明の技術的範囲から逸脱しない形態および詳細な説明で実施することができることは当業者には理解されるであろう。本発明は、請求項によってのみ制限されるものである。
【００８４】
この発明は例として次の実施形態を含む。
（１）コンピュータ・システムにおいてインタリーバを構成する方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを照会する少なくとも１つのバンク・リストを有し、
少なくとも１つのエントリ・モデルを少なくとも１つの前記メモリ・バンクに関連付けるステップと、
等しいサイズの指定されたインタリーブの程度を各前記エントリ・モデルに関連付けるステップと、
等しいサイズの範囲指定を各前記エントリ・モデルに関連付けるステップと、
各前記メモリ・バンクをラベルに関連付け、該バンク・リストの前記メモリ・バンク・ラベルに関する繰返し順序を特定するステップと、
前記チャンクを値に関連付けるステップであり、前記チャンク値が順序付けられるステップとを含み、
前記エントリ・モデルにおける前記バンク・リストの第１の前記メモリ・バンクに関して前記ラベルを決定するステップであって、該第１のメモリ・バンク・ラベルが、他の該エントリ・モデルの該バンク・リストに関する該第１のメモリ・バンク・ラベルと異なるステップと、
前記繰返し順序における前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクに関して前記ラベルを決定するステップであって、該エントリ・モデルにおける該バンクリストの該メモリ・バンク・ラベルの発生間隔が最大となるように決定するステップと、
前記チャック値の順序付けにおける前記チャンク値を、前記エントリ・モデルに関する前記バンク・リストの前記メモリ・バンクにマッピングするステップであって、前記メモリ・バンク・ラベルが前記繰返し順序になっているステップと、を各該エントリ・モデルごとに含み、
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの前記発生間隔の最大化を通じて該メモリ・バンクの使用を最大にすることによって、該エントリ・モデルを有する前記インタリーバを効率的に構成する方法。
【００８５】
（２）前記繰返し順序ステップにおいて、前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの前記ラベルを決定する前記ステップが、該エントリ・モデルにおける該バンク・リストの該メモリ・バンク・ラベルの発生間隔が最大になるように例外処理を実行するステップを含む（１）に記載の方法。
【００８６】
（３）コンピュータ・システムにおけるインタリーバを構成するための方法であって、
該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、
少なくとも１つのエントリ・モデルを少なくとも１つの前記メモリ・バンクに関連付けるステップと、
等しいサイズの指定されたインタリーブの程度を各前記エントリ・モデルに関連付けるステップと、
等しいサイズの範囲指定を各前記エントリ・モデルに関連付けるステップと、
前記バンク・リストの前記メモリ・バンクについて繰返し順序を特定するステップとを含み、
前記エントリ・モデルの前記バンク・リストの第１の前記メモリ・バンクを関連付けるステップであって、該第１のメモリ・バンクが他の該エントリ・モデルにおける該バンク・リストの該第１のメモリ・バンクと異なるステップと、
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの発生間隔が最大になるように、該エントリ・モデルにおける前記チャンクを前記繰返し順序における該エントリ・モデルの該バンク・リストの該メモリ・バンクにマップするステップと、を各該エントリ・モデルに関して含み、
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンクの前記発生間隔の最大化を通じて該メモリ・バンクの使用を最大にすることによって、該エントリ・モデルを使用する前記インタリーバを効率的に構成する方法。
【００８７】
（４）コンピュータ・システムにおけるインタリーバを構成するための方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、
前記インタリーバを構成するために前記メモリ・バンクの数を決定するステップと、
前記メモリ・バンクの数と等しい２の累乗の数の最小和を決定するステップと、
前記最小和の項を特定するステップと、
前記エントリ・モデルの数を前記最小和の項と等しくすることにより、該エントリ・モデルの数を決定するステップと、
前記最小和の各項を各前記エントリ・モデルと対応付けるステップと、
少なくとも１つの前記エントリ・モデルを少なくとも１つの前記メモリ・バンクに関係付けるステップと、
各前記エントリ・モデルに関する少なくとも１つの指定されたインタリーブの程度を、前記エントリ・モデルの対応する項と等しくするステップと、
少なくとも１つの各前記エントリ・モデルに関する範囲指定を指定するステップであって、該範囲指定が各該エントリ・モデルに関する前記指定されたインタリーブの程度に比例するステップと、
前記メモリ・バンクをラベルに関連付けるステップと、
前記チャンクを値に関連付けるステップとを含み、
各前記チャンク値について、
前記チャンク値を前記メモリ・バンク・ラベルにマップすることにより、前記バンク・リストを埋めるステップと、
前記メモリ・バンク・ラベルの発生間隔を最大にするために前記メモリ・バンク・ラベルの前記マッピングを変動させるステップとを含み、
最小の前記エントリ・モデルを使用し、かつ前記メモリ・バンク・ラベルの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成する方法。
【００８８】
（５）コンピュータ・システム内でインタリーバを構成する方法であって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、
前記インタリーバを構成するための前記メモリ・バンクの数を決定するステップと、
前記メモリ・バンクの数と等しい２の累乗の数の最小和を決定するステップと、
前記最小和の項を特定するステップと、
前記エントリ・モデルの数を前記最小和の項と等しくすることにより、エントリ・モデルの数を決定するステップと、
前記最小和の各項を各前記エントリ・モデルと対応付けるステップと、
少なくとも１つの前記エントリ・モデルを少なくとも１つの前記メモリ・バンクに関係付けるステップと、
少なくとも１つの各前記エントリ・モデルに関する指定されたインタリーブの程度を前記エントリ・モデルの対応する項と等しくするステップと、
各前記エントリ・モデルに関する少なくとも１つの範囲指定を指定するステップであって、該範囲指定が各該エントリ・モデルに関する前記指定されたインタリーブの程度に比例するステップと、を含み、
前記チャンクを前記メモリ・バンクにマップすることにより、前記バンク・リストを埋めるステップと、
前記メモリ・バンクの発生間の間隔を最大にするために前記メモリ・バンクのマッピングを変動させるステップとを各前記チャンクについて含み、
最小の前記エントリ・モデルを使用し、かつ前記メモリ・バンクの発生間隔を最大にすることにより、各該エントリ・モデルにおける該バンク・リストを埋めることによって前記インタリーバを効率的に構成する方法。
【００８９】
（６）コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成ツールであって、該コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを照会する少なくとも１つのバンク・リストを有し、
少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、
各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの指定されたインタリーブの程度と、
各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの範囲指定と、
各前記メモリ・バンクに関連付けられた、繰返し順序の少なくとも１つのラベルと、
前記チャンクに関連付けられた、順序付けられている少なくとも１つの値とを含み、
第１の前記ラベルに関連付けられる前記エントリ・モデルにおける前記バンク・リストの第１の前記メモリ・バンクであって、該第１のメモリ・バンク・ラベルが他の該エントリ・モデルの該バンク・リストについての該第１のメモリ・バンク・ラベルとは異なるメモリ・バンクと、
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの発生間隔が最大になるような前記繰返し順序になっている該エントリ・モデルにおける該バンク・リストの該メモリ・バンクに関する前記ラベルと、
前記エントリ・モデルに関する前記メモリ・バンク・リストの前記メモリ・バンク・ラベルにマップされる前記チャンク値の順序付けにおける前記チャンク値であって、メモリ・バンク・ラベルが前記繰返し順序になっているチャンク値と、を各該エントリ・モデルごとに含み、
前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルの前記発生間隔を最大にすることにより、前記メモリ・バンクの使用を最大にすることによって該エントリ・モデルを使用する前記インタリーバを効率的に構成するインタリーバ構成ツール。
【００９０】
（７）前記エントリ・モデルにおける前記バンク・リストの前記メモリ・バンク・ラベルが前記繰返し順序になっており、該メモリ・バンク・ラベルが再使用されて前記メモリ・バンクの発生間隔を最大にする例外処理を含む（６）に記載のインタリーバ構成ツール。
【００９１】
（８）コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成ツールであって、前記コンピュータ・システムは少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、
少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、
各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの指定されたインタリーブの程度と、
各前記エントリ・モデルに関連付けられた、同じサイズの少なくとも１つの範囲指定と
繰返し順序における前記バンク・リストの前記メモリ・バンクとを含み、
前記エントリ・モデルに関連付けられ、他の該エントリ・モデルの前記バンク・リストに関する前記第１のメモリ・バンクと異なる前記バンク・リストの第１の該メモリ・バンクと、
前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクの発生間隔が最大になるように、前記繰返し順序における該エントリ・モデルに関する該バンク・リストの該メモリ・バンクにマップされる該エントリ・モデルのチャンクと、を各該エントリ・モデルごとに含み、
これによって、前記エントリ・モデルの前記バンク・リストの前記メモリ・バンクの前記発生間隔を最大にすることにより、該メモリ・バンクの使用を最大にすることによって該エントリ・モデルを使用する前記インタリーバを効率的に構成するインタリーバ構成ツール。
【００９２】
（９）コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成ツールであって、前記コンピュータ・システムが少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び前記メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、前記インタリーバ構成ツールが、
少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、
前記インタリーバを構成するための前記メモリ・バンクの数と、
前記メモリ・バンクの数に等しい２の累乗の数の最小和と、
各前記エントリ・モデルに対応する、前記最小和の項と、
各前記エントリ・モデルの対応する項に等しい、各前記エントリ・モデルに関して少なくとも１つの指定されたインタリーブの程度と、
各前記エントリ・モデルごとに前記指定されたインタリーブの程度に比例する、各前記エントリ・モデルに関する少なくとも１つの範囲指定と、
前記メモリ・バンクに関連付けられたラベルと、
前記チャンクに関連付けられた値とを含み、
各前記チャンク値について、前記メモリ・バンク・ラベルを様々に変えて該メモリ・バンク・ラベルの発生間隔を最大にすることにより、該チャンク値を該メモリ・バンク・ラベルにマップし、これによって前記バンク・リストを埋め、
最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンク・ラベルの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成するインタリーバ構成ツール。
【００９３】
（１０）コンピュータ・システム内でインタリーバを構成するためのインタリーバ構成ツールであって、該コンピュータ・システムは少なくとも１つのチャンクを有する少なくとも１つのメモリ・バンク、及び該メモリ・バンクを参照する少なくとも１つのバンク・リストを有し、
少なくとも１つの前記メモリ・バンクに関連付けられた少なくとも１つのエントリ・モデルと、
前記インタリーバを構成するための前記メモリ・バンクの数と、
前記メモリ・バンクの数に等しい２の累乗の数の最小和と、
各前記エントリ・モデルに対応する、前記最小和の項と、
各前記エントリ・モデルの対応する項に等しい、各前記エントリ・モデルごとの少なくとも１つの指定されたインタリーブの程度と、
各前記エントリ・モデルに関する前記指定されたインタリーブの程度に比例する、各該エントリ・モデル関する少なくとも１つの範囲指定とを含み、
各前記チャンクについて、前記メモリ・バンクを様々に変えて該メモリ・バンクの発生間隔を最大にすることにより、該チャンクを該メモリ・バンクにマップして該バンク・リストを埋め、
最小の数の前記エントリ・モデルを使用し、かつ前記メモリ・バンクの発生間隔を最大にすることにより、各該エントリ・モデルの前記バンク・リストを埋めることによって前記インタリーバを効率的に構成するインタリーバ構成ツール。
【００９４】
【発明の効果】
本発明は、新しい方法でインタリーバを構成することによって、任意のインタリーバに組み込まれた柔軟性を有利に最適化し、メモリをインタリービングするのに使用するバンクの数を最大にすることによって、コンピュータ・メモリのアクセスのスループットを改善することを目的とする。
【図面の簡単な説明】
【図１】インタリーバ構成ツールが動作するコンピュータ・システムを示すブロック図である。
【図２】インタリーバ構成ツールおよびそれが使用するデータ構造を含むメモリのブロック図である。
【図３】典型的なインタリーバの動作を示す、高い段階のブロック図である。
【図４】インタリーバ構成ツールを示すブロック図である。
【図５】ある種のインタリーバの動作を示すブロック図である。
【図６】インタリーバ構成ツールの第１の実施形態の動作の結果得られる構成を示すブロック図である。
【図７】インタリーバ構成ツールの第２の実施形態の動作の結果得られる構成を示すブロック図である。
【図８】インタリーバ構成ツールの第１の実施形態の動作を表し、図６に関連するフロー図である。
【図９】インタリーバ構成ツールの第２の実施形態の動作を表し、図７に関連するフロー図である。
【符号の説明】
１０２    インタリーバ構成ツール
１０６    メモリ
１１７    インタリーバ
３０２    メモリ・バンク
４０４    チャンク
４４０    エントリ
４４２    範囲指定
４４４    バンク・リスト
４４８、４５０    指定されたインタリーブの程度
【図１】
0003715863.tif 000008
【図２】
0003715863.tif 000009
【図３】
0003715863.tif 000010
【図４】
0003715863.tif 000011
【図５】
0003715863.tif 000012
【図６】
0003715863.tif 000013
【図７】
0003715863.tif 000014
【図８】
0003715863.tif 000015
【図９】
0003715863.tif 000016