IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

Cortex-A15のキャッシュコヒーレンシについて(2)

キャッシュにはL1キャッシュ、L2キャッシュ、L3キャッシュ…があるわけだけど、それぞれのデータに同じデータが含まれている構造のキャッシュは「inclusionキャッシュ」と呼ばれる。
f:id:qpci32siekqd:20111210153335j:image:w360


一方、一部だけ同じデータが含まれている、もしくは含まれていない構造のキャッシュは「Non inclusionキャッシュ」と呼ばれる。
f:id:qpci32siekqd:20111210154940j:image:w360


CPU間のキャッシュコヒーレンシを保つためには、他のCPUのキャッシュに、これから変更したいアドレスのデータが含まれているか確認作業が必要となる。これを「スヌープ」という。


inclusionキャッシュでは、L1,L2,L3のコヒーレンシが保たれているため、L3キャッシュのみをチェックすればL1,L2までさかのぼってスヌープしなくてもいい。
Non inclusionキャッシュではL1,L2,L3すべてのキャッシュをチェックする必要がある。


Cortex-A15ではL1キャッシュへのアクセスは全てL2キャッシュに届く。(Cortex-A15L3キャッシュはCPUコア内部にはなくDDR3などに該当する)


これによりL1キャッシュとL2キャッシュの間でやり取りが無くなるので性能が上がる。