CPU脆弱性問題、速度と省エネどっちが大事? プログラマー小飼弾が解説「省電力が注目されるまで、高速精度がCPUにとって唯一無二の価値だった」
Intelなどの半導体大手で発覚した「CPU脆弱性問題」。パッチ等の対策を施すことで、コンピューターの動作速度に影響を及ぼす報道が話題となっています。
1月8日放送『小飼弾の論弾』において、プログラマー小飼弾氏と山路達也氏は、CPUの設計における問題点を指摘し、これまでの変遷から今後の対策を明示しました。
─人気記事─
『ポプテピピック』15分アニメ×2回放送に中年男性ガチ困惑「録画失敗したのかと思った」
4億円詐欺のスパコンベンチャー『PEZY Computing』はどんな会社? 社長の人物像は? プログラマー小飼弾が解説「技術的には平凡なもの」
パフォーマンスの体感速度は使っているときの速度
山路:
脆弱性問題に関連して、「コンピューターの動作速度において、25%近くパフォーマンスがダウンするんじゃないか」という報道がありましたね。
小飼:
Webブラウザとかで、実際に遅くなったみたいです。
山路:
ただ、最近のコンピューターは24時間フル稼働で、最大限にCPUを使っているわけではないですよね。 そんなに影響あるものなんですか?
小飼:
とても影響があります。普段は休んでいるけど、いざ人間が使うときは、一挙に高速で動かすためのテクニックを使うので、フル稼働状態になるわけです。
山路:
高速で動かすためのテクニック?
小飼:
クロック【※】を目一杯上げ、パイプライン【※】もなるべく埋めて、キャッシュメモリ【※】を使う。
※クロック
クロック周波数。CPUの処理性能を示す、秒間動作周波数であり、単位はHz(ヘルツ)。
※パイプライン
CPU処理速度向上のための技術。命令系統の設計技法。
※キャッシュメモリ
高速で読み書きできる小容量メモリ。CPUはキャッシュを使うことで、処理能力を向上させている。
山路:
ユーザーが快適に使えるために最大限の性能を、そこに使っているから、パフォーマンスが落ちるとノロノロ動く感じがする?
小飼:
あくまでも、ユーザーの体感速度は、そのコンピューターの最高速度なんです。自分が使っているときには、スピードを上げて欲しいわけですよ。
新機種のトレンドは速度より省電力?
小飼:
安全性のために速度を落とした結果、Appleも怒られたんです。
山路:
最近のバッテリー問題【※】の話ですね。
※AppleのiPhoneバッテリー問題
2017年12月20日、Appleが旧型iPhoneの性能を意図的に制限していた報道。バッテリーの誤作動を防ぐための措置と発表した。
小飼:
省電力がクローズアップされるまでは、高速精度がCPUにとって唯一無二の価値だったんです。Intelはそれで勝ったわけですから。
山路:
例えば、今までであれば新製品を出して、「20%性能がアップ」と言っていたのが、脆弱性に対応するために25%も遅くなってしまったら、真っ青ですね。
小飼:
しかも最近は、昔よりムーアの法則【※】も緩やかになっていて、コンピューターモデルに速度差は少ない。今はどっちかというと速度よりも省電力に振っている。
※ムーアの法則
Intel創業者のゴードン・ムーア氏による、半導体の将来予測指標。チップの処理能力と小型化の相関を表す法則。
対策が難しい脆弱性
山路:
キャッシュを消す方法もあると聞きましたが、CPUのキャッシュを取り出すのは、ユーザーからだとなんとも手出しできないわけですよね?
小飼:
正しくは、カーネル【※】が使ったメモリの残滓がキャッシュに残っている状態。加えてもうひとつの方法としては、ユーザーがアクセスしようとしたら、CPUの設計を変えてちゃんとSEGV【※】を出すことですね。
※カーネル
OSの中で中核の機能を受け持つ基本的な部分。ハードウェアとソフトウェアの中間として、管理している。一般的に、ユーザーは直接制御できない。
※SEGV(セグヴィー)
セグメンテーション違反を表すプログラムのエラー。segfault。一般保護違反。
山路:
悪用しようと、ひそかに研究しているクラッカーとかはいそうですね。
小飼:
NSA【※】やロシアとかも脆弱性を突く技術を持っているかもしれない。
※NSA(National Security Agency)
アメリカ国家安全保障局。米国における諜報機関。
困難なのは設計ではなく考え方
山路:
CPUの設計などで対応するにしても、例えば今年出てくる新製品の場合や、大がかりな修正や検証をしたところで、どれくらい対応できるものなんでしょうか?
小飼:
OSとかアプリケーションで対応してもらうしかない。パフォーマンスは落ちますが、ソフトウェアのほうで、対応しようと思えば対応可能です。
山路:
もしIntelが、CPUの設計を変えて対応したとしても、今までのCPUと同じ仕組みを持つものであれば、遅くなってしまうんですか?
小飼:
必要なのは、根本的な考え方の変革です。実は、今のコンピューターの仕組みは、僕がMacSE【※】を買ったころから、たいして変わっていません。速度の違いこそあれ、要はコンピューターがやっている作業は、単なるデータのコピーなんですよ。
※MacSE(Macintosh SE)
1987年に販売されたApple社のコンピューター。
山路:
言ってみたら、画面に描画するのも、ビデオのメモリにデータを移しているだけですか?
小飼:
GPU【※】のメモリに、ですね。
※GPU(Graphics Processing Unit)
画像処理に強い集積回路。CPUとはアーキテクチャが異なる。
山路:
結局、CPUがやっているのは、大小を比較することなど。
小飼:
そういうこともやっているんですけれども、単純にデータのコピーのオーバーヘッド【※】が一番大きい。理由として、記憶媒体の特性がそれぞれかなり異なるからなんです。
山路:
今後変革される可能性はありますか?
※オーバーヘッド
CPUにおいては、本来の目的以外の処理による負荷。
小飼:
すでにSSDが出てきた時点で、考え方はもっと変えていい。
山路:
つまり、今までとは違う考え方のメモリが今後出て来る可能性もある?
小飼:
今のOSの延長ではなく、ランダムアクセス【※】も速くて、電源をオフにしても中身が消えないメモリ、というのを前提にしてもいい。設計によって、CPUとメモリがなぜ遠くなったか? もっと性能は低くてもいいから、その代わりメモリとCPUを近づけておく前提の設計もあって、一部はGPUとして常駐しているわけです。
※ランダムアクセス
記憶装置へのアクセス方式。直接的なアクセスを可能とする。