web-dev-qa-db-ja.com

ロウハンマーがコンデンサー放電のみを引き起こす場合、どのようにして0から1にフリップできますか?

ロウハンマーでは、なぜ1つの行の電圧を変更すると他の行が開閉するのですか?誘導に関連していますか?

どのようにしてビットを0から1に変更できますか? 1から0まで-電圧放電を理解していますが、どのようにしてセルを充電できますか?

編集:これは私がロウハンマー研究文書を読んで理解したものです:

  1. セルの放電は、ビットラインを何度もオンおよびオフにすると発生します。

  2. したがって、ビットラインの電圧を何度も変更すると、次のビットラインに電流が発生します(電流の誘導のため)。

  3. セルのトランジスタのゲートが開きます

  4. ラムバッファに接続させると、

  5. これにより、セルがdischargeになります(セルは読み取り時に常に放電します)

彼らは記事でそれを具体的に言っていませんでしたが、それは私が理解したことです。

その場合、どのようにしてセルを充電できますか?誘導が非常に「強力」であり、トランジスタゲートを開くだけでなく、セルを完全に充電できる可能性はありますか、それとも完全に間違っていますか?

4
789

ロウハンマーは、コンデンサの放電を加速することによってのみ機能します。

セルはロウハンマーで充電されず、放電されるだけです。論理0が論理1に変化する理由は、最近のDRAMメモリはscramblingと呼ばれる手法を使用しているため、小さな32ビットシードを使用してLFSRストリームに電力を供給するためです。メモリを暗号化する暗号。この暗号化は、暗号的に安全であるようには設計されていません。連続する1または0の巨大なバーストが発生した場合にのみ、モジュールの電気的ストレスを軽減するように設計されています。スクランブルにより、物理ビットが約50%の確率で反転論理ビットとして表されるため、論理0が1になることがわかります。

物理ビットと論理ビットの間のこの切断を引き起こすのはメモリのスクランブルだけではありません。一部のセルは、充電されたときに論理1を表しますが、他のセルはその逆です。これらは、それぞれtrue-cellsおよびanti-cellsと呼ばれます。 DRAMの大部分は、真のセルで構成されています。つまり、コンデンサの放電の結果、1は0になります。前述のように、メモリスクランブルを行った後でないと、アプリケーションレベルで一見ランダムなビットフリップになる可能性があります。

ロウハンマーが放電したコンデンサーを充電できるとしたら、私たちは今よりもはるかに悪い状況になるでしょう。 DRAMのリフレッシュは、コンデンサの値をチェックし、充電されている場合はコンデンサを再充電しますが、放電されている場合はそのままにするため、リフレッシュベースの緩和策は、ロウハンマーによる過度の放電からのみ保護できます。現在のほとんどの軽減策は、リフレッシュレートの増加(64ミリ秒から32ミリ秒の間隔など)、または過度の行のアクティブ化の検出と、結果として不安定になる可能性のある隣接する行の直接更新(TRRやpTRRなど)に依存しています。

元の論文 は3つの異なる作用メカニズムを与えました:

  1. 電磁結合-各コンデンサには独自のアクセストランジスタがあります。このトランジスタがトリガーされると、コンデンサが放電され、その値が行バッファに読み込まれます。 1つのワードラインの電圧を変更すると、近くのワードラインにノイズが発生し、そのライン上のアクセストランジスタが一時的に一時的にアクティブになり、コンデンサのリークが促進されます。

  2. ブリッジの形成-無関係なワイヤまたはコンデンサの間に導電性チャネルを形成できます。ワードラインをすばやく切り替えると、ブリッジされたセル間のリーク率が増加し、充電されたコンデンサがより速く放電する可能性があります。

  3. ホットキャリア注入-これは短期的なロウハンマー攻撃には特に関係ありませんが、ワードラインを数百時間トグルすると永久にそれを傷つけます。これにより、アクセストランジスタとコンデンサの特性が変化し、漏れが増える可能性があります。

3
forest