2013年4月27日土曜日

SSD/HDD用ベンチマークソフト「TxBench」

今回は、本日公開されたばかりのベンチマークソフト「TxBench」を紹介したいと思います。
このベンチマークソフトを開発したTeximは、僕が光ディスクの原稿ばかりを執筆していたときから懇意にしている方が起こした会社です。TxBenchは、フリーソフトとして配布されており、ここから入手できます。

TxBenchは、Crystal Disk Markライクな基本ベンチマークとIOMeterライクな詳細ベンチマークの2種類のベンチマーク機能を搭載しています。ファイルシステムが存在する場合に使用する「Fileモード」とファイルシステムがない状態で使用する「RAWモード」の2種類測定モードがあります。また、他のベンチマークソフトとは、少々異なった設計思想となっており、測定できるデータ長(送受信サイズ)が、最小、4KB、8KB、16KB、32KB、64KB、最大の7通りと少なくなっています。

基本ベンチマーク

基本ベンチマークの設定画面

測定できるデータ長の種類が少ないのは、ホスト-ドライブ間でやり取りされる実際のRead/Writeコマンドの仕様に沿った設計となっているためです。たとえば、Read/Writeコマンドには、28bitLBAコマンドや48bitLBAコマンド、NCQ対応のコマンドなどいくつかの種類がありますが、28bitLBAコマンドの場合、1回のコマンド当たりに設定できる最大セクタ数は「256」と決められています。つまり、28bitLBA対応のRead/Writeコマンドでは、1コマンド当たり最大128KB(512バイト/セクタのドライブの場合)のデータしか読み書きできません。48BitLBA対応のコマンドでは、もっと多くのセクタを指定できるように拡張されていますが、Windows環境では、ドライバーなどの制限によって、最大256セクタに制限されているのが現状です。

結果として、Windows環境で利用する限り、1コマンド当たりの最大読み出し/書き込みサイズは256セクタ(128KB)となります。それを超える容量の読み書きは、コマンドを分割して送ることで対処しています。たとえば、1MBのファイルを読み書きする場合は、256セクタ(128KB)指定のRead/Writeコマンドが連続して8回送られます。

TxBenchでは、これを考慮して設計されており、計測できるデータ長(送受信サイズ)は、最小、4KB、8KB、16KB、32KB、64KB、最大の7通りとなっています。最小と最大を準備しているのは、ドライバーやSATA、PATA、USB接続などの環境によってこれらが変化する場合があるからです。たとえば、512バイト/セクタまたはAFTのドライブでは、最小データ長(送受信サイズ)は1セクタ(512バイト)となりますが、4Kネイティブドライブでは、4KBとなります。また、PATAなどの場合では最大データ長が128セクタ(64KB)になる場合があります。加えて、現状のドライバーでは、4KBネイティブドライブ環境において、512バイト/セクタのドライブのように256セクタの指定ができないという話もあるようです。

TxBenchで特徴的なのは、IOMeterライクな計測を行う詳細ベンチマークに搭載された機能です。詳細ベンチマークでは、なるべく実環境に近づけることができるように、計測中に物理消去しても問題ない論理アドレスをSSDに通知する「Trimコマンド」を送ったり、キャッシュ内のデータをすべてドライブ内部の記録媒体に書き込む「Flash Cacheコマンド」を送ることができます。この機能は、他のベンチマークソフトには搭載されていない本ソフトの大きな特徴です。また、TxBenchは、詳細なログを取得でき、ベンチマーク中の速度をCSV形式のファイルに保存したり、指定の容量を書き込んだら、指定時間処理を停止することもでき、終了条件を時間または容量で設定できます。

詳細ベンチマーク

詳細ベンチマークのタスク登録画面

詳細ベンチマークのタスク設定画面

詳細ベンチマークの高度なタスク設定画面

ただし、Trimコマンドの送信には、利用環境に条件があります。Trimコマンドは、Windows XP/Vista/7の環境では「RAWモード」でのみ設定でき、Windows 8では、「Fileモード」でのみ設定できます。これは、OS側の制限によるためです。Windows 8では、Windows 7以前とは仕様が変更されているようで、ATA PASSTHROUGHでTrimコマンドがでません。代わりにファイルシステムベースでTrimを行う「File Trim」と呼ばれる方法が準備されています。このため、Trimが送れる環境に制限がついています。

TxBenchは、「Secure Erase」の実行機能や詳細なドライブ情報の表示機能を搭載している点も特徴的です。

Windows環境でSecure Eraseを行う機能は、メーカー製ドライブに付属するツールでは一般的な機能となっていますが、自社ドライブのみの対応となっており、他社ドライブに対してSecure Eraseを実行できません。しかし、本ソフトを使えば、Secure Eraseを実行できます。

Secure Eraseの実行画面

TxBenchを使ってWindows環境でSecure Eraseを実行する方法は、2つあります。1つは、SATAやPATAなどのホストコントローラーに接続されたSSD/HDDに対してSecure Eraseを実行する方法です。この場合は、Windowsを一旦スリープ状態にして、復帰するとSecurity Frozen状態を解除できます。これで、Secure Eraseが実行できます。また、TxBenchには、Security Frozen状態かどうかを確認できるインジケーターが表示されており、これで現在の状態を確認できます。なお、この方法で使用する場合、Windows 8ではSecure Eraseを実行できないので注意してください(Windows XP/Vista/7では使用できます)。これは、OS側の制限です。Trimコマンド同様にWindows 8では仕様が変更されたようで、Secure Eraseのコマンドがフィルターされてしまい、ドライブに送られません。このため、Windows 8環境では、現状、対処しようがありません。

もう1つの方法が、USB接続で使用する方法です。USB接続の場合は、Windows8でも問題なく使用できます。ただし、SATA-USB変換チップは、Secure Eraseのコマンドをフィルターしたり、送ったふりをする方がいるようです。このため、USB接続の場合は、処理が完了したようにみえて実際にはコマンドが送られていなかったり、エラーが発生して処理が行われない場合があるので注意てください。また、USB接続で使用する場合は、後述するドライブ情報がすべて取得できる製品でのみSecure Eraseを実行できます。ドライブ情報がきちんと取得できない製品の場合は、この機能を利用することはできません。

TxBenchのドライブ情報画面では、ドライブに搭載された機能や現在有効になっている機能、自己診断情報「S.M.R.A.T」の表示、IDENTIFY DEVICEの詳細情報などを表示できます。最新の省電力機能「Device Sleep」に対応しているかどうかや現在のリンク速度(ドライブが対応している場合のみ)やセクタサイズなども確認できるかなり便利なものとなっています。

ドライブ情報画面

TxBenchは、非常に多機能なSSD/HDDベンチマークソフトとして仕上がっています。SSD/HDD用のユーティリティとしても使用できるので、持っていれば便利に使えると思います。本サイトでは、今後、TxBenchをメインのベンチマークソフトとして利用する予定です。興味がある方は、TxBenchをダウンロードして使ってみていただければと思います。