先週Windows 11が発表された。しかし、その動作条件は厳しく、インテルCPUなら第8世代以降、AMDならZen 2世代というものだった。あまりに厳しく、かつ、Microsoftが配布したアップグレードが可能かどうかを判定するプログラムが可否しか表示しなかったため、週末大きな騒ぎになった。今週に入り、MicrosoftはブログでWindows 11のアップグレード条件をアップデートしたとの発表を行った。これを受けて「第7世代のインテルCPUまで対応」と早計な記事も出たようだが、同ブログでMicrosoftが述べたのは
Update on Windows 11 minimum system requirements
https://blogs.windows.com/windows-insider/2021/06/28/update-on-windows-11-minimum-system-requirements/
As we release to Windows Insiders and partner with our OEMs, we will test to identify devices running on Intel 7th generation and AMD Zen 1 that may meet our principles.
Windows InsidersへのリリースやOEMメーカーとの提携に伴い、当社の原則を満たす可能性のあるインテル第7世代およびAMD Zen 1を搭載したデバイスを特定するためのテストを実施します。
と言っている。アップグレードの対象を第7世代、Zen 1世代に拡大するとは言わず、第7世代、Zen 1世代のPC(デバイス)のうち、「当社の原則を満たす可能性のある」機種を「特定」するためのテストを行う、としか言っていない。
OEMと協力して、第7世代、Zen 1世代を搭載したPCから原則を満たすものを「探します」と言っているだけなのだ。第7世代、Zen 1世代を搭載したPCには、原則を満たすものと、満たさないものがあるということだ。もし、CPUスペックだけが条件なら、こうはならない。CPUスペック以外にもWindows 11へのアップグレードの可否をきめる何かがある。しかも、Microsoftは「条件」ではなく「原則」と言っている。おそらく、アップグレードする、しないの線引きは、Windows 11が動く、動かないという、技術的な問題なのではなく、マイクロフソトがアップグレード対象ハードウェアは、ここまでにしたいと決めた結果なのだ。
実際、プレビュー版では、CPU制限が行われおらず、筆者の手元の環境では、第4世代のインテルCPUを搭載した機種でもWindows 11が動いている(写真01)。Windows 11のプレビュー版は、Windows 10のWindows Insider ProgramのDev Channelで直前まで配布されていたものとカーネルファイルサイズなどに大きな違いがない。レジストリの表示バージョンも21H2のままだ。新しいデスクトップなどの「見た目」は別として、プレビュー版を見るかぎり、内部的にはWindows 11とWindows 10は、かなり似ていて、Windows 10 Ver.21H1と呼んでもおかしくないレベルだ。
ポイントは2018年か?
インテルの第8世代CPUは、おもに2018年に出荷された。Windows 11のアップグレードは、この時期にWindows 10をインストールして出荷されたPCが対象となる。第6~7世代のCPUの出荷時期を整理してみる(話を簡単にするためIntel Core iシリーズに限定)。
- 第6世代Core i3/5/7 2015Q3~2016Q3
- 第7世代Core i3/5/7 2016Q3~2017Q2
- 第8世代Core i3/5/7 2017Q3~2019Q4
となる。
2018年、一番の話題は、年明けに明らかになった「Spectre」、「Meltdown」(以下これらの変種も含め以後Spectre/Meltdownと表記する)と呼ばれるプロセッサの脆弱性だ。これは、2017年に発見され、同年6月1日に、AMD、ARM、IntelなどのCPUメーカーに通知された。しかし、脆弱性自体の一般向けへの発表は2018年1月。対策がないまま脆弱性を公開すると攻撃対象になるということから、対策のメドが付くまでは発表は伏せられた。
2017年6月(Q2)の時点で、第6世代はすでに全SKUが出荷済み、第7世代は一部が出荷開始したところ、第8世代は出荷前という状況だった。つまり、全SKUが出荷前に対応できたのは、第8世代から。第7世代は、マイクロコードのアップデートで対応、第6世代は、当初、一部の製品は利用が非推奨とされた(ただしその後の追加テストで非推奨は解除されている)。
Spectre/Meltdown対策のマイクロコードアップデートは、CPUの性能低下を引き起こした。それを緩和する手法(retpolineと呼ばれるコードの書き換え)がのちに発表されたため、これを導入するWindows自体のアップデートも行われた。
retpolineは、Jump命令をPush+Ret命令に置き換えるもので、性能低下を押さえることはできるものの、命令数が増えるため本来の性能に戻るわけではない。また、インテルが第11世代で導入した「Intel CET(Control-flow Enforcement Technology)」に影響してしまうらしい。こうした背景からMicrosoftとしてはWindows 11では、Spectre/Meltdown対策済みCPUのみを使い、retpolineなどの緩和策を外したいのだろう。両者が混在すると1つのプログラムモジュールファイルをCPU別にretpolineあり、なしの2種類用意しなければならなくなる。
第7世代、Zen 1世代のCPUを搭載したPCから「当社の原則を満たす可能性のある」機種を「特定」するというのは、ファームウェアのSpectre/Meltdown対応状況を調べるということなのではないかと考えられる。つまり、第8、Zen 2世代のCPUは、CPUの出荷前にSpectre/Meltdown対策が行われたため、これを搭載したPCの初期ファームウェアがSpectre/Meltdown対策済みになっている。
これに対して第7世代/Zen 1世代CPUは出荷途中でSpectre/Meltdownが判明したたため、これを搭載したPCの中には、初期状態で対策済みファームウェアが搭載されおらず、アップデートが適用されていない、あるいは配布が終了している、そもそも配布されていないものが存在する可能性がある。このため、この世代のPCに関しては、機種ごとに調査する必要がある。
そういうわけで、インテルの第7世代、AMDのZen 1世代を搭載したPCのWindows 11へのアップグレードはSpectre/Meltdown対策された一部の機種に限定されると考えられる。
Windows 10については、2025年まで、半年ごとの機能アップデート(半期チャンネル)でのアップデートが続く。あと4年もあるので、少しは新機能も入るのではないかと思われる。Windows 11に搭載される新機能のいくつかは、相互運用性の観点から、いくつかはバックポートが行われるかも知れない。たとえば、WSL2は、20H1(Windows10 Ver.2004)で搭載されたが、19H1、19H2(同Ver.1903、1909)でも利用できるようになった。また、機能アップデートとは別にWindows10の機能を更新する「Windows Feature Experience Pack」という仕組みも現在プレビュー段階にある。