(57)【特許請求の範囲】
【請求項１】
それぞれがキャッシュタグを持つＣＰＵとメモリとを含むノードが複数個と，前記複数のノードを相互に接続するクロスバーを備えたシステムにおけるキャッシュタグ試験方式において，
前記システムに含まれるＣＰＵ数を検出するＣＰＵ数チェック部と，
試験の対象となるキャッシュタグを持つ自ＣＰＵ搭載のノードを識別するノードチェック部と，
前記ＣＰＵ数チェック部とノードチェック部とにより検出した試験対象ＣＰＵを搭載するノード以外の他ノードのメモリ領域として互いに異なるメモリ領域を指定して前記他ノードのメモリ領域を獲得するメモリ獲得部と，
前記メモリ獲得部により獲得した前記他ノードのメモリ領域に対し，期待値データに対応するデータを格納して，前記他ノードのメモリ領域に格納したデータと前記期待値データとを比較することにより試験を行うメモリ試験部と
を備えることを特徴とするキャッシュタグ試験方式。
【請求項２】
請求項１において，
前記複数の各ノードに備えたメモリのアドレス空間は，互いに異なる領域を構成し，
前記メモリ獲得部は，試験対象ＣＰＵを搭載する一つのノード以外の，指定された他のノードのメモリのアドレス空間を，試験対象の領域として，前記複数のノードを相互に接続するクロスバーを介して接続することを特徴とするキャッシュタグ試験方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＣＰＵ（またはシステムコントローラＳＣ）を備えたノードを複数備えたシステムにおいてキャッシュタグ（キャッシュタグテーブル）試験をＯＳ上から実施するキャッシュタグ試験方式に関する。
【背景技術】
【０００２】
ＣＰＵやＳＣ（またはシステムコントローラＳＣ）ではデータへのアクセスを高速に行うためにキャッシュメモリを含むキャッシュ機構を持っている。キャッシュメモリに格納されるデータは，データの格納先のメモリアドレスと共にキャッシュタグテーブルによって管理される。
【０００３】
図５はメモリアドレスとキャッシュタグテーブルの例を示す。この例では，ＣＰＵ（またはシステムコントローラＳＣ）のキャッシュタグテーブル内でメモリアドレスをビット範囲により管理する機能が分割されている。
【０００４】
図５のＡ．はキャッシュメモリアドレスであり，０ビット〜６３ビットの合計６４ビットで構成され，その中の０〜７ビットはキャッシュメモリのラインサイズを表し，８〜２０ビットはインデックス（キャッシュメモリのラインのアドレス），２１〜４９ビットはタグ（メモリアドレスの上位ビット），５０〜６３ビットは未使用のビットである。
【０００５】
図５のＢ．はキャッシュタグテーブルの構成例を示し，この例は１ＭＢ（メガバイト）キャッシュで，Ｎ−Ｗａｙ（Ｎウェイ）構成である。この例で示すように，キャッシュタグテーブルのタグは，メモリアドレスの上位ビットを使用しており，試験のためにタグを活性化する（タグのアドレスの何れかのビットを“１”に変化させる）ためにはメモリの上位アドレスを変化させる必要があるが，それを行うためには，大容量のメモリを獲得する必要がある。
【０００６】
図６は従来のシステム構成の例であり，図７は従来のメモリ資源獲得方法を示す。図６の例では，５０はノードを表し，この例のシステム構成では４つのノード０〜ノード３が設けられている。各ノード５０内の５０は複数（この例では２つ）設けられたＣＰＵ（またはシステムコントローラＳＣ，以下，ＣＰＵという）であり，５２は各ノードのメモリである。各ＣＰＵはそれぞれキャッシュタグテーブルを含むキャッシュメモリ（図示省略）を備えている。５３は各ノードの上位のＯＳ（オペレーティングシステム），５３ａはキャッシュタグ試験のプログラム，５３ｂは汎用メモリ獲得関数で，該当するＣＰＵ（ノード毎）が搭載されているノードのメモリ資源を優先的に獲得するための関数である。５４はクロスバーであり，複数のノード５０が互いに他のノードのメモリ５１にアクセスするための共通バスである。
【０００７】
図６に示すシステム構成では，キャッシュタグ（キャッシュタグテーブル）の試験を行う場合，キャッシュタグ試験のプログラム５３ａが実行される。キャッシュタグの試験においてメモリ資源を取得するには，上記図５に示したように，キャッシュタグのタグ部に対応する上位のメモリアドレスのビット範囲（図５の場合は２１〜４９ビット）について取得する必要があるが，この範囲はＣＰＵの種類，製造会社等によって異なる。但し，一般的にはメモリアドレスの上位ビットを使用して管理され，ＯＳ５３上から，キャッシュメモリのタグ機構を試験するために各タグアドレスを活性化するには，メモリアドレスの上位ビットを使用するようなメモリアドレスを獲得する必要がある。
【０００８】
しかし，ＯＳの仮想アドレス機構により，獲得されたメモリ資源に対する（仮想）アドレスが，物理アドレスにどのようにマッピングされているかが分からない。従って，システムに搭載されているメモリ資源をできるだけ多く獲得することで，結果的にメモリアドレスの上位ビットが割り当てられていることを期待し，それを前提として試験を行う。
【０００９】
図７に示す従来の資源獲得方法では，最初にシステムの空メモリ資源量をチェックし（図７のＳ１），汎用メモリ獲得関数（図６の５３ｂ）を使用してすべての空メモリ資源を取得し（同Ｓ２）, 次に取得されたメモリ資源を試験領域として試験（獲得した領域に既知のデータを書込んで，書込んだ値が既知のデータと一致するかをチェックする処理）を実行する（同Ｓ３）。
【００１０】
上記図７に示す方法では，キャッシュタグアドレスのビット範囲が決まっている場合，図７に示す資源獲得方法では，本来試験に不必要なメモリ資源まで獲得することもあり，無駄なメモリ資源を獲得してしまうという問題があった。
【００１１】
従来のＣＰＵ内のキャッシュメモリであるＴＡＧ−ＲＡＭ（タグ・ラム）の性能を試験する方法として，本願の出願人と同一出願人により提案された技術がある（特許文献１参照）。その方法は，実メモリが装着されない仮想メモリ空間を含めてＴＡＧ−ＲＡＭの性能を試験するため，メインメモリの実装物理アドレス空間を任意の物理アドレス空間に浮動アドレス変換により割り付け，メインメモリの実装物理アドレス空間と浮動アドレス変換により割り付けられたメインメモリの未実装物理アドレス空間に対して，ＴＡＧ−ＲＡＭが正しく書込まれたか否かを診断するよう構成し，これによりＴＡＧ−ＲＡＭに格納するアドレスデータの全パターンについて実メモリを全容量分装着せずに試験するものである。
【特許文献１】特開２００２−３６７３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記特許文献１の技術では，ＣＰＵにおいてキャッシュの制御機構としてメモリの全容量を搭載しない未実装物理アドレス空間に対して試験を行うものであり，複数のノードに割り付けられたメモリを備えたシステムにおいて上位のＯＳからの試験を実行するという目的に対応するものではなく，上記図７に示す資源獲得方法では，無駄なメモリ資源を獲得してしまうという問題があった。
【００１３】
本発明はＣＰＵまたはシステムコントローラ（ＳＣ）を備えたノードを複数備えたシステムにおいて無駄なメモリ資源の獲得をすることなく且つノードを指定してキャッシュタグ試験をＯＳ上から実施するキャッシュタグ試験方式を提供することを目的とする。
【課題を解決するための手段】
【００１４】
図１は本発明の原理構成を示す図である。図中，１はオペレーティングシステム（ＯＳ），１０はキャッシュタグ試験部，１０ａはシステム搭載のＣＰＵ数チェック部，１０ｂはＣＰＵ搭載のノードチェック部，１０ｃは対象ＣＰＵ搭載のノード以外の他ノードを指定してそのメモリ資源を獲得可能な他ノード指定のメモリ獲得部，１０ｄは獲得メモリ資源試験部，１１はシステムのハードウェア（またはプラットフォーム）を構成するｎ個のノードと各ノード内のＣＰＵ（またはシステムコントローラＳＣ）の関係が設定されたテーブル，１２はメモリアドレス空間であり，１２−０〜１２−（ｎ−１）は各ノード０〜ノード（ｎ−１）のアドレス空間である。
【００１５】
２はシステムのハードウェア構成（またはプラットフォーム）であり，２０−０〜２０−（ｎ−１）はｎ個から成る各ノード，２１−０〜２１−（ｎ−１）は各ノード内のメモリ，２２は各ノード内の複数のＣＰＵ（またはシステムコントローラＳＣ，以下，単にＣＰＵという），２３は各ＣＰＵまたはＳＣに内蔵のキャッシュタグ（キャッシュタグテーブルと同じ：ＴＡＧで表示）であり，その構成は上記図６のＢ．に例として示された構成と同様である。２４は複数のノード２０−０〜２０−（ｎ−１）を相互に接続して互いに他のノードのメモリにアクセスすることを可能とするクロスバー（共通バス）である。
【００１６】
本発明ではオペレーティングシステム（ＯＳ）１において，試験の対象となるＣＰＵ（タグメモリ）を指定してキャッシュタグ試験部１０を起動する。これにより，最初にシステム搭載のＣＰＵ数チェック部１０ａによりシステム搭載のＣＰＵ数をチェックする。このチェックはノード番号に対応したＣＰＵ番号を登録したテーブル１１を用いて行う。続いて，チェックにより得たＣＰＵの情報を用いて，同じテーブル１１を用いて試験対象となるＣＰＵを搭載するノードをノードチェック部１０ｂで識別する。更に，ノードチェック部１０ｂで識別したノード（試験対象となるＣＰＵを含むノード）の情報を用いて，試験対象となるＣＰＵ（自ＣＰＵ）が搭載されている自ノード以外の他ノードのノード番号をノード指定メモリ獲得関数に渡してメモリ資源を取得する。これにより試験の対象となるキャッシュタグを持つＣＰＵが設けられた自ノードに閉じたアクセスを行うのではなく，必ずクロスバー２４を経由したアクセスを行うようにして，メモリの上位のアドレスであるタグアドレスのビット範囲を変化させることができる。
【００１７】
各ノード２０−０〜２０−（ｎ−１）のメモリ２１−０〜２１−（ｎ−１）のメモリアドレス空間１２はＯＳ１上からはそれぞれ異なるアドレス空間１２−０〜１２−（ｎ−１）であり，上記１０ａ〜１０ｃによりＣＰＵに対応する他のノード番号を決定してノード指定メモリ獲得関数に指定することで，一つのノードに設けられたＣＰＵのアドレス空間（メモリ領域）を越えて，クロスバー２４を介して指定された他のノードのアドレス空間（メモリ領域）の領域を取得することができる。こうして，試験に必要な必要最小限のメモリ資源だけを獲得することが可能となる。
【００１８】
次に獲得したメモリ資源に対して，獲得メモリ資源試験部１０ｄにおいて試験を行う。この試験では，獲得したメモリ資源に対して期待値データを書込んで，書込んだデータと期待値データとを比較するものである。
【発明の効果】
【００１９】
本発明によればメモリ資源の無駄な獲得の必要がなくなり，次のような効果を奏することができる。
【００２０】
(1) 各ノードのＣＰＵ（またはシステムコントローラＳＣ）において未使用のメモリ資源を他のアプリケーションに割り当てることができる。
【００２１】
(2) アクセスするメモリ資源量が減ることで試験時間の短縮を実現できる。
【００２２】
(3) キャッシュタグ試験に効果があるノードを明示的に指定できるため，従来技術に比べて精度が向上する。
【発明を実施するための最良の形態】
【００２３】
図２は本発明が実施されるシステムの構成例である。図中，１はＯＳ，１ａは試験プログラム，１ｂはノード別のＣＰＵの固有情報との関係を示すテーブル，１ｃはノード指定メモリ獲得関数である。２は２つのノードを備えたハードウェア，２０−０，２０−１はノード０，ノード１，２１−０，２１−１はノード０とノード１のメモリ，２２−０，２２−１はノード０内のＣＰＵ，２２−２はノード０内のシステムコントローラ（ＳＣ），２２−３，２２−４はノード１内のＣＰＵ，２２−５はノード１内のシステムコントローラ（ＳＣ）である。２３−０〜２３−５は各ＣＰＵまたはシステムコントローラ（ＳＣ）に内蔵されたキャッシュタグ，２４はノード２０−０〜２０−１を相互に接続して互いに他のノードにアクセスするクロスバー（共通バス）である。２５はキャッシュタグにアクセスするためのキャッシュメモリアドレスの構成例であり，この例に示すアドレス構成は，上記図６のＡ．と同じであり，０〜７ビットはラインサイズ，８〜２０ビットはキャッシュメモリのラインアドレスであるインデックス，２１〜４９ビットはメモリの上位ビットを表すタグ，５０〜６３ビットは未使用のビットである。
【００２４】
図３は本発明による試験プログラムのフローチャートであり，図４はテーブル１ｂの構成例を示し，この例は図２に示す構成に対応する。図３について概説すると，ＯＳ１において試験プログラム１ａを開始すると，システムに搭載されているＣＰＵ（ＳＣを含む）数をチェックする（図３のＳ１）。図２のシステムの場合，図４のテーブルを参照することで，ＣＰＵ数はノード０とノード１の両方で合計６個であることが分かる。次に試験対象となるキャッシュタグ（図２の２３−０〜２３−５の中の一つ）を持つＣＰＵが搭載されているノードをチェックし（図３のＳ２），自ＣＰＵが搭載されている自ノード以外の他ノードのノード番号をノード指定メモリ獲得関数に渡してメモリ資源（試験領域）を取得する（同Ｓ３）。なお，この場合，初期動作設定で汎用性を考慮して，試験対象となるタグメモリを含むＣＰＵが，自分のノードのメモリ領域を使用しないように他のノードからメモリを取得するように設定されているものとする。
【００２５】
こうして取得した試験領域について以下のような試験が実行される。
【００２６】
まず，期待値格納領域を獲得して期待値データを書き込む（図３のＳ４）。なお，期待値格納領域は，試験用のデータ（期待値データ）を書き込むためのメモリ領域であり，汎用メモリ獲得関数（またはノード指定メモリ獲得関数）により獲得する。次に試験領域に期待値格納領域から読み込んだ期待値データを書き込み（図３のＳ５），期待値格納領域のデータと試験領域のデータを比較し（同Ｓ６），データが不一致であるか判別し（同Ｓ７），ノー（一致）の場合は試験正常終了とし（同Ｓ８），イエス（不一致）の場合は試験異常終了とする（同Ｓ９）。
【図面の簡単な説明】
【００２７】
【図１】本発明の原理構成を示す図である。
【図２】本発明が実施されるシステムの構成を示す図である。
【図３】本発明による試験プログラムのフローチャートを示す図である。
【図４】テーブルの構成例を示す図である。
【図５】メモリアドレスとキャッシュタグテーブルの構成例を示す図である。
【図６】従来のシステム構成を示す図である。
【図７】従来のメモリ資源獲得方法を示す図である。
【符号の説明】
【００２８】
１        オペレーティングシステム（ＯＳ）
１０      キャッシュタグ試験部
１０ａ    システム搭載のＣＰＵ数チェック部
１０ｂ    ＣＰＵ搭載のノードチェック部
１０ｃ    対象ＣＰＵ搭載以外の他ノード指定のメモリ獲得部
１０ｄ    獲得メモリ資源試験部
１１      テーブル
１２      メモリアドレス空間
１２−０〜１２−（ｎ−１）  ノード０〜ノード（ｎ−１）のアドレス空間
２        ハードウェア構成（プラットフォーム）
２０−０〜２０−（ｎ−１）  ノード０〜ノード（ｎ−１）
２１−０〜２１−（ｎ−１）  各ノード内のメモリ
２２      各ノード内の複数のＣＰＵ（またはシステムコントローラＳＣ）
２３      各ＣＰＵまたはＳＣ内のキャッシュタグ（またはタグテーブル）
２４      クロスバー
【図１】
0005088042.tif 000002
【図２】
0005088042.tif 000003
【図３】
0005088042.tif 000004
【図４】
0005088042.tif 000005
【図５】
0005088042.tif 000006
【図６】
0005088042.tif 000007
【図７】
0005088042.tif 000008