SSブログ

Zen2はWindows7でも動くのか [CPU]

Zen2_w7.png

先日、自ら製品を購入して試すまで、他人から得た情報を元にゴチャゴチャと考えた事をこのブログに書いて来たが、それも自分自身で“それ”を経験する事で“エアプ”からの脱却となった。

そしてテスト環境での検証をもってメインPCへZen2を移す決意を得た私は、この度それを行った。


テスト環境からZen2(Ryzen 5 3600X)を移植したメインPCの環境は以下の通り。


OS:Windowz7 Professional x64

CPU     :Ryzen 5 1600X (Ryzen 5 3600Xに交換)
CPUクーラー:Scythe SCASM-1000 (10年前に買った骨董品)
マザーボード:ASUS Prime B350 PLUS (UEFI ver. 5007)
メモリ   :DDR4 3200 8GB x4 (計32GB)
ビデオカード:AMD Radeon RX570
SSD     :ADATA XPG SX8000 256GB
他ストレージ:SSD 1台、HDD 3台、BD-RW 1台、USB HDD 1台
拡張カード :SATA3 (Asmedia)、USB3.0 (Renesas) 各1枚
電源    :PS-TR2-0500NPCGJP-G-V2


また、CPUの交換は以下の手順で行った。

1. パソコンを分解してCPUを交換
2. UEFIをCMOSクリア
3. メインメモリを1枚だけ取付け
4. パソコンを拡張カード以外元通り組立て
5. 電源を入れてUEFIの設定変更
6. メインメモリと拡張カードを全て取付け
7. Windowz7 起動


CPU交換後にWindowz7が起動すると、まずはデバイスドライバのインストールが始まる。

これはCPUの交換に伴ってCPUから出ているPCIeバスが別のものになるため、これに接続されている全てのデバイスを改めて認識し、デバイスドライバを当てる必要があるからだと推測する。

そして全てのデバイスが認識(一部例外あり)すると、再起動が促されるので再起動する。

再起動が終わると、デスクトップを見る限り元の環境とまったく変わらない画面が出迎えてくれた。


さて。

なんとか無事にWindowz7が起動したところで、まずはZen2のCPU内蔵デバイス各種が正しく認識されているか、デバイスマネージャを見てみた。

Zen2_test3.png

するとほとんどのデバイス(CPUの機能として提供される各種システムデバイスや、CPUから出ているPCIeなど)は従来のAMD製デバイスドライバやMicro$oft謹製の汎用ドライバによって認識されていたが、「ユニバーサル シリアル バス (USB) コントローラー」というものにデバイスドライバが当っていない。これは恐らく、「CPUに内蔵されているUSB 3.1 Gen1のコントローラ」だ。

他の「ユニバーサル シリアル バス コントローラー」を見ると、「AMD USB3.1 eXtensible Host Controller」というモノが存在するが、これはB350チップセットのモノだ。

もしこの時点でZen2内蔵のUSBコントローラにUSBキーボードやマウスを接続していたとすれば、キーボードもマウスも認識されない。幸いにも、私はチップセット側のUSBポート(PS/2コネクタの上にあるUSB2.0)にキーボードとマウスを接続するので、その点に限ってはまったく問題にならなかった。


では、CPU直結のUSBポートは生きているのか、死んでいるのか?

試してみると、バックパネルの下図“3番”のUSB3.1 Gen1ポート4つが利用出来ない。
“4番”のUSB 3.1 Gen2ポート二つはB350チップセットからのもので、利用出来た。
当然現在キーボードとマウスが接続されている、11番のUSB2.0ポートも利用可能。

Zen2_test4.png
この図はPrime B350 PLUSのマニュアルより拝借した。

という事で、CPU内蔵のUSB3.1は利用出来なくなっていた。

ちなみにチップセットドライバはZen2対応の最新版 v1.07.07.0725を事前にインストール済み。
しかし、この時CPUは1600Xだった。
もしかすると、今なら前回インストールされなかったUSBドライバが入るのかもしれない。

そこで改めてチップセットドライバをインストールしてみると・・・やはりダメだった。

結論としてZen2をWindowz7で利用する場合、CPUから出ているUSB3.1にデバイスドライバが無く、CPU直結の4つのUSB3.1 Gen1ポートが利用出来ない。(何か他に利用出来るデバイスドライバがあれば良いのだが)

もしUSBポートが足りなければ、ハブで増やすか拡張カードで増設するしかないようだ。


次に私が確認したのはアイドル時の挙動を調べる事。

これはHWiNFOのリアルタイムでCPUの動作周波数を表示する機能を利用した。

調べ始めるとこれが意外にも、1600Xの時とほとんど変わらないように見える。

電源プランはWindowz7標準の「バランス(推奨)」のまま。

ブラウザでWebページを開くと一瞬MAXの4.4Ghzまで動作周波数が上がるが、すぐに2.2Ghzまで落ちてその後色々操作しても2.2Ghzから上がる事はほとんど無い。負荷が消えると即座にアイドル状態に戻っている証拠だ。

他にも普段利用するテキストエディタやペイント等色々試したが、無用な動作周波数の上昇は見られなかった。

Windowz10ではあれだけ激しく上下した動作周波数が、Windowz7では実に大人しい挙動を示すのだ。

一体これは何故なのか。理由はわからないが、これは歓迎出来る事だ。

Zen2_test5.png
Windowz7では最大ブースト時のコア電圧も1.45VとWindowz10の時(1.5V)より低い。
これはOSの違いというよりもマザーボード(AGESAのバージョン)が違う為なのか?


アイドル時の次は実作業時の挙動だ。

これは連続した負荷で動作周波数がどのように変化するのか、アイドル時と同様にHWiNFOで調べた。

まずSuper Piという円周率の計算速度を計測するベンチマークを試す。
これはプログラムが古く完全なシングルスレッドなので、6つあるコアの一つだけ4.4Ghz程度まで動作周波数が上がるが、他のコアは完全に2.2Ghz固定で、何故かいくつかのコアをたらいまわしするように負荷のかかるコアが変化していく。

これは最大まで動作周波数を上げた後、コアの温度が上がると温度が低いコアにスレッドを引き渡しているのか?

またこの変化は#2~#5のコアだけで行われていた事から、同一のCCX内だけで行われていると推測される。


Super Piの次は雑多なファイル4000個ほど(合計8.6GB)をWinRARでZip圧縮してみる。

この操作の場合負荷が全てのコアにかかるが、6コア全てが常にフルブーストというわけではなく、時々動作周波数が落ちるコアが1~2ほどあった。
また、6コア全てがブーストされている時の平均最大動作周波数は4.25Ghz程度で、4.2~4.3程度の振れ幅で6つのコアが動作していた。

完全なシングルスレッドであるSuper Piの時よりも、最大動作周波数は100Mhz以上低くなった事になる。


そして最後はWaifuと呼ばれる画像拡大ソフトで写真(1600x1920のjpegファイル)を2倍に拡大するテスト。

このテストでは6つのコアが常にフルブースト状態で、変換中常に4.1Ghz程度で動作周波数が変化していた。

All_core_boost.png

どうやら全てのコアを自動オーバークロックする場合、4.1Ghz近辺が上限であるようだ。

こうした挙動は、今時の多コアCPU全てに共通するのだろう。これよりも高い動作周波数を全てのコアで行うには、相応の冷却手段とUEFIやオーバークロックツールで電圧などを設定してあげなければならない。


というワケで、Windowz7を動作させた時のZen2(Ryzen 5 3600X)の挙動は、初代Zenの1600Xと大した違いを見出す事が出来なかった。

また前回の環境と大きく違うため消費電力の測定は行わなかったが、平均値は恐らく1600Xの時とほとんど変わらないと思われる。

ただ、7nmプロセスにも関わらずCPU単体の消費電力はHWiNFOによる測定で最大92.378Wと大きかった。これは80W程度だった1600Xよりもかなり高い。

これは最大で4.4Ghzという高い動作周波数でありながらコア電圧が1.45Vと高いままである事が原因と思われる。消費電力は電圧x電流で表され、CPUの動作周波数が上がれば電流は増えるため、周波数を上げながら消費電力を抑えるには電圧を下げるしかない。(他には電源を切れる回路を不要時は徹底して電源を切るクロックゲーティングという技術もあるが)

一方AMDのCPUに使われている半導体製造プロセスはIntel製と比べて低い周波数で限界に近付き、(Intel製も含め)昨今の微細化されたCPUのほとんどがそうであるように、それ以上動作周波数を上げようとすると二次曲線的に高い電圧を要求する。

このため、Ryzenは回路自体の効率は良くとも、動作周波数を上げていくとIntel製のCPUよりも激しく消費電力の上昇が発生しやすい。


それから最後の最後、メモリの動作周波数について。

やはり私の環境でも、初代Zenの1600Xの時よりも安定して動作する限界値が下がってしまった。

具体的には、今までメモリモジュール4本が1.25Vで3200Mhz動作していたのに、Zen2になってこれが不可能になってしまった事。

現在は安全マージンを多めに見て電圧は1.35Vで、さらにアクセスタイミングも16-18-18-18から20-20-20-20に落した上で、3200Mhzとしている。

この辺りはやはり、UEFIのアップデートを待つしかないだろう。


今回の結論としては、「ASUS Prime B350 PLUS(5007」と「Ryzen 5 3600X」の組み合わせでWindowz7を使う場合、「GIGABYTE AORUS B450 M」と「Ryzen 5 3600X」の組み合わせでWindowz10(19h1 1903)を使う場合と比べると挙動がかなり違うという事。

前者では1600Xと比べても違和感の無い挙動であったが、後者は現在ネット上で騒がれているような不可解な挙動によって消費電力が無駄に上がってしまっている。

この理由はOSの違いなのか、UEFIの違いなのか、それともAGESAのバージョンが違うためなのか、今の所判断が出来ない。

とはいえこれ以上この件で割く事が出来る時間も無いので、Windowz7のサポートが切れるまでこのまま行こうと思う。

その間に諸々の問題が解決される事を祈って。


参考

Ryzen 5 3600X アイドル時消費電力
https://17inch.blog.so-net.ne.jp/2019-07-21

Ryzen 7 3800Xが出たようだが・・・
https://17inch.blog.so-net.ne.jp/2019-07-12-1

Zen2はWindows7をサポートしない
https://17inch.blog.so-net.ne.jp/2019-07-10

Zen2はUEFIの完成度に問題アリ
https://17inch.blog.so-net.ne.jp/2019-07-09

各ニュースサイトのZen2レビュー記事を読んで
https://17inch.blog.so-net.ne.jp/2019-07-08


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット