エンベデッドシステムスペシャリスト暗記無料で始める

キャッシュコヒーレンシとは?きゃっしゅこひーれんし

キャッシュコヒーレンシとは、複数のプロセッサがそれぞれキャッシュを持ちながら主記憶を共有するとき、同じアドレスに対して各キャッシュが矛盾した値を持たないよう保つこと。MESIなどのプロトコルがハードウェアで無効化または更新を行い、他コアが書いた最新値を読ませる。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の過去問では2問の解説で触れられています(2016年度〜2018年度)。

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:キャッシュ一貫性、cache coherency

この語が出る過去問を解く →

背景

キャッシュは各コアが自分専用に持つ写しであり、写しが増えれば原本との食い違いが必ず起きる。単一コアなら書き戻しの順序を守るだけで済んだ問題が、コアが増えた途端に「誰の写しが正しいか」という調停の問題に変わった。組込みでマルチコアやDMAを使う設計では、この調停をハードウェアがどこまで面倒を見るかが製品ごとに違う。見てくれない範囲を把握していないと、単体では動くのに実機で稀に値が古いという再現困難な不具合を抱え込む。

具体例

STM32H7のようにD-Cacheを持つマイコンでDMA転送を使う場合、DMAが書き込んだ領域は読む前にキャッシュを無効化し、DMAに読ませる領域は転送前にキャッシュをクリーンする必要がある。CMSISのSCB_InvalidateDCacheやSCB_CleanDCacheを、転送の前後に正しい向きで置くのが定石になる。

試験での引っ掛け

一貫性の破壊要因はマルチコアだけではなく、DMAや外部バスマスタも同じ問題を起こす。無効化とクリーンは向きが逆で、取り違えると書いたデータを捨てるか古いデータを読むかのどちらかになる。コヒーレンシが保たれることとメモリ順序(アクセスの見える順番)が保証されることは別で、後者にはメモリバリアが要る。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 2問の解説で触れられる(2016年度〜2018年度)
  • 分野:午前II
  • 一貫性の破壊要因はマルチコアだけではなく、DMAや外部バスマスタも同じ問題を起こす。