[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00366] Re: test and set (was Re: 演算速度)



>  > IA-32ならBT系命令がありますが、IA-16にはそのような操作をできる命令はありません
>  > ね。
> 
> BTx 命令は、基本的に 1 ビットだけ CF に取り出す命令ではないんでしょうか ?
> (x でおまけの操作ができますが) それは、普通の定義では単なるビット操作命令
> です。(ちなみに BT[SRC] は atomic ですらありません。明示的な lock が必要で
> す。とか low level な話だな)
> 
> 世の中でいう test and set は、cmpxchg (486 の追加命令、68k の cas 相当) だ
> と思いますが ... というかドキュメント (*) にそう書いてありますが ...

すいません。
386のドキュメントは読んだことがないので、そこまで厳密な話は知りませんでした。
しかし、シングルプロセッサ環境なら、割り込み禁止にする必要がないので、
「とりあえず」アトミックといえるのではないのでしょうか?
xchg系命令なら、バスロックを伴なう(はず)なので、完全にアトミックですね。
# 個人的にbswap以外の486拡張命令には疑問をもっていたのですが・・・(^^;


ML Archives