はじめに
昨年(2012年)の6月13日に、IntelのCPUで動作する一部のOS、仮想化ソフトウェアなどでセキュリティ上の問題が発生するというニュースが流れました。この件は普通にパッチが各社、各開発元から供給されて、いつものように対応がとられました。
今回はこの脆弱性そのものではなく、脆弱性の元になったIntelのCPUにおけるSYSRET
命令とソフトウェアの開発にまつわる話題について書いてみたいと思います。
昨年(2012年)の6月13日に、IntelのCPUで動作する一部のOS、仮想化ソフトウェアなどでセキュリティ上の問題が発生するというニュースが流れました。この件は普通にパッチが各社、各開発元から供給されて、いつものように対応がとられました。
今回はこの脆弱性そのものではなく、脆弱性の元になったIntelのCPUにおけるSYSRET
命令とソフトウェアの開発にまつわる話題について書いてみたいと思います。
後藤 弘茂さんによる、AMDを中心としたHSAについての解説記事です。
後藤さんの連載から関連する過去記事を3つ紹介します。
最初のころと比較して、仕様そのものがとても大きくなりつつあるように見えます。確かに中間言語「HSAIL」とそれを取り巻くソフトウェアレイヤーは柔軟性が高いもので、あれこれ取り込めるのはわかるのですが、ちょっとやりすぎ感があるように見えます。結局のところ、かかわる各社各様の思惑がそのまま仕様に盛り込まれているようにも見えます。
また、AMDから見ると、これは対NVIDIA戦略の一環という側面が強いこと※1もあって、売り文句をなるべく多く用意したいというところもあるのかもしれません。
思考実験的に書いてみた本コラムですが、2年たった現在では異なる考えを持っている箇所があります。修正を施そうかとも思ったのですが、あちこち修正するよりも当時のコラムは当時のままにしておき、そのことを文頭に表明しておく方がより良いのではないかと思えたので、本追記を加えました。
ご参照いただく際には上記のことを念頭においていただければと思います。
Intelが初代8086を生み出してから、今日(こんにち)のIntel Core iシリーズ(Haswell)にも続く64ビット拡張までを順番に見てみたいと思います。その際に、64ビット拡張としてAMDが採った手法と、それまでのIntelが行ってきた拡張手法を比較し、Intelが最終製品に反映させなかったIA-32の独自64ビット拡張であるYamhill Technologyの姿について考察してみたいと思います(後述しますが、最終的にIntelはAMDの設計と互換性の高いClackamas Technologyを採用したため、Yamhill Technologyは市場に出ることなく終わりました)。
AppleがiMacの故障時の無料交換を行うという記事です。
27インチiMacのクアッドコアIntel Core i5(3.1GHz)モデルおよびIntel Core i7(3.4GHz)モデルにおいて、搭載グラフィックスのAMD Radeon HD 6970Mの一部に欠陥があることを明らかにし、無料交換に応じると発表した。
グラフィックチップ関連での故障時の無料交換は時々発生しますね。今回はAMD Radeonが原因とのことですが、以前はNVIDIA GeForceが原因で故障時の無料交換をしていたことがあります。
急激な温度変化が起こる部品だけにいろいろと難しい問題があるのでしょう。
HP ProLiant MicroServerのCPUがAMDのモデル(非Gen 8モデルと言った方がわかりやすいでしょうか?)は、メモリの最大容量が8GBとされています(HPによる仕様表)。しかし、実際には16GBまで認識します。※1
Dragonfly BSD の開発者である Matthew Dillon 氏が、AMD K10 シリーズの CPU のバグを見つけたという記事が The Register の DragonFly BSD developer stung by Opteron bug に掲載されています。
非常に簡単に要約すると、あるパターンでスタックへ積んだデータを pop すると、スタック・ポインターが正しくない値となるもので、結果としてプログラムはクラッシュします。x86 系ではスタックにアクセスする命令が多数あるため、スタックを高速に操作するための回路が実装されていることが多いのですが、これが特定条件で悪影響を与えているのだろうと推測します。
私の自宅には「ほぼ」常時動作しているサーバーがあります。現在は OS に「Microsoft Windows Server 2003 Standard Edition」を使用しています。これは個人でリテール用箱入りのものを買いました。また、同時に仮想化のために「Microsoft Virtual Server 2005, Standard Edition」などというものも買いました。2 本で 20 万円くらいです。後者は購入後 1 年くらいで Microsoft Virtual Server, Standard Edition の上位版である Enterprise Edition が無償で公開されて、とても悲しかった思い出があります。
別に避けているわけではないのですが、私は気づくと Intel 製の CPU を選択していることが多い気がします。しかし、先月ついに AMD K-6、 AMD K6-2 および AMD K6-III 以来十数年ぶりに AMD の CPU が部屋にやってきました。それは AMD Athlon II Neo N36L です。これを搭載した製品はアレしかありません。そう、アレです。
それに関してはまた別途書くとして、この CPU の特性について、メモ代わりにちょっと書いておきたいと思います。
続きを読む
米 AMD が昨年発表したプロセッサ AMD Phenom は errata(エラッタ) を持っていることが広く知られています。同一のシリコンを用いる予定であった AMD Opteron 計画は延期を余儀なくされ、発売された AMD Phenom も多くの疑念を抱く結果を招いています。
これは初期の段階において、不具合の内容が公式に公開されないままに報道が先行したことが大きく寄与していると思います。それと同時に、AMD から適切な発表が行われるのが遅かったということを指摘しないわけにはいかないでしょう。
この不具合について書かれたドキュメントを AMD は 2008 年 2 月 25 日付け(米国時間)で発表しましたが、同内容についてはあまり取り上げられていないように思います(特に日本国内の日本語の報道において)。
そこで、このドキュメント(Revision Guide for AMD Family 10h Prosessors : Publication #41322 / Revision 3.16 / Issue Date 02/25/08)に記載されている該当 errata #298 の内容を日本語にて解説したいと思います。
続きを読む
Intel がリリースする CPU は、(いわゆる)ノースブリッジを含む全てのチップセットを別チップで提供するという方式を採用していますが、対する AMD は、ノースブリッジを CPU に統合するという方式を採用しています。これはどちらがより優れているかという話ではなく、それぞれ利点と欠点があるとみるべきでしょう。
続きを読む