スペシャルコンテンツ >> Webミニセミナー >> TOPS SYSTEMSの並列処理構造改革


Web ミニセミナー

2013/7/1 トプスの中の人

第2回 並列処理の難しいところ、その2「整合性をとる」

「整合性がない」などと怒られたことありませんか? 私なんかしょっちゅう。。。 まあ、大事なもんです「整合性」は。プロセッサの世界でも同じようです。「整合性が問題になる」のは、例えば下の図のようなときだそうです。



二人のプロセッサが並行して走っています。二人は同じメモリにおいてある情報を読み書きしているのですが、メモリは遅いので、高速に読み書きできるキャッシュという「一時記憶場所」をそれぞれもっていて、良く使う情報はキャッシュにコピーしておいてそれを使って仕事をしています。


ある「情報」(図の中では亀の子印)をふたりが参照しています。ふたりともキャッシュに「情報」をコピーします。ところが、プロセッサ1の方が、「情報」を更新してしまいました。キャッシュはあくまで「コピー」なので、当然、「原本」であるメモリとの「整合性」をとらなければいけない、ということで、メモリは更新しないとねえ。けれど、それだけで良いのでしょうか。プロセッサ2のキャッシュには古い更新前のコピーが置いてあります。そのままだとプロセッサ2は古い情報に基づいて処理をしてしまうかも。それどころか古い情報をプロセッサ2はプロセッサ2で書き変えて書き戻そうなどと考えないか、と心配すると夜も眠れない。


ちゃんと整合性をとるためには、「情報」書き変えちゃったから、もう一度メモリから読み直してね、という具合にプロセッサ1側の情報をプロセッサ2側にお伝えしないと駄目ですね。といって、お伝えするにはどうしたら良いのだろう。これはこれで夜も眠れない。。。



Webミニセミナー 全4回







© Copyright 2003 - 2013 TOPS Systems Corporation