Intel SSD 320 120GB

2 Comments

Intel SSD 320 シリーズの 120GB を入手したので早速ベンチマークしてみました。基本ですね。

Intel X25-M G2 に比べるとシーケンシャルライト性能が大幅アップ!! 6Gbps 未対応ということでスルーしていたわけですがこれはなかなか良い感じです。


ATA/ATAPI-7 から ATA8-ACS に対応規格が新しくなっています。良い感じです。S.M.A.R.T. 属性も増えているのでわかる範囲で近々対応したいところ。



CrystalDiskMark Nano Pico Edition の 64bit 版がリリースされました!! zigsow さんとのコラボレーション版で基本は同じなので気分を変えたい時などぜひご活用ください。

CrystalDiskMark Nano Pico Edition 一般公開

No Comments

亀エントリですが、先日 zigsow さんとのコラボレーションで実現した CrystalDiskMark Nano Pico Edition が一般公開されました。CrystalDiskMark 3.0.1 をベースにデザインをカスタマイズしただけなのでベンチマーク部分は完全互換です。いつもと違った気分でベンチマークしたい際などぜひご活用ください。

紹介記事

ひとりごと

一見誰得コラボですがそれなりに反響があったようでうれしい限りです。正直、一個人にも関わらず色々声がかかるようになったことは素直にうれしく思います。努力してみるものですね。

 

CrystalDiskMark Nano Pico Edition

4 Comments


Intel Technology Day in Akiba 2011 のイベントにて、zigsow さんとのコラボレーションで実現したCrystalDiskMark Nano Pico Edition (上図) が使用されました。Nano ちゃんと Pico ちゃんが Intel SSD を猛アピールです。

オープンソースだからこそ実現できたコラボレーションだったのかなと。※カスタマイズは全て zigsow さんです。

イベントレポート

MBR を改造して Mac Pro でも Windows を AHCI で使おう

3 Comments

先日購入した Apple Mac Pro MC560J/A (以下 Mac Pro) は Mac OS X をほとんど起動することなく BootCamp + Windows 7 x64 環境で運用しています。が、SAMSUNG HD155UI/HD204UI をご利用の方に非常に重要なお知らせ とか CrystalDiskMark 3.0.1 リリースとかの絡みでいろいろ調査しているときにふと IDE モードで動いていることに気が付きました。えぇ、あまり深く考えずに AHCI モードでバリバリ NCQ 使って動いているのだとばかり思っておりました。

CrystalDiskInfo とか CrystalDiskMark を作っているのに IDE モード使っているなんて・・・。しかも、換装した Intel X25-M G2 120GB 超ハエーとか嫁と娘(2ヵ月)に自慢しまくっていたというのに。NCQ が使えない IDE モードで満足していたなんて・・・。

が、IDE モードで動作しているということに気が付いた途端愛機 Mac Pro たんが、亀のように鈍足な気分になってしまいました。このままでは年は越せない!! なんとしても、AHCI モードに切り替えねばなるまい。そう決意しネットの海を彷徨うのであった。

【本編】

ネットを彷徨うと色々な情報が見つかりました。

どうやら、Mac OS X 上で johnsock 氏が作成したスクリプトを実行する方法と Linux Live CD を使って GRUB の設定をどうこうするという二つの方法があるようです。

ネットで調べたことのまとめ

  • Mac Pro では ICH10 の ATA コントローラは Mac OS X を起動するときは AHCI モード用の Device ID (0x3A22)に設定され、それ以外の OS を起動するときは IDE モード用の Device ID (0x3A20) で起動する。
  • ICH10 のデータシートを見ると IDE モードと AHCI モードの切り替えは簡単で、Device 31, Function 2 のコンフィギュレーションレジスタ 0×90 をいじるだけ。でも、OS を起動する前に実施する必要があるとの注釈あり。
  •  johnsock 氏が作成したスクリプトと GRUB の設定をどうこうというのには、OS 起動前に上記レジスタをいじるコードが含まれている。

ふむふむ。これだけわかれば Windows だけでも完結出来そうだぞと。

  1. 念のため、今は亡き WinRing0 を使ってコンフィギュレーションレジスタを IDE モードから AHCI モードに変更してみました。実行したところ、Device ID が確かに変わったのですが、新しい AHCI コントローラを見つけることなくあえなくクラッシュ・・・。そりゃそうか。さすがに IDE コントローラが急に居なくなったらディスクアクセスした瞬間に終了ですね。
  2.  johnsock 氏が作成したスクリプトを眺めてみると
    AHCI_CODE=66B890FA0080BAF80C66EFB040BAFC0CEEC3
    という文字列が。どうやら、MBR のどこかにこいつを突っ込むらしい。
  3. AHCI compliance on Macs running Windows and Linux の解説を読むと MBR 162h の C3 を上記コードに置き換えればよい感じ。ふむふむ。
  4. で、C3 ってなんだろうと久しぶりにプログラミング 80386 を眺めてみると RET と。CALL したところに戻るってことでイメージ的には関数の最後ってところでしょうか。
  5. あとは、MBR を読み書きするツールとバイナリエディタがあれば簡単です。ちょっとドキドキするけど MBR のバックアップさえとっておえけば最悪外付けケースに入れて別 PC から MBR を復元すれば良いだけなので気にせずGO!!

Mac Pro AHCI モードへの道

  1. “HKLM\System\CurrentControlSet\Services\msahci\start” キーの値を 0 に変更
  2. MBR エディタはマイクロソフト純正 Disk Probe を使うことにしました。Windows 7 ではなくなってしまったようなので、Windows XP 用のものを使用しました。MBR を読み書きするだけなので何ら問題ありません。
  3.  Disk Probe で MBR を保存
  4. 保存したファイルをバイナリエディタで加工。AHCI compliance on Macs running Windows and Linux に書いてある通り 162h ~ のコード部と 191h ~ のエラーメッセージ部を変更しました。別にエラーメッセージは出ないのでですが念のため。
  5. Disk Probe で加工したファイルを MBR に書き戻す。
  6. Windows を再起動
  7. めでたく AHCI コントローラを検出

という流れです。ICH10 のデータシートを眺めると AHCI モードには、AHCI 4 port + IDE 2 port のモードと AHCI 6 port のモードがあるようです。AHCI_CODE=66B890FA0080BAF80C66EFB040BAFC0CEEC3 の 40h を 60h にすると AHCI 6 port になりそうな感じだったのですが、正常に動作しませんでした。データシートをさらに眺めると port を Enable するために 0×92 もいじくる必要があるみたい。が、これを実施するためには上記コードを逆アセンブルして理解する必要が・・・。十数バイトなのでハンド逆アセンブル出来そうな感じではありますが、そこまでして 6port モードにする必要もないのでとりあえず保留としました。(解決済み – 追記参照のこと) あと、40h を 80h に変更すると RAID モードになりそうな感じですがとりあえず未実施です。気が向けばそのうち。

ちなみに、BootCamp マネージャが動作しなくなるので Mac OS X に切り替えるのは手動となります。

最終形態

AHCI

  • port 0 : 光ディスク (HL-DT-ST DVD-RW GH61N)
  • port 1 : 光ディスク用空き
  • port 2 : Mac OS X 用 SSD (TOSHIBA THNS064GG2BBAA)
  • port 3 : Windows 用 SSD (INTEL SSDSA2M120G2GC)

IDE

SAMSUNG HD204UI を IDE モードで動作させておけば倉庫にぴったりです。

【まとめ】

Mac Pro + Windows における AHCI 化は Windows 単体で可能です。私のように Mac にも Linux にも疎い方も安心です。でも、実行は自己責任で。

【追記 2010/12/28 19:30 頃】

MBR をバックアップしたファイルを NASM についてる ndisasm.exe で解析するだけで OK でした。わざわざハンド逆アセンブルする必要ありませんでした。

追加した AHCI_CODE=66B890FA0080BAF80C66EFB040BAFC0CEEC3 の逆アセンブル結果

00000162  66B890FA0080      mov eax,0x8000fa90
00000168  BAF80C            mov dx,0xcf8
0000016B  66EF              out dx,eax
0000016D  B040              mov al,0×40
0000016F  BAFC0C            mov dx,0xcfc
00000172  EE                out dx,al
00000173  C3                ret

なんだか 0×92 も簡単に変更できそう。4port モードでは 0x0F (port 0-3 が有効)なので、0x3F (port 0-5 が有効) に変更してみます。

0000016D  B040              mov al,0×40
⇒ 0000016D  B060              mov al,0×60 に変更
※6port モードにするため。

00000173 66B890FA0080      mov eax,0x8000fa90
BAF80C            mov dx,0xcf8
66EF              out dx,eax
B03F              mov al,0x3F
BAFE0C            mov dx,0xcfe
EE                out dx,al
C3                ret

※PCI コンフィギュレーション空間へのアクセス方法は以前「PCI デバイス設計入門」(CQ 出版)で勉強しました。

最終形態 其の弐

AHCI

  • port 0 : 光ディスク (HL-DT-ST DVD-RW GH61N)
  • port 1 : 光ディスク用空き
  • port 2 : Mac OS X 用 SSD (TOSHIBA THNS064GG2BBAA)
  • port 3 : Windows 用 SSD (INTEL SSDSA2M120G2GC)
  • port 4 : SAMSUNG HD204UI
    (バグバグファームウェア搭載版 – SAMSUNG HD155UI/HD204UI をご利用の方に非常に重要なお知らせ)
    ⇒ 超心配!!
  • port 5 : SAMSUNG HD154UI

【追記 2010/12/28 19:40 頃】

ようやく NCQ + Write Cache ON の状態で SAMSUNG HD204UI で運用できるようになりましたので、 SAMSUNG HD155UI/HD204UI をご利用の方に非常に重要なお知らせ で話題のネタを試してみることにしました。

Intel ICH10R SATA AHCI Controller, 2010/11/06, 10.1.0.1008 + Windows 7 x64 でファイルコピー中に CrystalDiskInfo を起動してみました。が、変化なし。何度も試すのも面倒なのでまぁいいかと。

あと、PCI コンフィギュレーション空間にアクセスした後はCONFIG_ADRESS レジスタの最上位ビットを 0 にして、0xCFC – 0xCFF の I/O 空間を CONFIG_DATA レジスタから切り離しておくようにとのことでしたので以下のコードを追加しても良いかも。

66B800000000      mov eax,0×00000000
BAF80C            mov dx,0xcf8

【追記 2010/12/28 20:20 頃】

久しぶりに I/O とか PCI コンフィギュレーション空間と戯れて楽しかったです。Windows 上だとコードサイニング証明書が必要だったり作法がどうとか色々ありますが、OS 起動前であれば好き放題です。もちろん、OS 初期化時に設定変更されちゃうものは無意味ですけどね。

今回初めて MBR の改造をしてみたわけですが、勝手がわかれば PCI デバイスの設定や MSR の設定など色々活用できそうです。Windows 上で動作するチューニングツールも便利ですが、OS 起動前にこっそりチューニング用のコードを仕込んでおくとかクールですね♪

亀⇒うさぎな爆速 NCQ 対応で良い年を迎えられそうです。

【追記 2010/12/29 9:00 頃】

6port モードで運用開始!! と思ったのですが、スリープから復旧すると port 4, 5 を見失ってしまいます。コンフィギュレーションレジスタ 0×92 を確認すると 0x3F (port 0-5 有効) から 0x0F (port 0-3 有効) に戻っているではありませんか。ICH10 のデータシートを見るとリセットすると 0x0F に戻ると書いてあるので何らかの方法で 0x3F に戻す必要があります。

とりあえず、WinRing0 を使った専用ツールで 0x3F に書き戻してデバイスマネージャからハードウェアの再検出を行うと port 4,5 に接続した HDD も見えるようになりました。が、面倒だし、スリープ前に動いていた一部プロセスが実行ファイルを見失い異常終了してしまいます。

スリープからの復帰を検知し、ハードウェアの再検出を行うツールを常駐させておけばなんとかなるような気もしますが、Windows 上で動くアプリの仕事ではないので素直に 4 port モードで運用することにします。この辺りは、EFI?, BIOS?, ACPI ? あたりから適切な値に再設定したうえで OS に制御を渡すようにしてくれないとどうにもならない感じです。PC/AT 互換機では BIOS 設定画面で色々設定しておくとそういった部分はちゃんと面倒見てくれるのでしょう。

【追記 2010/12/29 9:15 頃】

せっかくなので RAID モードも試そうとしたのですがうまく動きませんでした。設定に問題があるのかもしれませんが RAID は使わないので深追いはしないことにします。

これにして、うさぎと亀プロジェクトは終了!!

CrystalDiskMark 3.0.1c

1 Comment

☆ダウンロードおよび詳細情報は Crystal Dew World からお願いします☆

2GB 越えの処理に不備がありました。50MB-2000MB テストには問題がありませんが、4000MB ではランダムテストが正常に行えない状態でした。大変お手数ですが、3.0.1 への更新をお願いいたします。

【主な変更点】

【ちょっとした変更点】

  • アクセラレーターキー/ショートカットキーを適切に設定
  • 3.0.0f での変更

[3.0.1a] 2011/02/01

  • エラーメッセージ追加

[3.0.1b] 2011/06/27

  • 言語ファイル更新

[3.0.1c] 2012/02/12

  • コメント欄のコピー&ペーストに対応

CDHtmlDialog を IE 設定に依存させない方法

2 Comments

CDHtmlDialog はなぜ IE のユーザー補助設定に依存するのか・・・ というエントリもありましたが、本日ついに CDHtmlDialog ベースのアプリで IE の設定に依存しない方法がわかりました。

全ては、WebBrowser Customization (MSDN) に記載されておりました。IDocHostUIHandler::GetOptionKeyPath を適切に実装すれば良いだけです。翻訳されていればもっと早く気がついたのかもorz 日本語の情報だけを検索しているようではプログラマとしてダメダメですね。

詳細は、CrystalDiskInfo 3.9.0 Beta5 以降もしくは CrystalDiskMark 3.0.0h 以降のソースコード (CDHtmlDialogEx クラス) を参照してください。ただ、本来は自アプリケーションへのパスを設定するべきですが、IE 設定をアプリ側でカスタマイズする必要はないため、L”Software” とだけ設定しております。ホント諦めなかったからこの問題が解決出来たんだなぁと思います。

CrystalDiskMark 3.0.0f

1 Comment

更新内容

  • A, B ドライブのリムーバブルディスクをベンチマーク対象にできない問題を修正
    フロッピードライブを表示しないための対策だったのですが、最近は A, B ドライブに USB メモリを割り当てる場合もあるそうなので。
  • テスト回数とテストサイズ、対象ドライブ設定を記憶する機能を追加
  • Vista 以降で Program Files 以下にインストールした場合に設定が保存されない不具合を修正
    ⇒ 今更ながらの UAC 対応です orz
  • 言語ファイル更新

ひとりごと

  • 今回リビルドしておりますが、使い勝手に関する部分のみの修正だったので 3.0.1 とはしませんでした。

ベンチマーク

No Comments

2010/07/23 23:30 現在 +D PC USER さんにて「ベンチマークソフト、一番使っているのはどれ?」というアンケートが行われています。

CrystalMark を使ってくださっている方も結構いらっしゃるようで有り難い限りです。また、HDBENCH も根強い人気があるようです。

選択肢は著名なベンチマークソフトばかり。その中で二本エントリーされているのは大変光栄ですし、多少なりとも記憶に残るソフトになったんだなぁと感じます。

最近は国内外のベンダーさんからご連絡いただくことも多くなり、Windows アプリの開発を始めた 10 年くらい前とはえらい違いですが、奢ることなく精進したいと思います。たまには一日数アクセスしかなかった(しかも 2, 3 件は自分w)昔のことを思い出しながら、自分が何のためにソフトウェアを書くのか再確認するのも良いものです。

SandForce 製コントローラー搭載 SSD の実力

No Comments

メモリ界の大御所CORSAIRが作るSSDはやっぱり凄かった (ASCII.jp) にて CrystalDiskInfo/CrystalDiskMark 3.0 が大きく使われております。CrystalDiskInfo のバージョンが少々古いのが気になるところですが、SSD 関連の記事で CrystalDiskInfo のスクリーンショットを見かけることも多くなり嬉しい限りです。

なお、SandForce 製コントローラーへの対応は CrystalDiskInfo 3.7 で大幅に強化される予定です。既に、Alpha 版を公開しているので SandForce 製コントローラー搭載 SSD をお持ちの方はぜひお試しください。

CrystalDiskMark 3.0

3 Comments

[2010/12/04] 4000MB のランダムテストに測定不具合があることが判明したため一旦廃止しました。ご迷惑をおかけして申し訳ございません。

開発を宣言してから早半年。ようやく正式版リリースにこぎつけることができました。ベータテストにお付き合いいただいた皆さん、貴重な意見をくださったオフ会参加者の皆さん、ソースコードレビューに付き合ってくださった師匠、そして Queue Depth パッチを提供してくださった ななしさん 本当にありがとうございました。

こうやって多くの方々の協力を得ながらソフトウェア開発できることを感謝しております。

前バージョンでは致命的なバグを修正するのに 3 回(しかも一年半)かかり、非常に多くの方々にご迷惑をおかけする事態になったにも関わらず、多くの方々にご利用いただけるようになったことをありがたく思っています。今回は同じ過ちを繰り返すことがないように入念なテストとレビューを実施しております。

【主な新機能】

  • NCQ テスト (Random 4K, Queue Depth = 32) を追加
  • テストデータ (ランダム、全て 0×00、全て 0xFF) の選択機能を追加
  • ズーム機能を追加 (100%~400%、要IE8~)

【主な変更点】

  • デフォルトサイズを 1000MB に変更
  • デジタル署名を付与
  • アイコンを変更

【2010/3/27 追記 3.0.0a】

  • 言語ファイル追加&更新
  • マニュアル追記

【2010/4/9 追記 3.0.0b】

  • 言語ファイル更新

【2010/5/4 追記 3.0.0c】

  • 言語ファイル更新
  • ※インストーラ版が未署名でした

【2010/5/14 追記 3.0.0d】

  • 3.0.0c のインストーラ版が未署名だったため差し替え

【2010/6/27 追記 3.0.0e】

  • 言語ファイル更新
  • ロシア語版マニュアルを公開(同梱はしていません)

【2010/8/2 追記 3.0.0f】

  • A, B ドライブのリムーバブルディスクをベンチマーク対象にできない問題を修正
    フロッピードライブを表示しないための対策だったのですが、最近は A, B ドライブに USB メモリを割り当てる場合もあるそうなので。
  • テスト回数とテストサイズ、対象ドライブ設定を記憶する機能を追加
  • Vista 以降で Program Files 以下にインストールした場合に設定が保存されない不具合を修正
    ⇒ 今更ながらの UAC 対応です orz
  • 言語ファイル更新

【2010/10/3 追記 3.0.0h】

【2010/11/7 追記 3.0.0i】

  • 言語ファイル更新

【2010/12/4 追記 3.0.0j】

Older Entries