« 開発の現場から:せめてフロー制御だけは理解してほしい | トップページ | 正倉院展へ行ってきました:螺鈿紫檀琵琶が素晴らしかった »

2012年10月26日 (金)

開発の現場から:原則を横展開する能力

 組み込み技術者にシリアル通信は必須で、せめてフロー制御くらいは理解しておいて欲しいという話を前回書いた。
 実は、この話には、続きがある。フロー制御という考え方そのものは、シリアル通信でのみ必要なものではない、ということである。
 フロー制御がなぜ必要になるか?それは、データ処理速度の異なるモジュールを非同期で通信すると、データ処理速度の速い方がデータ処理速度の遅い方を待たなければ、データをうまくやりとりできないからである。この事象は、シリアル通信で頻発するだけで、実際には他のケースでも起きる。
 なぜシリアル通信でこの問題が起きやすいかというと、シリアル通信で使われるFIFOの容量が小さいからだ。FIFOは非同期の速度の違いをある程度吸収できる。でも、この容量が小さいとやはり問題は起きやすい。
 あるソフトウエアモジュールと、あるソフトウエアモジュールとでデータをやりとりする場合でも、このソフトウエアモジュールがマルチタスクで動いていれば、この2つのデータの受け渡し時に、何らかのフォロー制御の手段が必要となる。ただ、実際には、このデータの受け渡しのバッファが大きかったりすると問題はほとんど発生しなくなる。
 ただ、いくら大きくともバッファとはメモリーであり、組み込みにおいてはメモリーはそんなに大きくないので、いつもは大丈夫なのだが、たまに問題が発生する、という最も嫌な問題になったりする。
 以前、あるプロジェクトで、バッファが一杯になった時の処理を忘れて大問題が起きたことがある。2つのモジュールで通信する場合には、何らかのフロー制御が必要になる。これは、データ処理速度の異なるモジュールを非同期で通信することによって発生する原理上の問題なのである。シリアル通信で得た知識は、実は他の時にも通用するのである。
 ある分野で得た技術を、その原理まで理解すれば、他の分野でも応用がきくということは、技術の世界ではよくあることだ。

« 開発の現場から:せめてフロー制御だけは理解してほしい | トップページ | 正倉院展へ行ってきました:螺鈿紫檀琵琶が素晴らしかった »

組み込み技術」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: 開発の現場から:原則を横展開する能力:

« 開発の現場から:せめてフロー制御だけは理解してほしい | トップページ | 正倉院展へ行ってきました:螺鈿紫檀琵琶が素晴らしかった »

2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

公告

  • Google Adsense
無料ブログはココログ