Ryzenで発生しているSEGV問題、原因はCPUのキャッシュ?

2017年6月24日 12:29

印刷

記事提供元:スラド

あるAnonymous Coward 曰く、 AMDの新CPU「Ryzen」でLinuxカーネルやgccをビルドするとセグメンテーション違反が発生する場合がある問題が確認されている。これはRyzen SEGV Battleと呼ばれて流行中だが、EIRAKU氏によるとSEGVの発生原因はインストラクションポインタから64バイトズレた位置の命令を実行してしまうことだそうだ。

 この問題についてはsatoru_takeuchi氏による「Ryzenにまつわる2つの問題」という記事が詳しいが、再現性が低く、また確実な対処方法も判明していないという状況であった。

 EIRAKU氏はBitVisorというハイパーバイザで検証を行い、call命令を起点にインストラクションポインタから64バイト手前にある命令を実行してしまう現象を確認したそうだ。この現象の結果、ズレた位置にある命令が不正なアドレスにアクセスしセグメンテーション違反や一般保護違反が起こっていたという。この64バイトという数値はキャッシュラインサイズと一致しており、命令デコーダかL1命令キャッシュ、あるいはRyzenで新設されたμOPキャッシュ辺りに問題がある可能性が高く、Twitterではマイクロコードの更新で直るのか疑問視する意見もあった。

 なお、AMDはこの件について現時点ではメディアを通じてのアナウンスはしておらず、コミュニティでの対応とサポートリクエストを発行した人に対する交換対応のみ行っている。

 スラドのコメントを読む | AMD

 関連ストーリー:
AMD、サーバー向けの新たなCPUブランド「EPYC」を発表 2017年05月24日
Intel Core i9とAMD Ryzen 9 が今夏に登場か 2017年05月18日
AMD、Ryzenに最適化したWindows 10向け電源プランを配布へ 2017年04月12日
AMDの新CPU「Ryzen」発売、Intel CPUと十分に競争できる性能との評判 2017年03月06日

※この記事はスラドから提供を受けて配信しています。

関連キーワード

関連記事