パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

ミシガン大、CPUの未知のエラッタを回避する技術を開発」記事へのコメント

  • マイクロコードの書き換えでエラッタを回避しているのは、ある意味論文の手法の実践といえるのではないでしょうか?
    • Re: (スコア:2, 参考になる)

      元論文を流し読み程度ですが、こんな感じかなぁ。

      これまでのCPU
      バグはブラックリストで回避。
      製造後に検証してバグが見つかれば、ブラックリストに追加し、修正用のマイクロコードを追加する。
      ブラックリストが増えれば増えるほど、回避用のコードに分岐する可能性が増えて遅くなる。

      提案されているCPU
      バグはホワイトリストで回避。
      製造後に検証して安全な状態が見つかれば、ホワイトリストに追加する。
      ホワイトリストが増えれば増えるほど、回避用のコードに分岐する可能性が減って速くなる。

      AMDのBarcelonaは前者の回避方法なので、マイクロコードで修正したけど、とっても遅くなりました
      • Re: (スコア:2, 参考になる)

        今行おうとしている動作がテスト済みか否かが判断出来るホワイトリストが作れるのなら,逆にホワイトリストから未テストのテストケースが何かを求められるのでは? だとしたら,実行時にホワイトリストを参照するより,カバレッジが100%になるまで出荷前にテストすれば済むはず.
        • 全状態の数を計算することはできますが、それを全部検証するのはとても無理です。
          現状では、設計時に定義した仕様どおりに動いているかどうかをなんとか検証できているぐらいです。
          それもすべての組み合わせができているわけではなく、こういうテストベンチなら網羅できるだろうという、
          各社のノウハウによって検証数を減らして対応しています。

          そんな状況でもホワイトリストが有効なのは、ソフトウェアと同じく、
          ハードウェアでも回路状態の局所性があるからです。

          ほとんどの場合、少数の状態しか取らないので、その状態をホワイトリストに入れましょう。
          リストから外れた状態を取ったら、パイプラインを空にしてもう一度実行しましょう。
          ホワイトリストから外れる可能性は低いので、パイプラインを空にしても全体に対する
          速度のロスは小さい。

          こんな感じでしょうか。
          CPUのキャッシュメモリをイメージすれば、近いかもしれません。
          理想的には1次キャッシュにすべてのコードが収まれば良いですが、無理ですよね。
          1次キャッシュは多くても128kBぐらいしかないですが、ほとんどのコードはそこに収まるので、
          速度のロスは小さいです。
          親コメント

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

処理中...