ハードウェアセキュリティの最新動向
「ECC付きのメモリを使えば、ロウハンマーの心配はない」という考えの問題点として、正しいものはどれか。
- A一般的なECC(SECDED)は1ワードで1ビットの誤りしか訂正できず、多くのビットが反転すると訂正も検出もできないことがあるから
- BECCはデータの読み出しを遅くするだけの仕組みで、メモリの中で反転したビットを訂正する働きはそもそも持っていないから
- CECCの検査ビットを置くために行の数が増え、活性化される行の間隔が狭くなるので、ロウハンマーが2倍起きやすくなるから
答えと解説を見る
正解:A. 一般的なECC(SECDED)は1ワードで1ビットの誤りしか訂正できず、多くのビットが反転すると訂正も検出もできないことがあるから
サーバで使われるSECDED方式のECCは、64ビットのデータに8ビットの検査ビットを付け、1ビットの誤りを訂正し、2ビットの誤りを検出します。ロウハンマーでは同じワードの中で3ビット以上が反転することもあり、その場合は誤りに気付かなかったり、別の値と取り違えて誤って訂正したりすることがあります。ECCは反転の多くを抑える有効な層ですが、TRRやリフレッシュの管理のように、反転そのものを起こさせない対策と組み合わせる必要があります。
- A. 正しい。訂正の能力を超える数の反転には対応できません。
- B. ECCは1ビットの誤りを訂正できます。限界があるのは、多くのビットが同時に反転した場合です。
- C. ECCを使っても、ロウハンマーの起きやすさは変わりません。