TIPS/Embedded/syncとeieioとvolatile

Last-modified: 2007-01-21 (日) 18:16:14

sync

全ての動きをあわせる(同期させる、アトミックにする)こと

eieio (called by ppc)

外部とのIO入出力をあわせる(同期させる)こと

volatile

揮発性
外部要因で変更されるレジスタなどを、毎回読みに行くようにする
この定義がないと、外部のレジスタなどに読みに行かず、キャッシュの内容だけが
現れる可能性がある。
(変更されることがないと判断しているため=>本当は外部要因で変更される可能性があるのに)
ATAのレジスタなどに適用する

 volatileを付けたデータの値が要求されると,前に同じデータの値が要求されていたとしてもその値を使わずに,その時点のデータの値を必ず読み取るようなコードが生成されます.「直前の同じデータの値を使わずに,その時点のデータの値を読み取る」というのは,「データに書き込まれた値はすぐに消えてしまうので,必要となった時点のデータの値を読み取る」ことだと理解できます.「値はすぐに消えてしまう」ところから,揮発性=volatileというネーミングになったのでしょう.