Cortex-A15のキャッシュコヒーレンシについて(2)
キャッシュにはL1キャッシュ、L2キャッシュ、L3キャッシュ…があるわけだけど、それぞれのデータに同じデータが含まれている構造のキャッシュは「inclusionキャッシュ」と呼ばれる。
一方、一部だけ同じデータが含まれている、もしくは含まれていない構造のキャッシュは「Non inclusionキャッシュ」と呼ばれる。
CPU間のキャッシュコヒーレンシを保つためには、他のCPUのキャッシュに、これから変更したいアドレスのデータが含まれているか確認作業が必要となる。これを「スヌープ」という。
inclusionキャッシュでは、L1,L2,L3のコヒーレンシが保たれているため、L3キャッシュのみをチェックすればL1,L2までさかのぼってスヌープしなくてもいい。
Non inclusionキャッシュではL1,L2,L3すべてのキャッシュをチェックする必要がある。
Cortex-A15ではL1キャッシュへのアクセスは全てL2キャッシュに届く。(Cortex-A15L3キャッシュはCPUコア内部にはなくDDR3などに該当する)
これによりL1キャッシュとL2キャッシュの間でやり取りが無くなるので性能が上がる。