« ミスミのパソコンBBC-8000A-C3D-XPのリアルタイム割込み処理周期を評価しました | トップページ | センサ入力DINポートの1msスキャンで押し込み軸の移動停止 »

2011年9月21日

IBM-PC/ATアーキテクチャの進化をMOS言語のリアルタイムインタープリタの処理時間比較で実感しました。

IBM-PC/ATアーキテクチャの進化をMOS言語のリアルタイムインタープリタの処理時間比較で実感しました。

手軽にWindowsリアルタイムIO制御環境「MOSBench(モスベンチ)」では、MOS言語のプログラムを中間コードに変換して、Windowsリアルタイムのインタープリタで実行している。

以下のMOS言語プログラムのリアルタイムインタープリタ処理時間を5つのパソコンで比較しました。

まず、

StartTimer(1);

でリアルタイムのタイマーをスタートさせます。

while( a<1001) { 

   val[a] = GetTimerValue(1) * 10000000; // 100ns単位

   a = a+1;

}

Val[a]にタイマーの値を繰り返し代入しています。

val[a]-val[a-1]の値を

Printf2( " %ld  %ld\n", a , val[a]-val[a-1]);

のようにPrintf関数で出力すると、処理時間がわかります。

#StdOutLog.txtというファイルに保存されます。

以下は、その結果です。

Stdoutlog_txt

19,31,16,14,,,,

と言う値が、val[a]-val[a-1]の値です。

1.9us、3.1us、1.6us、1.4us,,,,

と言う意味になります。

この19,31,16,14,,,の値を1001プロットしたのが、以下のグラフです。

_5cpu_110920

縦軸は、3行のプログラムの処理時間。単位は100ns。

時々、大きな値が入っているのは、1ms毎モーション制御の優先割込み処理が入っているためです。

一番下の紺色のグラフから順に、

紺 1.47us(平均値) : Core2Duo 3.0GHz

紫 3.18us(平均値) : Core2Duo 1.8GHz

緑 4.83us(平均値) : Pentium Ⅳ 2.4GHz

黄 7.99us(平均値) : Pentium M 1.8GHz

桃 16.93us(平均値) : Pentium Ⅲ 850MHz

からへ、CPUの動作周波数は、850MHzから3.0GHzから3.5倍になっただけなのに、MOS言語プログラムのリアルタイムインタープリタの速度は、11.5倍になっている。

しかも、は、デュアルlコアなので、もうひとつのコアは空いていて、Windows専用に使える。

ソフトは変わっていないのに、処理速度は11.5倍の進化を遂げている。

オープンアーキテクチャのよいところ。

リアルタイムインタープリタ処理速度評価の参考記事;

○リアルタイムインタープリタの処理速度評価方法詳細

http://robotcontroller.cocolog-nifty.com/blog/2008/12/post-a591.html

■Link: 「高性能制御を簡単に、みんなに!」  

半導体装置、電子部品装置向け リアルタイムWindows 40軸超高速コントローラ

リアルタイムWindows 40軸超高速マシンコントローラ

三菱、オムロン、キーエンスPLCにつながる RTEXとパルス列の16軸モーションコントローラ

RTEXとパルス列16軸 スタンドアロン マシンコントローラ

|

« ミスミのパソコンBBC-8000A-C3D-XPのリアルタイム割込み処理周期を評価しました | トップページ | センサ入力DINポートの1msスキャンで押し込み軸の移動停止 »

技術Windowsでリアルタイム制御」カテゴリの記事

コメント

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



« ミスミのパソコンBBC-8000A-C3D-XPのリアルタイム割込み処理周期を評価しました | トップページ | センサ入力DINポートの1msスキャンで押し込み軸の移動停止 »