ハーバード・アーキテクチャ
命令キャッシュとデータキャッシュを分離し、ライトバック方式(キャッシュメモリの項目を参照)を採用した場合に、次のような問題がある。基本的には、プロセッサの命令プリフェッチやDMAで起こる問題と同質である。
プログラムの動的ローディング(英語版)(英: Dynamic loading)、動的コンパイル、機械語レベルの自己書き換えコードおよびそれのトランポリン(英語版)(英: Trampoline)による実行など(後に挙げたものほど深刻である)、ノイマン型アーキテクチャの、プログラムの命令自身をプログラム自身により書き換え可能である、という性質を利用した技術がある。これらの実行において、単純に命令用とデータ用のキャッシュが分離されているのは、キャッシュコヒーレンシがおかしい状態にあるのと同じことである。よって何らかの対処がされている。
この名前は初期のコンピュータの一つである Harvard Mark I で使われたアーキテクチャであることに由来する。このマシンはプログラムの命令を穿孔テープからの読み出しのみとし、データメモリは リレーのON/OFFで読み書き可能な形で実現した。