【手続補正書】
【提出日】平成25年9月4日(2013.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
性能評価ツールが搭載されるホスト装置と、リード及びライト可能な不揮発性メモリを有する外部記憶装置と、前記ホスト装置と外部記憶装置を接続するインタフェース部とを備える情報処理装置において、
前記性能評価ツールは、
前記ホスト装置に搭載されたＯＳまたは性能評価ツール以外のソフトウェアが前記外部記憶装置と通常にアクセスするときの命令、応答を含むコマンドおよび前記コマンドに関する時間情報を前記ＯＳから取得して、アクセスログとして逐次記録するアクセスログ取得部と、
前記アクセスログに含まれる時間情報を用いて外部記憶装置に対するコマンドが非アクティブである時間を除外した実効時間情報を演算し、アクセスログ取得部によって記録されたアクセスログと前記実行時間情報とを用いて前記外部記憶装置の性能情報を演算して、この演算結果を性能情報ログとして記録する性能ログ取得部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記ホスト装置は、複数のスレッドが並列に動作可能なマルチスレッド方式が採用され、
性能ログ取得部は、複数のスレッドを総合して性能情報を演算する場合は、全てのスレッドにおける前記コマンドが非アクティブである時間を除外した実効時間情報を用いて性能情報を演算することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ホスト装置は、複数のスレッドが並列に動作可能なマルチスレッド方式が採用され、
性能ログ取得部は、スレッド毎に性能情報を演算する場合は、当該スレッドにおいて外部記憶装置に対するコマンドが非アクティブである時間を除外した実効時間情報を用いて性能情報を演算することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記アクセスログ取得部は、前記アクセスログを記録するアクセスログテーブルを有し、
前記性能ログ取得部は、前記性能情報ログを記録する性能ログテーブルを有することを特徴とする請求項１乃至３の何れか一つに記載の情報処理装置。
【請求項５】
前記アクセスログは、前記コマンドの開始時刻、終了時刻を示す時刻情報、コマンド内容、データ長を含むことを特徴とする請求項１乃至４の何れか一つに記載の情報処理装置。
【請求項６】
前記性能情報ログは、転送データレート、処理コマンドレート、応答時間、処理時間のうちの少なくとも一つを含むことを特徴とする１乃至５の何れか一つに記載の情報処理装置。
【請求項７】
前記性能ログ取得部は、性能情報ログに記憶された性能情報が許容範囲外になると、外部記憶装置の性能を許容範囲内に戻すための最適化処理を前記外部記憶装置に対し実行することを特徴とする請求項１乃至６の何れか一つに記載の情報処理装置。
【請求項８】
前記外部記憶装置の不揮発性メモリは、ページ単位で読み出し及び書き込みが行われ、前記ページ単位より大きなブロック単位で消去が行われる不揮発性半導体メモリであり、
前記最適化処理は、データが保持されていない前記外部記憶装置の論理アドレスに対する削除通知を前記外部記憶装置に通知することである請求項７に記載の情報処理装置。
【請求項９】
前記最適化処理は、不連続な前記外部記憶装置の論理アドレス領域を連続アドレス領域とするデフラグ処理をＯＳ上で実行することである請求項７に記載の情報処理装置。
【請求項１０】
前記外部記憶装置の不揮発性メモリは、ページ単位で読み出し及び書き込みが行われ、前記ページ単位より大きなブロック単位で消去が行われる不揮発性半導体メモリであり、
前記最適化処理は、前記不揮発性半導体メモリのデータ整理を実行させて未使用のブロックを増加させるための命令を外部記憶装置に対し通知することである請求項７に記載の情報処理装置。
【請求項１１】
前記外部記憶装置の不揮発性メモリは、ページ単位で読み出し及び書き込みが行われ、前記ページ単位より大きなブロック単位で消去が行われる不揮発性半導体メモリであり、前記外部記憶装置は、前記ホスト装置から所定期間アクセスがないとき、前記不揮発性半導体メモリのデータ整理を実行して未使用のブロックを増加させるものであって、
前記最適化処理は、ＯＳまたは性能評価ツール以外のソフトウェアに対し、外部記憶装置の不揮発性メモリを使用するアクセスを所定期間禁止させることである請求項７に記載の情報処理装置。
【請求項１２】
前記性能ログ取得部は、前記アクセスログ取得部による前記ホスト装置のＣＰＵ使用率を監視し、前記ＣＰＵ使用率が第１の閾値を越えると、前記アクセスログ取得部をアンロードし、このアンロード後、ＣＰＵ使用率が前記閾値より小さい第２の閾値を下回ると、前記アクセスログ取得部をロードすることを特徴とする請求項１乃至１１の何れか一つに記載の情報処理装置。
【請求項１３】
前記性能ログ取得部は、前記アクセスログ取得部のアンロード、ロードを周期的に実行することを特徴とする請求項１乃至１１の何れか一つに記載の情報処理装置。
【請求項１４】
リード及びライト可能な不揮発性メモリを有する外部記憶装置に接続されるホスト装置に搭載され、前記外部記憶装置の性能を評価する性能評価ツールにおいて、
前記ホスト装置に搭載されたＯＳまたは性能評価ツール以外のソフトウェアが前記外部記憶装置と通常にアクセスするときの命令、応答を含むコマンドと前記コマンドに関する時間情報とを前記ＯＳから取得して、アクセスログとして逐次記録するアクセスログ取得部と、
前記アクセスログに含まれる時間情報を用いて外部記憶装置に対するコマンドが非アクティブである時間を除外した実効時間情報を演算し、アクセスログ取得部によって記録されたアクセスログと前記実行時間情報とを用いて前記外部記憶装置の性能情報を演算して、この演算結果を性能情報ログとして記録する性能ログ取得部と、
を備えることを特徴とする性能評価ツール。
【請求項１５】
前記ホスト装置は、複数のスレッドが並列に動作可能なマルチスレッド方式が採用され、
性能ログ取得部は、複数のスレッドを総合して性能情報を演算する場合は、全てのスレッドにおける前記コマンドが非アクティブである時間を除外した実効時間情報を用いて性能情報を演算することを特徴とする請求項１４に記載の性能評価ツール。
【請求項１６】
前記ホスト装置は、複数のスレッドが並列に動作可能なマルチスレッド方式が採用され、
性能ログ取得部は、スレッド毎に性能情報を演算する場合は、当該スレッドにおいて外部記憶装置に対するコマンドが非アクティブである時間を除外した実効時間情報を用いて性能情報を演算することを特徴とする請求項１４または１５に記載の性能評価ツール。
【請求項１７】
ホスト装置にインタフェースを介して接続される外部記憶装置であって、リード及びライト可能な不揮発性メモリを有する外部記憶装置の性能を評価する性能評価方法において、
前記ホスト装置に搭載されたＯＳまたは性能評価ツール以外のソフトウェアが前記外部記憶装置と通常にアクセスするときの命令、応答を含むコマンドと前記コマンドに関する時間情報とを前記ＯＳから取得して、アクセスログとして逐次記録し、
前記アクセスログに含まれる時間情報を用いて外部記憶装置に対するコマンドが非アクティブである時間を除外した実効時間情報を演算し、前記記録されたアクセスログと前記実行時間情報とを用いて前記外部記憶装置の性能情報を演算して、この演算結果を性能情報ログとして記録する
ことを特徴とする外部記憶装置の性能評価方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
【非特許文献１】SNIA, Solid State Storage Performance Test Specification http://www.snia.org/
【非特許文献２】An overview of SYSmark(商標) 2007 Previewhttp://www.bapco.com/support/technical_documents/SYSmark2007Preview_WhitePaper.pdf
【非特許文献３】PCMark Vantage Whitepaper v1.0http://www.futuremark.com/pressroom/companypdfs/PCMark_Vantage_Whitepaper_v1.0_(PDF)?m=v
【非特許文献４】PCMark05 Whitepaper v1.0http://www.futuremark.com/pressroom/companypdfs/PCMark05_Whitepaper_1_0.pdf?m=v
【非特許文献５】IOmeter User’s Guidehttp://www.iometer.org/doc/downloads.html
【非特許文献６】Samsung SSD Magician USER GUIDEhttp://www.samsungssd.com/faq
【非特許文献７】CrystalDiskMarkマニュアルhttp://crystalmark.info/software/CrystalDiskMark/manual-ja/http://crystalmark.info/software/CrystalDiskMark/manual-en/
【非特許文献８】外部記憶装置の速度をモニタするソフトhttp://www.forest.impress.co.jp/docs/review/20100222_350600.htmlhttp://hansolav.net/gadgets/drivemeter/
【非特許文献９】ATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf  ・９８ページ目〜９９ページ目、５０ページ目：Ｄａｔａ  Ｓｅｔ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｍｍａｎｄ（トリムコマンド）  ・３４２ページ目〜３６５ページ目：ＳＣＴ  Ｃｏｍｍａｎｄ  Ｔｒａｎｓｐｏｒｔ  ・２１８ページ目〜２１９ページ目、３２４ページ目〜３２５ページ目：Ｒｅａｄ  ＦＰＤＭＡ  ＱＵＥＵＥＤ／ＷＲＩＴＥ  ＦＰＤＭＡ  ＱＵＥＵＥＤ
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
ホスト１００はＳＳＤ１０に対し、リード要求またはライト要求を発行する際には、ＡＴＡインタフェース９０を介して論理アドレスとしてのＬＢＡ（Logical Block Addressing）を入力する。ＬＢＡは、論理セクタ（サイズ：例えば５１２Ｂ）に対して０からの通し番号をつけた論理アドレスである。また、ホスト１００はＳＳＤ１０に対し、リード要求またはライト要求を発行する際には、ＬＢＡと併せて、リード要求またはライト要求の対象となるセクタサイズを入力する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
ＬＢＡは、図１１に示すように、セクタ（サイズ：例えば５１２Ｂ）に対して０からの通し番号をつけた論理アドレスである。本実施形態においては、ＳＳＤ１０の論理アドレス（ＬＢＡ）の管理単位として、ＬＢＡの下位（ｓ＋１）ビット目から上位のビット列で構成されるクラスタアドレスと、ＬＢＡの下位（ｓ＋ｔ＋１）ビットから上位のビット列で構成されるトラックアドレスとを定義する。すなわち、論理セクタは、ホスト１００からの最小アクセス単位である。クラスタは、ＳＳＤ内部で「小さなデータ」を管理する管理単位であり、セクタサイズの自然数倍がクラスタサイズとなるように定められる。また、トラックは、ＳＳＤ内部で「大きなデータ」を管理する管理単位であり、クラスタサイズの２以上の自然数倍がトラックサイズとなるように定められる。したがって、トラックアドレスはＬＢＡをトラックサイズで割ったものであり、トラック内アドレスはＬＢＡをトラックサイズで割った余りであり、クラスタアドレスはＬＢＡをクラスタサイズで割ったものであり、クラスタ内アドレスはＬＢＡをクラスタサイズで割った余りである。以下の説明では、便宜上、トラックのサイズは１物理ブロックに記録可能なデータのサイズに等しい（物理ブロックにＥＣＣ回路５８で行う誤り訂正の冗長ビットが含まれる場合はこれを除いたサイズ）とし、クラスタのサイズは１物理ページに記録可能なデータのサイズに等しい（物理ページにＥＣＣ回路５８で行う誤り訂正の冗長ビットが含まれる場合はこれを除いたサイズ）とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
コマンド方向情報は、ＳＳＤ１０に対する命令（要求送信）か、ＳＳＤ１０からの応答（完了通知）かについての情報である。例えば、SATA規格の場合、ＩＮＣＩＴＳ  ＡＣＳ−２記載の60h READ FPDMA QUEUEDコマンドにおいて、60h READ FPDMA QUEUEDコマンドのRegister Host to Device(RegHD)がホスト１００からＳＳＤ１０に送信されたとき、命令（要求送信）としてログをＯＳ１５０から受け取り、60h READ FPDMA QUEUEDコマンドのSet Device Bits(SDB)をＳＳＤ１０から受信した時、同コマンドが完了したとして完了通知のログをＯＳ１５０から受け取る。また、SATA規格の61h WRITE FPDMA QUEUEDコマンドにおいて、61h WRITE FPDMA QUEUEDコマンドのRegHDがホスト１００からＳＳＤ１０に送信されたとき、命令（要求送信）としてログをＯＳ１５０から受け取り、61h WRITE FPDMA QUEUEDコマンドのSDBをＳＳＤ１０から受信した時、同コマンドが完了したとして完了通知のログをＯＳ１５０から受け取る。コマンドが終了しない異常時を除けば、コマンドは命令（要求送信）と応答（完了通知）の対を必ず持つことになり、要求送信がコマンド開始、応答（完了通知）がコマンド終了を示し、これらの差分がコマンド実行に要した時間となる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
つぎに、先の図３９を参照して、性能情報として転送データレートを計算する場合の手順を説明する。計算開始がトリガされると、性能情報取得ツール１１２は、アクセスログテーブル１２０を読み出す（ステップＳ２５０）。性能情報取得ツール１１２は、アクセスログテーブル１２０に記録された時刻情報をもとに、ある一つのスレッド（この場合はスレッドＱ0とする）における時刻ｔn-1から時刻ｔnの間の、非アクティブ時間δの合計δnを取得する（ステップＳ２５１）。次に、性能情報取得ツール１１２は、性能測定対象期間の終了時刻ｔnから性能測定対象期間の開始時刻ｔn-1を減算し、性能測定対象期間Δｔnを求め、さらに性能測定対象期間Δｔnから非アクティブ合計時間δnを減算し、実効性能測定対象期間Δｔn´（=Δｔn−δn）を求める（ステップＳ２５２）。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１３１
【補正方法】変更
【補正の内容】
【０１３１】
つぎに、性能情報取得ツール１１２は、アクセスログテーブル１２０の記録情報をもとに、時刻ｔn-1から時刻ｔnの間に開始してかつ完了したスレッドＱ0のコマンドのリストを取得して、それらのデータ長を加算することでデータ量合計（＝Ｓ０）を計算する（ステップＳ２５３）。また、性能情報取得ツール１１２は、アクセスログテーブル１２０の記録情報をもとに、前周期である時刻ｔn-2から時刻ｔn-1の間に開始して、現周期である時刻ｔn-1から時刻ｔnの間に完了したスレッドＱ0のコマンドのリストを取得して、前述と同様にしてそれぞれのコマンドの現周期に対する寄与度を計算し、それぞれのコマンドのデータ量に対し各寄与度をかけたものの合計（＝Ｓ１）を計算する（ステップＳ２５４）。つぎに、性能情報取得ツール１１２は、アクセスログテーブル１２０の記録情報をもとに、現周期である時刻ｔn-1から時刻ｔnの間に開始して、次周期である時刻ｔnから時刻ｔn+1の間に完了したスレッドＱ0のコマンドについても同様の計算を行って寄与度を計算し、それぞれのコマンドのデータ量に対し各寄与度をかけたものの合計（＝Ｓ２）を計算する（ステップＳ２５５）。さらに、性能情報取得ツール１１２は、下式にしたがってスレッドＱ0における現周期の転送データレートを計算する（ステップＳ２５６）。
転送データレート＝（Ｓ０＋Ｓ１＋Ｓ２）／Δｔn´
このような処理を、各スレッドについて繰り返し実行する。