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?

More than 3 years have passed since last update.

【メモ】キャッシュについて

0
Last updated at Posted at 2022-05-02

プログラミング初心者が、キャッシュについて学んだことをメモとしてまとめたものです。
もし間違いなどありましたら、ご指摘いただけると幸いです。

レジスタとキャッシュとメモリ

  • レジスタは、演算器の横に付いてる一時的な記憶域
    X byte * 32~512本 (xは32bitとか64bitとか128bitとか)

  • キャッシュは、演算器より外にあるKB~MBオーダの一時保存領域
    これを超えたらメモリに行く

  • キャッシュは、Lxキャッシュがある(xは、1~4)

L2キャッシュには、昔の計算結果(c += a + b)が入る。
L1キャッシュには、計算結果の答えが入ったcが入る。

コアがたくさん存在するときにL3が必要になってくる。
2コア目以降は、1コア目にある変数の値をL2(?)まで取っていかなくても、L3に置いてあるから取ってくることができる。

最近ではL4キャッシュも存在する。
64コアとかになってくると、L3キャッシュで渋滞が起こるため、L4キャッシュを足している。

Screen Shot 2022-02-04 at 21.45.02.png

上の画像は以下のサイトより引用
https://www.hardwaretimes.com/future-amd-ryzen-and-epyc-cpus-may-feature-a-level-4-cache-l4/

キャッシュコヒーレンシ

計算機は、1秒間に30億回計算をやっても、バグが起こらない。それはキャッシュコヒーレンシと関係しているようである。

例えば、4番コアが計算結果cが欲しいといった場合、1番コアがL3のcを書き換えて、それをコア4が取ってくる。従って、L3が共有されたメモリリソースになっている(?)。
システム全体で共有リソースを更新して、キャッシュの内容に一貫性を保つようになっている。

どのようにキャッシュの内容を更新していくかなどを考えて、CPUの設計書を作っている会社がARMである。

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?