巻きでメモ

ハード・ソフト面でのメモとか。

CPUIDを調べる

CPUID

Hackintoshをする際、CPUがそもそも対応しているかの見分け方ですが、CPUIDというものがあります。
Clover Configuratorにも項目があります。
調べると5桁の16進数で表されています。

CPUIDの見方

手元にintelのCPUが載ったwindows機があるならば、プロセッサー識別ユーティリティーで搭載のCPUの確認ができるようです。

https://corpredirect.intel.com/Redirector/404Redirector.aspx?https://www.intel.co.jp/content/www/jp/ja/support/processors/processor-utilities-and-programs/intel-processor-identification-utility.htm

それでは調べ方です。

https://en.wikichip.org/wiki/intel/cpuid

ここで世代を調べます。その後、それぞれの世代の詳細ページに必要な情報が表に載っています。

en.wikichip.org

これを並べ替えます。
たまたまこintelのページでi5-7300UのCPUIDが公開されていたので、それを例に見てみましょう。

https://www.intel.co.jp/content/www/jp/ja/support/articles/000006831/processors/processor-utilities-and-programs.html

Kaby Lake-UのCPUIDは

806E9

です。

それぞれ順番に、Extended Model,Extended Family,Family,Model,Steppingです。

まず最初に来るのはExtended Modelです。
正直に言って数字の傾向が掴めません。
どうやらKaby Lake以降ではデスクトップと強力なモバイルが9、省電力モバイルが8みたいですが、Ice Lakeだけ7です。 なんとなくTDP35Wで線引きされてる気がします。 Sky Lakeはデスクトップはサーバー含め5なので意図的に揃えたのでしょうか。なお省電力モバイルは6です。

次に来るのはExtended Familyです。WikiによるとintelAMDはFamilyの値をExtended Familyとの合計値にしているらしく、0です。
3桁目はFamilyで、これも最近のintelのCPUは6です。

4桁目はModelで、これはアーキテクチャやダイを示しているようです。
今のintelの主流はSkylakeアーキ(14nm)で、クライアント向けはE、サーバー向けは5です。
なお、10nmのCannon Leke世代のIce LakeなどではDになっていたり、逆にEのままだったりサーバー向けはCやAになってたりします。 これもよくわかりません。

最後はSteppingです。これは一般的なステッピング(U0やP0のようなもの、ちなみにこれはCPU-ZではReversionと表示される)ではなく、工場の製造デザインによるものだそうです。
詳細はintelが書いてくれています。
Kaby Lake-Uでは9のようです。
サーバー向けSkylakeは4,Cascade Lakeは5〜7となっています。

https://www.intel.co.jp/content/www/jp/ja/support/articles/000006831/processors/processor-utilities-and-programs.html

軽く調べた所、Cascade Lakeに関してはステッピングの変更によってこのSteppingも変更になっているようです。

  • 50654 SKX H0,M0,U0
  • 50655 CLX 初期品(どうやらES/QSとベンダーへの初期出荷分はこれらしい)
  • 50656 CLX B0,L0,R0
  • 50657 CLX B1,L1,R1(今ark.intelを見るとこれしか載ってない)

番号が進むにつれ、脆弱性対策がされています。これはCoffee Lakeも同じらしいです。 調べると9700Kと9900KのCPU-Zの表示がP0の場合Cで、R0だとDに進んでいます。 この世代の宿命ですね。

ちなみに、H/BはCascade lake-SPのXCC、M/LはHCC、U/RはLCCのダイが当てられています。
Xeon-SP、特にGoldでコア数とステッピングが当てはまらないのがちょくちょくあるのは、コア数以外の条件(PCIeやUPIなど)のせいでXCCを使う例があるのでしょう。
なお、XeonではないですがCore-Xでもこの法則は当てはまり、10980XEはB1、10900XはR1だったりします。

CPUIDで何がわかるか

先ほど上げましたが、CPUIDで同じグループならば基本的にそのグループは弾かれることがない=FakeCPUIDする必要がない、ということです。
最新のCPUやRyzenなどOS側がそのCPUIDをサポートしていない場合、FakeCPUID(つまりサポートされているCPUグループに偽装)しないと使えません。
また、CPUIDが一致している=Hackintoshで使える可能性が高いです。

iMac Pro(2017)でXeon W-2100系が搭載されたので、50654がサポートされたことがわかります。
よって、H0とM0とU0が使えることになりました。
なので、以下のモデルが使えることになりました。

  • Xeon W-2100(M0,U0)
  • Xeon W-3100(H0)
  • Xeon SP Skylake-SP(H0, M0,U0)
  • Skylake-X Core i9-7900X系、9900X系(M0)

Mac Pro(2019)対応のmacOSが出るまでは10900X系などは使えなかったわけですね。(10900Xは50655〜50657)

Mac Pro(2019)が出たことにより、Xeon W-3200系が搭載され、50655〜50657までが使えるようになりました。

中身が一緒だから使える、という法則ですね。とはいえチップセットの問題もあるので一筋縄ではいかない気もしますが。
ただ、最近のチップセットは中身がほぼ同じで機能が若干異なるだけのようで、最新の機能などでサポートされてなければ使えない、みたいな状況のようです。
ex)optane、CNVe、SLI、NVLINK、CrossFire(除Infinity fabric)など

そういえば、新Macbook AirにIce Lakeが乗ったみたいですね。 なお、TDP的にはYの方ですが本当にIce lake-Yなのかが不明です。 Ice lake-Uは706E5、Yは706D5なのでどちらが解禁されたのかがわかりません。
ゆくゆくはMacBook ProもUが載るはずなのですが、現時点でIce LakeノートPCでHackintoshをする人は注意が必要そうです。