特許第5833972号(P5833972)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧
<>
  • 特許5833972-検証装置及び検証方法 図000002
  • 特許5833972-検証装置及び検証方法 図000003
  • 特許5833972-検証装置及び検証方法 図000004
  • 特許5833972-検証装置及び検証方法 図000005
  • 特許5833972-検証装置及び検証方法 図000006
  • 特許5833972-検証装置及び検証方法 図000007
  • 特許5833972-検証装置及び検証方法 図000008
  • 特許5833972-検証装置及び検証方法 図000009
  • 特許5833972-検証装置及び検証方法 図000010
  • 特許5833972-検証装置及び検証方法 図000011
  • 特許5833972-検証装置及び検証方法 図000012
  • 特許5833972-検証装置及び検証方法 図000013
  • 特許5833972-検証装置及び検証方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5833972
(24)【登録日】2015年11月6日
(45)【発行日】2015年12月16日
(54)【発明の名称】検証装置及び検証方法
(51)【国際特許分類】
   G06F 11/22 20060101AFI20151126BHJP
   G06F 12/16 20060101ALI20151126BHJP
【FI】
   G06F11/22 330
   G06F12/16 330A
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2012-117358(P2012-117358)
(22)【出願日】2012年5月23日
(65)【公開番号】特開2013-246458(P2013-246458A)
(43)【公開日】2013年12月9日
【審査請求日】2014年6月27日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】100093861
【弁理士】
【氏名又は名称】大賀 眞司
(74)【代理人】
【識別番号】100129218
【弁理士】
【氏名又は名称】百本 宏之
(72)【発明者】
【氏名】畑中 圭介
(72)【発明者】
【氏名】小林 実
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開2011−128868(JP,A)
【文献】 特開2008−191949(JP,A)
【文献】 特開2011−180725(JP,A)
【文献】 米国特許第05768585(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
1つ以上のメモリ基板からなるメモリ装置の検証処理を実行する検証装置であって、
所定のメモリ領域を提供する前記メモリ装置と、
前記メモリ装置の動作試験を実行する制御部と、
を備え、
前記制御部は、
1つまたは複数の試験プロセスにより前記メモリ装置のメモリ領域を所定の容量に定めて、そのメモリ領域に対して所定時間のデータの書き込み/読み取り処理を含む動作試験を実行し、前記試験プロセスによる前記動作試験の進行状況に応じて、前記試験プロセスにより実行される前記メモリ領域の試験範囲の容量の補正値を算出する
ことを特徴とする、検証装置。
【請求項2】
前記制御部は、
前記メモリ装置の所定範囲のメモリ領域を前記試験プロセスの試験範囲の容量として設定し、
前記メモリ領域に対する前記動作試験の実行時間と、前記動作試験でアクセスしたメモリ容量と、前記設定された前記試験プロセスの試験範囲の容量とから、前記試験プロセスにより動作試験を行った場合の前記試験範囲の試験完了までの完了予測時間を算出し、
前記試験プロセスの完了予測時間の平均値を動作試験完了目標時間とし、
前記試験プロセスごとに前記動作試験完了目標時間内で実行可能な前記メモリ領域の容量を算出し、
前記試験プロセスごとに前記動作試験完了目標時間内で実行可能な前記メモリ領域の容量と、前記試験プロセスに予め設定された前記試験プロセスの試験範囲の容量との差分に応じて、前記試験プロセスにより実行される前記メモリ領域の試験範囲の容量の補正値を算出する
ことを特徴とする、請求項1に記載の検証装置。
【請求項3】
前記制御部は、
前記算出された前記メモリ領域の試験範囲の容量の補正値をもとに、前記試験プロセス
の試験範囲の容量を補正して、前記試験プロセスに前記補正された試験範囲の容量分の前記メモリ領域の動作試験を実行させる
ことを特徴とする、請求項1に記載の検証装置。
【請求項4】
前記制御部は、複数の演算処理装置から構成され、
前記複数の演算処理装置と前記メモリ装置とは、メモリ装置が含む複数のメモリ毎に特定の演算処理装置にメモリバスで直結されて、
前記演算処理装置に内蔵された複数のコアがそれぞれ並列に演算処理を実行する
ことを特徴とする、請求項1に記載の検証装置。
【請求項5】
前記試験プロセスはオペレーティングシステム上で起動され、
前記試験プロセスは、試験範囲の容量分の前記メモリ領域の確保をオペレーティングシステムに実行するよう依頼し、かつ、確保した容量分の前記メモリ領域について書き込み/読み取り処理を実行する
ことを特徴とする、請求項1に記載の検証装置。
【請求項6】
1つ以上のメモリ基板からなるメモリ装置の検証処理を実行する検証装置における検証方法であって、
前記検証装置は、所定範囲のメモリ領域を提供する前記メモリ装置と、前記メモリ装置の動作試験を実行する制御部と、を備え、
前記制御部が、1つまたは複数の試験プロセスにより前記メモリ装置のメモリ領域を所定の容量に定めて、そのメモリ領域に対して所定時間のデータの書き込み/読み取り処理を含む動作試験を実行させる第1のステップと、
前記制御部が、前記試験プロセスによる前記動作試験の進行状況に応じて、前記試験プロセスにより実行される前記メモリ領域の試験範囲の容量の補正値を算出する第2のステップと
を含むことを特徴とする、検証方法。
【請求項7】
前記制御部が、前記第1のステップにおいて、
前記メモリ装置の所定範囲のメモリ領域を前記試験プロセスの試験範囲の容量として設定し、
前記制御部が、前記第2のステップにおいて、
前記メモリ領域に対する前記動作試験の実行時間と、前記動作試験でアクセスしたメモリ容量と、前記設定された前記試験プロセスの試験範囲の容量とから、前記試験プロセスにより動作試験を行った場合の前記試験範囲の試験完了までの完了予測時間を算出し、
前記試験プロセスの完了予測時間の平均値を動作試験完了目標時間とし、
前記試験プロセスごとに前記動作試験完了目標時間内で実行可能な前記メモリ領域の容量を算出し、
前記試験プロセスごとに前記動作試験完了目標時間内で実行可能な前記メモリ領域の容量と、前記試験プロセスに予め設定された前記試験プロセスの試験範囲の容量との差分に応じて、前記試験プロセスにより実行される前記メモリ領域の試験範囲の容量の補正値を算出する
ことを特徴とする、請求項6に記載の検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検証装置及び検証方法に関し、メモリ装置を検証する検証装置及び検証方法に適用して好適なるものである。
【背景技術】
【0002】
一般に、コンピュータシステムは、1枚以上の基板からなる複数のメモリ装置を搭載した計算機と当該計算機を管理するコンソールとから構成される。このようなコンピュータシステムにおけるメモリ装置の動作試験を行う場合、作業者は、検証プログラムを計算機にロードして起動させる。起動された検証プログラムは、計算機に搭載されたメモリ装置を認識し、コンソールを介して入力される開始指示に基づいてメモリ装置の動作試験を実行する。
【0003】
上記した検証プログラムがオペレーティングシステム(以降、OSと略称して説明する場合もある。)上で動作する場合には、検証対象となるメモリの確保をOSに依頼することによりメモリ装置の検証を行う。具体的に、検証プログラムは、OSに対してメモリ取得要求を行ってメモリを確保し、確保したメモリの全領域にメモリアクセスする。そして、メモリの取得ができなくなるまでメモリの確保及びメモリアクセスを行うことにより、管理領域等を除く全領域へのメモリアクセスを完了したこととしている。最後に、OSに対してメモリの解放を要求して、確保したメモリのすべてを解放する。以上がOS上で動作する検証プログラムの動作である。
【0004】
ところで近年、メモリ装置の大容量化が進んだ結果、メモリテストの実行時間が、周辺装置のテスト時間に比して無視できないほどの長時間を要するようになってきている。メモリ容量が最大64GB程度であれば、周辺装置の検証時間よりも短時間で終了していたため、メモリ装置の検証時間は無視できる程度のものであったが、近年、メモリ容量が1TBを超えるようになりメモリ装置の検証時間が無視できないほどの長時間を要するようになってきている。
【0005】
そこで、近年のプロセッサに標準で搭載されているマルチコアを効果的に利用するマルチプロセスの技術を用いて、複数のプロセスで同時に各種装置の動作試験を実行することが行われている(例えば、特許文献1及び特許文献2)。複数の中央処理装置を搭載したコンピュータシステムでは、中央処理装置とメモリ装置とが専用のメモリバスで直結している構成が主流となっている。また、各中央処理装置にはコアが複数内蔵されており、これらのコアはそれぞれ並列して演算等の処理を行うことができる。このようなコンピュータシステムにおいて、メモリ装置の試験を行う場合には、複数のプロセスで試験を行うことにより、各中央処理装置内のコアでプロセスが分散して実行される。これにより、各中央処理装置とメモリ装置との間で並列にデータ転送が行われ、転送速度が上がる。
【0006】
例えば、特許文献1では、一定時間あたりのスループットをもとに、プロセス数を増減することにより転送速度をさらに向上させる技術が開示されている。また、特許文献2では、負荷の軽いプロセッサを特定し、そのプロセッサに負荷を分散することにより転送速度をさらに向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2011−128868号公報
【特許文献2】特開2008−191949号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、上記した特許文献1または特許文献2における技術では、メモリ装置の大容量化に伴う動作試験時間の増大化に対しては不十分であった。すなわち、中央処理装置とメモリ装置とが専用のメモリバスで直結しているコンピュータシステムにおいては、一定数以上のプロセスを増やしてもプロセス間で帯域幅が分割されるのみであるため、特許文献1の技術を用いてもスループットは向上しない。また、OS上で動作するアプリケーションでは、検証プログラムを実行するプロセッサを特定してプロセスを生成することができないため、特許文献2の技術を用いてプロセスを再配置しようとするとプロセスの削除や生成に伴うオーバーヘッドが大きくなり実行時間の短縮効果は得られないという問題があった。
【0009】
本発明は以上の点を考慮してなされたもので、試験プロセス数を増減させずにメモリ装置の動作試験の処理時間を短縮させることが可能な検証装置及び検証方法を提案しようとするものである。
【課題を解決するための手段】
【0010】
かかる課題を解決するために本発明においては、1つ以上のメモリ基板からなるメモリ装置の検証処理を実行する検証装置であって、所定のメモリ領域を提供する前記メモリ装置と、前記メモリ装置の動作試験を実行する制御部と、を備え、前記制御部は、 1つまたは複数の試験プロセスにより前記メモリ装置のメモリ領域を所定の容量に定めて、そのメモリ領域に対して所定時間のデータの書き込み/読み取り処理を含む動作試験を実行し、前記試験プロセスによる前記動作試験の進行状況に応じて、前記試験プロセスにより実行される前記メモリ領域の試験範囲の容量の補正値を算出することを特徴とする、検証装置が提供される。
【0011】
かかる構成によれば、試験プロセス数を増減させずにメモリ装置の動作試験の処理時間を短縮させて、大容量のメモリ装置の動作試験を効率的に行うことができる。
【発明の効果】
【0012】
本発明によれば、大容量のメモリ装置の動作試験を効率的に行うことができる。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図である。
図2】同実施形態にかかるメモリ装置を説明する概念図である。
図3A】同実施形態にかかる従来のメモリアクセスについて説明する概念図である。
図3B】同実施形態にかかる従来のメモリアクセスについて説明する概念図である。
図3C】同実施形態にかかる従来のメモリアクセスについて説明する概念図である。
図4】同実施形態にかかる計算機の機能構成を示すブロック図である。
図5】同実施形態にかかるメモリ装置の検証処理の詳細を示すタイミングチャートである。
図6】同実施形態にかかるメモリのアロケーションテーブルについて説明する概念図である。
図7A】同実施形態にかかる進捗テーブルの一例を示す図表である。
図7B】同実施形態にかかる進捗テーブルの一例を示す図表である。
図8A】同実施形態にかかる各プロセスの動作状況を説明する概念図である。
図8B】同実施形態にかかる各プロセスの動作状況を説明する概念図である。
図8C】同実施形態にかかる各プロセスの動作状況を説明する概念図である。
【発明を実施するための形態】
【0014】
以下図面について、本発明の一実施の形態を詳述する。
【0015】
(1)コンピュータシステムの構成
まず、本実施の形態にかかるコンピュータシステムの構成について説明する。図1は、コンピュータシステム1の構成を示すブロック図である。図1に示すように、コンピュータシステム1は、計算機100と管理者が各種指示を入力するコンソール105とから構成される。
【0016】
計算機100は、CPU101、メモリ装置102及びストレージ装置104などを備える。
【0017】
CPU101は、演算処理装置および制御装置として機能し、各種プログラムに従って計算機100内の動作全般を制御する。また、CPU101は、マイクロプロセッサであってもよい。CPU101は、本発明の制御部として機能し、実際には、CPU101が後述する検証プログラムを起動させることによって検証処理が実行される。
【0018】
メモリ装置102は、1枚以上の基板からなり、複数のメモリ103a、103b、103c、103d(以降、メモリ103と称して説明する場合もある。)を含む。メモリ103は、例えば、ROMやRAMなどである。ROMは、CPU101が使用するプログラムや演算パラメータ等を記憶する。RAMは、CPU101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバスなどから構成されるホストバスにより相互に接続されている。
【0019】
ストレージ装置104は、本実施形態にかかる計算機100の記憶部の一例として構成されたデータ格納用の装置であり、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。ストレージ装置104は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置104は、ハードディスクを駆動し、CPU101が実行するプログラムや各種データを格納する。
【0020】
コンソール105は、入力装置または出力装置から構成される。入力装置は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU101に出力する入力制御回路などから構成されている。また、出力装置は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Display)装置およびランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置などで構成される。
【0021】
コンピュータシステム1においてメモリ装置の動作試験を行う場合には、作業者が、動作試験の指示として、コンソール105を介してメモリテスト開始指示を入力するとともに、検証プログラムを計算機100にロードして起動させる。計算機100において起動された検証プログラムは、試験対象のメモリ装置102を検索してコンソール105の表示画面に一覧表示させる。作業者によりコンソール105を介して試験対象のメモリ103が選択され、試験開始の指示が入力されると、検証プログラムは、選択されたメモリ103に対して動作試験を行う。このとき、コンソール105を介して入力される作業者からの指示は、試験対象となるメモリ装置の選択指示である。試験対象のメモリ容量は、特別の指示がない限り、メモリ装置の全メモリ容量である。そして、検証プログラムは、動作試験の対象となるメモリ容量と予め取得したコア数から、動作試験を実行するプロセス数と、各プロセスで実行するテスト容量を算出する。
【0022】
図2は、本実施形態にかかるメモリ装置102を説明する概念図である。本実施形態にかかるメモリ装置102は、図2に示すように、CPU101とメモリ103とが専用のメモリバス106で直結されている。また、CPU101には、複数のコア107が内蔵されており、これらのコアはそれぞれ並列に演算等の処理を実行することができる。このような計算機100においてメモリ装置102の試験を実行する場合には、OSにより各CPU101内のコアにプロセスが分散して実行されることにより、各CPU101とメモリ103との間で並列にデータ転送が行われ、データ転送速度を上げることが可能となる。
【0023】
ここで、図3A図3Cを参照して、従来技術により複数のプロセスでメモリアクセスを行った場合について説明する。図3A図3Cは、従来のメモリアクセスについて説明する概念図である。複数のプロセスでメモリアクセスを行う場合、初めに、テスト対象のメモリ容量をプロセス数で等分した量を、1つのプロセスがアクセスするメモリ容量とする。図3A図3Cは、所定のメモリ容量を8つのプロセス数で等分したイメージを示す図である。
【0024】
従来技術において、8つのプロセスで動作試験が進められると、各プロセスにOSが割り当てたプロセッサの処理状況により、プロセス毎に処理速度の差が生じる。図3Bは、各プロセスで処理速度の差が生じたイメージを示す図である。このようなプロセッサの処理状況による処理速度の差は、メモリが大容量になるほど顕著となる。そして、すべてのプロセスが、割り当てられた全領域に対してメモリアクセスを行って動作試験が完了する。図3Cは、各プロセッサの動作試験がすべて完了したイメージを示す図である。
【0025】
ここで、CPU101とメモリ装置102との間のデータ転送速度を上げるために、動作試験を実行するプロセス数を増やしたり、負荷の軽いプロセッサを特定して、そのプロセッサに負荷を分散したりすることが考えられる。しかし、図2に示すように、CPU101とメモリ103とが専用のメモリバスで直結している計算機100においては、一定数以上プロセスを増やしても、プロセス間で帯域幅が分割されるのみで、スループットの向上には繋がらない。また、本実施形態における検証プログラムは、OS上で動作するため、プロセスが実行するプロセッサを特定してプロセスを生成することができない。このため、負荷の軽いプロセッサにプロセスを実行させるためには、一旦プロセスを削除して再度プロセスを生成しなければならない。このようなプロセスの再配置は、プロセス削除及び生成に伴うオーバーヘッドが大きく、動作試験の実行時間の短縮効果は少ない。そこで、本実施の形態では、プロセス数の数を増減させずに、プロセスの待機時間を減少させることによりメモリ装置の動作試験時間の短縮を図ることを目的としている。
【0026】
(2)計算機の機能構成
次に、計算機100の機能構成について説明する。図4は、計算機100の機能構成を示すブロック図である。図4に示すように、計算機100は、OS(図示せず)上で動作する検証プログラム110を備える。検証プログラム110は、実行時間予測部111、プロセス進捗管理部112及び実行容量補正部113から構成される。
【0027】
実行時間予測部111は、試験対象となるメモリ装置102の容量を取得して、メモリ装置102の動作試験の実行時間を予測する機能を有する。具体的に、実行時間予測部111は、CPU101の構成情報を取得して、CPU101全体のコア数を求めて、動作試験を実行するプロセス数及び、1つのプロセスがアクセスするメモリ装置102の容量を決定する。そして、実行時間予測部111は、決定したプロセスを生成して、各プロセスによりメモリアクセスを実行する。実行時間予測部111は、一定容量のメモリアクセスを実行した後、プロセス進捗管理部112に、一定容量のメモリアクセスを終了したことを通知する。
【0028】
プロセス進捗管理部112は、実行時間予測部111から通知されたメモリ装置102の動作試験の実行量と実行時間から、各プロセスの動作試験対象のメモリ容量を計算する。具体的に、プロセス進捗管理部112は、メモリ装置102の動作試験の予定終了時間と全試験プロセスの予定終了時間の平均値を算出し、平均処理時間で処理できるテスト容量と最初に配分されたテスト容量との差分を求める。そして、最初に配分されたテスト容量よりも処理の進んでいないプロセスについて、当該プロセスが予定終了時間で処理を終了させるためのテスト容量を算出する。また、動作試験の実行時間の早いプロセスに対して、動作試験処理が遅延しているプロセスから減算したテスト容量分をもとのテスト容量に加算する。
【0029】
実行容量補正部113は、各プロセスに対して、プロセス進捗管理部112により求められたテスト容量分の動作試験を実行するよう指示する。実行容量補正部113から動作試験の実行を指示されたプロセスは、新たなメモリ容量分を終了するまで動作試験を実行する。
【0030】
このように、本実施の形態では、プロセス数の数を増減させず、また、各プロセスに割り当てられたプロセッサを再配置させることなく、プロセスの待機時間を減少させ、処理時間を短縮させて効率的にメモリ装置102の全領域の試験を実行することができる。
【0031】
(3)計算機の動作の詳細
次に、計算機100におけるメモリ装置102の検証処理の詳細について説明する。図5は、メモリ装置102の検証処理の詳細を示すタイミングチャートである。コンソール105を介して作業者から検証開始指示が入力されて検証プログラム110が起動すると、検証プログラム110本体のプロセスがOS上のプロセスとして処理を開始する。
【0032】
まず、検証プログラム110は、OS116に空きメモリ容量の取得を要求する(S101)。ステップS101において検証プログラム110から空きメモリ容量の取得を要求されたOS116は、空きメモリ容量を検出して検証プログラム110に通知する(S102)。
【0033】
そして、検証プログラム110は、予め取得していたCPU101のコア107の数と、ステップS102において取得した空きメモリ容量とから以下の数式(1)及び数式(2)により動作試験を実行するプロセス数(試験プロセス数)及び1つの試験プロセスにおいて実行するメモリのテスト容量をそれぞれ決定する。
【0034】
試験プロセス数=コア数 ・・・(1)
【0035】
試験プロセスあたりのテスト容量=試験対象メモリ容量/試験プロセス数・・・(2)
【0036】
そして、検証プログラム110は、Fork命令を発行して(S103)、数式(2)により算出した試験プロセス数分の試験プロセス115を生成する(S104)。
【0037】
ステップS104において生成された試験プロセス115は、Malloc命令を発行して(S105)、OS116の制御のもと、一定の小容量のメモリを確保する(S106)。OS116は、OS116が管理しているメモリ103の空き領域の一部を試験プロセス115に割り当てて、割り当てた領域の情報をアロケーションテーブルに登録する。
【0038】
ここで、OS116によって割り当てられるメモリ103について説明する。図6は、メモリ103のアロケーションテーブルについて説明する概念図である。図6に示すように、メモリ103には、アロケーションテーブル121及びステップS106において確保された領域122が含まれる。例えば、ステップS106において、領域122が確保されると、領域122の開始位置「S1」及び終了位置「E1」がアロケーションテーブル121に登録される。このように、アロケーションテーブル121には、試験プロセス115によるMalloc命令によって確保された領域の開始位置と終了位置の情報((S1,E1)、(S2,E2)、(S3,E3))が登録される。アロケーションテーブル121は、OSの種類により異なるが、一般的には割り当てられたメモリ103の仮想開始アドレスと大きさや、実際に割り当てた物理アドレスと割り当てた領域の範囲などが登録される。
【0039】
図5に戻り、試験プロセス115は、ステップS106において確保されたメモリ103に対して、Write/Read命令を発行して(S107)、書込み試験及び読み込み試験を実行する(S108)。試験プロセス115は、ステップS108において、ステップS106で確保されたメモリ103のすべての書込み試験及び読み込み試験が終了した後、さらに、メモリ確保(S110)及び確保したメモリ103への書き込み試験及び読み込み試験を繰り返し実行する(S112)。
【0040】
試験プロセス115は、メモリ確保および確保したメモリ103への書き込み試験及び読み込み試験を一定時間繰り返す。例えば、30秒程度ステップS106のメモリ確保からステップS108の書き込み試験及び読み込み試験を繰り返した後、本体プロセスである検証プログラム110に試験結果を報告する(S113)。ステップS113において、試験プロセス115は、メモリ103の試験結果を報告するとともに、試験を行ったメモリ容量の情報も報告する。
【0041】
ステップS113において、試験プロセス115から試験結果を報告された検証プログラム110は、以下の数式(3)により、試験プロセス115の動作試験の処理時間を算出する。
【0042】
試験プロセスの処理時間=試験プロセスから報告を受けた時刻−テスト開始時刻・・・(3)
【0043】
また、数式(3)により算出した処理時間から、数式(4)により、この試験プロセスで動作試験を進めた場合の動作試験の処理完了予定時間を算出する。
【0044】
試験プロセスの処理完了予定時間=試験プロセスのテスト残容量/(試験プロセスのテスト済容量/試験プロセスの処理時間)・・・(4)
【0045】
検証プログラム110は、上記数式(3)及び数式(4)の計算をすべての試験プロセス115に対して実行し、後述する進捗テーブル500に記録する。そして、各試験プロセス115において予測した処理完了予定時間の平均値を算出し、算出した平均処理時間内に動作試験を完了することを目標とする。すなわち、平均処理時間が動作試験の完了目標時間となる。そして、検証プログラム110は、数式(5)により、各試験プロセス115において、完了目標時間内でテスト可能なテスト容量を算出する。
【0046】
完了目標時間でテスト可能な容量=完了目標時間×(試験プロセスのテスト済容量)/試験プロセスの処理時間・・・(5)
【0047】
さらに、検証プログラム110は、数式(6)により、当初設定された試験プロセス115のテスト容量と、完了目標時間内でテスト可能なテスト容量との差分を算出する。
【0048】
試験プロセスのテスト容量との差分=試験プロセスのテスト容量−完了目標時間内でテスト可能な容量・・・(6)
【0049】
数式(6)により算出された試験プロセスのテスト容量との差分値が、完了目標時間で試験を完了させるための補正対象の値となる。この補正対象の値を以下、補正値と称して説明する。補正値及び上記の算出結果は、進捗テーブル500に記録される。
【0050】
ここで、図7A図7B及び図8A図8Cを参照して、動作試験の補正処理について説明する。図7Aは、テスト容量補正前の進捗テーブル500Aを示し、図7Bは、テスト容量補正後の進捗テーブル500Bを示す。また、図8A図8Cは、メモリ103の動作試験を実行する各プロセスの動作状況を説明する概念図である。
【0051】
図7Aに示すように、進捗テーブル500は、プロセス欄501、テスト容量欄502、処理時間欄503、処理済容量欄504、完了予定時間欄505、残容量欄506、平均完了予定時間で処理可能な容量欄507及び補正値欄508から構成される。
【0052】
プロセス欄501には、生成されたプロセスを識別する情報が格納される。テスト容量欄502には、各プロセスに最初に割り振られたテスト容量の値が格納される。処理時間欄503には、動作試験を実施した時間が格納される。処理済容量欄504には、動作試験が完了したテスト容量の値が格納される。完了予定時間欄505には、上記した数式(4)により算出された動作試験処理の完了予定時間が格納される。残容量欄506には、テスト容量から処理済み容量を減算した動作試験対象の残りのテスト容量の値が格納される。平均完了予定時間で処理可能な容量欄507には、上記した数式(5)により算出された完了目標時間でテスト可能な容量の値が格納される。補正値欄508には、上記した数式(6)により算出された試験プロセスのテスト容量と完了目標時間内でテスト可能な容量との差分値が格納される。
【0053】
8つのプロセスの平均完了予定時間は、完了予定時間欄505のすべての値を加算して、該加算値をプロセス数で減算した時間(135)である。
テスト容量補正前の平均完了予定時間=(60+120+120+240+60+120+240+120)/8=135
【0054】
図7Aでは、例えば、プロセス1及びプロセス5の補正値は「−80」であり、動作試験の処理が平均より進んでいることを示す。また、プロセス4及びプロセス7の補正値は「28」であり、動作試験の処理が平均より遅延していることを示す。例えば、各プロセスの動作状況は、図8Aに示すように、プロセス1及びプロセス5が実行したテスト容量が多く、プロセス4及びプロセス7が実行したテスト容量が少ない。そこで、図8Bに示すように、処理の進んでいないプロセス4及びプロセス7のテスト容量を、処理の進んでいるプロセス1及びプロセス7のテスト容量に加算する。処理の進んでいないプロセス4及びプロセス7のテスト容量を、処理の進んでいるプロセス1及びプロセス7のテスト容量に加算した後の各プロセスのテスト容量を図8Cに示す。このように、プロセス4及びプロセス7に割り当てられているテスト容量を、プロセス1及びプロセス5のテスト容量に加算することにより、8つのプロセスの処理速度を均一化して、メモリ装置102の動作試験全体の処理時間を短縮することができる。
【0055】
また、図7Bは、試験プロセス115間の動作試験の進捗の差を補正した後、所定時間経過後の進捗テーブル500Bを示す。図7Bでは、例えば、プロセス2〜4、プロセス6〜8の補正値は「3」または「5」であり動作試験の処理が平均より遅延していることを示す。しかし、平均値と比して「3」または「5」程度のずれであれば、各プロセスに割り当てられたテスト容量を変更することなく動作試験を続行させてもよい。図7Bのテスト容量補正前の平均完了予定時間は、(86+120+120+135+86+120+120+135)/8=115となり、補正前の平均完了時間135よりプロセス全体の処理時間が短縮していることがわかる。
【0056】
図5に戻り、検証プログラム110は、ステップS113の試験プロセス115からの動作試験の状況の結果報告を受けて、上記したように、補正値と補正対象プロセスとを決定する(S114)。
【0057】
そして、検証プログラム110は、ステップS114において決定した補正対象の試験プロセス115に対して、割込み処理により試験容量の補正値を転送する(S115)。ステップS115において、検証プログラム110から試験容量の補正値を転送された試験プロセス115は、補正後のテスト容量に基づいて、メモリの確保(S117)及びメモリへの書き込み試験及び読み込み試験(S119)を実行する。
【0058】
試験プロセス115が、割り振られたテスト容量に対する動作試験をすべて完了すると、本体プロセスである検証プログラム110に動作試験を終了したことを示す終了報告を行う(S120)。ステップS120において、検証プログラム110に終了報告をした試験プロセス115は、検証プログラム110からの割込み処理がなされるまでスリープする。
【0059】
検証プログラム110は、すべての試験プロセス115からの終了報告がなされた時点で、すべての試験プロセス115に対して割込みを行う(S121)。試験プロセス115は、ステップS121において検証プログラム110からの割込みを受けて、OSに対してメモリ解放を要求するFree命令を発行する(S122)。OS116は、ステップS122における試験プロセス115からのメモリ解放要求に応じて、確保したすべてのメモリ103の解放と、使用したアロケーションテーブルの削除を行う(S123)。
【0060】
ステップS123において、メモリが解放されたことをOS116から通知された試験プロセス115は、プロセスを終了する(S124)。ステップS124において、試験プロセス115は、プロセスを終了する際に、動作試験を行ったテスト容量を検証プログラム110に報告する。
【0061】
検証プログラム110は、ステップS124においてすべての試験プロセス115が終了した後に、試験プロセス115の動作試験結果を集計して、検証処理を終了する(S125)。
【0062】
(4)本実施の形態の効果
以上のように、本実施の形態によれば、検証プログラム110は、試験対象のメモリ装置102の容量を取得し、CPU101の構成情報を取得してCPU101のコア数を取得する。そして、動作試験を実行する試験プロセス115の数と、1つの試験プロセス115がアクセスするテスト容量を決定して、決定した数分の試験プロセスを生成する。各試験プロセス115は、設定されたメモリ容量分についてメモリアクセスを実行して、一定容量のメモリアクセスが終了した後に、動作試験結果及び動作試験処理時間を検証プログラム110に報告する。検証プログラム110は、各試験プロセス115における動作試験の実行容量と実行時間とから、動作試験の予定終了時間とすべての動作試験の予定終了時間の平均値を算出する。そして、その平均処理時間で処理可能なテスト容量と、最初に各試験プロセス115に設定されたテスト容量との差分を算出する。検証プログラム110は、他の試験プロセスより処理が進んでいない試験プロセスに割り当てられているテスト容量を、動作試験の実行時間の早い試験プロセスのテスト容量に加える。これにより、試験プロセス115の処理時間の偏りをなくし、試験プロセス115の待機時間を減少させて、メモリ装置102の動作試験全体の処理時間を短縮することが可能となる。
【0063】
(5)他の実施の形態
例えば、本明細書の計算機100の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、計算機100の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。なお、計算機100は、本発明の検証装置としての機能を有する。
【0064】
また、計算機100などに内蔵されるCPU、ROMおよびRAMなどのハードウェアを、上述した計算機100の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【0065】
また、上述の実施形態においては、計算機100に格納されている各種プログラムに基づいて、計算機100のCPU101が本発明の各種機能を実現しているが、かかる例に限定されない。例えば、CPU101を計算機100とは別体の他の装置に設けて、当該CPU101と協同して各種機能を実現するようにしてもよい。また、計算機100に格納されている各種プログラムを計算機100とは別体の他の装置に設けて、当該プログラムがCPU101に呼び出されることにより各種機能を実現するようにしてもよい。
【符号の説明】
【0066】
100 計算機
102 メモリ装置
103 メモリ
104 ストレージ装置
105 コンソール
106 メモリバス
110 検証プログラム
111 実行時間予測部
112 プロセス進捗管理部
113 実行容量補正部
115 試験プロセス

図1
図2
図4
図5
図6
図7A
図7B
図3A
図3B
図3C
図8A
図8B
図8C