グラフィックス

1. グラフィックチップについて

 Mac miniは、G86コアのグラフィック機能にDDR2/DDR3に対応したメモリコントローラを統合したノースブリッジとサウスブリッジのnForce 730iをワンチップ化した統合チップセットmGPU GeForce 9400M、コードネームMCP(Media and Communication Processors)7Aを採用している。

 GeForce 9400Mはチップセット内蔵GPUとしては比較的に高い3D描画性能を持っている為、Mac miniの他、iMacやMacBookシリーズへと幅広く採用された。

 公開されている仕様では、GeForce 9400MのGPU機能は以下の通りである。
モデル GeForce 9400M
コア数(SP数) 16
コアクロック(MHz) 580
シェーダクロック(MHz) 1450
メモリクロック(MHz) 700
最大メモリ容量(MB) 768
メモリ接続幅(bit) 128
メモリ帯域(GB/sec) 24
テクスチャフィルレート(billion/sec) 8
FLOPs(billion/sec) 61

 GeForce 9400Mは、名目上はnVIDIAとAppleが共同で開発したチップセットということで、nVIDIAとしてはデスクトップ向けがGeForce 9400、ノートブック向けがGeForce 9400M Gと異なる名称を使用している。

 最初にシステムプロファイラをみて誰もが不思議に思うことだが、グラッフィクス/ディスプレイの項目で、Mac miniではGeForce 9400Mとは表示されず、GeForce 9400と表示される。しかし、同じGeForece 9400Mを採用しているiMacやMacBookProなどでは、GeForce 9400Mと表示される。

 また、Boot CampでWindowsを使用してみると、WindowsでもGeForce 9400と表示される。しかもWindowsでは、メインメモリが2GB以上の場合、VRAM容量がGPU-Zでは256MBと表示されるものの、DXDiagなどでは512MBと表示され、更に混乱を招く。

 調査や検証した結果、その原因としてMac miniで採用されているGeForce 9400MのデバイスIDが、iMacやMacBookProなどと異なっていることがわかった。しかも、GeForce 9400MのデバイスIDは採用されている機種により複数存在する。

 OSXやWindowsではデイバスIDによってデバイスを特定し、ドライバをロードするが、Mac miniに使用されているGeForce 9400MのデバイスIDは0x0861で、これはGeForce 9400Mではなく、GeForce 9400と定義されている。

 また、WindowsでVRAMが512MBと表示されるのは、フレームバッファの256MBに加えて、TurboCacheとして256MBが追加確保され、その為Windowsでは512MBという扱いになる。

 結局の所、唯一正しい表示をするツールは、Apple純正のハードウエア自己診断テストのApple Hardware Testのみであり、こちらでは、グラフィックス名はGeForce 9400M、VRAM(フレームバッファ)はメインメモリが2GB未満の時に128MB、2GB以上の時は256MBと仕様通り表示された。


■結論

 Mac miniに採用されているチップは確かにGeForce 9400M。ただし、デバイスIDが他の機種と異なる為、使用環境によってはGeForce 9400と表示される。

 また、メインメモリを2GB以上搭載し且つWindowsで使用した場合、VRAMが512MBと表示されるが、これはドライバ側でTurboCache機能が働き256MB追加される為である(その為OSXとは異なり、ユーザが使用できるメモリ量は目減りする)。

■補足

 グラフィックス名の表示が9400Mと表示されず気になるという人は、修正にOSX86 プロジェクトの成果であるドライバのインジェクションが役立つ。

注意 
 下記ファイルの扱いがわからない場合、残念ながらあなたにはOSXの仕組みに関して基本的なスキルが足りていません。自分はもちろんのこと、他人にも迷惑をかけるので質問や興味本位での導入はしないで下さい。kextの追加、削除、それに伴うキャッシュの削除の仕方や、万一画面が表示されないなどのトラブルが生じた場合にはシングルユーザモードで起動し、問題のあるファイルの削除ができるなどの知識がある人向けに公開しています。


 管理人が試した結果は以下の通りである。
  • GeForce 9400Mとして認識させ、さらにVRAMも512MBとして表示。

 ただし、表示を変更しただけなのでパフォーマンスは変わらない(EFI側でフレームバッファ量を増やすなどしないと意味がない)。
  • 標準状態でのパフォーマンス

 (2010/02/08 追記)
 new universal kext for nVidia
 To inject the chipset model has to be in the "AddProperties" section.

<key>model</key>
<string>Your Model here</string>



2. グラフィックスメモリ(VRAM)量について

 Mac miniのスペックを観るとVRAMについての記載が以下の通りある。その為、発表直後、1GBモデルは後からメモリを増設してもVRAMの量が増えないのではないかと心配された。

NVIDIA GeForce 9400Mグラフィックプロセッサ 128MB DDR3 SDRAM(メインメモリと共有)2
2. Mac OS Xでグラフィックスに必要なメモリは、環境により異なります。最小限のグラフィックスメモリ使用は、1GB構成で128MB、2GB構成で256MBです。

 そして、更に混乱を招いた要因として、一部のアップルストア、アップルサポート、家電量販店の店員が

「VRAMは固定で256MBにしたい場合は、最初から2GBモデル(MB464J/A)を購入しなければいけない」

 という説明をしていた為、VRAMが固定であるという噂が広まった。

 しかしながら、9400Mは仕様として、メインメモリからVRAMを割り当てるUMA(Unified Memory Architecture)方式を採用しており、Webでの記載通りメインメモリと共有する為、VRAMが固定であるということはない。

 また、店頭BTOでもメモリを変更できること、MB463J/A、MB464J/AでEFIを2重に管理するメンテナンス負荷の観点からも内容が共通化されていると考えるのが妥当である。

 ただし、原理的には、EFI内のフレームバッファ割当の設定次第では、MB463J/Aでは上限を128MB、MB464J/Aでは上限を256MBとし、MB463J/Aでメモリを追加増設してもVRAMが増えないように制限をかけることはできる(9400Mは仕様上、VRAMは768MBまで確保可能)。

 結局、実機で検証しない限り、確実な結論がでなかったが、発売間もなく、メモリ1GBの実機MB463J/Aにメモリを1GB追加し、2GB(1GBx2)にした場合、VRAMも128MBから256MBに増えることが確認され、本件は、アップルストア、アップルサポート及び、家電量販店の店員の認識が誤りであることが判った。

 なお、原文と日本語訳は結果的に同じ内容を述べているが、日本語訳では主語を取り違えている為、原文より内容が判りにくくなってしまっている。

NVIDIA GeForce 9400M graphics processor with 128MB of DDR3 SDRAM shared with main memory 2
2. Memory available to Mac OS X may vary depending on graphics needs. Minimum graphics memory usage is 128MB for 1GB configuration and 256MB for 2GB configuration.

 ちなみに、管理人が原文に沿い、分かり易く訳すとすれば下記と表す。

「Mac OS Xで利用可能なメモリは、グラフィックスの要求により変動します。1GB環境では最小グラフィックスメモリ使用量は128MBとなり、2GB環境では256MBになります(そのため、環境によってMac OS Xで利用できるメモリは変化します)」

■結論

 VRAMはメインメモリから動的に割り当てられ固定されていない。したがって、1GBモデルを購入し後から、メモリを1GB追加し、2GBに増やせば、VRAMは128MBから256MBに増加する(VRAMが増加した分、OSで使用できるメモリは減少する)。

OSX メモリ2GB未満 メモリ2GB以上
FramBuffer 128MB 256MB
VRAM 128MB 256MB

Windows メモリ2GB未満 2GB以上
FramBuffer 128MB 256MB
TurboCache 0 256MB
VRAM 128MB 512MB

 ただし、VRAMの上限はEFIで256MBに設定されており、メインメモリを4GB、8GBへと更に増やしても256MBまでしか割り当てられない。



3. HDCP(High-bandwidth Digital Content Protection)対応について

 NVIDIAチップセットGeForce 9400Mを採用した機種のデバイスIDを調べると以下の通りである。
チップセット名 グラフィックス名 デバイスID 機種
GeForce 9400M
(MCP7A)
GeForce 9400 0x0861 Mac mini(Early 2009)
GeForce 9400M 0x0863 MacBook Pro(13-inch Late 2008, 15-inch, 17inch)
0x0866 MacBook White
0x0867 iMac(20-inch,24-inch)
0x0870 MacBook Air
 上記の通り、GeForce 9400Mには複数のデバイスIDが存在するが、OSX/WindowsともにGeForce 9400Mと定義されているものは0x0863以降のもので、Mac miniに使用されている0x0861はGeForce 9400Mとは定義されていない。この為、GeForce 9400Mを採用とされながら、1でも述べた通り、OSX/Windows上では、9400Mとは表示されない。

  Blu-rayディスクコンテンツの再生には、ディスプレイなどの表示機器にデジタル信号を送受信する経路を暗号化し、コンテンツが不正にコピーされるのを防止する著作権保護技術(コピーガード)に対応している必要があり、ドライブがBlu-ray読み込みに対応している他、以下の3つの条件を満たなければならない。
  • グラフィックスチップにHDCP鍵が内蔵されること
  • グラフィックスドライバがHDCP鍵のデコード、COPP(Certified Output Protection Protocol)に対応していること
  • ディスプレイがHDCPに対応していること
 GeForce 9400Mはハードウエア仕様としてはHDCP鍵を内蔵しており、また、ディスプレイ一体型のiMac,MacBook ProなどのディスプレイはHDCPに対応している。Mac miniはディスプレイが付属しない為、使用するディスプレイがHDCPに対応していなければならない。

 従って、残る条件としてグラフィックスドライバがHDCP(COPP)に対応していれば良いが、マイクロソフトが開発した技術でもあり、OSXでは対応していない。現状、HDCPに対応したグラフィックスドライバが提供されている環境はWindowsのみで、iMacやMacBook Proなどは、BootCampでWindowsに切り替えれば、Blu-rayディスクが再生できる。


 一方、Mac miniでは、HDCPに対応したディスプレイを用意し、BootCampでWindowsに切り替えても、前述の機種とは異なりグラフィックスドライバがHDCP非対応となる為、Blu-rayディスクの再生ができない。

 Blu-rayディスクコンテンツの再生ができるiMac、MacBook Proなどのディスプレイ一体機型でも、不正コピー防止などのコンテンツ保護の観点から、外部ディスプレイ出力による再生は禁止している。ディスプレイが別となるMac miniでは、その為、画面表示は外部ディスプレイ出力表示と同一に捉えることができ、そのポリシーからBlu-rayディスクのコンテンツ再生を禁止対象にしてしまうと考察する。

 しかも、Mac miniでは、使用する環境によってはモニタがHDCPに対応しているとは限らず、例え、グラフィックスドライバが対応していても、Blu-rayディスク再生の条件が整うとは限らない。従って、Mac miniのグラフィックスドライバは、GeForce 9400と定義を分け、WindowsのグラフィックスドライバもHDCP非対応とし、ディスプレイが対応していても再生できないようにしたと推測する。

 だが、興味深いことに、グラフィックスドライバがHDCPに非対応となっているのはWindows XP 32/64bitのドライバのみであり、Vista用ドライバの185.85ではHDCPに対応していることが確認できた。

 VistaはOSレベルでUDF2.5に対応(XPは別途ドライバが必要、OSXは10.5から対応)し、Blu-rayドライブを認識できることが一つの要因かもしれない。いずれにせよ、この不整合は謎であるが、Mac miniに使用されているGeForce 9400MのHDCP鍵の存在確認と、Blu-rayコンテンツの再生可能性の観点からは有効な発見である。

■結論

 GeForce 9400/9400MはHDCP鍵を内蔵しており、HDCP(COPP)に対応したグラフィックスドライバと、ディスプレイがあれば、Blu-rayディスクコンテンツを再生することができる。

 Mac miniでは、Windows XP 32/64bitではグラフィックスドライバがHDCPに対応していないが、Vista用ドライバではHDCP対応となった。よって、Windows Vista/7環境であれば、別途Blu-rayディスクドライブとHDCP対応ディスプレイと組み合わせることで、Blu-rayコンテンツの再生が可能である。

 なお、ディスプレイ一体型となるiMac、MacBook Pro、MacBook、MacBook Airでは、Windows XPのグラフィックスドライバがHDCPに対応している為、XPでBlu-rayコンテンツの再生が可能である。
チップセット名 グラフィックス名 デバイスID 機種 HDCP鍵 ドライバ
HDCP対応
ディスプレイ Blu-ray再生
OSX XP Vista OSX XP Vista
GeForce 9400M
(MCP7A)
GeForce 9400 0x0861 Mac mini (Early 2009) × × × ×
GeForce 9400M 0x0863 MacBook Pro (13-inch Late 2008, 15-inch.17inch) × ×
0x0866 MacBook White × ×
0x0867 iMac (20-inch,24-inch) × ×
0x0870 MacBook Air × ×

■追記1. Blu-ray再生について

 標準のSuperDriveをBlu-rayリードに対応したSony NEC Optiarc BC-5600Sに交換し、Windows7 RTMに下記のドライバを入れた環境でBlu-ray再生を確認した。

<インストールしたドライバ>
1.nVIDIA
  • nForce Driver 15.35
  • GeForce/ION Driver Release 190.03(nForce Driverにグラフィックスドライバも含まれるが185.85と世代が古いので更新)
2. Realtek
  • High Definition Audio Codecs Vista, Windows7 Driver (32/64 bits) Driver R2.31
<Blu-ray再生ソフト>
1. CyberLink

 Windows XPではHDCPは無効だが、Vista/7では有効になり、Blu-rayドライブとの組み合わせでMac miniでもBlu-rayタイトルの再生ができるようになる。


 なお、再生中は動画再生支援のハードウエアアクセラレーション(DxVA)も有効になり、CPU使用率は10%程度で済んだ。

■追記2. 地デジ再生について(2010/03/05)

 BootcampでWindows 7に切り替えることにより、USB接続の外付け地デジチューナーを使用し地デジ再生を確認した。

<環境>
1. Windows 7 Ultimate 64bit
2. GeForce/ION Driver Release 196.21
3. Buffalo DT-H10/U7 ver 1.10


再生時のCPU使用率は10%でコマ落ちなども特にない。また、UI操作のレスポンスは悪くなく、Windows Media Centerからの操作ももたつくことは無い。



最終更新:2010年03月05日 00:22