1
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 5 years have passed since last update.

Cache問題 解説編

Posted at

1.Cache write → Cache Readの場合
図の通り、CPU1でCacheにコマンドを書き込んだとしてもそれがCPU2側の
Cache2から読み出す値と同じ値になっているかどうかは保証できない為、
タイミングによっては正しくコマンドが伝わらない。(下図)
cache1.png

2.Non Cache write → Cache Readの場合
図の通り、CPU1でShared memoryにコマンドを書き込んだとしてもそれが
CPU2側のCache2から読み出す値と同じ値になっているかどうかは保証できない為、
タイミングによっては正しくコマンドが伝わらない。(下図)
cache2.png

3..Cache write → Non Cache Readの場合
図の通り、CPU1でCacheにコマンドを書き込んだとしてもそれがCPU2側で
Shared memoryから読み出す値と同じ値になっているかどうかは保証できない為、
タイミングによっては正しくコマンドが伝わらない。(下図)
cache3.png

4.Non Cache write → Non Cache Readの場合
以下①~④のような事が起きるとCPU2がNon Cache Readする際に事前にCPU1がNon Cache writeしておいたコマンドが書き換えられしまっていて、正しくコマンド通信出来ない事がある。(下図①~④)

①CPU1内のスレッドAからコマンドをNon Cache Write
cache4-1.png

②CPU1内のスレッドBからコマンドと同じCache line上の別の値を変更
cache4-2.png

③②によりCPU1内のCacheがあふれてコマンドと同じline領域がNon Cache領域へライトバックされる事でShared memory上のコマンドが書き換えられる
cache4-3.png

④CPU2がNon Cache Readしたコマンド領域はすでにライトバックで破壊された後の不定な値となり、正しくコマンドが伝わらない。
cache4-4.png

1
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
1
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?