(57)【要約】【課題】メモリアクセス装置の性能を向上させる。【解決手段】メモリアクセス装置１１が、メモリアクセス命令を行う複数のＣＰＵ（１４ａ〜１４ｄ）と、所定の方式でアドレス付けされ、ＣＰＵ（１４ａ〜１４ｄ）からアクセス可能な主メモリ１５と、ＣＰＵ１４の主メモリ１５へのアクセスパターンをメモリアクセス命令毎に記憶するアクセスパターン記憶領域１３とを具え、ＣＰＵ１４からのメモリアクセス命令により、アクセスパターン記憶領域１３に記憶された主メモリ１５へのアクセスパターンを参照し、メモリアクセス命令を行うＣＰＵ１４がアクセスする主メモリ１５のメモリ領域を、アクセスパターンに応じてスタック式及びインターリーブ式で割り当てる。【選択図】図１
2008234156.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセス命令を行う複数のプロセッサと、
所定の方式でアドレス付けされ、前記複数のプロセッサからアクセス可能な共有メモリと、
前記プロセッサの前記共有メモリへのアクセスパターンをメモリアクセス命令毎に記憶するアクセスパターン記憶手段とを具えるメモリアクセス装置において、
前記プロセッサからのメモリアクセス命令により、前記アクセスパターン記憶手段に記憶された当該メモリアクセス命令に関する前記共有メモリへのアクセスパターンを参照し、当該メモリアクセス命令を行う前記プロセッサがアクセスする前記共有メモリのメモリ領域を、前記アクセスパターンに応じた所定の方式で割り当てることを特徴とするメモリアクセス装置。
【請求項２】
前記共有メモリが、スタック式及びインターリーブ式でアドレス付けされることを特徴とする請求項１に記載のメモリアクセス装置。
【請求項３】
前記アクセスパターン記憶手段が、前記プロセッサがアクセスした前記共有メモリの上限アドレス及び下限アドレスを記憶することを特徴とする請求項１又は２に記載のメモリアクセス装置。
【請求項４】
所定の方式でアドレス付けされ、複数のプロセッサからアクセス可能な共有メモリに前記プロセッサからメモリアクセス命令を行うステップと、
前記プロセッサの前記共有メモリへのアクセスパターンを記憶するアクセスパターン記憶手段に記憶された前記メモリアクセス命令に関するアクセスパターンを参照するステップと、
前記プロセッサからのメモリアクセス命令により、前記メモリアクセス命令を行う前記プロセッサがアクセスする前記共有メモリのメモリ領域を、前記アクセスパターンに応じた所定の方式で割り当てるステップとを有することを特徴とするメモリアクセス方法。
【請求項５】
前記共有メモリが、スタック式及びインターリーブ式でアドレス付けされることを特徴とする請求項４に記載のメモリアクセス方法。
【請求項６】
前記アクセスパターン記憶手段が、前記プロセッサがアクセスした前記共有メモリの上限アドレス及び下限アドレスを記憶することを特徴とする請求項４又は５に記載のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサと、この複数のプロセッサからアクセス可能なメモリとを具えるメモリアクセス装置及び方法に関する。
【背景技術】
【０００２】
メモリアクセス装置には、対称型マルチプロセッシング（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ  ＳＭＰ）方式で動作するものがある（例えば、特許文献１参照）。この装置は、サーバやワークステーションといったシステムあるいはパソコンに装備される複数のＣＰＵを有する。そして、それぞれのＣＰＵが行う処理の役割を決めずにメモリを共有し、複数のＣＰＵ（プロセッサ）が同等な立場でアクセス処理を分担する。このような装置では、ＣＰＵからのメモリアクセス命令に応じてメモリからＣＰＵにデータを受け渡すために、ＣＰＵとメモリとの間の通信が必要となる。
【０００３】
そして、メモリアクセス装置では、ＣＰＵで認識するアドレス（仮想アドレス）はメモリ上の物理アドレスに変換される。メモリアクセス装置は、仮想アドレスからアドレス変換テーブルを参照して該当する物理アドレスに変換する。このアドレス変換テーブルでは、メモリ上の物理アドレスが、ＣＰＵが認識するアドレス空間である仮想空間に割り当てられている。
【０００４】
【特許文献１】特開２００６−２７６９０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のような装置では、メモリに読み書きを行う際、ＣＰＵからのメモリアクセス要求を受けたメモリが読み書きできるまでに、時間差（レイテンシー）が生じる。このようなレイテンシーが積み重なると、システムの処理速度の低下を招く。このため、レイテンシーを短縮する必要性があるが、ＣＰＵの処理速度がメモリの処理速度に比べて高いため、メモリアクセス装置の性能を向上させるためにレイテンシーを短縮させることは難しい。
【０００６】
以上のような課題に鑑みて、本発明は、メモリアクセス装置の性能を向上させるため、ＣＰＵ及びメモリの処理のレイテンシーを短縮可能なメモリ構成を有するメモリアクセス装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために本発明に係るメモリアクセス装置は、メモリアクセス命令を行う複数のプロセッサ（例えば、実施形態におけるＣＰＵ１４ａ，１４ｂ，１４ｃ，１４ｄ）と、所定の方式でアドレス付けされ、複数のプロセッサからアクセス可能な共有メモリ（例えば、実施形態における主メモリ１５）と、プロセッサの共有メモリへのアクセスパターンをメモリアクセス命令毎に記憶するアクセスパターン記憶手段（例えば、実施形態におけるアクセスパターン記憶領域１３）とを具え、その上で、プロセッサからのメモリアクセス命令により、アクセスパターン記憶手段に記憶された当該メモリアクセス命令に関する共有メモリへのアクセスパターンを参照し、当該メモリアクセス命令を行うプロセッサがアクセスする共有メモリのメモリ領域を、アクセスパターンに応じた所定の方式で割り当てる。
【０００８】
また、上記構成のメモリアクセス装置において、共有メモリが、スタック式及びインターリーブ式でアドレス付けされるのが好ましい。
【０００９】
さらに、上記構成のメモリアクセス装置において、アクセスパターン記憶手段が、プロセッサがアクセスした共有メモリの上限アドレス及び下限アドレスを記憶するのが好ましい。
【００１０】
一方、前記課題を解決するために本発明に係るメモリアクセス方法は、所定の方式でアドレス付けされ、複数のプロセッサからアクセス可能な共有メモリにプロセッサからメモリアクセス命令を行うステップと、プロセッサの共有メモリへのアクセスパターンを記憶するアクセスパターン記憶手段に記憶されたメモリアクセス命令に関するアクセスパターンを参照するステップと、プロセッサからのメモリアクセス命令により、メモリアクセス命令を行うプロセッサがアクセスする共有メモリのメモリ領域を、アクセスパターンに応じた所定の方式で割り当てるステップとを有する。
【００１１】
また、上記構成のメモリアクセス方法において、共有メモリが、スタック式及びインターリーブ式でアドレス付けされるのが好ましい。
【００１２】
さらに、上記構成のメモリアクセス方法において、アクセスパターン記憶手段が、プロセッサがアクセスした共有メモリの上限アドレス及び下限アドレスを記憶するのが好ましい。
【発明の効果】
【００１３】
本発明のメモリアクセス装置及び方法によれば、プロセッサからのメモリアクセス命令を受けると、アクセスパターン記憶手段に記憶された当該メモリアクセス命令に関するアクセスパターンを参照して、当該メモリアクセス命令を行うプロセッサがアクセスする共有メモリのメモリ領域を、複数の所定の方式のうちアクセスパターンに応じた方式で割り当てる。上記割り当ては、メモリアクセスアドレスに局所性があるか否かに応じて、所定の方式でされる。すなわち、メモリアクセスアドレスに局所性がある場合には、メモリ領域をスタック式に集中して割り当てることで、レイテンシーを短縮させることができる。一方、メモリアクセスアドレスに局所性が無く、広く分散している場合には、メモリ領域をインターリーブ式に割り当てることで、あるデータへのメモリアクセスで生じた遅延時間の間に、次のアドレスへメモリアクセス要求を発信し、待機時間を埋めることができる。このように、本発明によれば、プロセッサの処理速度とメモリの処理速度との差に基づくレイテンシーを短縮さことが可能であり、メモリアクセス装置の性能を向上させることが可能である。
【００１４】
また、アクセスパターン記憶手段が、プロセッサがアクセスした共有メモリの上限アドレス及び下限アドレスを記憶することで、メモリアクセスアドレスに局所性があるか、又は局所性が無く広く分散しているかに基づいて、共有メモリのメモリ領域をプロセッサがアクセスする領域として割り当てることが可能である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明に係るメモリアクセス装置及び方法の好ましい実施形態について図１乃至図３を参照しながら説明する。
【００１６】
図１に、本発明に係るメモリアクセス装置及び方法の１つの実施例としてのメモリアクセス装置を示す。このメモリアクセス装置１１は、対称型マルチプロセッシング（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ，ＳＭＰ）方式で動作する。メモリアクセス装置１１は複数のＣＰＵ１４を有し、それぞれのＣＰＵが行う処理の役割を決めず、同等のものとして扱う。本実施例では、メモリアクセス装置１１が、４つのＣＰＵ、すなわち、ＣＰＵ０（１４ａ）、ＣＰＵ１（１４ｂ）、ＣＰＵ３（１４ｃ）、ＣＰＵ４（１４ｄ）を有する場合を示すが、ＣＰＵの数はこれに限らない。
【００１７】
また、メモリアクセス装置１１には、不揮発性のメモリ上に焼き付けられた仮想マシン機構１２と、メモリのアクセスパターンを記憶可能な領域であるアクセスパターン記憶領域１３と主メモリ１５とが装備されている。
【００１８】
ＣＰＵ１４で認識するアドレス（仮想アドレス）は主メモリ１５上の物理アドレスに変換される。すなわち、メモリアクセス装置１１は、アドレス変換テーブル（図示せず）を参照して、仮想マシン機構１２内の仮想アドレスから該当する物理アドレスに変換する。このアドレス変換テーブルでは、メモリ１４上の物理アドレスが、ＣＰＵ１４が認識するアドレス空間である仮想マシン機構１２内の仮想空間に割り当てられている。また、アクセスパターン記憶領域１３は、ジョブ毎に、メモリアクセスの最大メモリアクセスアドレス及び最小メモリアクセスアドレスを、記憶、保持する。
【００１９】
図２は、メモリ記憶クラスについて示している。ＳＭＰ方式の構造では、上記のように各ＣＰＵ１４ａ〜１４ｄは同等のものとして扱われるため、全てのＣＰＵ１４ａ〜１４ｄから、主メモリ１５の主メモリ領域の全てのアドレス空間にアクセス可能である。図２に示すように、主メモリ１５の構造として、主メモリ１５の全てのアドレス空間のうち各ＣＰＵ１４ａ〜１４ｄが担当するアドレス空間が決まっている。
【００２０】
図２に示すように、主メモリ１５のメモリ構成は、いわゆるスタック及びインターリーブの２種類からなる。ここで、スタックとは、ＣＰＵ１４が、一連のメモリ空間にアクセスする際に、自身の配下の主メモリ１５のメモリ空間にアクセスした後に、他のＣＰＵ１４が担当するメモリ空間に移ってこれにアクセスするようなメモリ構成である。
【００２１】
図２に示すように、ＣＰＵ０（１４ａ）が担当するメモリ空間は、アドレス０〜３の領域で、ＣＰＵ１（１４ｂ）が担当するメモリ空間は、アドレス０〜３の領域である。これらＣＰＵ０（１４ａ）及びＣＰＵ１（１４ｂ）が担当するメモリ空間は、各々スタック構成領域となっている。このため、ＣＰＵ０（１４ａ）が５以上のメモリ空間にアクセスする必要が生じた場合、まず、自身が担当するアドレス０〜３にアクセスした後に、他のＣＰＵが担当するアドレス空間に移行する。
【００２２】
一方、インターリーブとは、ＣＰＵ１４が、複数のＣＰＵの担当するメモリ空間を串刺しにアクセスするような方式であり、本実施例では自身が担当するメモリ空間と他のＣＰＵ１４が担当するメモリ空間とに交互にアクセスするようなメモリ構成である。図２に示すように、ＣＰＵ３（１４ｃ）が担当するメモリ空間は、アドレス８，１０，１２，１４の領域で、ＣＰＵ４（１４ｄ）が担当するメモリ空間は、アドレス９，１１，１３，１５の領域である。これらＣＰＵ３（１４ｃ）及びＣＰＵ４（１４ｄ）が担当するメモリ空間は、各々インターリーブ構成領域となっている。このため、ＣＰＵ０（１４ａ）は、ＣＰＵ３（１４ｃ）が担当するアドレス８，１０，１２，１４空間と、ＣＰＵ４（１４ｄ）が担当するアドレス９，１１，１３，１５空間とに交互にアクセスする。
【００２３】
なお、ＳＭＰ方式のメモリ構造では、図２に示すように、スタック構成領域とインターリーブ構成領域とを混在させて設定可能である。また、必要に応じてスタック構成領域とインターリーブ構成領域との比率を変更することが可能である。本発明に係るメモリアクセス装置の主メモリ１５も、このような構成を前提としている。
【００２４】
主メモリ１５に読み書きを行う際、ＣＰＵ１４からのアクセス要求を受けた主メモリ１５が読み書きできるようになるまで、時間差（レイテンシー）が生じる。図３は、このレイテンシーの相違について示している。一般に、自身が担当するＣＰＵ１４のメモリ空間へのアクセスは速く、自身が担当するメモリ空間以外へのＣＰＵ１４のアクセスは遅くなる。このため、メモリアクセスする物理アドレスに局所性・連続性がある場合、スタック構成領域上に、まとめて使用メモリを配置する（割り当てる）ことで、レイテンシーの悪化（レイテンシーの増加）を防止することが可能である。
【００２５】
一方、メモリアクセスアドレスに局所性が無く、主メモリ１５の全アドレス空間に分散している場合、インターリーブ構成領域上に使用メモリを配置する（割り当てる）。この場合、あるＣＰＵが担当するメモリ空間へのアクセスで生じたレイテンシーの間に、別のＣＰＵが担当するメモリ空間へのアクセスすることで、空白時間を埋めることができるため、レイテンシーを短縮させることが可能である。
【００２６】
ここで、以上のように構成されたメモリアクセス装置１１のメモリアクセス動作について説明する。
【００２７】
ＣＰＵ０（１４ａ）からのメモリアクセス命令（これをジョブＡとする）が、仮想マシン機構１２上で起動されると、アクセスパターン記憶領域１３に、ジョブＡのアクセスパターン、すなわち、ジョブＡによりＣＰＵ０（１４ａ）がアクセスする主メモリ１５のメモリ領域の上限アドレス及び下限アドレスが記憶される。ジョブＡ以外の他の複数のジョブが起動された場合、ＣＰＵ０（１４ａ）がアクセスする主メモリ１５のメモリ領域の上限アドレス及び下限アドレスが、ジョブ毎に記憶される。
【００２８】
再びジョブＡが起動されると、メモリアクセス装置１１は、アクセスパターン記憶領域１３に記憶された、ジョブＡに関するメモリ領域の上限アドレス及び下限アドレスを参照する。ここで、メモリアクセスアドレスに局所性がある場合、すなわち、メモリ領域の上限アドレス及び下限アドレスの間が所定値以下の場合には、メモリ領域をスタック式に集中して仮想マシン機構１２内の仮想空間に割り当てることで、レイテンシーを短縮させることができる。なお、この所定値は、メモリサイズ、アクセス装置の規模や処理能力を勘案して適宜定めるものとする。
【００２９】
一方、メモリアクセスアドレスに局所性が無く、広く分散している場合、すなわち、メモリ領域の上限アドレス及び下限アドレスの間が所定値よりも大きい場合には、メモリ領域をインターリーブ式に仮想マシン機構１２内の仮想空間に割り当てることで、あるデータへのメモリアクセスで生じた遅延時間の間に、次のアドレスへメモリアクセス要求を発信し、待機時間を埋めることができる。
【００３０】
このように、本発明によれば、プロセッサの処理速度とメモリの処理速度との差に基づくレイテンシーを短縮させることが可能であり、メモリアクセス装置の性能を向上させることが可能である。
【産業上の利用可能性】
【００３１】
本発明に係るメモリアクセス装置及び方法は、サーバやワークステーションといったシステム等に適用することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明に係るメモリアクセス装置を示すブロック図である。
【図２】上記メモリアクセス装置を構成するメモリのメモリ構成領域の相違を示す図である。
【図３】上記メモリアクセス装置を構成するＣＰＵからアクセス要求を受けた主メモリに生じるレイテンシーの相違について示す図である。
【符号の説明】
【００３３】
１１    メモリアクセス装置
１２    仮想マシン機構
１３  アクセスパターン記憶領域（アクセスパターン記憶手段）
１４    ＣＰＵ（プロセッサ）
１４ａ    ＣＰＵ０（プロセッサ）
１４ｂ    ＣＰＵ１（プロセッサ）
１４ｃ    ＣＰＵ３（プロセッサ）
１４ｄ    ＣＰＵ４（プロセッサ）
１５    主メモリ（共有メモリ）
【図１】
2008234156.tif 000003
【図２】
2008234156.tif 000004
【図３】
2008234156.tif 000005