このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第567回

発表されたLakefieldはカスタマイズ版Windows10向け インテル CPUロードマップ

2020年06月15日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

ハイパースレッディングを無効にしたのは
ARM向けのスケジューラーを流用するため

 今回のLakefieldは、Surface Neo向けというか、カスタマイズ版Windows10向けのSpecial Editionではないのかという気がする。その根拠は2つあって、まず1つはコア/スレッドが5/5構成なことだ。

 連載538回でも書いたが、マイクロソフトはARM版Windows 10でbig.LITTLEをサポートしており、このスケジューラーをそのままx86に持ち込むのは可能だろうとしたわけだが、どうも本当にそのようだ。

 なぜかと言えば、現状ARMのコアは自動車向けおよびサーバー向けの一部製品を除くとSMT(Simultaneous Multithreading:同時マルチスレッディング)に対応していない。これはQualcommのチップも同じである。

 一方SunnyCoveにしろTremontにしろ、SMT(ハイパースレッディング)には標準対応である。もし今回マイクロソフトが、Lakefield向けに新規にスケジューラーを起こしたとすれば、当然SMT対応にするだろう。実際見かけ上はBig coreが2つ、Little coreが8つのシステムと扱えるからだ。

 ところがbig.LITTLEは最大でもコアが8つまでしか扱えない(実際、QualcommのSnapdragon 8cxはKryo 495×8の構成である)。ハイパースレッディングを無効にした理由は、まさにARM向けのスケジューラーをそのまま流用したいためではないかと思われる。

 今回のプレスリリースを読むと、中に「ハードウェアによりOSスケジューラーにガイドを提供:CPUとOSスケジューラーがリアルタイムに通信して、アプリケーションが必要とする正しいコアに割り当てられる」とあるのは、おそらくbig.LITTLEと同等のAPIをLakefieldが提供しており、Windows 10はこれを利用してスケジューリングを行なうものと思われる。

 もう1つの理由は拡張命令である。SunnyCoveはSSEに加えてAVX/AVX2/AVX512までに対応しているが、TremontはSSE 4.2止まりである。したがって、AVXを利用するアプリケーションが来たらSunnyCoveに割り当てるような形になるだろうと予想したのだが、そうではなくLakefieldそのものがSSE 4.2までの対応になっている。

 つまりSunnyCoveコアを搭載しているにも関わらず、AVX命令が一切使えないことになってしまったわけだ。AVXだけでなく、連載525回で説明したGNAも無効化されていると思われる。理由はこれもbig.LITTLEである。

 ARMのbig.LITTLEでは、Big coreとLittle coreがサポートする命令セットは完全に同一でないといけない。この制限がLakefieldにもモロに引っかかることになったのだろう。

 当初はAVX命令が来たらフックを掛けてSunny Coveコアにスレッドを移動する、という芸当をスケジューラーに組み込むと考えていたのだが、そうした芸当は一切不可能ということになる。

 ただこれはbig.LITTLE互換のスケジューラーの制限であって、それ以外のスケジューラーを開発すれば、SMT対応、AVX対応も可能ということになる。

 Linuxカーネルなどに向けて、そうしたカーネルスケジューラーを内部で現在開発中なのではないか、という気もする。

 それが用意できたら、フルスペック(?)のLakefieldが登場するという可能性もありそうだ。もっとも、そうした製品が市場からどこまで要求されているのかは「?」である。

 今回の構成を見ていると、なんとなくSurface Neo向けだけで終わりそうな予感もある。果たしてそれ以外の採用事例が出てくるだろうか?

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン