DMAやIRQとは何ですか?GPIBでどのように使われますか?

更新しました Jan 12, 2023

使用製品

ドライバ

  • GPIB Software
  • Miscellaneous GPIB Software (Legacy)

問題

DMAやIRQとは何ですか?また、GPIBではどのように使われますか?

解決策

DMAとは、Direct Memory Access(ダイレクトメモリアクセス)の略です。コンピュータにはDMAコントローラ(DMAC)が搭載されていて、デバイスからコンピュータのメインメモリへデータを直接転送する際に使用されます。ナショナルインスツルメンツ(NI)のGPIB製品は、DMAコントローラを使用してデータを直接メモリに転送するように設計されています。DMAはGPIBを使用する際に必ず必要なわけではなく、GPIB構成ユーティリティで無効化することができます。

IRQとは、Interrupt Request(割り込み要求)の略です。割り込みは、自動シリアルポーリングや非同期(バックグラウンド)データ転送をおこないます。ハンドラは、Service Request(SRQ)ラインがアサートされた際にバス上にあるすべてのデバイスにシリアルポーリングをおこないます。割り込みが無効化されていて自動シリアルポーリングが有効の場合、ハンドラはGPIB関数が呼び出された際にのみポーリングします。また、割り込みが無効の場合、非同期転送は同期転送として処理されます。DMAと同様に、割り込みはGPIBを使用する際に必須ではありません。 

追加情報

NI製品は、DMAを無効化するとPIO(Programmed I/O)を使用してGPIB通信をおこないます。PIOは、GPIBデバイスでステータスレジスタをポーリングして、データを1バイトずつ転送します。さらに、ハンドラはGPIBデバイスがデータの送受信準備が整うたびにCPUを割り込みします。

DMAを使用する利点は、DMACがデータ転送を実行することです。CPUはDMACを動作させるために使用されますが、転送中に割り込みされることはありません。一般的にDMA転送は、PIO転送に比べて高速で大容量のデータ転送に有利です。