(57)【特許請求の範囲】
【請求項１】
複数のメモリ・バンクを有するメモリ内の情報にアクセスする方法であって、
前記複数のメモリ・バンクのそれぞれが、めいめいのバンク番号によって識別され、
物理アドレスのブロック・アドレス部分を対応するバンク番号および関連内部バンク・アドレスに変換するステップであって、前記バンク番号が、第１ルックアップ・テーブルからの出力と前記第１ルックアップ・テーブルとは内容が独立に選択される第２ルックアップ・テーブルからの出力とを連結することによって形成され、前記第１ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第１セグメントおよび第２セグメントによって得られ、前記第２ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第３セグメントおよび第４セグメントによって得られるステップと、
前記バンク番号および前記関連内部バンク・アドレスを介して前記複数のメモリ・バンク内の特定のロケーションに保管されたデータにアクセスするステップと、
を含む方法。
【請求項２】
前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントが、前記ブロック・アドレス部分の前記第２セグメントおよび前記第４セグメントよりも下位のビット位置にある、請求項１に記載の方法。
【請求項３】
前記第１ルックアップ・テーブルからの前記出力が、前記バンク番号の下位ビットを形成し、前記第２ルックアップ・テーブルからの前記出力が、前記バンク番号の上位ビットを形成する、請求項１に記載の方法。
【請求項４】
前記関連内部バンク・アドレスが、前記ブロック・アドレス部分から前記第２セグメントおよび前記第４セグメントを除去することによって形成される、請求項１に記載の方法。
【請求項５】
前記ルックアップ・テーブルは、行および列を有する２次元配列構造であり、
前記ルックアップ・テーブルの各行の値が、その行について一意である、請求項１に記載の方法。
【請求項６】
前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントをそれぞれＸフィールドとし、前記第２セグメントおよび前記第４セグメントをそれぞれＹフィールドとしたときに、
前記ルックアップ・テーブルのそれぞれについて、前記ブロック・アドレスで、Ｘフィールドが占めるビット位置とＹフィールドが占めるビット位置とが、隣接している必要がなく、かつ、２つの条件すなわち、
ａ）同一のルックアップ・テーブルに対応するＸフィールドおよびＹフィールドが、互いに同一のビットを共有しない必要があり、
ｂ）異なるルックアップ・テーブルに対応するＹフィールドが、互いに同一のビットを共有しない必要がある
が満たされる限りにおいて、前記ＸフィールドおよびＹフィールドが、マッピングされるアドレス内で任意に配置されるビットを含むことができる、請求項１に記載の方法。
【請求項７】
複数のメモリ・バンクを有するメモリであって、
前記複数のメモリ・バンクのそれぞれが、めいめいのバンク番号によって識別され、
第１ルックアップ・テーブルおよび前記第１ルックアップ・テーブルとは内容が独立に選択される第２ルックアップ・テーブルと、
物理アドレスのブロック・アドレス部分を対応するバンク番号および関連内部バンク・アドレスに変換する手段であって、前記バンク番号が、前記第１ルックアップ・テーブルからの出力と前記第２ルックアップ・テーブルからの出力とを連結することによって形成され、前記第１ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第１セグメントおよび第２セグメントによって得られ、前記第２ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第３セグメントおよび第４セグメントによって得られる手段と、
前記バンク番号および前記関連内部バンク・アドレスを介して前記複数のメモリ・バンク内の特定のロケーションに保管されたデータにアクセスする手段と、
を含むメモリ。
【請求項８】
前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントが、前記ブロック・アドレス部分の前記第２セグメントおよび前記第４セグメントよりも下位のビット位置にある、請求項７に記載のメモリ。
【請求項９】
前記第１ルックアップ・テーブルからの前記出力が、前記バンク番号の下位ビットを形成し、前記第２ルックアップ・テーブルからの前記出力が、前記バンク番号の上位ビットを形成する、請求項７に記載のメモリ。
【請求項１０】
前記関連内部バンク・アドレスが、前記ブロック・アドレス部分から前記第２セグメントおよび前記第４セグメントを除去することによって形成される、請求項７に記載のメモリ。
【請求項１１】
前記ルックアップ・テーブルは、行および列を有する２次元配列構造であり、
前記ルックアップ・テーブルの各行の値が、その行について一意である、請求項７に記載のメモリ。
【請求項１２】
前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントをそれぞれＸフィールドとし、前記第２セグメントおよび前記第４セグメントをそれぞれＹフィールドとしたときに、
前記ルックアップ・テーブルのそれぞれについて、前記ブロック・アドレスで、Ｘフィールドが占めるビット位置とＹフィールドが占めるビット位置とが、隣接している必要がなく、かつ、２つの条件すなわち、
ａ）同一のルックアップ・テーブルに対応するＸフィールドおよびＹフィールドが、互いに同一のビットを共有しない必要があり、
ｂ）異なるルックアップ・テーブルに対応するＹフィールドが、互いに同一のビットを共有しない必要がある
が満たされる限りにおいて、前記ＸフィールドおよびＹフィールドが、マッピングされるアドレス内で任意に配置されるビットを含むことができる、請求項７に記載のメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的にはデータ処理の方法に関し、具体的には、システム・メモリのアドレス・マッピングを実行する方法に関する。さらに具体的には、本発明は、コンピュータ・システム内のシステム・メモリに保管された情報にアクセスするためにアドレス・マッピングを実行する方法に関する。
【０００２】
【従来の技術】
通常のデータ処理システムでは、情報が、通常はシステム・メモリ内で空きスペースが使用可能である場所であればどこにでもロードされる。したがって、情報のブロックの仮想アドレスは、通常は、その情報が実際に保管されているシステム・メモリ内の物理アドレス（または実際のアドレス）を反映しない。
【０００３】
物理アドレス・スペースは、連続的なスペースと見なされる。各物理アドレスは、システム・メモリ内のメモリ・バンク内のストレージ・ロケーションに対応する。ラインは、メモリ・バンクのうちで、ライン番号またはバンク内部アドレスによって全体としてアドレッシングすることができる複数のストレージ・ロケーションからなる部分である。ブロックは、１ラインまたは複数のラインからなる。物理アドレスは、１つのブロック内に含まれるストレージ・ロケーションに割り当てられるが、ブロック・オフセットと称するいくつかの下位アドレス・ビットだけお互いに異なる。物理アドレスの上位アドレス・ビットが、ブロック・アドレスを構成し、これらは、同一のブロックについて同一である。ブロックに１ラインが含まれ、１ラインが１つのストレージ・ロケーションからなる場合には、ブロック・アドレスが物理アドレスと等しい。
【０００４】
したがって、仮想アドレスを、図１に図解的に示された変換処理によって物理アドレスに変換することができる。図からわかるように、仮想アドレスには、ページ番号１１およびページ・オフセット１２が含まれる。ページ・オフセット１２は、ページ内のある点を表す。ページ番号１１およびページ・オフセット１２が、ブロック・アドレス１３およびブロック・オフセット１４に変換される。ブロック・オフセット１４は、ブロック内のある点を表す。通常、ページ・オフセット１２の下位ビットが、ブロック・オフセット１４として使用され、ページ・オフセット１２の残りのビットが、ブロック・アドレス１３の下位ビットとして使用される。ブロック・アドレス１３の上位ビットは、ページ・テーブル１５を介してページ番号１１を変換することによって得られる。ページ・テーブル１５は、新しい情報がメモリにロードされるたびに更新される。１つのメモリ・バンク１６だけを有するデータ処理システムでは、図１は、メモリ・バンク１６内の所定のブロックｉのアドレッシングの処理全体を表す。
【０００５】
システム・メモリは、通常は、複数のバンクを有する。連続するブロック・アドレスを有するデータのブロックが、同一メモリ・バンク内のラインにマッピングされる場合には、それらに同一のシーケンスでアクセスしなければならない場合に問題が発生する。これは、メモリ・バンクの１ラインに対するアクセスが行われた後に、そのメモリ・バンクが、別のアクセスを行えるようになる前に、通常は「回復」のための短い時間期間を必要とするからである。したがって、連続するブロック・アドレスのアクセスは、望ましい時間より長い時間を必要とする。
【０００６】
上で述べた問題に対する解決策の１つが、別々にアクセスできる異なるメモリ・バンクにデータをインターリーブすることである。したがって、連続するブロック・アドレスを有するストレージ・ロケーションが、別々のメモリ・バンクに分散される場合に、それらのブロックに、待ち時間なしで他のブロックの直後に１メモリ・バンクにアクセスすることができる。これを行う最も単純な方法は、図２に図解的に示されているように、ブロック・アドレスの一部をメモリ・バンク番号として使用し、ブロック・アドレスの残りをライン番号（バンク内部アドレス）として使用することである。この方法を用いると、システム・メモリ２０での連続するブロック・アドレスの分布が、バンク単位になり、総合的なアクセス時間が、多くの場合に非常に改善される。
【０００７】
しかし、この既知の方法は、システム・メモリ２０内のメモリ・バンクの数が２のべきであることと、インターリービングが均一である（すなわちシーケンシャル）ことを必要とするが、これはさまざまなアプリケーションで最適ではない。一般的に言って、システム・メモリ２０などのメモリへのシーケンシャル・アクセスは、ランダムに分布するのではなく、アプリケーションのタイプに応じたあるパターンに従う。したがって、データが、図２に示されたシステム・メモリ２０などの複数メモリ・バンクにインターリーブされた形で保管される場合であっても、連続するブロック・アドレスのシーケンシャル・アクセスが、同一のメモリ・バンクで発生する可能性がある。
【０００８】
理想的には、メモリ・アクセスは、最高の性能を達成するために、すべてのメモリ・バンクに対して均一に分散されなければならない。その目的のために、プライム・デグリー・インターリービング（ｐｒｉｍｅ  ｄｅｇｒｅｅ  ｉｎｔｅｒｌｅａｖｉｎｇ）、擬似ランダム・インターリービング（ｐｓｅｕｄｏ−ｒａｎｄｏｍ  ｉｎｔｅｒｌｅａｖｉｎｇ）、既約インターリービング（ｉｒｒｅｄｕｃｉｂｌｅ  ｉｎｔｅｒｌｅａｖｉｎｇ）などのさまざまなインターリービング方式が、メモリ分布問題、具体的には科学アプリケーションに関する問題を処理するために長年にわたって開発されてきた。
【０００９】
【発明が解決しようとする課題】
しかし、これらの従来技術のインターリービング方式では、アドレス・マッピングに複雑な計算が用いられ、これが比較的大きいメモリ待ち時間につながることがしばしばである。その結果、メモリに保管された情報にアクセスするためにアドレス・マッピングを実行する改良された方法を提供することが望ましい。
【００１０】
【課題を解決するための手段】
本発明の好ましい実施形態によれば、メモリが、複数のメモリ・バンクに編成され、各メモリ・バンクが、めいめいのバンク番号によって識別される。物理アドレスのブロック・アドレス部分が、対応するバンク番号および関連内部バンク・アドレスに変換される。バンク番号は、第１ルックアップ・テーブルからの出力と第２ルックアップ・テーブルからの出力を連結することによって形成される。第１ルックアップ・テーブルからの出力は、ブロック・アドレス部分の第１セグメントおよび第２セグメントによって得られ、第２ルックアップ・テーブルからの出力は、ブロック・アドレス部分の第３セグメントおよび第４セグメントによって得られる。メモリ・バンク内の特定のロケーションに保管されたデータは、バンク番号および関連内部バンク・アドレスによってアクセスすることができる。
【００１１】
【発明の実施の形態】
Ｉ．定義
本明細書で使用する用語の意味を明瞭にするために、以下に定義を示す。
仮想アドレス＝プログラムで使用されるアドレス
物理アドレス＝メモリ内の位置を一意に識別するアドレス（テーブル・ルックアサイド動作を介して得られる）
メモリ・バンク＝別々にアクセスすることができるメモリのグループ（メモリ・モジュールとも呼ばれる）
ロケーション＝通常はバイト単位またはワード単位で、別々にアドレッシングすることができる保管場所
ライン＝メモリ・バンクのうちで、全体として扱われ、全体としてアドレッシングされる、２のべき個のロケーションであることがしばしばである部分
ブロック＝メモリのうちで、全体として（所与のコンテキスト内で）処理され、全体としてアドレッシングされる部分であり、１ラインまたは複数ラインとすることができる
ストライド＝アドレス・シーケンスａ０、ａ１、ａ２、ａ３、…は、２つの連続するアドレスのそれぞれについてａｉ＋１＝ａｉ＋Ｓ（すなわち、アドレス・シーケンスがａ０、ａ０＋Ｓ、ａ０＋２Ｓ、ａ０＋３Ｓ、…である）時に、ストライドＳを有する
インターリーブ・ファクタ＝アドレス・シーケンスａ０、ａ１、ａ２、ａ３、…について所与の順序でアドレス・シーケンスのアドレスにアクセスする時に、並列にアクセスすることができるメモリ・バンクの平均個数
【００１２】
ＩＩ．例示的システム・メモリ
図３を参照すると、本発明の好ましい実施形態を実施することができる、１６個のメモリ・バンクを有するシステム・メモリが図解的に示されている。図からわかるように、箱のそれぞれが、１つのメモリ・ブロックを表す。各列に図示された複数のメモリ・ブロックが、１つのメモリ・バンクを構成する。この実施形態では、各メモリ・バンクに、０から１５までの連続する番号が付けられている。メモリ・バンク０ないし１５のそれぞれが、Ｎ個の内部バンク・アドレス（またはライン番号）を有する。
【００１３】
ＩＩＩ．マッピング方式
図４を参照すると、本発明の好ましい実施形態による、図３におけるシステム・メモリ内の、情報へのアクセス（すなわち読取または書込）のためのブロック・アドレスが図解的に示されている。図からわかるように、物理アドレスのブロック・アドレス３０は、バンク番号３１および内部バンク・アドレス３２（すなわち、選択されたバンク内のアドレス）を介する図３のシステム・メモリ内のメモリ・バンクへのアクセスに使用される。本発明の好ましい実施形態として、４つの別々の部分すなわちＸ１、Ｙ１、Ｘ２、およびＹ２が、ブロック・アドレス３０から選択されて、バンク番号３１を形成する。具体的に言うと、Ｘ１およびＹ１は、第１のルックアップ・テーブル３３にアクセスするためのインデックスとして使用され、Ｘ２およびＹ２は、第２のルックアップ・テーブル３４にアクセスするためのインデックスとして使用される。この実施形態では、ルックアップ・テーブル３３の出力が、バンク番号３１の下位ビットを形成するのに使用され、ルックアップ・テーブル３４の出力が、バンク番号３１の上位ビットを形成するのに使用される。特定のメモリ・バンクを識別した後（すなわち、ルックアップ・テーブル３３および３４によってバンク番号が発行された後）に、Ｙ１部分およびＹ２部分を除いたブロック・アドレス３０が、識別されたメモリ・バンクにアクセスするための内部バンク・アドレス３２を形成するのに使用される。
【００１４】
ＩＶ．ルックアップ・テーブル
図５を参照すると、本発明の好ましい実施形態による、図３からのシステム・メモリ内の情報にアクセスするためのルックアップ・テーブル３３および３４の詳細なブロック図が示されている。ルックアップ・テーブル３３および３４の両方が、４行４列を有する。したがって、Ｘ１、Ｘ２、Ｙ１、およびＹ２のそれぞれが、２ビットを有し、その結果、４行４列を区別できるようになっている。ルックアップ・テーブル３３および３４内の各位置には、所与のブロック・アドレスについて、対応するメモリ・バンクをアドレッシングするためのバンク番号を形成するのに使用することができる数が含まれる。前に述べたように、ルックアップ・テーブル３３の出力は、バンク番号の下位ビットを形成するのに使用され、ルックアップ・テーブル３４の出力は、バンク番号の上位ビットを形成するのに使用される。
【００１５】
ルックアップ・テーブル３３および３４の内容は、互いに完全に独立に選択することができる。ルックアップ・テーブル３３および３４のそれぞれを満たすための主要な条件は、各行に、同一の値が複数含まれることが許容されないことである。さらに、ルックアップ・テーブル３３および３４のそれぞれについて、ブロック・アドレス３０内のＸフィールドおよびＹフィールドは、隣接するビット・ロケーションを含む必要はなく、以下の２つの条件が満たされる場合に、マッピングされるブロック・アドレス内に任意の形で配置されるビットからなるものとすることができる。
１）同一のルックアップ・テーブルに対応するＸフィールドおよびＹフィールドが、互いに同一ビットを共用するものではなく、
２）異なるルックアップ・テーブルに対応するＹフィールドが、互いに同一ビットを共用するものではない必要がある。
あるルックアップ・テーブルに対応するＸフィールドは、他のルックアップ・テーブルのＸフィールドおよびＹフィールドとビットを共用することができる。
【００１６】
Ｖ．マッピングの例
図６および図７のマッピングの例を使用して、本発明の階層マッピング機能を説明する。説明を簡単にするために、下記の４つ（１〜４で符号が付されている）のアドレス・グループを仮定する。各アドレス・グループは、それぞれ、１６個のアドレスを有している。例えば、アドレス・グループ１は、０〜ｃ３によって示されている１６個のアドレスを有している。各アドレスは数字で指示されている。各数字はアドレスの指標として使用するもので、アドレスの内容そのものを示すものではない。
【００１７】
一つのアドレス・グループに含まれるすべてのアドレスは、Ｘ１フィールド、またはＹ１フィールドにおいてのみ、お互いに異なるように割り当てる。例えば、アドレス・グループ１において、０〜３はＹ１＝０とし、４０〜４３はＹ１＝１とし、８０〜８３はＹ１＝２とし、ｃ０〜ｃ３はＹ１＝３とすることができる。さらに、０、４０、８０及びｃ０はＸ１＝０とし、１、４１、８１、ｃ１はＸ１＝１とし、２、４２、８２、ｃ２はＸ１＝２とし、３、４３、８３、ｃ３はＸ１＝３とすることができる。各アドレスの他の部分は同じビットであるとする。
１）  ０，１，２，３，４０，４１，４２，４３，８０，８１，８２，８３，ｃ０，ｃｌ，ｃ２，ｃ３
２）  ４，５，６，７，４４，４５，４６，４７，８４，８５，８６，８７，ｃ４，ｃ５，ｃ６，ｃ７
３）  ８，９，ａ，ｂ，４８，４９，４ａ，４ｂ，８８，８９，８ａ，８ｂ，ｃ８，ｃ９，ｃａ，ｃｂ
４）  ｃ，ｄ，ｅ，ｆ，４ｃ，４ｄ，４ｅ，４ｆ，８ｃ，８ｄ，８ｅ，８ｆ，ｃｃ，ｃｄ，ｃｅ，ｃｆ
さらに、４つの各アドレス・グループから取られる４つのアドレスが、Ｘ２フィールドについて連続する値を有する。例えば、アドレス・グループ１の全てのアドレスは、Ｘ２＝０、アドレス・グループ２はＸ２＝１、アドレス・グループ３はＸ２＝２、そして、アドレス・グループ４はＸ２＝３とすることができる。
【００１８】
さらに、ルックアップ・テーブル３３をインデクシングするために、ブロック・アドレス３０のビット０〜１がＸ１として使用され、ブロック・アドレス３０のビット６〜７がＹ１として使用され、ルックアップ・テーブル３４をインデクシングするために、ブロック・アドレス３０のビット２〜３がＸ２として使用され、ブロック・アドレス３０のビット８〜９がＹ２として使用される。
【００１９】
図６では、２のべきのストライド１および４０（１６進数）を有するアドレス・シーケンスが、ブロック・アドレス３０を介して１６個のメモリ・バンクにインターリーブされる。図６に示された表の１列が、一つのメモリ・バンクに相当する。Ｘ軸の数字がメモリ・バンクを示し、Ｙ軸の数字がバンク内のアドレスに相当する。従って、０〜ｆまでの１６個のメモリ・バンクを有している。上の４つのアドレス・グループがマッピングされるメモリ・ロケーションが、太い長方形によってマークされている。１つの長方形の中でのメモリ・ロケーションに対する個々のグループのアドレスのマッピングは、Ｘ１フィールドおよびＹ１フィールドによってインデクシングされる、バンク番号の下位２ビットを提供するルックアップ・テーブル３３によって決定される。
【００２０】
図６では、アドレス０、１、２、および３が、連続するＸ１フィールド値を有し、これらのアドレスのＹ１フィールド値は０であるとしている。例として、アドレス０、１、２、および３のＸ１フィールド値は、それぞれ、０、１、２及び３とする。その結果、ルックアップ・テーブル３３の第１列に従ってマッピングされる。従って、アドレス０、１、２、および３のテーブル３３の値は、それぞれ、０、１、２及び３となる。従って、図６のマッピングでは、太い長方形内の４つのメモリ・バンクの４つすべてにまたがるアドレス０、１、２、および３の分布が用いられている。
【００２１】
又、アドレス４０、４１、４２及び４３のＸ１フィールド値は、それぞれ、０、１、２及び３とする。又、Ｙ１フィールド値は１であるとしている。従って、アドレス４０、４１、４２及び４３のテーブル３３の値は、それぞれ、１、２、３及び０となる。
アドレス８０、８１、８２及び８３については、Ｙ１フィールド値は２であるとし、Ｘ１フィールド値は、それぞれ、０、１、２及び３とする。テーブル３３の値は、それぞれ、２、３、０及び１となる。さらにｃ１、ｃ２、ｃ３及びｃ４、については、Ｙ１フィールド値は３であるとし、Ｘ１フィールド値は、それぞれ、０、１、２及び３とする。テーブル３３の値は、それぞれ、３、０、１及び２となる。
【００２２】
アドレス４、５、６及び７のＹ１フィールド値は０であるとし、Ｘ１フィールド値は、それぞれ、０、１、２及び３とする。その結果、ルックアップ・テーブル３３の第１列に従ってマッピングされる。ルックアップ・テーブル３３の第１列は、０、１、２及び３である。２番目の長方形の中において、アドレス４、５、６及び７は、それぞれ、０、１、２及び３番目のアドレス・バンクに相当している。
【００２３】
図７では、同一のアドレスが、太い長方形内の３つのメモリ・バンクにまたがってマッピングされる。ここで、図６と同様に、アドレス０、１、２、および３のＸ１フィールド値は、それぞれ、０、１、２及び３とする。又、これらのアドレスのＹ１フィールド値は０であるとする。図７のテーブル３３に従えば、アドレス０、１、２、および３に対応するテーブル３３の第１列の値は、それぞれ、０、１、２及び０となる。従って、アドレス０と３とは同じメモリ・バンクに対応する。
又、アドレス４０、４１、４２及び４３のＸ１フィールド値は、それぞれ、０、１、２及び３とする。又、Ｙ１フィールド値は１であるとしている。図７のテーブル３３に従えば、アドレス４０、４１、４２及び４３に対応するテーブル３３の第２列の値は、それぞれ、１、２、３及び１となる。従って、アドレス４０と４３とは同じメモリ・バンクに対応する。
【００２４】
Ｘ２フィールドおよびＹ２フィールドによってインデクシングされるルックアップ・テーブル３４が、バンク番号の上位ビットを与える。したがって、ルックアップ・テーブル３４の出力によって、太い長方形のそれぞれが、この例に現れる４つの隣接するメモリ・バンクから構成されるメモリ・バンク・グループの、４つのグループ（すなわち、バンク０、１、２、および３と、バンク４、５、６、および７と、バンク８、９、ａ、およびｂと、バンクｃ、ｄ、ｅ、およびｆ）にまたがってどのようにマッピングされるかが決定される。
【００２５】
上で述べた４つのアドレス・グループは、連続するＸ２フィールド値および０に等しいＹ２フィールド値を有するとする。例として、アドレス・グループ１の全てのアドレスは、Ｘ２＝０、アドレス・グループ２はＸ２＝１、アドレス・グループ３はＸ２＝２、そして、アドレス・グループ４はＸ２＝３とする。又、上で述べた全てのアドレス・グループのＹ２フィールド値は０である。したがって、これらのアドレス・グループは、ルックアップ・テーブル３４の第１列に従ってマッピングされる。
【００２６】
図６では、４つの長方形が、４つの隣接するメモリ・バンクから構成されるメモリ・バンク・グループの、４つのグループすべてにまたがってマッピングされている（すなわち、１６個のメモリ・バンクのすべてにまたがってマッピングされる）。つまり、０〜３の４つの隣接するメモリ・バンクから構成される一つのグループと、４〜７の４つの隣接するメモリ・バンクから構成される一つのグループと、８〜ｂの４つの隣接するメモリ・バンクから構成される一つのグループと、ｃ〜ｆの４つの隣接するメモリ・バンクから構成される一つのグループの、４つのグループである。
【００２７】
図６のテーブル３４の第１列は０〜３を示している。ここで、アドレス・グループ１の全てのアドレスはＸ２＝０、アドレス・グループ２はＸ２＝１、アドレス・グループ３はＸ２＝２、そして、アドレス・グループ４はＸ２＝３である。従って、アドレス・グループ１は左端の１番目のメモリ・バンク・グループ（左端の長方形内のメモリ・バンクである番号０〜３のメモリ・バンク）に相当する。又、アドレス・グループ２は４〜７（２番目のバンク・グループ）、アドレス・グループ３は８〜ｂ（３番目のバンク・グループ）、そして、アドレス・グループ４はｃ〜ｆ（４番目のバンク・グループ）のメモリ・バンクに相当する。
【００２８】
図７では、４つの長方形が、４つの隣接するメモリ・バンクから構成されるメモリ・バンク・グループのうちの、２つのグループだけにまたがってマッピングされる（すなわち、１６個のメモリ・バンクのうちの８つだけにまたがってマッピングされる）。つまり、０〜３のメモリ・バンクで構成されるメモリ・バンク・グループと、４〜７のメモリ・バンクで構成されるメモリ・バンク・グループである。図７のテーブル３４を参照すると、Ｙ２＝０において、Ｘ２＝０、１、２及び３に対するテーブルの値は、それぞれ、０、１、０及び１である。従って、アドレス・グループ１（Ｘ２＝０）及び３（Ｘ２＝２）は、１番目（左端）のメモリ・バンク・グループ（バンク番号０〜３）に相当し、アドレス・グループ２（Ｘ２＝１）及び４（Ｘ２＝３）は、２番目のメモリ・バンク・グループ（バンク番号４〜７）に相当する。
【００２９】
ルックアップ・テーブル３３および３４の両方を、システムのメモリ・コントローラ内の、読取専用またはめいめいの変換テーブルを用いてロード可能のいずれかの、別々にアドレッシング可能な回路として設けることができる。ルックアップ・テーブル３３および３４は、プロセッサ内に設けることもできる。異なるアプリケーションのために異なるルックアップ・テーブル対が使用される場合には、ルックアップ・テーブル対を、複数の読取専用テーブル（アクティブ・アプリケーションに従って選択される）として設けるか、めいめいのアプリケーションの開始時に必要に応じてテーブル・メモリ回路にロードすることができる。
【００３０】
上で説明したように、本発明は、システム・メモリ内の情報へのアクセス（読取と書込を含む）のためにアドレス・マッピングを実行する改良された方法を提供する。メモリの１６個のバンクを有するメモリを使用して、本発明を説明したが、本発明を、ルックアップ・テーブルのそれぞれのビット数を調整することによって、任意の個数のメモリ・バンクを有するメモリと共に実施できることが、当業者によって理解される。
【００３１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３２】
（１）  複数のメモリ・バンクを有するメモリ内の情報にアクセスする方法であって、前記複数のメモリ・バンクのそれぞれが、めいめいのバンク番号によって識別され、
物理アドレスのブロック・アドレス部分を対応するバンク番号および関連内部バンク・アドレスに変換するステップであって、前記バンク番号が、第１ルックアップ・テーブルからの出力と第２ルックアップ・テーブルからの出力とを連結することによって形成され、前記第１ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第１セグメントおよび第２セグメントによって得られ、前記第２ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第３セグメントおよび第４セグメントによって得られるステップと、
前記バンク番号および前記関連内部バンク・アドレスを介して前記複数のメモリ・バンク内の特定のロケーションに保管されたデータにアクセスするステップとを含む方法。
（２）  前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントが、前記ブロック・アドレス部分の前記第２セグメントおよび前記第４セグメントよりも下位のビット位置にある、（１）に記載の方法。
（３）  前記第１ルックアップ・テーブルからの前記出力が、前記バンク番号の下位ビットを形成し、前記第２ルックアップ・テーブルからの前記出力が、前記バンク番号の上位ビットを形成する、（１）に記載の方法。
（４）  前記関連内部バンク・アドレスが、前記ブロック・アドレス部分から前記第２セグメントおよび前記第４セグメントを除去することによって形成される、（１）に記載の方法。
（５）  前記ルックアップ・テーブルの各行の値が、その行について一意である、（１）に記載の方法。
（６）  前記ルックアップ・テーブルのそれぞれについて、前記ブロック・アドレス部分のＸフィールドおよびＹフィールドが、隣接するビット・ロケーションを含む必要はないが、２つの条件すなわち、
ａ）同一のルックアップ・テーブルに対応するＸフィールドおよびＹフィールドが、互いに同一のビットを共有しない必要があり、
ｂ）異なるルックアップ・テーブルに対応するＹフィールドが、互いに同一のビットを共有しない必要がある
が満たされる場合に、前記ＸフィールドおよびＹフィールドが、マッピングされるアドレス内で任意に配置されるビットを含むことができる、（１）に記載の方法。
（７）  複数のメモリ・バンクを有するメモリであって、前記複数のメモリ・バンクのそれぞれが、めいめいのバンク番号によって識別され、
第１ルックアップ・テーブルおよび第２ルックアップ・テーブルと、
物理アドレスのブロック・アドレス部分を対応するバンク番号および関連内部バンク・アドレスに変換する手段であって、前記バンク番号が、前記第１ルックアップ・テーブルからの出力と前記第２ルックアップ・テーブルからの出力とを連結することによって形成され、前記第１ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第１セグメントおよび第２セグメントによって得られ、前記第２ルックアップ・テーブルからの前記出力が、前記ブロック・アドレス部分の第３セグメントおよび第４セグメントによって得られる手段と、
前記バンク番号および前記関連内部バンク・アドレスを介して前記複数のメモリ・バンク内の特定のロケーションに保管されたデータにアクセスする手段と
を含むメモリ。
（８）  前記ブロック・アドレス部分の前記第１セグメントおよび前記第３セグメントが、前記ブロック・アドレス部分の前記第２セグメントおよび前記第４セグメントよりも下位のビット位置にある、（７）に記載のメモリ。
（９）  前記第１ルックアップ・テーブルからの前記出力が、前記バンク番号の下位ビットを形成し、前記第２ルックアップ・テーブルからの前記出力が、前記バンク番号の上位ビットを形成する、（７）に記載のメモリ。
（１０）  前記関連内部バンク・アドレスが、前記ブロック・アドレス部分から前記第２セグメントおよび前記第４セグメントを除去することによって形成される、（７）に記載のメモリ。
（１１）  前記ルックアップ・テーブルの各行の値が、その行について一意である、（７）に記載のメモリ。
（１２）  前記ルックアップ・テーブルのそれぞれについて、前記ブロック・アドレス部分のＸフィールドおよびＹフィールドが、隣接するビット・ロケーションを含む必要はないが、２つの条件すなわち、
ａ）同一のルックアップ・テーブルに対応するＸフィールドおよびＹフィールドが、互いに同一のビットを共有しない必要があり、
ｂ）異なるルックアップ・テーブルに対応するＹフィールドが、互いに同一のビットを共有しない必要がある
が満たされる場合に、前記ＸフィールドおよびＹフィールドが、マッピングされるアドレス内で任意に配置されるビットを含むことができる、（７）に記載のメモリ。
【図面の簡単な説明】
【図１】仮想アドレスから物理アドレスへの変換を図解的に示す図である。
【図２】従来技術によるインターリービング方式を図解的に示す図である。
【図３】本発明の好ましい実施形態を実施することができる、複数メモリ・バンクを有するシステム・メモリを図解的に示す図である。
【図４】本発明の好ましい実施形態による、図３からのシステム・メモリに保管された情報にアクセスするためのブロック・アドレスを図解的に示す図である。
【図５】本発明の好ましい実施形態による、図３からのシステム・メモリにアクセスするための２つのルックアップ・テーブルを図解的に示す図である。
【図６】本発明の好ましい実施形態による、階層マッピング機能を示す図である。
【図７】本発明の好ましい実施形態による、階層マッピング機能を示す図である。
【符号の説明】
１１  ページ番号
１２  ページ・オフセット
１３  ブロック・アドレス
１４  ブロック・オフセット
１５  ページ・テーブル
１６  メモリ・バンク
２０  システム・メモリ
３０  ブロック・アドレス
３１  バンク番号
３２  内部バンク・アドレス
３３  ルックアップ・テーブル
３４  ルックアップ・テーブル
【図１】
0003606570.tif 000002
【図２】
0003606570.tif 000003
【図３】
0003606570.tif 000004
【図４】
0003606570.tif 000005
【図５】
0003606570.tif 000006
【図６】
0003606570.tif 000007
【図７】
0003606570.tif 000008