(57)【特許請求の範囲】
【請求項１】
１個または複数個のプロセッサと、複数のメモリジュールを含む主記憶装置と、前記プロセッサと前記主記憶装置の前記複数のメモリモジュールとの間を相互に結合する相互結合網とを備え、前記複数のメモリモジュールはそれぞれ複数のメモリバンクを有する計算機システムにおいて、
前記相互結合網には、
前記プロセッサが指定する主記憶アドレスの特定ビットに所定の変換を行って前記プロセッサが指定する主記憶アドレスに対応するメモリモジュールを特定し、前記変換により前記複数のメモリモジュールにインターリーブ方式によるアドレス割り付けを実現する第１のアドレスマッピング回路と、
前記第１のアドレスマッピング回路で特定されたメモリモジュールに、前記特定ビットを除いた前記プロセッサが指定する主記憶アドレスを転送する手段とを有し、
前記メモリモジュールの各々には、前記結合網を介して転送された主記憶アドレスを変換し、変換により各メモリモジュール内のメモリバンクにインターリーブ方式によるアドレス割付けを実現する第２のアドレスマッピング回路を有し、
前記第１、第２のアドレスマッピング回路の２段階でアドレス変換をおこなうことを特徴とする計算機システム。
【請求項２】
前記第２のアドレスマッピング回路でおこなうアドレス変換が、当該メモリモジュールのバンク構成に適した方式でおこなわれることを特徴とする、請求項１記載の計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は多バンク構成の主記憶装置を有する計算機システムに関し、特に、主記憶スキューをおこなう計算機システムに関する。
【０００２】
【従来の技術】
計算機システムの主記憶装置の構成方式として、多数のバンクで構成するインタリーブ方式が知られている。図２に、主記憶装置を構成するバンク数が１６の場合の、インタリーブ方式によるアドレスの割り付けを示す。１６個のバンクには順に０から１５までの番号が付けられており、連続するアドレスは順次異なるバンクに割り付けられている。このインタリーブ方式では、連続アドレスに順次アクセスする場合、異なるバンクを順次アクセスすることになるため、高速な主記憶アクセスが可能となる。しかし，ある特定のアドレス間隔（ストライド）でアクセスすると、アクセスが特定のバンクあるいはバンク群に集中し、主記憶アクセス性能が低下する問題が知られている。例えば，図２のアドレス割り付けにおいて、アドレス０を起点にストライド１６でアクセスする場合を考える。この時、アドレス０，１６，３２，４８，・・・とアクセスするが，これらのアドレスはすべてバンク０に割り付けられているため、バンク競合により高速な主記憶アクセスが不可能となる。図３に、ストライドとそれに対するアクセス要求のバンクへの分散状況との関係を示す。アクセス要求がより多くのバンクに分散した方が、バンク競合を避けられ、高い主記憶処理性能を得ることができる。
【０００３】
なお、ここで言うアドレスとは，メモリの各アクセス単位のメモリ位置に付けた番号を指す。以下、特に断らない限り，本明細書におけるアドレスの定義は上記の通りとする。
【０００４】
この主記憶装置のアクセス要求処理性能の低下を緩和する手段として、主記憶スキューが知られている。主記憶スキューは，D. J. Kuck:“ILLIAC IV Software and Application Programming”, IEEE Transactions on Computers, Vol.C-17, No.8, pp.758-770, August 1968あるいはP. Budnik and D. J. Kuck:“The Organization and Use of Parallel Memories”, IEEE Transactions on Computers, pp.1566-1569, December 1971で数学的な基礎があたえられている。その方法は一通りではなく様々なバリエーションがあり，そのいくつかがD. T. Harper III and J. R. Jump:“Vector Access Performance in Parallel Memories Using a Skewed Storage Scheme”, IEEE Transactions on Computers, Vol.C-36(12), pp.1440-1449, December 1987あるいは同じ著者らによる“Performance Evaluation of Vector Accesses in Parallel Memories Using a Skewed Storage Scheme”, Conference Proceedings of the 13th Annual International Symposium on Computer Architecture, pp.324-328, June 1986, IEEEあるいは米国特許4,918,600に示されている。
【０００５】
図４に、主記憶スキューをおこなう計算機システムの例を示す。この全体を符号１で示す計算機システムは、データの処理をおこなう４個のプロセッサ１１と、データを記憶する主記憶装置３１とを有し、それらが相互結合網２１を介して相互に結合されている。主記憶装置３１は４個のメモリモジュール５１から成り、メモリモジュール５１はそれぞれ４個のバンク９１を有する。主記憶装置３１全体では、１６個のバンクを有する。相互結合網２１は、主記憶スキューをおこなうためのアドレスマッピング回路４１を有する。アドレスマッピング回路４１では、主記憶アクセス要求に付随するアドレス情報をもとに、その主記憶アクセス要求を送出するバンクを決定する。バンク番号ＢＫとアドレスＡＤＲとメモリモジュール数Ｎ（ここではＮ＝１６）の関係は、（数１）で表される。
【０００６】
（数１）
ＢＫ＝（ＡＤＲ＋ＡＤＲ÷Ｎ）ｍｏｄ Ｎ
ここで、ｍｏｄ ＮはＮのモジュロを取ることを表す。この主記憶スキューをおこなう計算機システム１におけるアドレス割り付けを、図５に示す。図５に示す通り、図４の計算機システムにおける主記憶スキューは，アドレスがバンク数（ここでは１６）だけ進むごとに、割り付けるバンクをひとつずつすらすものとなっている。この主記憶スキューによるメモリ割り付けをおこなった場合の、ストライドとそれに対するアクセス要求のバンクへの分散状況との関係を、図６に示す。
【０００７】
図３と図６との比較からわかるように、主記憶スキューをおこなうことにより，アクセス要求が特定のバンクまたはバンク群に集中しその結果性能が低下するようなストライドの種類を、少なくすることができる。
【０００８】
【発明が解決しようとする課題】
主記憶装置の性能を向上させるために、現在のメモリモジュールを，高速化のための諸技術を導入した別構成のメモリモジュールに交換する手法が考えられる。ここで、バンク数のより多いメモリモジュールに交換した場合，図４に示した従来の計算機システムでは、ストライドによっては，アクセス要求のバンクへの分散状況がバンク数の増加に見合わない、すなわち、バンク数を増やしても増やしたほどの効果が得られないという問題がある。
【０００９】
例えば、主記憶装置全体は３２バンクから成り，あるストライドではそのうち８バンクにのみアクセス要求が集中するとする。ここで、各メモリモジュール内のバンク数を４倍にし、主記憶装置全体で１２８バンクの構成としても、そのストライドでは依然として８バンクにアクセス要求が集中し，結果として性能が上がらないといった問題である。
【００１０】
この問題は、従来の計算機システムでは，最初のバンク構成（上記の例では３２バンク）に合わせた主記憶スキューをおこなうが、その主記憶スキューはメモリモジュールの交換による新しいバンク構成（上記の例では１２８バンク）には適したものでないことから生じる。
【００１１】
本発明の目的は、上記の問題を解決し，メモリモジュールの交換によりバンク数を増やした場合に、その新しいバンク構成に適した主記憶スキューを実現することで、主記憶装置の性能を向上させることにある。
【００１２】
【課題を解決するための手段】
上記課題を解決するために、本発明の計算機システムは，データの処理をおこなう１個または複数個のプロセッサと、データを記憶する主記憶装置と、該プロセッサと該主記憶装置を相互に結合する相互結合網とを備え、該相互結合網は１個または複数個のアドレスマッピング回路を有し、該主記憶装置は複数個のメモリモジュールを有し、各々のメモリモジュールはアドレスマッピング回路を有し、相互結合網内の該アドレスマッピング回路と、メモリモジュール内のアドレスマッピング回路の２段階でアドレス変換をおこなう。
【００１３】
また、メモリモジュール内のアドレスマッピング回路でおこなうアドレス変換は、メモリモジュールのバンク構成に適した方式となっている。
【００１４】
【発明の実施の形態】
本発明に従う計算機システムの例を図１に示す。プロセッサ１０は４個示されているがその個数は本質でなく、１個のプロセッサでも良い。このプロセッサに対し、主記憶装置３０は複数個（図では４個）のメモリモジュール５０で構成され、プロセッサ１０と主記憶装置３０の各メモリモジュールとは相互結合網２０で結合される。相互結合網２０にはアドレスマッピング回路４０を備え、ストライドされたアクセスの際にも特定のメモリモジュールへのアクセス要求の集中を軽減するようなアドレス変換がなされる。さらに、主記憶装置３０を構成する各メモリモジュール５０にもそれぞれアドレスマッピング回路６０を備えており、アドレスマッピング回路６０でおこなうアドレス変換は、メモリモジュール５０内のバンク構成に適した方式となっている。全体として主記憶スキューのためのアドレス変換を２段階でおこなう。
【００１５】
以下、図面を用いて本発明の実施例を説明する。
【００１６】
図７に、本発明の一実施例による計算機システムの要部構成を示す。全体を符号２で示す本実施例の計算機システムは、データの処理をおこなう４個のプロセッサ１２と、データを記憶する主記憶装置３２とを有し，それらが相互結合網２２を介して相互に結合されている。相互結合網２２は、４個のプロセッサ１２それぞれに対応する４個の網制御装置９２を有し、網制御装置９２はそれぞれアドレスマッピング回路４２を備える。主記憶装置３２は４個のメモリモジュール５２を有し、メモリモジュール５２はそれぞれアドレスマッピング回路６２を備える。
【００１７】
プロセッサ１２は、相互結合網２２に対してそれぞれ２個のアクセスポートを有する。また、網制御装置９２は，プロセッサ１２に対して２個のアクセスポートを有する。プロセッサ１２と網制御装置９２は１対１に対応しており（プロセッサ＃０と網制御装置＃０、プロセッサ＃１と網制御装置＃１など），対応するプロセッサ１２と網制御装置９２の２個のアクセスポート間にそれぞれアクセスパスが張られ、プロセッサ１２と網制御装置９２の間のアクセスパスが二重化されている。各アクセスパスの上を１サイクルあたり最大１個のアクセス要求が流れ、各プロセッサ１２から対応する網制御装置９２に対しては、１サイクルあたり最大２個のアクセス要求が送られる。
【００１８】
メモリモジュール５２は、４個の網制御装置９２それぞれに対応する４個のアクセスポートを有する。また、網制御装置９２は，４個のメモリモジュール５２それぞれに対応する４個のアクセスポートを有する。各網制御装置９２と各メモリモジュール５２の対応するポート間にアクセスパスが張られ、全体としては、４個の網制御装置９２と４個のメモリモジュール５２とが全対全で結合されている。各アクセスパスの上を、１サイクルあたり最大１個のアクセス要求が流れる。
【００１９】
本実施例の計算機システム２では、プロセッサ１２から主記憶装置３２に送るアクセス要求として、主記憶装置からデータをプロセッサ内のレジスタ（図示せず）あるいはキャッシュ（図示せず）に格納するフェッチ要求、および、プロセッサ内のレジスタあるいはキャッシュからデータを主記憶装置に格納するストア要求などがある。しかし本実施例では以下、簡単化のためストアアクセスに関する動作を例に取って説明する。図面についても、主にストア要求に関する装置部分を示し，他の要求のための回路は省略する。
【００２０】
プロセッサ１２がストアアクセス要求を発行すると、その要求は二重化されたアクセスパスを介して対応する網制御装置９２に送られる。各プロセッサ１２は対応する網制御装置９２に対して、ストア要求を１サイクルあたり最大２個発行できる。網制御装置９２は、プロセッサ１２からストア要求を受け取ると，ストア要求で指定されたアドレスが属するいずれかのメモリモジュール５２へ、ストア要求を転送する。各網制御装置９２は、４個のメモリモジュール５２それぞれに対して独立に、ストア要求を１サイクルあたり最大１個発行できる。これにより，各網制御装置９２から主記憶装置３２全体に対しては、ストア要求を１サイクルあたり最大４個発行できる。
【００２１】
図７に示した本実施例の計算機システム２で使われるメモリモジュール５２として、最初は図８に示すメモリモジュール５２Ａを用い、のちに性能向上のために図９に示すメモリモジュール５２Ｂに交換するものとする。
【００２２】
図８に示すメモリモジュール５２Ａは、アドレスマッピング回路６２Ａと，２個のバンクグループ８２からなる。各バンクグループ８２は４個のバンク７２からなり、ストア要求を１サイクルあたり最大１個受けることができる。メモリモジュール５２Ａ内の２個のバンクグループ８２は独立に動作し、網制御装置９２から並列にアクセス可能となっている。これにより、メモリモジュールの数より多いデータ要素を並列に処理可能となる。
【００２３】
一方、図９に示すメモリモジュール５２Ｂは，アドレスマッピング回路６２Ｂと，８個のバンクグループ８２からなる。各バンクグループ８２は、図８に示したものと同一である。すなわち、各バンクグループ８２は４個のバンク７２からなり，ストア要求を１サイクルあたり最大１個受けることができる。メモリモジュール５２Ｂ内の８個のバンクグループ８２は独立に動作し、網制御装置９２から並列にアクセス可能となっている。
【００２４】
図８に示したメモリモジュール５２Ａ全体では、ストア要求を１サイクルあたり最大２個受けることができるのに対し、図９に示したメモリモジュール５２Ｂ全体では、ストア要求を１サイクルあたり最大８個受けることができる。また総バンク数も増えるため、バンク競合が起こりにくくなる。これらにより、メモリモジュール５２Ｂを用いて主記憶装置３２を構築した方が，より高い処理性能を得ることができる。
【００２５】
図１０に、プロセッサ１２が発行するストアアクセス要求に付随するアドレスフィールドを示す。本実施例の計算機システム２では、アドレスは２０ビットで指定される。データは主記憶装置３２に８バイト単位で格納され、１要素８バイトがアクセス単位となる。図において上位アドレスとは、先に定義したアドレス、すなわち，主記憶装置３２のアクセス単位に付けられた番号を意味する。本実施例では、以下，この上位アドレスを単にアドレスということがある。上位アドレスは１７ビットからなる。一方、下位アドレスは，データの１要素内のバイトアドレスを指す。本実施例では、データ要素が８バイトの大きさを有するため、下位アドレスは３ビットからなる。
【００２６】
図８に示したメモリモジュール５２Ａを用いて主記憶装置３２を構築した場合、図１０のアドレスフィールドがさらに図１１に示すように解釈される。アドレスの最上位ビットを第０ビットとした時、第１５ビットと第１６ビットの２ビットよりなるＭＭフィールドは、図７の計算機システムにインタリーブ方式でアドレスを割り付ける時に、そのアドレスが割り付けられるメモリモジュール番号を示す。第１４ビットはＢＧフィールドで、ＭＭフィールドで決まるメモリモジュール内でそのアドレスが割り付けられているバンクグループ番号を示す。そして、第１２ビットと第１３ビットの２ビットよりなるＢＫフィールドは，そのバンクグループ内でそのアドレスが割り付けられるバンク番号を示す。第０ビットから第１１ビットはバンク内オフセットを表すフィールドであり、バンク内でそのアドレスが割り当てられたアクセス単位の記憶位置を表す。
【００２７】
一方、図９に示したメモリモジュール５２Ｂを用いて主記憶装置３２を構築した場合、図１０のアドレスフィールドは図１２に示すように解釈される。第１５ビットと第１６ビットの２ビットよりなるＭＭフィールドは、図７の計算機システムにインタリーブ方式でアドレスを割り付ける時に、そのアドレスが割り付けられるメモリモジュール番号を示す。第１２ビットから第１４ビットの３ビットはＢＧフィールドで、ＭＭフィールドで決まるメモリモジュール内でそのアドレスが割り付けられているバンクグループ番号を示す。そして、第１０ビットと第１１ビットの２ビットよりなるＢＫフィールドは、そのバンクグループ内でそのアドレスが割り付けられるバンク番号を示す。第０ビットから第９ビットはバンク内オフセットを表すフィールドであり、バンク内でそのアドレスが割り当てられたアクセス単位の記憶位置を表す。
【００２８】
以下、プロセッサ１２からストアアクセス要求が発行された際の動作を説明する。
【００２９】
プロセッサ１２がストアアクセス要求を発行すると、その要求は二重化されたアクセスパスを介して対応する網制御装置９２に送られる。既に述べた通り、各プロセッサ１２は対応する網制御装置９２に対して、ストア要求を１サイクルあたり最大２個発行することができる。
【００３０】
網制御装置９２は、プロセッサ１２からストア要求を１サイクルあたり最大２個受け取る。ストア要求を受け取ると、まず，アドレスマッピング回路４２を用いて、そのストア要求に付随するアドレスを，本実施例における主記憶スキュースキームに従って、アクセスすべきメモリモジュール番号を含むアドレスに変換する。その後、変換したアドレスからストア要求を転送すべきメモリモジュール５２を決定し、そのメモリモジュール５２へストア要求を転送する。各網制御装置９２は、４個のメモリモジュール５２それぞれに対して独立に，ストア要求を１サイクルあたり最大１個転送することができる。これにより、各網制御装置９２から主記憶装置３２全体に対しては、ストア要求を１サイクルあたり最大４個転送することができる。
【００３１】
図１３に、アドレスマッピング回路４２でおこなうアドレス変換の方法を示す。アドレスマッピング回路４２は、モジュロ４の２ビット加算器１０１を備えている。加算器１０１は、変換前アドレスの第１３〜１４ビットと第１５〜１６ビットを４のモジュロで加算し、その結果を変換後アドレスの第１５〜１６ビットとする。この加算の際に生じる桁上げは無視する（すなわち、モジュロ４の加算をおこなう）。第０〜１４ビットおよび第１７〜１９ビットについては、変換前アドレスと変換後アドレスで変わらない。変換後アドレスの第１５〜１６ビットを、アクセスすべきメモリモジュール番号とする。図１４に、各メモリモジュールに割り付けられるアドレスを示す。メモリモジュール番号ＭＭとアドレスＡＤＲの関係は、（数２）で表される。
【００３２】
（数２）
ＭＭ＝（ＡＤＲ＋ＡＤＲ÷４）ｍｏｄ ４
図１４のアドレス割り付けにおいて、プロセッサ１２から網制御装置９２に一定のアドレス間隔（ストライド）のストア要求を発行していく場合の、ストライドとそれに対するストア要求のメモリモジュール５２への分散状況との関係を、図１５に示す。また，図１４のアドレス割り付けにおいて，プロセッサ１２から網制御装置９２に対して、一定のアドレス間隔（ストライド）のストア要求を１サイクルあたり２個ずつ発行していく場合の、ストライドとそれに対する網制御装置９２の処理性能との関係を、図１６に示す。ただし，この場合の性能とは，プロセッサ１２がストア要求を発行し始めてから十分時間が経過し、１サイクルあたりの網制御装置９２から主記憶装置３２へのストア要求転送数が定常状態になった時の性能であり、１サイクルに１要求を転送できる場合の性能を１としている。網制御装置９２の処理性能に着目するため、主記憶装置３２におけるストア要求の滞りは起こらないと仮定している。ストライドが１６の倍数の時は、プロセッサ１２から網制御装置９２に１サイクルあたり２要求が送られてくるのに対し、網制御装置９２から主記憶装置３２へは１サイクルあたり１要求しか転送することができない。網制御装置９２への要求入力ピッチが処理能力を越えるため、プロセッサ１２のストア要求発行を適宜抑止する必要が生じる。
【００３３】
比較のため、図１７に，網制御装置９２がアドレスマッピング回路４２でアドレス変換をおこなわない場合の、各メモリモジュール５２に割り付けられるアドレスを示す。また、その場合の，ストライドとそれに対するストア要求のメモリモジュール５２への分散状況との関係を図１８に、ストライドとそれに対する網制御装置９２の処理性能との関係を図１９に示す。図１５と図１８の比較からわかるように、アドレスマッピング回路４２のアドレス変換により，ストア要求が特定メモリモジュール５２へ集中するストライドの種類を少なくすることができる。また、図１６と図１９の比較からわかるように，アドレスマッピング回路４２のアドレス変換により、網制御装置９２の処理性能が低下するストライドの種類を少なくすることができる。
【００３４】
網制御装置９２からメモリモジュール５２にストア要求を転送する際、図２０に示すように、ストア要求に付随するアドレスのうち，第１５〜１６ビット（ＭＭフィールド）を落として転送する。これによって、必要な信号線の本数を減らすことができる。
【００３５】
網制御装置９２は、ストア要求を一時的に保持するバッファ等を備えてもよい。これにより、ストア要求の転送先が一時的にある特定のメモリモジュール５２に集中しても、網制御装置９２におけるストア要求の保持能力を越えない限りは，プロセッサ１２からのストア要求を抑止しないで済む。また、アドレスマッピング回路４２でおこなうアドレス変換は，図１３とは異なっていてもよい。例えば、図１３のモジュロ４の２ビット加算器１０１に代えて，２ビットの排他的論理和回路を利用してもよい。
【００３６】
続いて、メモリモジュール５２内でのストア要求の処理の流れを説明する。
【００３７】
まず、図８に示したメモリモジュール５２Ａを使った場合について説明する。メモリモジュール５２Ａは、４個の網制御装置９２それぞれから，ストア要求を１サイクルあたり最大１個受け取る。ストア要求を受け取ると、まず，アドレスマッピング回路６２Ａを用いて、そのストア要求に付随するアドレスを，本実施例における主記憶スキュースキームに従って、アクセスすべきバンクグループ番号およびバンク番号を含むアドレスに変換する。その後、変換したアドレスからストア要求を転送すべきバンクグループ８２およびバンク７２を決定し、当該バンクグループ８２の当該バンク７２でストア処理をおこなう。各バンクグループ８２は、独立にストア処理をおこなうことができる。
【００３８】
図２１に、アドレスマッピング回路６２Ａでおこなうアドレス変換の方法を示す。アドレスマッピング回路６２Ａは、排他的論理和回路１０２を備えている。排他的論理和回路１０２は、変換前アドレスの第０〜２ビットと第３〜５ビットと第６〜８ビットと第９〜１１ビットと第１２〜１４ビットを入力として、３ビット幅のビットごとに排他的論理和を取り、その結果を変換後アドレスの第１２〜１４ビットとする。第０〜１１ビットおよび第１５〜１７ビットについては、変換前アドレスと変換後アドレスで変わらない。変換後アドレスの第１４ビットをアクセスすべきバンクグループ番号とし、第１２〜１３ビットをバンクグループ内のバンク番号とする。図２２に、メモリモジュール６２Ａを用いて主記憶装置３２を構築した場合の、メモリモジュール，バンクグループ，バンクの各階層へのアドレス割り付けを示す。また、本アドレス割り付けにおけるストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を、図２３に示す。
【００３９】
比較のため、図２４に，メモリモジュール５２Ａがアドレスマッピング回路６２Ａでアドレス変換をおこなわない場合の、メモリモジュール，バンクグループ，バンクの各階層へのアドレス割り付けを示す。また、その場合の，ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を、図２５に示す。図２３と図２５の比較からわかるように，アドレスマッピング回路６２Ａのアドレス変換により、ストライドが２の倍数であれば、同じストライドに対してストア要求が送られるバンクグループおよびバンクの数が増え、より高い主記憶処理性能を得ることができる。
【００４０】
次に、図９に示したメモリモジュール５２Ｂを使った場合について説明する。メモリモジュール５２Ｂは、４個の網制御装置９２それぞれから，ストア要求を１サイクルあたり最大１個受け取る。ストア要求を受け取ると、まず，アドレスマッピング回路６２Ｂを用いて、そのストア要求に付随するアドレスを，本実施例における主記憶スキュースキームに従って、アクセスすべきバンクグループ番号およびバンク番号を含むアドレスに変換する。その後、変換したアドレスからストア要求を転送すべきバンクグループ８２およびバンク７２を決定し、当該バンクグループ８２の当該バンク７２でストア処理をおこなう。各バンクグループ８２は、独立にストア処理をおこなうことができる。
【００４１】
図２６に、アドレスマッピング回路６２Ｂでおこなうアドレス変換の方法を示す。アドレスマッピング回路６２Ｂは、排他的論理和回路１０３を備えている。排他的論理和回路１０３は、変換前アドレスの第０〜４ビットと第５〜９ビットと第１０〜１４ビットを入力として、５ビット幅のビットごとに排他的論理和を取り，その結果を変換後アドレスの第１０〜１４ビットとする。第０〜９ビットおよび第１５〜１７ビットについては、変換前アドレスと変換後アドレスで変わらない。変換後アドレスの第１２〜１４ビットをアクセスすべきバンクグループ番号とし、第１０〜１１ビットをバンクグループ内のバンク番号とする。図２７ないし図３０に、メモリモジュール６２Ａを用いて主記憶装置３０を構築した場合の、メモリモジュール、バンクグループ，バンクの各階層へのアドレス割り付けを示す。また、本アドレス割り付けにおけるストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を，図３１に示す。
【００４２】
比較のため、図３２ないし図３５に，メモリモジュール５２Ａがアドレスマッピング回路６２Ｂでアドレス変換をおこなわない場合の、メモリモジュール、バンクグループ，バンクの各階層へのアドレス割り付けを示す。また、その場合の，ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を，図３６に示す。図３１と図３６の比較からわかるように、アドレスマッピング回路６２Ｂのアドレス変換により、ストライドが２の倍数であれば，同じストライドに対してストア要求が送られるバンクグループおよびバンクの数が増え、より高い主記憶処理性能を得ることができる。
【００４３】
なお、図２３と図３１の比較からわかるように，主記憶装置３２を構成するメモリモジュールを図８のメモリモジュール５２Ａから図９のメモリモジュール５２Ｂに交換することで、同じストライドに対してストア要求が送られるバンクグループおよびバンクの数が増え、より高い処理性能を持つ主記憶装置３２が実現される。
【００４４】
図８のメモリモジュール５２Ａおよび図９のメモリモジュール５２Ｂは、ストア要求を一時的に保持するバッファ等を備えてもよい。これにより、ストア要求の転送先が一時的にある特定のバンクグループ８２あるいは特定のバンク７２に集中しても、メモリモジュール５２Ａまたはメモリモジュール５２Ｂにおけるストア要求の保持能力を越えない限りは、網制御装置９２からのストア要求を抑止しないで済む。また、アドレスマッピング回路６２Ａまたはアドレスマッピング回路６２Ｂでおこなうアドレス変換は、図２１または図２６と異なっていてもよい。例えば，図２１の３ビット排他的論理和回路１０２に代えて、モジュロ８の３ビット加算器を利用してもよい。また、図２６の５ビット排他的論理和回路１０３に代えて，モジュロ３２の５ビット加算器を利用してもよい。
【００４５】
本発明の特徴は、主記憶スキューを実現するためのアドレスマッピング回路を相互結合網内とメモリモジュール内の２箇所に設け、アドレス変換を２段階でおこなっていることにある。これにより、メモリモジュールの交換によりバンクグループおよびバンクの構成が変わった場合でも、その新しい構成に適した主記憶スキューを実現し、高い主記憶性能を得ることができる。
【００４６】
ここで比較のために、従来の計算機システムでメモリモジュールを交換することを考えてみる。図３７に示す従来の計算機システム３は、メモリモジュール５３がアドレスマッピング回路を持たないことと、網制御装置９３内のアドレスマッピング回路４３でおこなうアドレス変換がアドレスマッピング回路４２でおこなうアドレス変換と異なることを除いては、図７に示した本発明の一実施例による計算機システム２と同様の構成である。図３７の計算機システム３で使われるメモリモジュール５３として、最初は図３８に示すメモリモジュール５３Ａを用い、のちに性能向上のために図３９に示すメモリモジュール５３Ｂに交換するものとする。図３８のメモリモジュール５３Ａは、アドレスマッピング回路を持たず、アドレス変換をおこなわないことを除いては，バンクグループおよびバンクの構成などすべて図８のメモリモジュール５２Ａと同様である。また、図３９のメモリモジュール５３Ｂは，アドレスマッピング回路を持たず，アドレス変換をおこなわないことを除いては、バンクグループおよびバンクの構成などすべて図９のメモリモジュール５２Ｂと同様である。
【００４７】
図４０に、アドレスマッピング回路４３でおこなうアドレス変換の方法を示す。アドレスマッピング回路４３では、計算機システム３でメモリモジュール５３Ａを用いた場合に、計算機システム２でメモリモジュール５２Ａを用いた場合と同じアドレス割り付け、すなわち図２２のアドレス割り付けになるよう，アドレス変換をおこなう。アドレスマッピング回路４３は、モジュロ４の２ビット加算器１０４と，排他的論理和回路１０５とを備えている。加算器１０４は、変換前アドレスの第１３〜１４ビットと第１５〜１６ビットを４のモジュロで加算し、その結果を変換後アドレスの第１５〜１６ビットとする。排他的論理和回路１０５は、変換前アドレスの第０〜２ビットと第３〜５ビットと第６〜８ビットと第９〜１１ビットと第１２〜１４ビットを入力として、３ビット幅のビットごとに排他的論理和を取り，その結果を変換後アドレスの第１２〜１４ビットとする。第０〜１１ビットおよび第１７〜１９ビットについては、変換前アドレスと変換後アドレスで変わらない。計算機システム３でメモリモジュール５３Ａを用いた場合のアドレス割り付けは、計算機システム２でメモリモジュール５２Ａを用いた場合のアドレス割り付け（図２２）と同じである。また、ストライドとそれに対するストア要求のメモリモジュール，バンクグループ、バンクへの分散状況との関係も，計算機システム２でメモリモジュール５３Ａを用いた場合のもの（図２３）と同じである。
【００４８】
ここで、計算機システム３のメモリモジュール５３として，メモリモジュール５３Ｂを用いた場合を考える。この場合のアドレス割り付けを、図４１ないし図４４に示す。また、本アドレス割り付けにおけるストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を，図４５に示す。図３１と図４５の比較からわかるように、本発明による計算機システム２は従来の計算機システム３と比べて、ストライドが６４の倍数であれば，同じストライドに対してストア要求が送られるバンクの数が増え、より高い主記憶処理性能を得ることができる。
【００４９】
【発明の効果】
以上説明したように、本発明による計算機システムでは，メモリモジュールの交換によりバンク構成が変わった場合でも、その新しいバンク構成に適した主記憶スキューを実現することで、主記憶装置の性能を向上させることができる。
【図面の簡単な説明】
【図１】本発明による計算機システムの要部構成を示すブロック図。
【図２】主記憶スキューをおこなわないインタリーブ方式におけるアドレス割り付けを示す図。
【図３】図２のアドレス割り付けをおこなった場合の、ストライドと，それに対するアクセス要求のバンクへの分散状況との関係を表す図。
【図４】主記憶スキューをおこなう従来の計算機システムの全体構成を示すブロック図。
【図５】図４の計算機システムで主記憶スキューをおこなった場合のアドレス割り付けを示す図。
【図６】図５のアドレス割り付けをおこなった場合の、ストライドと，それに対するアクセス要求のバンクへの分散状況との関係を表す図。
【図７】本発明の一実施例による計算機システムの全体構成を示すブロック図。
【図８】図７の計算機システムに用いるメモリモジュールの一例の構成を表すブロック図。メモリモジュールを２バンクグループ、各バンクグループを４バンクで構成したものである。
【図９】図７の計算機システムに用いるメモリモジュールの一例の構成を表すブロック図。メモリモジュールを８バンクグループ、各バンクグループを４バンクで構成したものである。
【図１０】図７の計算機システムのプロセッサが発行するアクセス要求に付随するアドレスフィールドを示す図。
【図１１】図７の計算機システムの主記憶装置を図８のメモリモジュールで構築した場合の、プロセッサから網制御装置に送られるストア要求に付随するアドレスフィールドを示す図。
【図１２】図７の計算機システムの主記憶装置を図９のメモリモジュールで構築した場合の、プロセッサから網制御装置に送られるストア要求に付随するアドレスフィールドを示す図。
【図１３】図７の計算機システムのアドレスマッピング回路４２でおこなうアドレス変換の方法を表す図。
【図１４】図１３のアドレス変換をおこなった場合の、各メモリモジュールに割り付けられるアドレスを示す図。
【図１５】図１４のアドレス割り付けをおこなった場合の、ストライドと，それに対するストア要求のメモリモジュールへの分散状況との関係を表す図。
【図１６】図１４のアドレス割り付けをおこなった場合の、ストライドと，それに対する網制御装置の処理性能との関係を表す図。
【図１７】図１３のアドレス変換をおこなわない場合の、各メモリモジュールに割り付けられるアドレスを示す図。
【図１８】図１７のアドレス割り付けをおこなった場合の、ストライドと，それに対するストア要求のメモリモジュールへの分散状況との関係を表す図。
【図１９】図１７のアドレス割り付けをおこなった場合の、ストライドと，それに対する網制御装置の処理性能との関係を表す図。
【図２０】図７の計算機システムで、網制御装置からメモリモジュールへストア要求を転送する際の、アドレス幅の削減方法を表す図。
【図２１】図８のメモリモジュールのアドレスマッピング回路６２Ａでおこなうアドレス変換の方法を表す図。
【図２２】図７の計算機システムで図８のメモリモジュール５２Ａを使用した場合の、アドレス割り付けを示す図。
【図２３】図２２のアドレス割り付けをおこなった場合の、ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を表す図。
【図２４】図２１のアドレス変換をおこなわない場合の、アドレス割り付けを示す図。
【図２５】図２４のアドレス割り付けをおこなった場合の、ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を表す図。
【図２６】図９のメモリモジュールのアドレスマッピング回路６２Ｂでおこなうアドレス変換の方法を表す図。
【図２７】図７の計算機システムで図９のメモリモジュール５２Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図２８】図７の計算機システムで図９のメモリモジュール５２Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図２９】図７の計算機システムで図９のメモリモジュール５２Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図３０】図７の計算機システムで図９のメモリモジュール５２Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図３１】図２７〜３０のアドレス割り付けをおこなった場合の、ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を表す図。
【図３２】図２６のアドレス変換をおこなわない場合の、アドレス割り付けの一部を示す図。
【図３３】図２６のアドレス変換をおこなわない場合の、アドレス割り付けの一部を示す図。
【図３４】図２６のアドレス変換をおこなわない場合の、アドレス割り付けの一部を示す図。
【図３５】図２６のアドレス変換をおこなわない場合の、アドレス割り付けの一部を示す図。
【図３６】図３２〜３５のアドレス割り付けをおこなった場合の、ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を表す図。
【図３７】従来の計算機システムの一例の全体構成を示すブロック図。
【図３８】図３７の計算機システムに用いるメモリモジュールの一例の構成を表すブロック図。メモリモジュールを２バンクグループ、各バンクグループを４バンクで構成したものである。
【図３９】図３７の計算機システムに用いるメモリモジュールの一例の構成を表すブロック図。メモリモジュールを８バンクグループ、各バンクグループを４バンクで構成したものである。
【図４０】図３７の計算機システムのアドレスマッピング回路４３でおこなうアドレス変換の方法を表す図。
【図４１】図３７の計算機システムで図３９のメモリモジュール５３Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図４２】図３７の計算機システムで図３９のメモリモジュール５３Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図４３】図３７の計算機システムで図３９のメモリモジュール５３Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図４４】図３７の計算機システムで図３９のメモリモジュール５３Ｂを使用した場合の、アドレス割り付けの一部を示す図。
【図４５】図４１〜４４のアドレス割り付けをおこなった場合の、ストライドとそれに対するストア要求のメモリモジュール、バンクグループ，バンクへの分散状況との関係を表す図。
【符号の説明】
１０  プロセッサ
２０  相互結合網
３０  主記憶装置
４０  アドレスマッピング回路
５０  メモリモジュール
６０  アドレスマッピング回路。
【図１】
0004240610.tif 000002
【図２】
0004240610.tif 000003
【図３】
0004240610.tif 000004
【図４】
0004240610.tif 000005
【図５】
0004240610.tif 000006
【図６】
0004240610.tif 000007
【図７】
0004240610.tif 000008
【図８】
0004240610.tif 000009
【図９】
0004240610.tif 000010
【図１０】
0004240610.tif 000011
【図１１】
0004240610.tif 000012
【図１２】
0004240610.tif 000013
【図１３】
0004240610.tif 000014
【図１４】
0004240610.tif 000015
【図１５】
0004240610.tif 000016
【図１６】
0004240610.tif 000017
【図１７】
0004240610.tif 000018
【図１８】
0004240610.tif 000019
【図１９】
0004240610.tif 000020
【図２０】
0004240610.tif 000021
【図２１】
0004240610.tif 000022
【図２２】
0004240610.tif 000023
【図２３】
0004240610.tif 000024
【図２４】
0004240610.tif 000025
【図２５】
0004240610.tif 000026
【図２６】
0004240610.tif 000027
【図２７】
0004240610.tif 000028
【図２８】
0004240610.tif 000029
【図２９】
0004240610.tif 000030
【図３０】
0004240610.tif 000031
【図３１】
0004240610.tif 000032
【図３２】
0004240610.tif 000033
【図３３】
0004240610.tif 000034
【図３４】
0004240610.tif 000035
【図３５】
0004240610.tif 000036
【図３６】
0004240610.tif 000037
【図３７】
0004240610.tif 000038
【図３８】
0004240610.tif 000039
【図３９】
0004240610.tif 000040
【図４０】
0004240610.tif 000041
【図４１】
0004240610.tif 000042
【図４２】
0004240610.tif 000043
【図４３】
0004240610.tif 000044
【図４４】
0004240610.tif 000045
【図４５】
0004240610.tif 000046