« 体力作り日記/桜を見てきました。 | トップページ | backup_mixi »

2005年4月 3日 (日曜日)

エンベ試験のお勉強メモ/TS命令

共有メモリを使ったマルチプロセッサ環境での排他処理で 使うTS命令(Test&Set命令)について。

情報処理試験の参考書的には、次のような説明になってます。

TSは、Test&Setのことで、メモリの読取りと書込みを、 連続して不可分(分けることができない)に実行することができる。
(テクニカルエンジニアエンベデッドシステム受験マニュアル)

とあるのですが、実際のTS命令って、どういうのだったけ?
という事で、久しぶりに青本 (68000プログラマーズ・ハンドブック)を開いてみました。

TAS (Test and Set an operand)
TAS {.B} <ea>
解説:
 マルチプロセッサ・システム(複数のMPUからなるシステム)間の同期をとるための命令であり、 オペランドは共有RAMに対するものです。
 操作は リード~モディファイ~ライトサイクルで行われ、ハードウェアでこのようなサイクルが サポートされていなければ意味をもたない命令です。
 順に次のような操作を行います。
  1. 指定したバイトオペランドをテスト(ゼロと比較)し、その結果をNとZビットに反映する。
  2. オペランドの最上位ビット(ビット7)をセット(1)する。

実際のMPUの動作の説明を見た方が、理解が深まりますね。

昔、H8のマルチプロセッサ環境での開発の仕事してましたが、 この辺の排他処理に関する部分の実際のコードは読んでなかったので、 ちょっとあやふやな感じだったんですよね。(^^;
この機会に復習して、 あやふやだった部分がよく分かって良かったです。(^_^)

関連知識:アトミック(通信用語の基礎知識)

|

« 体力作り日記/桜を見てきました。 | トップページ | backup_mixi »

Programming」カテゴリの記事

学問・資格」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/16952/3550514

この記事へのトラックバック一覧です: エンベ試験のお勉強メモ/TS命令:

« 体力作り日記/桜を見てきました。 | トップページ | backup_mixi »