(57)【要約】【課題】柔軟性の高いＮｏｄｅ増設とメモリ構成を可能とする複数ノード間のメモリインターリーブシステムを提供すること。【解決手段】チップセット３０２内に宛先レジスタを用意し、アクセス対象となるメモリを搭載しているＮｏｄｅを判定する。宛先レジスタにはＮｏｄｅ情報を設定し、アクセス対象となる物理アドレスによって宛先レジスタを選択することによって、メモリアクセスの対象となるメモリを搭載しているＮｏｄｅを判定する。宛先レジスタへの設定によって、メモリアクセスの負荷の大きさをＮｏｄｅによって変えることが可能になる。これにより、増設するＮｏｄｅ３２３の数やメモリの容量／転送速度によって、最適な宛先レジスタの設定にすることによって、柔軟性が高くかつ各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができる。【選択図】図２
2006018489.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、メモリと、前記ＣＰＵと前記メモリ間を制御するとともに外部とのデータ授受を制御するチップセットを備えたノードを複数設け、前記複数のノード間でメモリインターリーブを行うメモリインターリーブシステムであって、
前記チップセットは、前記複数のノードの各々を設定する宛先レジスタを有し、
前記ＣＰＵからの指示に基づいた物理アドレスによって前記宛先レジスタを選択し、
前記選択した宛先レジスタに設定されたノードを判定し、
各ノードのメモリアクセスのスループットを均等にする
ことを特徴とするメモリインターリーブシステム。
【請求項２】
請求項１において、
異なる転送速度と容量を有するメモリが増設された場合、
前記チップセットは、前記宛先レジスタへのノードの設定によって前記増設したメモリアクセスのスループットを均等にする
ことを特徴とするメモリインターリーブシステム。
【請求項３】
請求項２において、
前記増設されるメモリは奇数個であることを特徴とするメモリインターリーブシステム。
【請求項４】
請求項１において、
前記複数のノードの内には、他のノードのメモリと容量を異にするメモリを有し、
前記異容量のメモリを有するノード内でさらにメモリインターリーブを行う
ことを特徴とするメモリインターリーブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数Ｎｏｄｅ間でメモリインターリーブを行なう計算機システムに関する。
【背景技術】
【０００２】
近年のプロセッサ性能の急速な向上に伴い、計算機システム全体の処理時間に対するメモリアクセスのレイテンシの占める割合が大きくなってきている。そこで、メモリアクセスのレイテンシがシステム性能のボトルネックとなることを防ぐために、メモリインターリーブシステムが用いられる。
【０００３】
メモリインターリーブは、連続した領域を順番にアクセスすることが多いというメモリアクセスの局所性を利用し、複数のＮｏｄｅに搭載したメモリに連続したアドレスを交互に割り振っておき、複数のメモリへのアクセスを並列におこなうことにより、メモリアクセスの負荷分散を行なうシステムである。
【０００４】
従来システムは、物理アドレスの１〜複数ｂｉｔをデコードすることによって、アクセスするメモリを搭載するＮｏｄｅの判定を行なっていた。そのため、各Ｎｏｄｅへのメモリアクセスの負荷は均等であり、Ｎｏｄｅによってメモリアクセスの負荷を変更することはできない。例えば、物理アドレスが１ビットであれば、当該ビットの「０」と「１」の繰り返しによって、Ｎｏｄｅ０とＮｏｄｅ１が順にメモリアクセスされて負荷が均等となる。
【０００５】
メモリインターリーブを行なっている２つのＮｏｄｅ構成のマシンにＮｏｄｅを増設しようとする場合、従来システムでは２の累乗のＮｏｄｅ数を増設する必要がある（物理アドレスのビット数にしたがってノードの判定を行い、例えば、ビット数２の場合には４、３の場合には８個の増設）。２の累乗単位でＮｏｄｅ増設を行なわなければ、各Ｎｏｄｅのメモリアクセスのスループットが均等にならないため、十分なメモリインターリーブ効果を得ることができない。さらに、増設するＮｏｄｅに搭載するメモリは、既存のシステムに搭載されているメモリの容量／転送速度と同一のものにしなければ、この場合も各Ｎｏｄｅのメモリアクセスのスループットが均等にならないため、十分なメモリインターリーブの効果を得ることができない。
【０００６】
すなわち、メモリインターリーブを行なっている既存のシステムに、新たにＮｏｄｅを増設する場合、各Ｎｏｄｅのメモリアクセスのスループットを均等にするためには、同一の容量／転送速度のメモリを搭載したＮｏｄｅを最低でも２つのＮｏｄｅを増設する必要がある。
【０００７】
以上説明した等容量で２の累乗単位でノード増設する従来技術は、例えば特許文献１に開示されている。この特許文献１によれば、容量の互いに異なるメモリボードが混在するシステムでも等しい容量のメモリボード同士をグループとしてインターリーブすることができる旨が開示されている。
【特許文献１】特開平９−１７９７７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１を含めた従来のメモリインターリーブシステムでは、各Ｎｏｄｅに対するメモリアクセスが均等であったため、各Ｎｏｄｅのメモリアクセスのスループットを均等にし、十分なメモリインターリーブの効果を得るためには、各Ｎｏｄｅに搭載するメモリの容量と転送速度を同じにする必要があった。さらに、Ｎｏｄｅの増設も２の累乗単位で行なう必要があったので、Ｎｏｄｅ増設やメモリ構成の柔軟性に課題が存在していた。
【０００９】
本発明の目的は、柔軟性の高いＮｏｄｅ増設とメモリ構成を可能とする複数ノード間のメモリインターリーブシステムを提供することにある。
【課題を解決するための手段】
【００１０】
前記課題を解決するために、本発明は次のような構成を採用する。  
ＣＰＵと、メモリと、前記ＣＰＵと前記メモリ間を制御するとともに外部とのデータ授受を制御するチップセットを備えたノードを複数設け、前記複数のノード間でメモリインターリーブを行うメモリインターリーブシステムであって、前記チップセットは、前記複数のノードの各々を設定する宛先レジスタを有し、前記ＣＰＵからの指示に基づいた物理アドレスによって前記宛先レジスタを選択し、前記選択した宛先レジスタに設定されたノードを判定し、各ノードのメモリアクセスのスループットを均等にする構成とする。
【００１１】
また、前記メモリインターリーブシステムにおいて、異なる転送速度と容量を有するメモリが増設された場合、前記チップセットは、前記宛先レジスタへのノードの設定によって前記増設したメモリアクセスのスループットを均等にする構成とする。
【発明の効果】
【００１２】
本発明によると、１つのＮｏｄｅの増設を行なっても、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができ、十分なメモリインターリーブの効果を得ることが可能となる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態に係るメモリインターリーブシステムについて、図１〜図５を参照しながら以下詳細に説明する。図１はインターリーブを行っているマルチノードサーバの基本的な構成を示す図である。図２は本発明の実施形態に係るメモリインターリーブシステムで１つのノードを増設する構成例を示す図であり、図３は本実施形態に係るメモリインターリーブシステムで宛先ノードを判定する構成を示す図である。図４は本実施形態に係るメモリインターリーブシステムで１つのノードを増設する他の構成例を示す図である。図５は本実施形態に係るメモリインターリーブシステムでメモリアクセスする手順を示す図である。
【００１４】
図面において、１０１はＣＰＵ、１０２，１１２はチップセット（ｃｈｉｐｓｅｔ）、３０２，５０２はチップセット、１０３，１１３はＤＤＲメモリ、３０３，３１３，３２３はＤＤＲメモリ、５０３，５１３，５２３はＤＤＲメモリ、をそれぞれ表す。
【００１５】
図１に示すような、インターリーブを行なっているマルチノードサーバの基本的構成に、本実施形態の係るメモリインターリーブシステムを適用したノード（Ｎｏｄｅ）増設の構成例を、従来システムによるＮｏｄｅ増設例と対比しながら、以下説明する。
【００１６】
図１において、ＣＰＵ１０１から発行されたメモリアクセス要求は、他Ｎｏｄｅ０１やメインメモリ（例えば、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）２００／１ＧＢメモリ）１０３の間でのデータの送受信を制御するチップセット（ｃｈｉｐｓｅｔ）１０２で受け付ける。そして、メモリアクセス要求を受け付けたチップセット１０２は、物理アドレスからアクセス対象となるメモリが搭載されているノード（Ｎｏｄｅ）の判定を行なう。
【００１７】
アクセス対象となるメモリが自Ｎｏｄｅに搭載されているものであれば、メモリ１０３にアクセスし、他ＮｏｄｅであるＮｏｄｅ０１に搭載されているメモリ１１３がアクセス対象となるメモリであれば、Ｎｏｄｅ０１内のチップセット１１２に対してメモリアクセス要求を発行し、チップセット１１２はメモリ１１３にアクセスする。
【００１８】
ここで、従来システムを用いてメモリインターリーブを行なっている図１に示すシステムにおいて、Ｎｏｄｅを増設しようとする場合は、２の累乗単位でのＮｏｄｅ増設（２，４，８，１６．…個のＮｏｄｅ増設）を行い、増設するＮｏｄｅには既存のシステムに搭載されているメモリと同様の転送速度と容量のメモリを搭載しなければ、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができず、十分なメモリインターリーブの効果を得ることはできない。従来システムでは、各Ｎｏｄｅのメモリアクセスのスループットを均等にするためには、最低でも２つのＮｏｄｅの増設が必要になり、さらに、増設する２つのＮｏｄｅに搭載するそれぞれのメモリも、図１に示すシステムのＮｏｄｅに搭載されているメモリ１０３とメモリ１１３と同一の容量と転送速度である必要がある。
【００１９】
これに対して、本実施形態の係るメモリインターリーブシステムとして、図２に示すように、図１に示す既存のシステムに１つのＮｏｄｅを増設する構成例を挙げる。この構成例では、増設するＮｏｄｅ０２に搭載するメモリ３２３はＤＤＲ４００／２ＧＢであり、既存のシステムのＮｏｄｅに搭載していたメモリ３０３，３１３よりも、転送速度が速く、容量も大きいものである（ＤＤＲ４００／２ＧＢにおける「４００」は転送速度を表し、「２ＧＢ」は容量を表す）。このように、本実施形態では、増設するＮｏｄｅ数を２の累乗個に限定されることはなくなる。そして、増設するＮｏｄｅの転送速度と容量についてはスループットを均等にするようにそれぞれ配慮する必要がある。なお、Ｎｏｄｅ０２にもＣＰＵとチップセットが存在するのは当然のことである。図２に示す構成例でメモリインターリーブシステムを実現できる技術的理由を以下に説明する。
【００２０】
本発明の実施形態では、図３に示すように、チップセット３０２内に宛先レジスタを設け、この宛先レジスタにはＮｏｄｅ情報を設定する。そして、宛先レジスタを使用してアクセス対象のメモリを搭載しているＮｏｄｅの判定を行なう。図２に示すように、Ｎｏｄｅ００とＮｏｄｅ０１にＤＤＲ２００／１ＧＢ、Ｎｏｄｅ０２にＤＤＲ４００／２ＧＢのメモリをそれぞれ搭載するような構成においては、チップセット３０２に図３に示すような宛先レジスタの設定を行なう。
【００２１】
具体的には、宛先レジスタ０にＮｏｄｅ００を登録し、宛先レジスタ１にＮｏｄｅ０１を登録し、宛先レジスタ２にＮｏｄｅ０２を登録し、宛先レジスタ３にＮｏｄｅ０３を登録する。そして、物理アドレス［８：７］を使用して、この宛先レジスタを選択する（この例では、１２８ＧＢ単位でのメモリインターリーブを行なう場合を例にするので、物理アドレス［８：７］を使用）。アクセス対象となる物理アドレス［８：７］が００の場合は宛先レジスタ０、物理アドレス［８：７］が０１の場合は宛先レジスタ１、物理アドレス［８：７］が１０の場合は宛先レジスタ２、そして物理アドレス［８：７］が１１の場合は、宛先レジスタ３を選択する。
【００２２】
ここで、物理アドレス［８：７］が００の場合はＮｏｄｅ００に搭載されているメモリ３０３にアクセスし、物理アドレス［８：７］が０１の場合はＮｏｄｅ０１に搭載されているメモリ３１３にアクセスを行なう。そして、物理アドレス［８：７］が１０または１１の場合には、Ｎｏｄｅ０２に搭載されているメモリ３２３にアクセスを行なう。このように、Ｎｏｄｅ０２に搭載されているメモリ３２３をアクセス対象とする物理アドレスのパターンは２パターンとなり、他の２Ｎｏｄｅへのメモリアクセスの負荷の２倍となる。
【００２３】
従って、本発明の実施形態によって、ＤＤＲ４００／２ＧＢのメモリ３２３を搭載するＮｏｄｅ０２に対しては、メモリアクセスの負荷を大きくし、ＤＤＲ２００／１ＧＢのメモリ３０３、メモリ３１３を搭載するＮｏｄｅ００とＮｏｄｅ０１に対しては、メモリアクセスの負荷を小さくすることが可能となる。
【００２４】
これにより、システム内に異なる転送速度、容量のメモリを混在させても、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができ、十分なメモリインターリーブの効果を得ることが可能となる。
【００２５】
以上説明した本実施形態に係るメモリインターリーブシステムのメモリアクセスへのフローを図５で説明すると、まず、ＣＰＵがメモリアクセス要求Ｔｘを発行し、当該ＣＰＵの存するノード内のチップセット（制御部）がアクセス要求を受け取る。次いで、アクセス対象の物理アドレスの指定によって宛先レジスタを選択し、この選択した宛先レジスタに対応して設定されているアクセス対象のＮｏｄｅが図３に示すように当該チップセットで決定する。当該チップセットのＮｏｄｅはアクセス対象メモリを搭載するＮｏｄｅへのアクセス要求を発行し、対象メモリへアクセスすることとなる。
【００２６】
ここで、図２と図３に示す構成例を参照して、物理アドレスを「００」「０１」「１０」「１１」の順番に要求すると、Ｎｏｄｅ０２（転送速度と容量がＮｏｄｅ００及び０１に比べて２倍）へのスループットが均等になってインターリーブの効果が最大になるがこの順番はプロセッサＣＰＵが適宜に指示し得ることができる。
【００２７】
次に、本実施形態に係るメモリインターリーブシステムで１つのノードを増設する他の構成例を図４に示す。この構成例では、増設するＮｏｄｅにはＤＤＲ２００／２ＧＢのメモリ５２３を搭載する。この場合も、チップセット５０２に宛先レジスタを設け、この宛先レジスタの設定は、図３に示した構成を用いて同様に行なう。図４に示す構成例は、増設分のＮｏｄｅ０２は、同一転送速度のＤＤＲ（ただし、容量は２倍）を用いることが前提となるものである。
【００２８】
図４と図３に示す構成により、搭載するメモリ容量の多いＮｏｄｅ０２（Ｎｏｄｅ００又は０１のメモリ容量の２倍、転送速度は同一）に対してのメモリアクセスの負荷を大きくする（Ｎｏｄｅ０２へのアクセス負荷はＮｏｄｅ００又は０１へのアクセス負荷の２倍）。さらに、Ｎｏｄｅ０２においてはＮｏｄｅ内でさらに１ＧＢ＋１ＧＢのメモリインターリーブを行なう（全体で２ＧＢのメモリを１ＧＢのメモリブロックに２分割してこれらのブロックでメモリインターリーブを行う）などして、Ｎｏｄｅ０２におけるメモリアクセスのスループットを高くし、メモリを効果的に使うことができる。
【００２９】
このように、１ＧＢのメモリ５０３とメモリ５１３を搭載したＮｏｄｅ００とＮｏｄｅ０１と２ＧＢのメモリ５２３を搭載したＮｏｄｅ０２のメモリアクセスのスループットを均等にすることができ、十分なメモリインターリーブの効果を得ることが可能となる。換言すると、図４に示すＮｏｄｅの増設では、転送速度同一で容量２倍のメモリを使用するものであり（増設するＮｏｄｅ０２はＮｏｄｅ００又は０１のメモリと容量だけの差異しかない同等のものを使う（転送速度が異なるとメモリ仕様は大幅に異なる））、加えて、Ｎｏｄｅ０２内でもそのメモリをブロックに分けてブロック間でメモリインターリーブシステムを適用してスループットを高めているものである。なお、図２に示す増設Ｎｏｄｅ０２では転送速度が速いので、特に内部のメモリのブロック間でメモリインターリーブシステムを適用するまでもない。
【００３０】
以上説明したように、本発明の実施形態のメモリインターリーブシステムでは、複数の宛先レジスタを設け、この宛先レジスタにＮｏｄｅ情報を登録する。そして、アクセス対象の物理アドレスにより、この宛先レジスタを選択することによって、アクセス対象のメモリが搭載されているＮｏｄｅを判定する。この宛先レジスタへのＮｏｄｅ情報の設定の仕方によって、各Ｎｏｄｅへのメモリアクセスの負荷を変えることができる。
【００３１】
そこで、転送速度と容量の大きなメモリを搭載するＮｏｄｅに対しては、メモリアクセスの負荷を大きくし、転送速度と容量の小さなメモリを搭載するＮｏｄｅに対しては、メモリアクセスの負荷を小さくするなどして、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることが可能となる。すなわち、異なる容量／転送速度を持つメモリをシステム内に混在させても、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができ、さらに増設するＮｏｄｅ数も１つのＮｏｄｅから可能になる。すなわち、奇数ノードの増設が可能である。
【００３２】
さらに、増設するＮｏｄｅに搭載するメモリも、従来のように同一の転送速度や同一の容量に限らず、高速アクセス可能なＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）メモリ２００とＤＤＲメモリ４００といった異なるデータ転送速度を持つメモリの搭載や、Ｎｏｄｅ毎に異なるメモリ容量を搭載しても、各Ｎｏｄｅのメモリアクセスのスループットを均等にすることができ、十分なメモリインターリーブの効果を得ることが可能となる。従って、Ｎｏｄｅ増設とメモリ構成において柔軟性の高いメモリインターリーブを実現することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】インターリーブを行っているマルチノードサーバの基本的な構成を示す図である。
【図２】本発明の実施形態に係るメモリインターリーブシステムで１つのノードを増設する構成例を示す図である。
【図３】本実施形態に係るメモリインターリーブシステムで宛先ノードを判定する構成を示す図である。
【図４】本実施形態に係るメモリインターリーブシステムで１つのノードを増設する他の構成例を示す図である。
【図５】本実施形態に係るメモリインターリーブシステムでメモリアクセスする手順を示す図である。
【符号の説明】
【００３４】
１０１  ＣＰＵ
１０２，１１２  チップセット（ｃｈｉｐｓｅｔ）
３０２，５０２  チップセット（ｃｈｉｐｓｅｔ）
１０３，１１３  ＤＤＲメモリ
３０３，３１３，３２３  ＤＤＲメモリ
５０３，５１３，５２３  ＤＤＲメモリ
【図１】
2006018489.tif 000003
【図２】
2006018489.tif 000004
【図３】
2006018489.tif 000005
【図４】
2006018489.tif 000006
【図５】
2006018489.tif 000007