(57)【特許請求の範囲】
【請求項１】
第１のローカルバスを介して相互接続された第１のプロセッサ、第１の主メモリ及び第１のメモリ制御手段と、
第２のローカルバスを介して相互接続された第２のプロセッサ、第２の主メモリ及び第２のメモリ制御手段と、
前記第１のメモリ制御手段と前記第２のメモリ制御手段とを相互接続するシステム・バスと、
前記第２のプロセッサにおける処理において、前記第１の主メモリへの所定時間内のアクセス回数が前記第２の主メモリへのアクセス回数よりも多いか否かを決定する手段と、
前記第２のプロセッサにおける処理において前記第１の主メモリへのアクセス回数が前記第２の主メモリへのアクセス回数よりも多い場合には、前記第２のプロセッサにおける前記処理を前記第１のプロセッサに移動させる手段と、
を有することを特徴とする多重プロセッサを有するコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多重主メモリを有するシステムのメモリ・ページ位置に関する。より詳細には、上記メモリ・ページの効率的な割当に関する。
【０００２】
【従来の技術、及び、発明が解決しようとする課題】
それぞれが関連主メモリを有する、多重プロセッサを含むコンピュータ・システムは、当業者にとっては周知であり、非均等メモリ・アクセス（ＮＵＭＡ）機械と呼ばれる種類のコンピュータを含む。
【０００３】
このようなシステムの一つ内のプロセッサが、例えば、磁気または光学的ディスクのような外部メモリからデータを必要とした場合には、そのメモリに呼出を行い、必要なデータが、それを要求したプロセッサの主メモリにロードされる。第二のプロセッサが同じデータを必要とした場合には、第一のプロセッサの主メモリからそのデータを読み出すために、第二のプロセッサは、システム・バスを通して遠隔アクセスを行う。第一のプロセッサより第二のプロセッサの方が、問題のデータをより頻繁に必要とする場合には、第二のプロセッサは、継続して遠隔アクセスを行わなければならず、第二のプロセッサの主メモリにそのデータを移動しないので、システムの性能は低下する。要求されたデータが読み出し専用であることを認識できず、そのため第二のプロセッサの主メモリへコピーすることができることを認識できなかった場合にも、性能は低下する。
【０００４】
本発明の一つの目的は、多重プロセッサ、多重主メモリ・コンピュータ・システムの、メモリ・ページの位置を、効率的に制御するための方法および装置を提供することである。
【０００５】
【課題を解決するための手段】
本発明は、ある観点から見た場合、第１のローカルバスを介して相互接続された第１のプロセッサ、第１の主メモリ及び第１のメモリ制御手段と、第２のローカルバスを介して相互接続された第２のプロセッサ、第２の主メモリ及び第２のメモリ制御手段と、前記第１のメモリ制御手段と前記第２のメモリ制御手段とを相互接続するシステム・バスと、前記第２のプロセッサにおける処理において、前記第１の主メモリへの所定時間内のアクセス回数が前記第２の主メモリへのアクセス回数よりも多いか否かを決定する手段と、前記第２のプロセッサにおける処理において前記第１の主メモリへのアクセス回数が前記第２の主メモリへのアクセス回数よりも多い場合には、前記第２のプロセッサにおける前記処理を前記第１のプロセッサに移動させる手段と、を有することを特徴とする多重プロセッサを有するコンピュータ・システムを提供するものである。
【０００８】
アクセス分析のホット・ページ・モードの場合、第一の主メモリよりも容量が小さい高速アクセス走査メモリが提供され、このメモリは、第二のプロセッサからのアクセス用の第一の主メモリのサブセットを走査する際に使用される。
【０００９】
添付の図面を参照しながら本発明を説明するが、これは単に例示としてのものに過ぎない。
【００１０】
【発明の実施の形態】
図１について説明すると、この図は、本発明のページ位置制御手段を内蔵する、多重プロセッサ−多重メモリ・システムのブロック図である。上記システムは、第一のプロセッサまたはプロセッサ・クラスタ１０、および第二のプロセッサまたはプロセッサ・クラスタ２０を含む。これらのプロセッサ１０、２０は、それぞれ、第一および第二の高速アクセス主メモリ５０、６０に接続している、第一および第二の高度メモリ・コントローラ（ＡＭＣ）３０、４０に、それぞれ接続している。プロセッサ１０、２０は、ローカル・バス７０、８０を通して、各ＡＭＣに接続していて、ＡＭＣ３０、４０は、システム・バス９０により相互に接続している。上記システム・バス９０により、遠隔メモリ、ローカル・エリア・ネットワーク（ＬＡＮ）などにアクセスすることができる。主メモリ５０、６０は、一つの隣接メモリとして形成され、アドレス・ブロックは、シーケンシャルに、またはインターリーブ状に配列することができる。
【００１１】
プロセッサ１０、２０は、それぞれ、ＡＭＣ３０、４０の他のメモリ管理制御ロジック３２、４２と通信する、メモリ管理ロジック１２、２２を含む。ロジック１２、２２、３２、４２は、上記動作を行うためのハードウェアおよびソフトウェアからなる。ロジック１２、２２は、それぞれ、プロセッサ１０、２０のオペレーティング・システムおよびこれらプロセッサの中央処理装置を含む。ロジック３２、４２については、図２−図４を参照しながら、以下にさらに詳細に説明する。
【００１２】
図２ついて説明すると、この図は、本発明のＡＭＣ３０、４０の制御ロジックのブロック図である。このブロック図は、メモリ制御ロジック３２、４２のハードウェア構成部分を示すが、ＡＭＣ３０、４０は機能的に同じものであるので、ＡＭＣ３０についてだけ説明する。
【００１３】
ＡＭＣ３０は、好適には、カリフォルニア州、サンホゼのＶＬＳＩの特殊用途向ＩＣ（ＡＳＩＣ）であり、複数のレジスタとカウンタからなることが好ましい。上記レジスタは、第一および第二のローカル・バス制御レジスタ１０５、１０７、第一および第二のシステム・バス制御レジスタ１４５、１４７、共通制御レジスタ１２９およびローカル・バスおよびシステム・バス・アドレス・レジスタ１２６、１６６を含む。カウンタは、第一および第二のローカル・バス・カウンタ１１１、１１３、および第一および第二のシステム・バス・カウンタ１５１、１５３を含む。プロセッサ１０への割込みを発生するための割込み制御ロジックも、設置されている。これらの構成部分は、以下に説明するヒストグラム・モードと呼ばれるメモリ評価モードを含む、いくつかの動作で使用される。また、遠隔およびローカル・バス・カウンタが多重になっているので、多重比較／評価動作を行うことができる。
【００１４】
また、ＡＭＣ３０には、高速アクセスすることができる、ランダム・アクセス・メモリ（ＲＡＭ）１３４を含む。好適な実施形態の場合には、上記ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）であり、５１２ＫＢの容量を持つ。ＲＡＭ１３４は、以下にさらに詳細に説明するホット・ページ・モードと呼ばれる、メモリ評価モードで使用される。複数の構成部分は、ＲＡＭ１３６と一緒に動作し、これらの構成部分は、範囲レジスタ１３６、アドレス・レジスタ１３７、ホット・ページ制御レジスタ１３８、最大カウント・レジスタ１３２、およびインターバル・カウンタ１３３を含む。
【００１５】
本発明の、メモリ・ページ管理を行うための、上記構成部分の動作を以下に説明する。
【００１６】
プロセッサ１０、２０は、すでに説明したように、好適には隣接メモリを形成するように構成されていることが好ましい、メモリ５０、６０のデータにアクセスする。プロセッサ１０が必要とするデータが、メモリ６０に存在するとき、（または、プロセッサ２０が必要とするデータが、メモリ５０に存在するとき）、システム・バス・サイクルを必要とする遠隔（システム・バス）メモリ・アクセスが必要になる。このサイクルは、ディスク・ドライブ等への遠隔アクセスより高速であるが、プロセッサからの、そのペアになってるメモリへの直接アクセスよりは遅い。ペアになっていないメモリのデータが、頻繁に要求される場合には、システムの性能は、遠隔アクセスにより有意に低下する。説明の都合上、システム・バス・メモリ・アクセス（すなわち、ペアになっていないメモリ・アクセス）を遠隔アクセスと呼び、ペアになっているメモリへのアクセスをローカル・アクセスと呼ぶことにする。
【００１７】
本発明は、ローカルおよび遠隔アクセスの評価を行い、メモリの特定のページに対する遠隔アクセスが、ローカル・アクセスを超えた場合には、複数の選択肢を供給する。これら選択肢は、要求を行っているプロセッサのメモリへのページの再配置、ページが読み出し専用である場合の、要求を行っているプロセッサのメモリへのコピー、および適当と思われる場合の、データを要求しているプロセスの、データを含んでいるメモリに関連するプロセッサへの切り替えを含む。すでに説明したように、本発明は、少なくとも二つのモードで動作することができる。第一のモードは、予め定義した時間での、特定のメモリ位置に対する遠隔アクセスの数から、ヒストグラムが作られるヒストグラム・モードである。第二のモードは、あるブロック内でのページへの遠隔アクセスの数が、設定時間の域値を超えたかどうかを決定するために、予め定めた大きさのブロック内で、メモリを継続して走査するホット・ページ・モードである。ホット・ページ・モードは、このモードの場合、発生する割込みの数が少ないという点で有利ではあるけれども、ヒストグラム・モードの場合には、より多くのメモリの走査が行われることになる。
【００１８】
図３について説明すると、この図は、本発明のヒストグラム・モードにおける、メモリ制御ロジック１２、２２、３２、４２の動作のフローチャートである。図３のフローチャートを実行するためのソフトウェアは、プロセッサ１０（および２０）のオペレーティング・システムの一部であり、ＡＭＣの制御レジスタおよびカウンタと一緒に動作する。
【００１９】
ステップ２０２において、プロセッサ・メモリでの、ｙ軸上の遠隔アクセス、およびｘ軸上のアドレス位置の数を持つヒストグラムの生成と同時に、ヒストグラム・モードがスタートする。割込みをするだけの価値がある、遠隔アクセスの数を数えるための域値カウンタが、カウンタ１５１にロードされる。例えば、域値の数値が５０である場合には、遠隔アクセスの５０回毎に、割込みが発生し、５０番目の遠隔アクセスのアドレスが記憶されることを意味する。
【００２０】
ステップ２０４は、メモリへのアクセス、およびそのアクセスが、ローカル・アクセスであるか、遠隔アクセスであるかの決定方法を示す。遠隔アクセスである場合には、カウンタ１５１の数値は減少する（ステップ２０６）。ステップ２０８において、カウンタ１５１の数値がゼロである場合には、（システム・アドレス・レジスタ１６６にラッチされている）割込みを発生したアドレスが、ヒストグラムに追加される。前から存在していなかった場合には、そのアドレスで発生した割込みの回数が増大する（ステップ２１０）。カウンタの数値がゼロでない場合には、流れは元に戻る。
【００２１】
ステップ２１２において、あるアドレスに対する遠隔アクセスの数が、予め定めた時間内に域値を超えた場合には、そのアドレス位置に対する要求の分析がさらに試みられる。アクセスの域値および予め定めた時間の域値は、システムの構成、必要とする性能およびプロセッサの速度によって、周知の方法で変化することを理解されたい。ステップ２１４において、要求したページが読み出し専用であるかどうかの判断が行われる。読み出し専用である場合には、要求されたページが要求しているメモリにコピーされ（ステップ２１６）、システムのＭＭＵテーブルが、その時点で、新しい、コピーされたページに更新される（ステップ２１８）。
【００２２】
要求されたメモリ位置のデータが、読み出し専用でない場合には、ローカル・アクセスの回数が、遠隔アクセスの回数を超えたかどうかの判断が行われる。この判断は、ブロック１２９のアドレス・レジスタに、問題のアドレスをロードし、そのアドレスに対する予め定めた時間内のローカル・アクセスおよび遠隔アクセスの数を、それぞれカウントするために、カウンタ１１３および１５３をセットすることによって行われる（ステップ２２０）。
【００２３】
システムに二つ以上のＡＭＣが存在する場合には、他のプロセッサによる問題の位置へのアクセスの回数は、それらのプロセッサに関連するＡＭＣに、問い合わせすることによって入手することができる。例えば、プロセッサ−メモリのペアが四組存在し、そのため、例えば、Ａ、Ｂ、Ｃ、Ｄという四つのＡＭＣが存在する場合には、ＡＭＣ  Ａは、あるローカル・メモリ位置に４０回のアクセスをすることができ、一方、ＡＭＣ  Ｂ−Ｄは、それぞれ、同じ位置に２０回のアクセスをすることができる。全部の遠隔アクセスの回数（３ｘ２０＝６０）は、ローカル・アクセスの数（４０）より多くなる。しかし、ＡＭＣ  Ｂ−Ｄを調査してみると、要求されたデータの中、最も効率的な位置に位置しているのは、ＡＭＣ  Ａのメモリのデータである。
【００２４】
ステップ２２２について説明すると、ローカル・アクセスの回数が、遠隔アクセスの回数を超えると、ページは始動しない（ステップ２２４）。しかし、遠隔アクセスの回数が、ローカル・アクセスの回数を超えると、そのページが含まれているメモリに最も近いプロセッサに、そのページを再配置するのが最も効率的なのか、要求を行っているプロセスを上記プロセッサに再配置したほうが最も効率的なのかについての判断が行われる（ステップ２２６）。プロセスを移動した方が好適であるのは、そのプロセスが要求しているメモリを移動した結果、そのページを始動した後で、（三台またはそれ以上のＡＭＣを持つシステムの）他のＡＭＣによる、遠隔アクセスの数が増大する場合である。そのプロセスの再配置が保証されない場合には、そのページの移動が行われ、システムのＭＭＵの更新が行われる（ステップ２２８）。ステップ２３０は、プロセスの移動を示す。
【００２５】
図４について説明すると、この図は、本発明のホット・ページ・モードでの、メモリ制御ロジックの動作のフローチャートである。ステップ２５２において、ホット・ページ・モードがスタートする。ホット・ページ制御レジスタ１３８のホット・ページ使用可能ビットがセットされると、範囲レジスタ１３６により指定された範囲内のすべてのアクセスをモニタするのに、ＳＲＡＭ１３４が使用され、アドレス・レジスタ１３７に指定されたアドレスからスタートとする。このブロックに対するヒストグラムも、またシステム・メモリに生成される。レジスタ１３８の自動索引ビットがセットされると、メモリ制御ロジックが、自動的に、インターバル・タイマ１３３により指定された時間の間、ＲＡＭ１３４全体にわたって、シーケンスがスタートする。
【００２６】
ステップ２５６において、指定のメモリ範囲内で、遠隔メモリ・アクセスが行われたかどうかについての判断が行われる。上記アクセスが行われた場合には、遠隔アクセスを起こさせたアドレスに対するヒストグラムへの入力が増大する（ステップ２５８）。ステップ２６０において、タイマ１３３が時間切れになったかどうかについての判断が行われる。時間切れになっている場合には、割込みが発生し（ステップ２６２）、指定の範囲内の任意のメモリ位置に対する遠隔アクセスの回数が、最大カウント・レジスタ１３２に記憶されている域値の回数を超えたかどうかについての判断が行われる（ステップ２６４）。任意のアドレスにおいて、域値を超えている場合には、流れは図３のステップ２１４へ進む。ステップ２１４において、遠隔アクセス回数の域値を超えた場合、ホット・ページ・ヒストグラムの各アドレス位置の評価が行われ、すでに説明したように、ヒストグラム・モードでの域値の数値を超えている位置に対して、コピーまたは再配置が行われる。
【００２７】
ステップ２６４において、プロセスの流れは、ステップ２６８へ進み、そこで調査対象の次のスタート・アドレスおよび範囲が、適当なレジスタにロードされ、この新しいブロックの評価が、ステップ２５４からスタートする。
【図面の簡単な説明】
【図１】本発明のページ位置制御手段を内蔵する、多重プロセッサ−多重メモリ・システムのブロック図である。
【図２】本発明のメモリ管理コントローラのブロック図である。
【図３】本発明のヒストグラム・モードの、メモリ制御ロジックの動作のフローチャートである。
【図４】本発明のホット・ページ・モードでの、メモリ制御ロジックのフローチャートである。
【図１】
0004230551.tif 000002
【図２】
0004230551.tif 000003
【図３】
0004230551.tif 000004
【図４】
0004230551.tif 000005