今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御
2)キャッシュの一貫性維持のしくみに起因する問題
キャッシュの一貫性維持のしくみがないシステムの場合,プロセッサ・コア間でどのようにデータを共有するかが問題となります.小規模なデータであればメールボックスを使用すればよいのですが,メールボックスでは収まりきらないデータを複数のプロセッサ・コア間で共有したい場合が問題です.
このようなとき,例えばデュアルポート/マルチポートの共有メモリを,キャッシュを無効化した領域で使用するという方法があります.この方法は,CPUコアとDSPコアがそれぞれ一つだけであれば,十分機能します.複数のCPUコアと複数のDSPコアが存在する場合は,メモリ管理や明示的なデータ転送がプログラム開発の足かせになるでしょう.
一方,MPCoreのようにキャッシュの一貫性を維持する回路が存在する場合は,通常の対称型マルチプロセッサと同様にプロセッサ・コア間でデータを共有できます.そのため,データ転送に関するプログラム開発の苦労は軽減しますが,その分キャッシュの効率的な利用を意識してプログラムを開発する必要があります.
なお,マルチコア・システム上でのプログラム開発について詳しく知りたい方は,参考文献(9)を参照してください.