XC mini GP7A-HD

■XC mini GP7A-HD (2010/02/11)

1. はじめに

1.1. 背景

 Mac miniにおいて、メモリは増量(最大8GBまで)、HDDは容量アップやSSDへの変更とアップグレードパスが幾つか存在するが、CPUはマザーボードに直付で後からアップグレードできない為、CPUの違いがモデル間のパフォーマンス差異へ大きく影響する。

 Mac miniはCPUの動作クロック周波数により複数のモデルが存在する。
動作周波数 プロセッサ・ナンバ コア数 FSB 2次キャッシュ 64bit対応 VT-x対応 TDP コードネーム 採用モデル
2.00 GHz (266x7.5) P7350 2 1066MHz 3MB 25W Penryn
(45nm)
MB463J/A、MB464J/A
2.26 GHz (266x8.5) P8400 MC238J/A、Early 2009 CTO
2.53 GHz (266x9.5) P8700 MC239J/A、MC408J/A
2.66 GHz (266x10) P8800 Late 2009 CTO
 しかしながら、CPUの違いがどれだけ各モデル間のパフォーマンスの違いに影響を及ぼすのか容易に把握することはできない。

 そこで、Mac miniと構成がよく似たAOpenのIONプラットホームべアボーンキットXC mini GP7A-HDを用いて、CPU及びメモリを変更し、ベンチマークを取得した。本項では、その結果からMac miniのモデル間のパフォーマンス差異を推測し、自分の用途にあったモデルを購入する為の指標となることを目指す。

 なお、XC miniはベンチマーク実施にあたり、Mac miniを自作するで実行環境を構築している。

1.2. 注意

 本検証結果は、あくまで管理人環境によるもので内容を保証するものではない。また、各検証の結果については営利目的の雑誌メディア(特に、ASCII MEDIA WORKS社Mac People及びMainichi Communications社Mac Fanの2誌)への無断転載、転用、転記は禁止とする。

■2. Mac miniとXC miniベンチマーク対決

2.1. ベンチマーク実施環境

#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。


  • デバイスリストの結果(Mini PCI ExpressにAirMac互換のBroadcom BCM4328を追加)

00:00.0 Host bridge [0600]: nVidia Corporation Unknown device [10de:0a82] (rev b1)
00:00.1 RAM memory [0500]: nVidia Corporation Unknown device [10de:0a88] (rev b1)
00:03.0 ISA bridge [0601]: nVidia Corporation Unknown device [10de:0aae] (rev b2)
00:03.1 RAM memory [0500]: nVidia Corporation Unknown device [10de:0aa4] (rev b1)
00:03.2 SMBus [0c05]: nVidia Corporation Unknown device [10de:0aa2] (rev b1)
00:03.3 RAM memory [0500]: nVidia Corporation Unknown device [10de:0a89] (rev b1)
00:03.5 Co-processor [0b40]: nVidia Corporation Unknown device [10de:0aa3] (rev b1)
00:04.0 USB Controller [0c03]: nVidia Corporation Unknown device [10de:0aa5] (rev b1)
00:04.1 USB Controller [0c03]: nVidia Corporation Unknown device [10de:0aa6] (rev b1)
00:06.0 USB Controller [0c03]: nVidia Corporation Unknown device [10de:0aa7] (rev b1)
00:06.1 USB Controller [0c03]: nVidia Corporation Unknown device [10de:0aa9] (rev b1)
00:08.0 Audio device [0403]: nVidia Corporation Unknown device [10de:0ac0] (rev b1)
00:09.0 PCI bridge [0604]: nVidia Corporation Unknown device [10de:0aab] (rev b1)
00:0b.0 SATA controller [0106]: nVidia Corporation Unknown device [10de:0ab9] (rev b1)
00:10.0 PCI bridge [0604]: nVidia Corporation Unknown device [10de:0aa0] (rev b1)
00:15.0 PCI bridge [0604]: nVidia Corporation Unknown device [10de:0ac6] (rev b1)
00:16.0 PCI bridge [0604]: nVidia Corporation Unknown device [10de:0ac7] (rev b1)
02:00.0 VGA compatible controller [0300]: nVidia Corporation Unknown device [10de:0874] (rev b1)
03:00.0 Network controller [0280]: Broadcom Corporation BCM4328 802.11a/b/g/n [14e4:4328] (rev 03)
06:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 03)

2.2. ベンチマーク結果 (10.6.2)


 (参考). 比較データ Mac mini Late 2009 CTOカスタムモデル 2.66GHz + HDD 500GB(Hitachi HTS545050B9A300)

XBENCHの結果(抜粋):
CPU Test 189.24
GCD Loop 311.67 16.43 Mops/sec
Floating Point Basic 150.57 3.58 Gflop/sec
vecLib FFT 125.92 4.15 Gflop/sec
Floating Point Library 298.90 52.05 Mops/sec

Disk Test 52.48
Sequential 111.13
Uncached Write 138.35 84.95 MB/sec [4K blocks]
Uncached Write 115.27 65.22 MB/sec [256K blocks]
Uncached Read 72.57 21.24 MB/sec [4K blocks]
Uncached Read 158.43 79.63 MB/sec [256K blocks]
Random 34.35
Uncached Write 12.37 1.31 MB/sec [4K blocks]
Uncached Write 81.48 26.09 MB/sec [256K blocks]
Uncached Read 67.01 0.47 MB/sec [4K blocks]
Uncached Read 119.05 22.09 MB/sec [256K blocks]

2.3. ベンチマーク考察

 Mac miniとXC miniのGPUは仕様ではそれぞれ9400M、9300Mだが、GPU-Zで確認すると双方とも全く同一のクロックで動作しているのが確認できる。そこで、XC miniにP7350を載せるとMac miniとハードウエアスペック的には全く同一になる為、これを性能比較のベースラインとする。


 CPUによる変化をみると、4Thread演算のThread Testを除き、CPUクロックが一番高いT9900がもっとも良い値を出した。Thread Testでは、T9900の3.06GHzと比較するとQ9000のクロック2.00GHzは低速だが、4コアによるマルチスレッド処理は高く、Q9000がT9900の倍の値を計測した。iBenchは動作クロックが最高のT9900が一番高い値を計測したが、これはベンチマークがマルチスレッド処理に対応しておらず、CPUの動作クロックがそのまま反映される為である。

 また、CPUの動作クロックが上がるとグラフィックス処理も高速化され、QE/CI/OpenGLともに高い値を出す。これは、Intel Atomを搭載したION PCとの比較からもわかることで、CPUの処理性能が低いとGPU処理が足を引っ張られグラフィックス処理にも影響を及ぼすということである。

 メモリについては、2GB(1GBx2)、8GB(4GBx2)ともにDual Channelでの結果であるが、メモリ量が増えるとCPUクロックが同一でも若干ベンチマークの結果が良くなった。測定誤差とも言えなくないが、この点は気に留めていくと良い。

 ディスクについては、CPUクロック及びメモリ量による変化はない。ベンチマーク環境は64bit CPU/64bit カーネルで全て揃えている為、CPU内では64bitレジスタアクセス、IO/Kitも64bitで動作と違いがない為である。

2.4. まとめ

1. CPU
 CPUの演算能力を計測するCPU Testでは、CPUクロック比に応じた結果が出ているのはもちろだが、グラフィックス処理のQuartz Graphics Test、OpenGL Graphics Test、User Interfase Testについても、CPUクロックに応じて高い結果出ている。したがって、高速なCPUを選択すれば、グラフィックス処理もクロック比に応じて高い結果が得られると言える。
XC mini P7350 T9900 P8800(参考データ)
CPUクロック (比率) 2.00GHz 3.06GHz(1.53) 2.66GHz(1.33)
CPU Test (比率) 144 218(1.51) 189(1.31)
Quartz Graphics Test (比率) 179 281(1.57)
(No DATA)
OpenGL Graphics Test (比率) 68 111(1.63)
User Interfase Test (比率) 234 395(1.68)
 *比率はP7350の値を1とした場合の比

2. メモリ
 本検証では、メモリを増量することによりCPUを変更せずとも処理速度が若干向上することが見られたが、使用用途に応じて十分なメモリを確保しておき、極力ディスクスワップを発生させないことが何よりも重要である。

 2GB(1GBx2)でも文書作成処理やWebブラウジング程度あれば十分であるが、写真加工などメモリを必要とする作業を頻繁に行うのであれば、4GB(2GBx2)に増量した方がよい。また、VMwareなど仮想化ソフトウエアを使用するのであれば、仮想マシンに多くのメモリを割当て、かつホスト側の処理速度の落ちを防止できる為、より多くのメモリに増量すると効果が高い。

3. ディスク
 ディスク処理にCPUの動作クロック及び搭載メモリ量は影響を与えない。

 容量を必要とするのであば500GBのHDDが選択しやすい。性能的にはシーケンシャルリード・ライト共に80MB/s程度になり、標準のHDD(シーケンシャルリード・ライト40MB/s)の倍となるが、日常で頻繁に使用されるランダムアクセスが高速化される訳ではない為、特別速くなったとは感じない。全体的なパフォーマンスの向上を狙うのであれば、大容量のものを選択すると非常に高価となるが、ランダムアクセスが高速化されるSSDが最適であり体感できる程レスポンスが良くなる。

■3. ベンチマーク詳細

3.1. CPU一覧

CPU Core2 Duo P7350 Core2 Quad Q9000 Core2 Duo T9900
コア
sSpec SLG8E(C0 Stepping) SLGEJ(E0 Stepping) SLGEE(E0 Stepping)
CPUクロック 2.0GHz(266x7.5) 2.0GHz(266x7.5) 3.06GHz(266x11.5)
FSB 1066MHz
倍率 7.5 7.5 11.5
L2キャッシュサイズ 3MB 6MB(3MBx2) 6MB
コア数 2 4(2x2) 2
EIST
EMT64
Intel VT
TDP 25W 45W 35W
補足 OEM向けのFCBGA版をFCPGA化したもので
Intel製品ラインナップにはない。本来Intel
VT(VT-x)はサポートされていないが、Mac
miniに採用されたものと同様にIntel VTが
有効になった特別版。
稀少なモバイル版Core2 Quadプロセッサ。
MCMパッケージにより2つのCPUコアを
1チップにしたもの。
モバイル版Core2 Duoプロセッサとして
最速のCPU。IBM LenovoのFRU(補修部品)
42W8197 IBM Lenovo Laptop Processors
CPU。L2キャッシュが6MBと大容量なのも
特徴。

3.2. メモリ一覧

メモリ SODIMM 204pin 1GB DDR3 SODIMM 204pin 4GB DDR3 モジュール判別表(参考)
モジュール
補足 ベンチマークにおけるメモリの組み合わせは2GB(1GBx2)、8GB(4GBx2)で行った。メモリの組み合わせとしては、1GB(1GB+0)、2GB(1GB+1GB or 2GB+0)、3GB(2GB+1GB)、4GB(2GB+2GB or 4GB+0)、5GB(4GB+1GB)、6GB(4GB+2GB)、8GB(4GB+4GB)が取れるが、Mac miniにおいてメモリ構成は変更できる為、本項では他のメモリ容量の組み合わせ及び、シングルチャネル、デュアルチャネル構成の違いについては計測しない。

3.3. OSX 10.6.2での各動作結果

  • 一目するとMac miniと区別がつかないがXC miniでP7350を動作させたもの

  • Mac miniでは存在しないQuadコア動作

  • iMac Late 2009(C2D 3.06GHz+GeForce 9400M)以上のCPUスペックのXC mini

■4. 12.5mm 2.5inch 1TB HDDを増設

 Mac mini同様、光学式スロットインドライブのスペースを利用して12.5mm 2.5inch 1TB HDDを内蔵可能。

 XC miniの光学式ドライブはフロントベゼル付きのスロットインドライブの為、HDD変換ベイ付属のフロントベゼルを装着した状態で内蔵可能。

■5. Windowsの動作結果(not Bootcamp)

5.1. XC mini/Windows XP x64 Edition SP2/HDCP有効


■6. XC mini専用Chameleon PreBoot CD for Snow Leopard 10.6

6.1. Chameleon PreBoot CD

 PCでのSnow Leopard起動に必要となるEFIエミュレーション及びkextの追加、DSDTの修正をメモリ上で行うChameleon Pre Boot CDを用い、リテールSnow Leopard 10.6 DVDを起動させる。


 ・XCmini_PBCD4SL.zip (experimental release)
 ・Chameleon-2.0-RC4-r684ベース独自ビルドパッケージ(Windows 7スリープ修正/USB LegacyエミュレーションOFF/IONプラットフォームのグラフィックス名追加)
 (追記:2010/06/26) DSDT.amlなど一部のファイルがコピーされない不具合を修正。インストールされるDSDT.amlは、環境の構築のし易さを考慮し、メインメモリは2GB(VRAM 256MB)時のもの。メモリを増やした場合、スリープ、シャットダウンが行われない為、各自の環境でDSDTを再作成し、SystemMemoryの値を修正すること。

 なお、本PreBoot CDにはChameleon 2.0RC4-r684に、Windows 7スリープ修正/USB LegacyエミュレーションOFF/IONプラットフォームのグラフィックス名追加のパッチを適用した独自ビルドChameleonを使用した。

 <試用条件>
  1. AOpen XC Mini ベアボーン GP7A-HDを所有していること
  2. Apple Mac OS X 10.6 Snow Leopard (Retail)を所有していること
  3. zipファイルパスワードについて質問/公開をしないこと(XC mini専用につき他機種では正常動作しない為、所有者以外には配布しない)
  4. 本CDの使い方について作者に問い合わせをしない、また、発生した不具合についてサポートが無いことを了承すること
  5. 個人利用のみに限った実験公開であることを理解し、Appleの著作権侵害及びメディア等への無断での2次配布は禁止していることを理解すること

 条件を遵守できないことが見られた場合は公開を中止する

 <試用方法>
  1. 製品箱に記載されているXC mini GP7A-HDのPart Noを入力し、zipファイルを解凍する

xcmini:Downloads $ unzip XCmini_PBCD4SL.zip
Archive: XCmini_PBCD4SL.zip
[XCmini_PBCD4SL.zip] XCmini_PBCD4SL.iso password:
inflating: XCmini_PBCD4SL.iso
  2. ISOイメージをCD-Rに焼く (Windows/Mac OS Xどちらでも可)
  3. 付属のreadme.txtを熟読し手順に従う
  ・readme.txtからの抜粋

Step 1. intstall OSx86 10.6
1. insert "XCmini PreBoot CD for SL"
2. reboot
3. press F11, boot from CD
4. after chameleon boot up, eject "XCmini PreBoot CD for SL" CD media
5. set retail "OS X Snow Leopard 10.6" DVD media
6. press F5 (rescan)
7. select "Mac OS X Install DVD"
8. press enter
9. install Mac OS X
10. reboot

Step 2. install Chameleon for boot up from hdd partition
1. insert "XCmini PreBoot CD for SL"
2. reboot
3. press F11, boot from CD
4. after chameleon boot up, select installed Mac OS X partion (eg. Macintosh HD)
5. press enter
6. open Finder to "XCmini PreBoot CD for SL" media
7. click "Chameleon-2.0-RC4-r684+.pkg"
8. install Chameleon to installed Mac OS X partition
9. reboot

6.2. OSアップデート

 実機同様アップデートできる。ただし、10.6.3からオーディオを動作させる為には、AppleHDA.kextで定義されているCodec IDを使用している音源チップのCodec IDで置き換える必要がある。

 ・例. Mac miniの音源チップALC885のCodec ID(0x10ec 0x0885)をXC miniの音源チップALC662の Codec ID(0x10ec 0x0662)で置き換える

sudo perl -pi -e 's|\x85\x08\xec\x10|\x62\x06\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

 なお、ChameleonのオプションでVBIOS=yesを設定し、VIDEO BIOSのインジェクションを有効にしていると、起動後画面が点滅して切り替わらなくなったり、画面が真っ黒のまま停止してしまう。本来VIDEO BIOSの情報を取得するもので、10.6.2までは正常に機能していたのだが、10.6.3以降にアップデートした場合、不具合の原因となるのではずしておくと良い。

6.3. FakeSMCの更新 (2010/07/12)

 こちらにある通り、FakeSMCの機能拡張モジュールを用いることで、XC miniのシステム情報を表示できるようになる。

 ただし、標準ではXC miniで使用されているSuper IOチップのFintek F71808に対応していないのでProbe処理でKPしてしまう。そこで最新モジュール(r314)をチェックアウトし、下記の通りソースを修正した。

 1. Super IOチップのProbe処理にF71808(0x0901)を追加
 2. グラフィックスチップのバックエンド処理にION 9300M(0x0874)を追加 
 3. CPUの温度処理でMobile Core 2 Duo(CPU ID 0x10676)のTj.Maxが105℃となっていたので、P7350用に90℃を追加

 本修正により、従来のCPU温度の他、GPU温度やブロア情報など、実機同様に情報が取得できるようになった(内蔵SSDの温度情報が無いがこれはSSDのS.M.A.R.Tに項目が無い為で正しい。温度項目があるe-SATA接続の外付けHDDからは情報が取得できている)。

(ブート時のログ抜粋)

FakeSMC: Opensource SMC device emulator by netkas (C) 2009
FakeSMC: Monitoring plugins support by mozodojo (C) 2010
FakeSMC: Original idea of plugins and code sample by usr-sse2 (C) 2010
IntelThermal: CPU family 0x6, model 0x17, stepping 0x6
IntelThermal: Found 2 cores 0 threads
IntelThermal: CPU Tjmax 90
SuperIO: Probing ITE
SuperIO: Probing Fintek
SuperIO: Detected Fintek F71808 on 0x290
PTKawainVi: started
Vendor ID: 10de, Device ID: 874
Architecture: 80000
nVidia ION 9300M
SuperIO: Binding key Th0H
SuperIO: Binding key TN0P
SuperIO: Binding key VC0C
SuperIO: Fan 0 name is associated with hardware Fan0
SuperIO: Binding key F0Ac

(追記. 2010/07/17)
 本家の方へ動作結果を連絡し、修正内容をソースにマージしてもらよう依頼。

(追記. 2010/07/28)
 対応コードがr391にマージされた。

(追記. 2010/09/11)
 Fintekにおける電圧表示の不具合が修正されたものがr400にマージされた。

6.4. ネットワークドライバの更新 (2010/07/30)

 10.6に同梱されるRealtek RTL8168ドライバ(AppleRTL8169Ethernet.kext)はRTL8168Cまでの対応で、リビジョンの新しいRTL8168D/RTL8168Eなどには対応していなかった。

 32bitのみの対応であるが、XC miniに採用されているRTL8168Dに対応したドライバ(RTGMac_v2.0.4)がベンダからリリースされている。従来はチップのリビジョンが異なるためDSDTでインジェクトさせても弾かれてしまったが、ドライバが更新された為、そのまま利用することが可能になる。


(追記. 2010/09/21)
 Realtekから64bitもサポートした新しいRTL8168ドライバ(RTGMac_v2.0.5)がリリースされた。サポートされるチップは以下の通りである。

 RTL8111B/RTL8168B/RTL8111/RTL8168
 RTL8111C/RTL8111CP/RTL8111D(L)
 RTL8168C/RTL8111DP/RTL8111E

 バイナリの中身を確認すると、i386、x86_64だけでなく、ppc用のバイナリも含まれている。

bash-3.2# file AppleRTL8169Ethernet
AppleRTL8169Ethernet: Mach-O universal binary with 3 architectures
AppleRTL8169Ethernet (for architecture x86_64): Mach-O 64-bit kext bundle x86_64
AppleRTL8169Ethernet (for architecture i386): Mach-O object i386
AppleRTL8169Ethernet (for architecture ppc): Mach-O object ppc

 動作に支障は無いが、ppcバイナリは10.6では不要なので、気になる場合はファイルサイズの縮小にもなるので、lipoコマンドで削除すると良い。

bash-3.2# ls -la
total 1312
drwxr-xr-x 3 root wheel 102 9 13 16:55 .
drwxr-xr-x 4 root wheel 136 9 13 16:55 ..
-rw-r--r-- 1 root wheel 669048 9 13 16:55 AppleRTL8169Ethernet
bash-3.2# lipo AppleRTL8169Ethernet -remove ppc -output AppleRTL8169Ethernet.intel
bash-3.2# ls -la
total 2120
drwxr-xr-x 4 root wheel 136 9 21 19:39 .
drwxr-xr-x 4 root wheel 136 9 13 16:55 ..
-rw-r--r-- 1 root wheel 669048 9 13 16:55 AppleRTL8169Ethernet
-rw-r--r-- 1 root wheel 411972 9 21 19:39 AppleRTL8169Ethernet.intel
bash-3.2# file AppleRTL8169Ethernet.intel
AppleRTL8169Ethernet.intel: Mach-O universal binary with 2 architectures
AppleRTL8169Ethernet.intel (for architecture x86_64): Mach-O 64-bit kext bundle x86_64
AppleRTL8169Ethernet.intel (for architecture i386): Mach-O object i386
bash-3.2# mv AppleRTL8169Ethernet.intel AppleRTL8169Ethernet
bash-3.2# ls -la
total 808
drwxr-xr-x 4 root wheel 136 9 21 19:39 .
drwxr-xr-x 4 root wheel 136 9 13 16:55 ..
-rw-r--r-- 1 root wheel 411972 9 21 19:39 AppleRTL8169Ethernet

 また、RTL8111Eのサポートを主として、RealtekR1000SL.kextに代わるオープンソースのドライバプロジェクトも開始されている。
 ・Lnx2Mac's Realtek RTL81xx Driver Project Page

(追記. 2010/09/23)
 RTGMac_v2.0.5(Realtek)、 RealtekRTL81xx v0.0.67(Lnx2Mac)の機能、安定性、パフォーマンスの違いなどについて、こちらで詳細がまとめられている。

(追記. 2011/03/18)
 RTGMac_v2.0.6がリリースされている。なお、10.7 Lion Previewに同梱されるRealtek RTL8168ドライバ(AppleRTL8169Ethernet.kext)は、従来同様RTL8168Cまでの対応に留まっていた。

(追記. 2011/10/09)
 OS X 10.7 Lion用にビルドし直された、RTGNICv2.0.6For10.7.zipがリリースされている。機能的に違いはないと思われるが、従来から不要であったppcバイナリが含まれなくなった。

 なお、Realtek RTL8168のドライバ(AppleRTL8169Ethernet.kext)は10.7からAppleのサポート対象外となってしまったので、チップベンダのRealtekから提供されるドライバか、もしくはオープンソースのRTL81xx Driver(最新のRTL8111E、RTL8111E-VL、RTL8111Fにも対応)が必要になる。

6.5. 内蔵SDカードリーダーを認識させる (2010/11/15)

 USB接続のSDカードリーダーは標準のドライバで認識できるが、10.6.5からシステムプロファイラの項目でカードリーダーの項目、及びexFATフォーマットのサポートが追加された。システムプロファイラで、カードリーダーとして認識されるものは実機内蔵のものに限られるが、USB接続であることには変わりない(Macmini4,1は例外で内部PCIex1接続)。そこで、Product IDとVender IDを追記しAppleStorageDrivers.kextのプラグインであるAppleUSBCardReaer.kextに認識させれば、サードパーティのSDカードリーダーも表示されるようになる。
 AppleUSBCardReader.kextのInfo.listを書き換えることで認識させても良いが、アップデートする度に修正が必要となるので、ここでは、/Extra/Extensionsにデバイスインジェクト用のLegacyUSBCardReader.kextを追加し、そのInfo.plistに使用したいカードリーダーのエントリを登録することで認識させる。

 <手順>
 1. 自分が使っているカードリーダーのProduct ID、Vender IDをシステムプロファイラのUSBで確認
 2. 16進数で表示された値を10進数に変換
 3. LegacyUSBCardReader.kextのInfo.plistにidProduct、idVendorを登録
 4. LegacyUSBCardReader.kextを/Extra/Extensionsに置く

 例えば、XC miniに内蔵されているカードリーダーはRealtek製で、Product ID 0x0158、Vender ID 0x0bdaなので、それぞれ10進数に変換し、Product ID 344、Vender ID 3034を登録する。

 /Extra/Extensions/LegacyUSBCardReader.kext/Contents/Info.plist

<key>idProduct</key>
<integer>344</integer>
<key>idVendor</key>
<integer>3034</integer>


 なお、AppleUSBCardReaer.kextを使うと、アイコンリソースとしてSD.icnsが使用される為、SDカードのアイコン表示も変更される。

(追記. 2010/11/16)
 フォーラムでも同じ試みがなされているのを確認。こちらでは、Apple製のカードリーダとしても認識される。

6.6. TRIMサポートを有効にする (2011/03/28)

 MacBookPro Early2011に付属する10.6.6からSSDのTRIMサポートが有効になったが、TRIMコマンドが有効になるのはApple製のSSDのみ(ファームウエアの文字列が"APPLE SSD"で始まるもの)である。

 しかしながら、こちらのHow to activate TRIM on any SSDにある通り、IOAHCIBlockStorage(MacBookPro Early 2011にプレインストールされた10.6.6に含まれる)にハードコードディングされている文字列の"APPLE SSD"を使用しているSSDの機種名の頭9文字で書き換えることでその制限を回避できるようになる。

 例えば、SAMSUNGの128GB SSDの場合、機種名の頭9文字は"SAMSUNG M"となるので、下記コマンドで"APPLE SSD"を"SAMSUNG M"で書き換えることで、TRIMサポートを有効にできる。


sudo perl -pi -e 's/\x41\x50\x50\x4c\x45\x20\x53\x53\x44/\x53\x41\x4d\x53\x55\x4e\x47\x20\x4d/g' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage


(追記. 2010/07/04)
 10.6.8アップデートから、MBP Early2011、iMac Mid2011以外の機種でもApple純正のSSDを使用している場合に限り、TRIMサポートが行えるようになった。

 IOAHCIBlockStorageの処理ルーチンで純正SSDかどうかを判別する為の文字列"APPLE SSD"を使用しているSSDの機種名の頭9文字で置き換えてもよいが、下記の通り判別箇所をヌル(0x00)で置き換えることで、任意のSSDでTRIMサポートを有効にすることができる。


sudo perl -pi -e 's/\x41\x50\x50\x4c\x45\x20\x53\x53\x44/\x00\x00\x00\x00\x00\x00\x00\x00\x00/g' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  • TRIMコマンドの効果(追記. 2011/04/01)
 SamsungのSSDは書き込み速度の落ち込みが激しいが、fsckでTRIMを実行することにより書き込み速度の落ち込みが初期状態(Read 220MB/s、Write 200MB/s)の85%まで改善された。SecureEraseを使えば、ほぼ初期状態まで回復することを確認しているが、fsckでTRIMコマンドを実行し、手軽に書き込み速度の回復を行えるのは非常に効果がある。

1. シングルユーザモードで起動
2. /sbin/fsck -ffy

TRIM実行前

Results 196.41
System Info
Xbench Version 1.3
System Version 10.6.7 (10J869)
Physical RAM 8192 MB
Model Macmini3,1
Drive Type SAMSUNG MMCRE28G5MXP-0VB
Disk Test 196.41
Sequential 154.29
Uncached Write 101.20 62.13 MB/sec [4K blocks]
Uncached Write 149.24 84.44 MB/sec [256K blocks]
Uncached Read 145.43 42.56 MB/sec [4K blocks]
Uncached Read 405.34 203.72 MB/sec [256K blocks]
Random 270.18
Uncached Write 126.54 13.40 MB/sec [4K blocks]
Uncached Write 206.42 66.08 MB/sec [256K blocks]
Uncached Read 2556.09 18.11 MB/sec [4K blocks]
Uncached Read 600.01 111.34 MB/sec [256K blocks]

TRIM実行後

Results 277.38
System Info
Xbench Version 1.3
System Version 10.6.7 (10J869)
Physical RAM 8192 MB
Model Macmini3,1
Drive Type SAMSUNG MMCRE28G5MXP-0VB
Disk Test 277.38
Sequential 249.64
Uncached Write 283.54 174.09 MB/sec [4K blocks]
Uncached Write 298.84 169.08 MB/sec [256K blocks]
Uncached Read 147.56 43.19 MB/sec [4K blocks]
Uncached Read 421.31 211.75 MB/sec [256K blocks]
Random 312.05
Uncached Write 124.75 13.21 MB/sec [4K blocks]
Uncached Write 361.41 115.70 MB/sec [256K blocks]
Uncached Read 2564.03 18.17 MB/sec [4K blocks]
Uncached Read 607.79 112.78 MB/sec [256K blocks]

6.7. 10.6.8にアップデートする (2011/07/04)

 10.6.8にアップデートすると、IOPCIFamily.kextの処理において起動時にコンソール切り替えが発生し、Single User Mode(-s)やVerbose(-v)での起動ができなくなった。10.6.7のものに戻したり、ソースの該当ロジックを無効にするなどで暫定的な回避策を取ることができるが、Kernel Flagsにnpci=0x2000を追記することで、本症状を回避することができる。

 また、AppleHDA.kextも大幅に変更されているので、ALC885/889a以外ではサウンドが有効にならない。こちらも、同様に10.6.7のものに戻すか、従来同様バイナリパッチを適用した上、コーデックとプラットフォームを表す定義ファイルを修正する必要がある。


■7. BIOSアップデート(2010/06/29)

 カテゴリがDriverとなっているが、BIOSアップデートファイル(*)が公開(2010/06/29)された。バージョンはR1.05で、変更内容は下記の通りである。

Descriptions
1. Remove the item "Disabled" from "iGPU Frame Buffer Size".
2. Display the BIOS version string in BIOS setting main menu.
3. Correct the BIOS setting "ACPI Suspend Type" to "Auto".
4. Set the default of "SATA Mode Select" to "AHCI Mode".
5. Display all boot devices in BBS menu
6. Add the eSATA port device removable attribute
7. Update the audio verb table for WHQL verification
8. Update thermal profile

Note: For ready system, please keep same setting of BIOS 'SATA mode select' before upgrade BIOS
 (*) カテゴリがDriverからBIOSに修正された(2010/07/05)

 本BIOSの5の修正により、起動時にF11を押すことで、ブート可能な全てのデバイスの一覧が表示されるようになった。従来、各デバイスのブートリストの一番最初にあるもののみが、ブートデバイスの一覧に表示されていた為、USBメモリやSDカードからブートする場合は、BIOS設定でブートリストの一番最初におく必要があった。本修正により、ブートリストを変更することなく、USBメモリやSDカードからのブートができるようになる。更に、従来のBIOSでは、OSx86を用いた時、スリープ後SDカードを認識しなかったが、本バージョンからSDカードを認識するようになった。

 また、8でthermal profileが更新されたが、一部のCPUではBIOS読みでCPU温度が高く表示されてしまう。本来、正しい値に表示するための修正と思われるが、確認した所、P7350においてTj.Maxが90℃である所が、105℃と更新されている。

 CPU温度はコア内にあるDTS(Digital Thermal Sensor)が示す値を、Tj.Max(CPUが稼働できる最高温度を示すもので、強制的に停止がかかる温度の目安)から引いたもので、温度=Tj.Max-DTSから求められる(なぜこのような計算式を使うのかは少し考えればわかるはず)。したがって、Tj.Maxの値が高くなると、実際の温度よりも高い温度を表示してしまう。また、Tj.Maxが高いということは、CPUの稼働上限温度があがるということで、CPUの温度が上がっても問題ないと判断され、FANの回転数を上げる閾値が高いということである。

 P7350に限っては旧BIOSで設定されていた90℃の方が正しい(P8400などは105℃だが、P7350はP8400よりも低く90℃が正しい。CPUIDの値010676hで判別しているようで、他のC2Dと同列に扱われてしまっているようである)。

 なお、SATAモードがデフォルトでAHCIとなった為、サポートOSからXPがはずれている点に注意が必要である。

OS Support Vista x64,Vista x86,Windows 7,Windows 7_64

 ただし、これはXPをサポートしないというではなく、XPで使用するには、SATA(IDE)モードに変更するか、自己責任でOSセットアップ時にACHIドライバの追加を行う必要があるということを示唆している。この点については、当初記載がなかったが、FAQに回避策Q5-Q7が追記がされているので目を通しておくと良い。

(追記. 2010/07/10)
 8のthermal profileの変更が原因と思われるが、BIOSアップデート後、温度があがってもFANがなかなか回らず、MCPがハングしてしまう現象がみられるようになった。

 P7350では、従来Tj.Maxが90℃扱いだったのだが、BIOS更新で105℃と上がっており、CPUの温度が高くても問題ない→FANの回転数を上げる閾値が高い(結果、CPUが高温になるまでなかなかFANを回さない)となっているようで、温度が上昇してもFANの回転数が上がらない為、ヒートパイプでCPUと一緒に冷却されているMCPが先に熱暴走してしまい、その結果、MCPがハングするようである。

(追記. 2010/10/19)
 10/19付けでBIOSアップデートファイルが公開されたが、バージョンはR1.05のままで、アップデートツールがAMI製の汎用ツールに変更となったのみで、アップデートファイルそのものには変更点はなかった。



最終更新:2011年10月09日 12:42