0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

福田昭のデバイス通信 第7回 第8回 第9回

Posted at

キャッシュの更新

次のシステムのメモリアクセスを考える。

  • 1次キャッシュ (命令キャッシュとデータキャッシュ)
  • 2次キャッシュ (命令とデータの区別無し)
  • 外部メモリ

1次データキャッシュに存在する場合、その値をCPUに返す。
1次データキャッシュに存在せず、2次キャッシュに存在する場合、その値をCPUに返し、1次データキャッシュにコピーする。
1次データキャッシュと2次キャッシュに存在せず、外部メモリに存在する場合、その値をCPUに返し、1次データキャッシュと2次キャッシュにコピーする。

ライトスルーとライトバック

キャッシュラインにコピーするアロケーションと、削除するエビクションがある。
エビクションには、ランダムに削除、順番に削除、最古のデータを削除する方法がある。
キャッシュに書き込む時、外部メモリにも書き込む方式をライトスルーと呼ぶ。
回路は単純だが、メモリアクセスが多発すると性能が著しく低下する。
キャッシュを削除する時、外部メモリに書き込む方式をライトバックと呼ぶ。
回路は複雑だが、メモリアクセスが多発しても性能は殆ど低下しない。

キャッシュの性質と弱点

投機的プリフェッチは、近い将来アクセスする確率の高いデータを事前に読み込む。
例えば、0x8000、0x8020、0x8040にアクセスした場合、0x8060にアクセスする確率は非常に高い。
また、memsetなどのキャッシュを汚染する関数を検知し、キャッシュの更新を一時的に止める。
キャッシュを支えるのは時間的局所性と空間的局所性であり、局所性の低いアプリケーションには効果が薄い。
キャッシュミスが多発する場合は、性能を低下させることもある。

仮想メモリ

アプリケーションは仮想メモリを使用し、物理メモリを認識しない。
物理メモリが3GBで仮想メモリが4GBの場合、不足分はHDDに割り当てられる。
ハイパーバイザーが複数のゲストOSを管理する場合、独自のページテーブルを使用し異なるアドレス空間を提供する。
ゲストOSのページテーブル、ハイパーバイザーのページテーブルの2段階変換を行い、真の物理アドレスを得る。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?