ソフトウェアメモリ

高機能アナログ入力用のソフトウェアメモリと、高機能アナログ出力用のソフトウェアメモリが存在します。

 

高機能アナログ入力の場合

高機能アナログ入力用のソフトウェアメモリは、以下のようなメリットがあります。

デバイスバッファモードにおいて、API-AIO(WDM)ドライバは、バッファメモリが少ないデバイスでも
なるべく安定したサンプリングを実現できるように、PCまたはファームウェアのメモリに256Kデータ分のメモリ領域を確保しており、
このメモリ領域を「ソフトウェアメモリ」と呼びます。

ソフトウェアメモリを使用するデバイスの場合、バッファメモリとソフトウェアメモリ間のデータ転送はソフトウェアが自動的に行い、
アプリケーションからは、ソフトウェアメモリにアクセスする形になります。
この仕組みにより、アプリケーションではタイミングやデータ量に余裕を持って処理を行うことができます。

各デバイスのソフトウェアメモリ使用有無と、使用できるメモリサイズは、「ADソフトウェアメモリ一覧」トピックを参照ください。

例:バッファメモリが1K(1024)データ分のデバイスで、以下の条件で長時間のサンプリングを行う場合

 ・チャネル数           : 1Ch
 ・転送方式             : デバイスバッファモード
 ・内部クロック         : 1msec
 ・メモリ形式           : FIFO

 

このデバイスがソフトウェアメモリを使用しない場合 (*1)

この設定でサンプリングを行うと、開始からおよそ1秒(1024msec)後に
バッファメモリが満杯になり、オーバーフローが発生します。

そのため、この設定で長時間のサンプリングを行うためには、アプリケーションは
1秒程度より早い周期でFIFOメモリのデータを取得し続ける必要があります。

 

このデバイスがソフトウェアメモリを使用する場合

ソフトウェアメモリには256K(262,144)データ分のデータを格納することができますので、
オーバーフローが発生するまでに262秒程度の時間があり、アプリケーションは
余裕をもってデータ取得を行うことができます。 (*2)

また、このサンプリングで収集するデータ量が256K未満の場合、
サンプリングが終了してから一度でまとめてデータを取得することもできますので、
サンプリング中にデータを取得し続ける処理と比較すると、
アプリケーションの処理内容を簡単にすることができます。

 

(*1) 実際にはバッファメモリが1Kのデバイスは必ずソフトウェアメモリを使用しますが、
上記は説明のため、使用しない場合にどうなるかを記載しています

(*2) 高速サンプリング時には、ソフトウェアメモリへのデータの転送が間に合わず、
バッファメモリ側でオーバーフローが発生することがあります

 

高機能アナログ出力の場合

高機能アナログ出力用のソフトウェアメモリは、以下のようなメリットがあります。

・ソフトウェアメモリに収まるデータ量であれば、出力中にデータを継ぎ足す必要が無くなる
・長時間の連続出力をする場合に、全データを出力し終わって動作終了してしまうまでの時間
 (出力データを継ぎ足すのが間に合う時間)に余裕ができる

各デバイスのソフトウェアメモリ使用有無と、使用できるメモリサイズは、「DAソフトウェアメモリ一覧」トピックを参照ください。

 

関連項目

バッファメモリ オーバーフローADソフトウェアメモリ一覧DAソフトウェアメモリ一覧