以前、ややこしいややこしいと書いた Zen APU に関して、Raven2 (Pollock)のx86_Model が 20h
となることがわかった。
インデックス
x86_Model
現在主流の x86-64プロセッサはその判別に Family ID と Model を用いられる。
基本的に、Family ID は ベースとなるアーキテクチャを、Model はより詳細なプロセッサの種類を表す。
例で言えば、Ryzen 5 2600 は Family ID: "0x17"
、Model: "0x8"
となっており、この値は Linux Kernelの温度センサーに関するコードでは Zen+ と判別され、1GCCでは znver1
と判別される。2
そして、Linux Kernelの温度センサーに関するコードを読むと、以下のように記述されている。
case 0x1: /* Zen */ case 0x8: /* Zen+ */ case 0x11: /* Zen APU */ case 0x18: /* Zen+ APU */
これに従えば、"0x18"
は Zen+ APU 、Picassoとなるが、
Zen APU であるRaven2までも x86_Model が "0x18"
となっており、それによって Zen+ APU /Picasso と判別されてしまう――というのを前回記事にした。
いかに Zen APU は複雑か | Coelacanth’s Dream
Pollock の x86_Model は “0x20”
そういうことで Raven2 の影が薄いことを勝手に憂いていたが、先日投稿された ChromiumOSのリポジトリにおける Coreboot へのパッチで、Pollockの x86_Model が "0x20"
であることがわかった。
コミットメッセージでは FP5ソケット が "0x18"
としているが、これはChromebookに採用される FP5ソケット 搭載のAPUが Raven 以降の Picasso 、Raven2 (Dali) のみであるからと思われる。
そして、FT5ソケット を "0x20"
としているが、それに搭載するAPUは Raven2 (Pollock) だけとなっている。3
少なくとも Raven2 (Pollock) は、12nm Zen+ APU /Picasso ではなく、14nm Zen APU /Raven2 (Pollock) としっかり判別されるはずだ。
気がかり
気がかりなのは、CPU-Z4といったハードウェアの情報を表示するソフトウェアでFT5ソケット Raven2 (Pollock) を見た時、コードネームの項目に表示されるのは Raven2 となるか Pollock となるかだ。
個人的には、Pollock は Raven2 のリビジョンの1つというものであるため、Raven2 と表示してほしい。
それと、Raven2 (Dali)は恐らく Picasso と判別されるままだろう。
Chromebookには Raven2 (Dali) ベースの Ryzen 3 3250C 、Athlon Silver 3050C 、 Athlon Gold 3150C も採用されるが、これらは数字セグメント的に FP5ソケット に搭載される可能性が高い。5
そしてコミットメッセージから x86_Model は "0x18"
となるはずだ。
つまり、AM4ソケット 、FP5ソケット に搭載される Raven2 、Raven2 (Dali) は Picasso と判別され続け、
FT5ソケット に搭載される Raven2 (Pollock) は正しくそのままに判別される。
やっぱりややこしいままな気も。
-
https://github.com/torvalds/linux/blob/b02c6857389da66b09e447103bdb247ccd182456/drivers/hwmon/k10temp.c#L589 ↩︎
-
https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/i386/cpuinfo.c#L109 ↩︎
-
soc/amd/picasso: Add Kconfig option for chip footprint (Ia4663d38) · Gerrit Code Review ↩︎
-
AMD Ryzen™ 3 3250U | AMD /AMD Athlon™ Silver 3050U | AMD /AMD Athlon™ Gold 3150U | AMD ↩︎